From c6b9b022adbca688b3c7f186184d62cd3906b613 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Dec 10 2020 12:13:56 +0000 Subject: gnome-online-accounts-3.28.2 base --- diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..3cc8286 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,1379 @@ +1 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 free software 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 on translations can contact the appropriate team. + +1.1 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. Installers may use special +options at configuration time for changing the default behaviour. The +command: + + ./configure --disable-nls + +will _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' library and +will decide to use it. If not, you may have to to use the +'--with-libintl-prefix' option to tell 'configure' where to look for it. + + Internationalized packages usually have 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. + +1.2 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. If you happen to have the 'LC_ALL' or some other +'LC_xxx' environment variables set, you should unset them before setting +'LANG', otherwise the setting of 'LANG' will not have the desired +effect. 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 language 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. + +1.3 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://translationproject.org/', in the "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 'coordinator@translationproject.org' 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 skills are praised more than +programming skills, here. + +1.4 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of Jun 2014. +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 an ar as ast az be bg bn bn_IN bs ca crh cs + +---------------------------------------------------+ + a2ps | [] [] [] | + aegis | | + anubis | | + aspell | [] [] [] | + bash | [] [] [] | + bfd | | + binutils | [] | + bison | | + bison-runtime | [] | + buzztrax | [] | + ccd2cue | | + ccide | | + cflow | | + clisp | | + coreutils | [] [] | + cpio | | + cppi | | + cpplib | [] | + cryptsetup | [] | + datamash | | + denemo | [] [] | + dfarc | [] | + dialog | [] [] [] | + dico | | + diffutils | [] | + dink | [] | + direvent | | + doodle | [] | + dos2unix | | + dos2unix-man | | + e2fsprogs | [] [] | + enscript | [] | + exif | [] | + fetchmail | [] [] | + findutils | [] | + flex | [] | + freedink | [] [] | + fusionforge | | + gas | | + gawk | [] | + gcal | [] | + gcc | | + gdbm | | + gettext-examples | [] [] [] [] [] | + gettext-runtime | [] [] [] | + gettext-tools | [] [] | + gjay | | + glunarclock | [] [] [] | + gnubiff | [] | + gnubik | [] | + gnucash | () () [] | + gnuchess | | + gnulib | [] | + gnunet | | + gnunet-gtk | | + gold | | + gphoto2 | [] | + gprof | [] | + gramadoir | | + grep | [] [] [] | + grub | [] | + gsasl | | + gss | | + gst-plugins-bad | [] [] | + gst-plugins-base | [] [] [] | + gst-plugins-good | [] [] [] | + gst-plugins-ugly | [] [] [] | + gstreamer | [] [] [] [] | + gtick | [] | + gtkam | [] [] | + gtkspell | [] [] [] [] [] | + guix | | + guix-packages | | + gutenprint | [] | + hello | [] | + help2man | | + help2man-texi | | + hylafax | | + idutils | | + iso_15924 | [] | + iso_3166 | [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] | + iso_639 | [] [] [] [] [] [] [] [] [] | + iso_639_3 | [] [] | + iso_639_5 | | + jwhois | | + kbd | [] | + klavaro | [] [] [] [] [] | + ld | [] | + leafpad | [] [] [] [] | + libc | [] [] [] | + libexif | () | + libextractor | | + libgnutls | [] | + libgphoto2 | [] | + libgphoto2_port | [] | + libgsasl | | + libiconv | [] [] | + libidn | [] | + liferea | [] [] [] [] | + lilypond | [] [] | + lordsawar | [] | + lprng | | + lynx | [] [] | + m4 | [] | + mailfromd | | + mailutils | | + make | [] | + man-db | [] [] | + man-db-manpages | | + midi-instruments | [] [] [] | + minicom | [] | + mkisofs | [] | + myserver | [] | + nano | [] [] [] | + opcodes | | + parted | [] | + pies | | + pnmixer | | + popt | [] | + procps-ng | | + procps-ng-man | | + psmisc | [] | + pspp | [] | + pushover | [] | + pwdutils | | + pyspread | | + radius | [] | + recode | [] [] [] | + recutils | | + rpm | | + rush | | + sarg | | + sed | [] [] [] [] | + sharutils | [] | + shishi | | + skribilo | | + solfege | [] [] | + solfege-manual | | + spotmachine | | + sudo | [] [] | + sudoers | [] [] | + sysstat | [] | + tar | [] [] [] | + texinfo | [] [] | + texinfo_document | [] [] | + tigervnc | [] | + tin | | + tin-man | | + tracgoogleappsa... | | + trader | | + util-linux | [] | + ve | | + vice | | + vmm | | + vorbis-tools | [] | + wastesedge | | + wcd | | + wcd-man | | + wdiff | [] [] | + wget | [] | + wyslij-po | | + xboard | | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +---------------------------------------------------+ + af am an ar as ast az be bg bn bn_IN bs ca crh cs + 4 0 2 5 3 11 0 8 25 3 3 1 55 4 74 + + da de el en en_GB en_ZA eo es et eu fa fi fr + +--------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] [] [] | + aegis | [] [] [] [] | + anubis | [] [] [] [] [] | + aspell | [] [] [] [] [] [] [] | + bash | [] [] [] | + bfd | [] [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] [] [] [] [] | + bison-runtime | [] [] [] [] [] [] [] [] | + buzztrax | [] [] [] [] | + ccd2cue | [] [] [] [] | + ccide | [] [] [] [] [] [] | + cflow | [] [] [] [] [] | + clisp | [] [] [] [] [] | + coreutils | [] [] [] [] [] | + cpio | [] [] [] [] [] | + cppi | [] [] [] [] [] | + cpplib | [] [] [] [] [] [] | + cryptsetup | [] [] [] [] [] | + datamash | [] [] [] [] | + denemo | [] | + dfarc | [] [] [] [] [] [] | + dialog | [] [] [] [] [] [] [] [] [] | + dico | [] [] [] [] | + diffutils | [] [] [] [] [] [] | + dink | [] [] [] [] [] [] | + direvent | [] [] [] [] | + doodle | [] [] [] [] | + dos2unix | [] [] [] [] [] | + dos2unix-man | [] [] [] | + e2fsprogs | [] [] [] [] [] | + enscript | [] [] [] [] [] [] | + exif | [] [] [] [] [] [] | + fetchmail | [] () [] [] [] [] [] | + findutils | [] [] [] [] [] [] [] [] | + flex | [] [] [] [] [] [] | + freedink | [] [] [] [] [] [] [] [] | + fusionforge | [] [] [] | + gas | [] [] [] | + gawk | [] [] [] [] [] | + gcal | [] [] [] [] | + gcc | [] | + gdbm | [] [] [] [] [] | + gettext-examples | [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] | + gjay | [] [] [] [] | + glunarclock | [] [] [] [] [] | + gnubiff | () [] [] () | + gnubik | [] [] [] [] [] | + gnucash | [] () () () () () () | + gnuchess | [] [] [] [] | + gnulib | [] [] [] [] [] [] [] | + gnunet | [] | + gnunet-gtk | [] | + gold | [] [] [] | + gphoto2 | [] () [] [] | + gprof | [] [] [] [] [] [] | + gramadoir | [] [] [] [] [] | + grep | [] [] [] [] [] [] [] | + grub | [] [] [] [] [] | + gsasl | [] [] [] [] [] | + gss | [] [] [] [] [] | + gst-plugins-bad | [] [] [] | + gst-plugins-base | [] [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] [] [] | + gtick | [] () [] [] [] | + gtkam | [] () [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] | + guix | [] [] | + guix-packages | | + gutenprint | [] [] [] [] | + hello | [] [] [] [] [] [] [] [] | + help2man | [] [] [] [] [] [] [] | + help2man-texi | [] [] [] | + hylafax | [] [] | + idutils | [] [] [] [] [] | + iso_15924 | [] () [] [] () [] () | + iso_3166 | [] () [] [] [] [] () [] () | + iso_3166_2 | [] () () () | + iso_4217 | [] () [] [] [] () [] () | + iso_639 | [] () [] [] () [] () | + iso_639_3 | () () () | + iso_639_5 | () () () | + jwhois | [] [] [] [] [] | + kbd | [] [] [] [] [] [] | + klavaro | [] [] [] [] [] [] [] | + ld | [] [] [] [] | + leafpad | [] [] [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] [] () [] [] | + libextractor | [] | + libgnutls | [] [] [] [] | + libgphoto2 | [] () [] | + libgphoto2_port | [] () [] [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] [] [] | + libidn | [] [] [] [] [] | + liferea | [] () [] [] [] [] [] | + lilypond | [] [] [] [] [] [] | + lordsawar | [] [] | + lprng | | + lynx | [] [] [] [] [] [] | + m4 | [] [] [] [] [] [] | + mailfromd | [] | + mailutils | [] [] [] [] | + make | [] [] [] [] [] | + man-db | [] [] [] [] | + man-db-manpages | [] [] | + midi-instruments | [] [] [] [] [] [] [] [] [] | + minicom | [] [] [] [] [] | + mkisofs | [] [] [] | + myserver | [] [] [] [] | + nano | [] [] [] [] [] [] [] | + opcodes | [] [] [] [] [] | + parted | [] [] [] | + pies | [] | + pnmixer | [] [] | + popt | [] [] [] [] [] [] | + procps-ng | [] [] | + procps-ng-man | [] [] | + psmisc | [] [] [] [] [] [] [] | + pspp | [] [] [] | + pushover | () [] [] [] | + pwdutils | [] [] [] | + pyspread | [] [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] | + recutils | [] [] [] [] | + rpm | [] [] [] [] [] | + rush | [] [] [] | + sarg | [] [] | + sed | [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] [] [] | + skribilo | [] [] [] | + solfege | [] [] [] [] [] [] [] [] | + solfege-manual | [] [] [] [] [] | + spotmachine | [] [] [] [] [] | + sudo | [] [] [] [] [] [] | + sudoers | [] [] [] [] [] [] | + sysstat | [] [] [] [] [] [] | + tar | [] [] [] [] [] [] [] | + texinfo | [] [] [] [] [] | + texinfo_document | [] [] [] [] | + tigervnc | [] [] [] [] [] [] | + tin | [] [] [] [] | + tin-man | [] | + tracgoogleappsa... | [] [] [] [] [] | + trader | [] [] [] [] [] [] | + util-linux | [] [] [] [] | + ve | [] [] [] [] [] | + vice | () () () | + vmm | [] [] | + vorbis-tools | [] [] [] [] | + wastesedge | [] | + wcd | [] [] [] [] | + wcd-man | [] | + wdiff | [] [] [] [] [] [] [] | + wget | [] [] [] [] [] [] | + wyslij-po | [] [] [] [] | + xboard | [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] [] [] | + +--------------------------------------------------+ + da de el en en_GB en_ZA eo es et eu fa fi fr + 119 131 32 1 6 0 94 95 22 13 4 102 139 + + ga gd gl gu he hi hr hu hy ia id is it ja ka kk + +-------------------------------------------------+ + a2ps | [] [] [] [] | + aegis | [] | + anubis | [] [] [] [] | + aspell | [] [] [] [] [] | + bash | [] [] [] [] | + bfd | [] [] | + binutils | [] [] [] | + bison | [] | + bison-runtime | [] [] [] [] [] [] [] [] | + buzztrax | | + ccd2cue | [] | + ccide | [] [] | + cflow | [] [] [] | + clisp | | + coreutils | [] [] | + cpio | [] [] [] [] [] [] | + cppi | [] [] [] [] [] | + cpplib | [] [] | + cryptsetup | [] | + datamash | | + denemo | [] | + dfarc | [] [] [] | + dialog | [] [] [] [] [] [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] | + dink | [] | + direvent | [] | + doodle | [] [] | + dos2unix | [] [] | + dos2unix-man | | + e2fsprogs | [] [] | + enscript | [] [] [] | + exif | [] [] [] [] [] [] | + fetchmail | [] [] [] | + findutils | [] [] [] [] [] [] [] | + flex | [] | + freedink | [] [] [] [] | + fusionforge | | + gas | [] | + gawk | [] () [] | + gcal | | + gcc | | + gdbm | | + gettext-examples | [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] | + gettext-tools | [] [] [] | + gjay | [] | + glunarclock | [] [] [] [] [] [] | + gnubiff | [] [] () | + gnubik | [] [] [] | + gnucash | () () () () () | + gnuchess | | + gnulib | [] [] [] [] [] | + gnunet | | + gnunet-gtk | | + gold | [] [] | + gphoto2 | [] [] [] [] | + gprof | [] [] [] [] | + gramadoir | [] [] [] | + grep | [] [] [] [] [] [] [] | + grub | [] [] [] | + gsasl | [] [] [] [] [] | + gss | [] [] [] [] [] | + gst-plugins-bad | [] [] [] | + gst-plugins-base | [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] [] [] | + gtkam | [] [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] [] [] | + guix | | + guix-packages | | + gutenprint | [] [] [] | + hello | [] [] [] [] [] | + help2man | [] [] [] | + help2man-texi | | + hylafax | [] | + idutils | [] [] | + iso_15924 | [] [] [] [] [] [] | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | [] [] | + iso_4217 | [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] [] [] [] | + iso_639_3 | [] [] | + iso_639_5 | | + jwhois | [] [] [] [] | + kbd | [] [] [] | + klavaro | [] [] [] [] [] | + ld | [] [] [] [] | + leafpad | [] [] [] [] [] [] [] () | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | | + libgnutls | [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] | + libgsasl | [] [] [] [] | + libiconv | [] [] [] [] [] [] [] | + libidn | [] [] [] [] | + liferea | [] [] [] [] [] | + lilypond | [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | | + mailutils | | + make | [] [] [] [] | + man-db | [] [] | + man-db-manpages | [] [] | + midi-instruments | [] [] [] [] [] [] [] [] [] | + minicom | [] [] [] | + mkisofs | [] [] | + myserver | [] | + nano | [] [] [] [] [] [] | + opcodes | [] [] [] | + parted | [] [] [] [] [] | + pies | | + pnmixer | [] [] | + popt | [] [] [] [] [] [] [] [] [] [] | + procps-ng | | + procps-ng-man | | + psmisc | [] [] [] [] | + pspp | [] [] | + pushover | [] | + pwdutils | [] | + pyspread | | + radius | [] | + recode | [] [] [] [] [] [] [] | + recutils | | + rpm | [] | + rush | [] | + sarg | | + sed | [] [] [] [] [] [] [] | + sharutils | | + shishi | | + skribilo | [] | + solfege | [] [] | + solfege-manual | | + spotmachine | | + sudo | [] [] [] [] | + sudoers | [] [] [] | + sysstat | [] [] [] [] | + tar | [] [] [] [] [] [] | + texinfo | [] [] [] | + texinfo_document | [] [] [] | + tigervnc | | + tin | | + tin-man | | + tracgoogleappsa... | [] [] [] [] | + trader | [] [] | + util-linux | [] | + ve | [] | + vice | () () | + vmm | | + vorbis-tools | [] [] | + wastesedge | [] | + wcd | | + wcd-man | | + wdiff | [] [] [] | + wget | [] [] [] [] | + wyslij-po | [] [] [] | + xboard | | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] [] | + +-------------------------------------------------+ + ga gd gl gu he hi hr hu hy ia id is it ja ka kk + 35 2 47 4 8 2 60 71 2 6 81 11 87 57 0 3 + + kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl + +--------------------------------------------------+ + a2ps | [] [] | + aegis | [] | + anubis | [] [] [] | + aspell | [] [] | + bash | [] [] | + bfd | | + binutils | | + bison | [] | + bison-runtime | [] [] [] [] [] [] | + buzztrax | | + ccd2cue | | + ccide | [] [] | + cflow | [] | + clisp | [] | + coreutils | [] [] | + cpio | [] | + cppi | | + cpplib | [] | + cryptsetup | [] | + datamash | [] [] | + denemo | | + dfarc | [] [] | + dialog | [] [] [] [] [] [] | + dico | | + diffutils | [] [] [] | + dink | [] | + direvent | [] | + doodle | [] | + dos2unix | [] [] | + dos2unix-man | [] | + e2fsprogs | [] | + enscript | [] | + exif | [] [] [] | + fetchmail | [] | + findutils | [] [] | + flex | [] | + freedink | [] [] | + fusionforge | | + gas | | + gawk | [] | + gcal | | + gcc | | + gdbm | | + gettext-examples | [] [] [] [] [] [] | + gettext-runtime | [] [] [] | + gettext-tools | [] | + gjay | | + glunarclock | [] [] | + gnubiff | [] | + gnubik | [] [] | + gnucash | () () () () () () () [] | + gnuchess | [] [] | + gnulib | [] | + gnunet | | + gnunet-gtk | | + gold | | + gphoto2 | [] | + gprof | [] [] | + gramadoir | [] | + grep | [] [] | + grub | [] [] [] | + gsasl | [] | + gss | | + gst-plugins-bad | [] [] [] | + gst-plugins-base | [] [] [] | + gst-plugins-good | [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] | + gstreamer | [] [] [] | + gtick | [] | + gtkam | [] [] | + gtkspell | [] [] [] [] [] [] [] | + guix | | + guix-packages | | + gutenprint | [] | + hello | [] [] [] | + help2man | [] | + help2man-texi | | + hylafax | [] | + idutils | [] | + iso_15924 | () [] [] | + iso_3166 | [] [] [] () [] [] [] [] [] [] | + iso_3166_2 | () [] | + iso_4217 | () [] [] [] | + iso_639 | [] [] () [] [] [] [] | + iso_639_3 | [] () [] | + iso_639_5 | () | + jwhois | [] [] | + kbd | [] | + klavaro | [] [] | + ld | | + leafpad | [] [] [] [] [] | + libc | [] [] | + libexif | [] | + libextractor | [] | + libgnutls | [] [] | + libgphoto2 | [] | + libgphoto2_port | [] | + libgsasl | [] | + libiconv | [] [] | + libidn | [] | + liferea | [] [] [] | + lilypond | [] | + lordsawar | | + lprng | | + lynx | [] | + m4 | [] | + mailfromd | | + mailutils | | + make | [] [] | + man-db | [] | + man-db-manpages | [] | + midi-instruments | [] [] [] [] [] [] [] | + minicom | [] | + mkisofs | [] | + myserver | | + nano | [] [] [] | + opcodes | [] | + parted | [] [] | + pies | | + pnmixer | [] | + popt | [] [] [] [] [] | + procps-ng | | + procps-ng-man | | + psmisc | [] | + pspp | [] [] | + pushover | | + pwdutils | [] | + pyspread | | + radius | [] | + recode | [] [] | + recutils | [] | + rpm | [] | + rush | [] | + sarg | | + sed | [] [] | + sharutils | [] | + shishi | | + skribilo | | + solfege | [] [] | + solfege-manual | [] | + spotmachine | [] | + sudo | [] [] [] | + sudoers | [] [] [] | + sysstat | [] [] | + tar | [] [] [] | + texinfo | [] | + texinfo_document | [] | + tigervnc | [] | + tin | | + tin-man | | + tracgoogleappsa... | [] [] [] | + trader | [] | + util-linux | [] | + ve | [] | + vice | [] | + vmm | [] | + vorbis-tools | [] | + wastesedge | [] | + wcd | [] | + wcd-man | [] | + wdiff | [] | + wget | [] [] | + wyslij-po | [] | + xboard | [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +--------------------------------------------------+ + kn ko ku ky lg lt lv mk ml mn mr ms mt nb ne nl + 5 15 4 6 0 13 23 3 3 3 4 11 2 42 1 125 + + nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + +------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] | + aegis | [] [] | + anubis | [] [] [] | + aspell | [] [] [] [] [] [] [] | + bash | [] [] [] [] [] [] | + bfd | [] [] | + binutils | [] [] | + bison | [] [] [] | + bison-runtime | [] [] [] [] [] [] [] [] | + buzztrax | [] | + ccd2cue | [] [] | + ccide | [] [] [] | + cflow | [] [] [] | + clisp | [] | + coreutils | [] [] [] [] | + cpio | [] [] [] | + cppi | [] [] [] | + cpplib | [] [] [] | + cryptsetup | [] [] [] | + datamash | [] [] | + denemo | | + dfarc | [] [] [] | + dialog | [] [] [] [] [] [] [] | + dico | [] | + diffutils | [] [] [] | + dink | | + direvent | [] [] [] | + doodle | [] [] | + dos2unix | [] [] [] [] | + dos2unix-man | [] [] | + e2fsprogs | [] | + enscript | [] [] [] [] [] [] | + exif | [] [] [] [] [] [] | + fetchmail | [] [] [] | + findutils | [] [] [] [] [] [] | + flex | [] [] [] [] [] | + freedink | [] [] [] [] [] | + fusionforge | | + gas | | + gawk | [] | + gcal | | + gcc | | + gdbm | [] [] [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] [] | + gjay | [] | + glunarclock | [] [] [] [] [] [] | + gnubiff | [] | + gnubik | [] [] [] [] | + gnucash | () () () () () [] | + gnuchess | [] [] | + gnulib | [] [] [] [] [] | + gnunet | | + gnunet-gtk | | + gold | | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] [] | + gramadoir | [] [] | + grep | [] [] [] [] [] [] | + grub | [] [] [] [] [] | + gsasl | [] [] [] | + gss | [] [] [] [] | + gst-plugins-bad | [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] [] [] | + gtick | [] [] [] [] [] | + gtkam | [] [] [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] [] | + guix | | + guix-packages | | + gutenprint | [] [] | + hello | [] [] [] [] [] [] | + help2man | [] [] [] [] | + help2man-texi | [] | + hylafax | | + idutils | [] [] [] | + iso_15924 | [] () [] [] [] [] | + iso_3166 | [] [] [] [] () [] [] [] [] [] [] [] [] | + iso_3166_2 | [] () [] | + iso_4217 | [] [] () [] [] [] [] [] | + iso_639 | [] [] [] () [] [] [] [] [] [] | + iso_639_3 | [] () | + iso_639_5 | () [] | + jwhois | [] [] [] [] | + kbd | [] [] | + klavaro | [] [] [] [] [] | + ld | | + leafpad | [] [] [] [] [] [] [] [] | + libc | [] [] [] | + libexif | [] () [] | + libextractor | [] | + libgnutls | [] | + libgphoto2 | [] | + libgphoto2_port | [] [] [] [] [] | + libgsasl | [] [] [] [] | + libiconv | [] [] [] [] [] | + libidn | [] [] [] | + liferea | [] [] [] [] () [] [] | + lilypond | | + lordsawar | | + lprng | [] | + lynx | [] [] | + m4 | [] [] [] [] [] | + mailfromd | [] | + mailutils | [] | + make | [] [] [] | + man-db | [] [] [] | + man-db-manpages | [] [] [] | + midi-instruments | [] [] [] [] [] [] [] [] | + minicom | [] [] [] [] | + mkisofs | [] [] [] | + myserver | [] [] | + nano | [] [] [] [] [] [] | + opcodes | | + parted | [] [] [] [] [] [] | + pies | [] | + pnmixer | [] | + popt | [] [] [] [] [] [] | + procps-ng | [] | + procps-ng-man | [] | + psmisc | [] [] [] [] | + pspp | [] [] | + pushover | | + pwdutils | [] | + pyspread | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + recutils | [] [] | + rpm | [] | + rush | [] [] [] | + sarg | [] [] | + sed | [] [] [] [] [] [] [] [] | + sharutils | [] [] [] | + shishi | [] [] | + skribilo | [] | + solfege | [] [] [] | + solfege-manual | [] [] | + spotmachine | [] [] | + sudo | [] [] [] [] [] [] | + sudoers | [] [] [] [] | + sysstat | [] [] [] [] [] | + tar | [] [] [] [] [] | + texinfo | [] [] [] | + texinfo_document | [] [] | + tigervnc | [] [] [] | + tin | [] | + tin-man | | + tracgoogleappsa... | [] [] [] [] | + trader | [] [] | + util-linux | [] [] | + ve | [] [] [] | + vice | | + vmm | | + vorbis-tools | [] [] [] | + wastesedge | | + wcd | | + wcd-man | | + wdiff | [] [] [] [] [] | + wget | [] [] [] [] [] | + wyslij-po | [] [] [] [] | + xboard | [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] | + +------------------------------------------------+ + nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + 7 3 6 114 1 12 88 32 82 3 40 45 7 101 + + sv sw ta te tg th tr uk ur vi wa wo zh_CN + +----------------------------------------------+ + a2ps | [] [] [] [] [] | + aegis | [] | + anubis | [] [] [] [] | + aspell | [] [] [] [] [] | + bash | [] [] [] [] | + bfd | [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] | + bison-runtime | [] [] [] [] [] [] | + buzztrax | [] [] [] | + ccd2cue | [] [] [] | + ccide | [] [] [] [] | + cflow | [] [] [] [] | + clisp | | + coreutils | [] [] [] | + cpio | [] [] [] [] [] | + cppi | [] [] [] [] | + cpplib | [] [] [] [] [] | + cryptsetup | [] [] [] | + datamash | [] [] [] | + denemo | [] | + dfarc | [] [] | + dialog | [] [] [] [] [] [] | + dico | [] | + diffutils | [] [] [] [] [] | + dink | [] | + direvent | [] [] | + doodle | [] [] | + dos2unix | [] [] [] [] | + dos2unix-man | [] [] [] | + e2fsprogs | [] [] [] [] | + enscript | [] [] [] [] | + exif | [] [] [] [] [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] [] [] | + freedink | [] [] [] | + fusionforge | | + gas | [] | + gawk | [] [] [] | + gcal | [] [] [] | + gcc | [] | + gdbm | [] [] | + gettext-examples | [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] [] [] [] | + gjay | [] [] [] | + glunarclock | [] [] [] [] | + gnubiff | [] [] | + gnubik | [] [] [] [] | + gnucash | () () () () [] | + gnuchess | [] [] [] | + gnulib | [] [] [] [] | + gnunet | | + gnunet-gtk | | + gold | [] [] | + gphoto2 | [] [] [] [] | + gprof | [] [] [] [] | + gramadoir | [] [] [] | + grep | [] [] [] [] [] | + grub | [] [] [] [] | + gsasl | [] [] [] [] | + gss | [] [] [] | + gst-plugins-bad | [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] | + gtkam | [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] | + guix | | + guix-packages | | + gutenprint | [] [] [] [] | + hello | [] [] [] [] [] [] | + help2man | [] [] [] | + help2man-texi | [] | + hylafax | [] | + idutils | [] [] [] | + iso_15924 | [] () [] [] () [] | + iso_3166 | [] [] () [] [] () [] [] | + iso_3166_2 | () [] [] () [] | + iso_4217 | [] () [] [] () [] | + iso_639 | [] [] [] () [] [] () [] [] | + iso_639_3 | [] () [] [] () | + iso_639_5 | () [] () | + jwhois | [] [] [] [] | + kbd | [] [] [] [] | + klavaro | [] [] [] [] [] [] | + ld | [] [] [] [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] [] () | + libextractor | [] [] | + libgnutls | [] [] [] [] | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] [] [] | + libgsasl | [] [] [] [] | + libiconv | [] [] [] [] [] | + libidn | () [] [] [] | + liferea | [] [] [] [] [] | + lilypond | [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] [] | + m4 | [] [] [] | + mailfromd | [] [] | + mailutils | [] | + make | [] [] [] [] | + man-db | [] [] [] | + man-db-manpages | [] [] | + midi-instruments | [] [] [] [] [] [] | + minicom | [] [] | + mkisofs | [] [] [] | + myserver | [] | + nano | [] [] [] [] | + opcodes | [] [] [] | + parted | [] [] [] [] [] | + pies | [] [] | + pnmixer | [] [] [] | + popt | [] [] [] [] [] [] [] | + procps-ng | [] [] | + procps-ng-man | [] | + psmisc | [] [] [] [] | + pspp | [] [] [] | + pushover | [] | + pwdutils | [] [] | + pyspread | [] | + radius | [] [] | + recode | [] [] [] [] | + recutils | [] [] [] | + rpm | [] [] [] [] | + rush | [] [] | + sarg | | + sed | [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] [] | + skribilo | [] [] | + solfege | [] [] [] [] | + solfege-manual | [] | + spotmachine | [] [] [] | + sudo | [] [] [] [] [] | + sudoers | [] [] [] [] | + sysstat | [] [] [] [] [] | + tar | [] [] [] [] [] | + texinfo | [] [] [] | + texinfo_document | [] | + tigervnc | [] [] [] | + tin | [] | + tin-man | | + tracgoogleappsa... | [] [] [] [] [] | + trader | [] | + util-linux | [] [] [] [] | + ve | [] [] [] [] | + vice | () () | + vmm | | + vorbis-tools | [] [] | + wastesedge | | + wcd | [] [] [] | + wcd-man | [] | + wdiff | [] [] [] [] | + wget | [] [] [] | + wyslij-po | [] [] | + xboard | [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] | + +----------------------------------------------+ + sv sw ta te tg th tr uk ur vi wa wo zh_CN + 106 1 4 3 0 13 51 115 1 125 7 1 100 + + zh_HK zh_TW + +-------------+ + a2ps | | 30 + aegis | | 9 + anubis | | 19 + aspell | | 29 + bash | [] | 23 + bfd | | 11 + binutils | | 12 + bison | [] | 18 + bison-runtime | [] | 38 + buzztrax | | 9 + ccd2cue | | 10 + ccide | | 17 + cflow | | 16 + clisp | | 10 + coreutils | | 18 + cpio | | 20 + cppi | | 17 + cpplib | [] | 19 + cryptsetup | | 14 + datamash | | 11 + denemo | | 5 + dfarc | | 17 + dialog | [] | 42 + dico | | 6 + diffutils | | 22 + dink | | 10 + direvent | | 11 + doodle | | 12 + dos2unix | [] | 18 + dos2unix-man | | 9 + e2fsprogs | | 15 + enscript | | 21 + exif | | 27 + fetchmail | | 19 + findutils | | 29 + flex | [] | 19 + freedink | | 24 + fusionforge | | 3 + gas | | 5 + gawk | | 13 + gcal | | 8 + gcc | | 2 + gdbm | | 10 + gettext-examples | [] [] | 40 + gettext-runtime | [] [] | 35 + gettext-tools | [] | 24 + gjay | | 9 + glunarclock | [] | 27 + gnubiff | | 9 + gnubik | | 19 + gnucash | () | 6 + gnuchess | | 11 + gnulib | | 23 + gnunet | | 1 + gnunet-gtk | | 1 + gold | | 7 + gphoto2 | [] | 19 + gprof | | 21 + gramadoir | | 14 + grep | [] | 31 + grub | | 21 + gsasl | [] | 19 + gss | | 17 + gst-plugins-bad | | 21 + gst-plugins-base | | 27 + gst-plugins-good | | 32 + gst-plugins-ugly | | 34 + gstreamer | [] | 32 + gtick | | 19 + gtkam | | 24 + gtkspell | [] [] | 48 + guix | | 2 + guix-packages | | 0 + gutenprint | | 15 + hello | [] | 30 + help2man | | 18 + help2man-texi | | 5 + hylafax | | 5 + idutils | | 14 + iso_15924 | [] | 23 + iso_3166 | [] [] | 58 + iso_3166_2 | | 9 + iso_4217 | [] [] | 28 + iso_639 | [] [] | 46 + iso_639_3 | | 10 + iso_639_5 | | 2 + jwhois | [] | 20 + kbd | | 17 + klavaro | | 30 + ld | [] | 15 + leafpad | [] | 39 + libc | [] | 24 + libexif | | 10 + libextractor | | 5 + libgnutls | | 13 + libgphoto2 | | 10 + libgphoto2_port | [] | 19 + libgsasl | | 18 + libiconv | [] | 29 + libidn | | 17 + liferea | | 29 + lilypond | | 11 + lordsawar | | 3 + lprng | | 3 + lynx | | 19 + m4 | [] | 22 + mailfromd | | 4 + mailutils | | 6 + make | | 19 + man-db | | 15 + man-db-manpages | | 10 + midi-instruments | [] | 43 + minicom | [] | 17 + mkisofs | | 13 + myserver | | 9 + nano | [] | 30 + opcodes | | 12 + parted | [] | 23 + pies | | 4 + pnmixer | | 9 + popt | [] | 36 + procps-ng | | 5 + procps-ng-man | | 4 + psmisc | [] | 22 + pspp | | 13 + pushover | | 6 + pwdutils | | 8 + pyspread | | 6 + radius | | 9 + recode | | 31 + recutils | | 10 + rpm | [] | 13 + rush | | 10 + sarg | | 4 + sed | [] | 35 + sharutils | | 13 + shishi | | 7 + skribilo | | 7 + solfege | | 21 + solfege-manual | | 9 + spotmachine | | 11 + sudo | | 26 + sudoers | | 22 + sysstat | | 23 + tar | [] | 30 + texinfo | | 17 + texinfo_document | | 13 + tigervnc | | 14 + tin | [] | 7 + tin-man | | 1 + tracgoogleappsa... | [] | 22 + trader | | 12 + util-linux | | 13 + ve | | 14 + vice | | 1 + vmm | | 3 + vorbis-tools | | 13 + wastesedge | | 3 + wcd | | 8 + wcd-man | | 3 + wdiff | [] | 23 + wget | | 21 + wyslij-po | | 14 + xboard | | 10 + xdg-user-dirs | [] [] | 68 + xkeyboard-config | [] | 28 + +-------------+ + 89 teams zh_HK zh_TW + 166 domains 7 42 2809 + + 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 Jun 2014 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://translationproject.org/extra/matrix.html'. + +1.5 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 Lesser 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 +'coordinator@translationproject.org' to make the '.pot' files available +to the translation teams. diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..c3a12eb --- /dev/null +++ b/COPYING @@ -0,0 +1,493 @@ +Copyright (C) 2011 Red Hat, Inc. All Rights Reserved. + +The goa source code is licensed to you under the GNU Library General +Public License. Either version 2 of the License, or (at your option) +any later version. Each file is marked with copyright and licensing +headers. The LGPLv2 license is included below. + +-- BEGIN LGPLv2+ License --- + + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307 USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +-- END LGPLv2+ License --- diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..6e3abc9 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,36 @@ + +NULL = + +SUBDIRS = data + +if BUILD_BACKEND +if BUILD_TELEPATHY +SUBDIRS += telepathy-account-widgets +endif +endif + +SUBDIRS += src + +if BUILD_BACKEND +SUBDIRS += doc +endif + +SUBDIRS += po + +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +DISTCHECK_CONFIGURE_FLAGS=--enable-introspection --enable-gtk-doc --enable-telepathy + +MAINTAINERCLEANFILES = \ + $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ + $(srcdir)/INSTALL \ + $(srcdir)/config.h.in \ + $(srcdir)/gtk-doc.make \ + `find "$(srcdir)" -type f -name Makefile.in -print` \ + $(NULL) + +GITIGNOREFILES = \ + m4 \ + $(NULL) + +-include $(top_srcdir)/git.mk diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..5601812 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,925 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_BACKEND_TRUE@@BUILD_TELEPATHY_TRUE@am__append_1 = telepathy-account-widgets +@BUILD_BACKEND_TRUE@am__append_2 = doc +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = data telepathy-account-widgets src doc po +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + ABOUT-NLS COPYING NEWS README compile config.guess \ + config.rpath config.sub install-sh ltmain.sh missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz +DIST_TARGETS = dist-xz +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +SUBDIRS = data $(am__append_1) src $(am__append_2) po +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} +DISTCHECK_CONFIGURE_FLAGS = --enable-introspection --enable-gtk-doc --enable-telepathy +MAINTAINERCLEANFILES = \ + $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ + $(srcdir)/INSTALL \ + $(srcdir)/config.h.in \ + $(srcdir)/gtk-doc.make \ + `find "$(srcdir)" -type f -name Makefile.in -print` \ + $(NULL) + +GITIGNOREFILES = \ + m4 \ + $(NULL) + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..2a35d2b --- /dev/null +++ b/NEWS @@ -0,0 +1,1676 @@ +Overview of changes in 3.28.2 +============================= + +* Bugs fixed: + !19 google: Only request the email field when getting the user's identity + + +Overview of changes in 3.28.1 +============================= + +* Bugs fixed: + 796095 alarm: Refresh Kerberos tickets after a suspended system is resumed + +* Updated translations: + Simplified Chinese + Czech + + +Overview of changes in 3.28.0 +============================= + +* Updated translations: + Traditional Chinese (Taiwan) + French + Greek + Italian + Russian + Swedish + + +Overview of changes in 3.27.92 +============================== + +* Updated translations: + Catalan + Croatian + Czech + Danish + Dutch + English (British) + Friulian + Gaelic (Scottish) + Galician + German + Hungarian + Kazakh + Korean + Latvian + Lithuanian + Polish + Portuguese (Brazilian) + Romanian + Serbian + Serbian Latin + Slovak + Slovenian + Spanish + Turkish + Vietnamese + + +Overview of changes in 3.27.3 +============================= + +* Bugs fixed: + 764157 Port to GTask from GSimpleAsyncResult + 781005 Cookies from previous session are not cleared from the web view + 787250 Migrate from Intltool to Gettext + 789187 Fedora Kerberos account can't be added + +* Updated translations: + Croatian + Czech + Friulian + German + Hebrew + Icelandic + Italian + Indonesian + Lithuanian + Nepali + Norwegian bokmål + Polish + Portuguese (Brazilian) + Russian + Serbian + Slovak + Slovenian + Spanish + Turkish + + +Overview of changes in 3.27.1 +============================= + +* Bugs fixed: + 788769 build: Make the Git submodules work with Web proxies + +* Updated translations: + Catalan (Valencian) + Croatian + + +Overview of changes in 3.26.1 +============================= + +* Updated translations: + Bulgarian + Persian + Russian + + +Overview of changes in 3.26.0 +============================= + +* Updated translations: + Basque + Danish + Greek + Italian + Swedish + Vietnamese + + +Overview of changes in 3.25.92 +============================== + +* Updated translations: + Belarusian + Traditional Chinese (Taiwan) + Danish + Dutch + Finnish + Friulian + French + German + Korean + Latvian + Polish + Portuguese (Brazilian) + Serbian + + +Overview of changes in 3.25.90 +============================== + +* Bugs fixed: + 758716 Accept-Language header not being set since the WebKit2 port + 785649 build: Fix build when no Kerberos libraries are available + 785726 facebook: Make it work with Graph API > 2.3 + 786007 flickr: Doesn't show the permissions page after logging in + +* Updated translations: + Croatian + Czech + Galician + German + Kazakh + Malayalam + Nepali + Slovenian + Spanish + Turkish + + +Overview of changes in 3.25.4 +============================= + +* Bugs fixed: + 784512 pocket: CRITICALs from ensure_credentials_sync + 784513 build: Fix Kerberos never being automatically enabled + 784944 Clean up public headers and remove unused code paths + +* Updated translations: + Belarusian + Catalan + Friulian + Hungarian + Indonesian + Lithuanian + Slovak + Spanish + + +Overview of changes in 3.25.3 +============================= + +* Support Todoist (780138) + +* Telepathy is disabled by default + +* Bugs fixed: + 686131 kerberos: Prevent cryptic error string from leaking into the UI + 760440 backend: Use constructor to setup gettext + 770542 build: Fix running autogen.sh outside $srcdir + 772305 Advertise non-STARTTLS support for GMail + 779368 provider: Use an info bar for accounts needing attention + +* Updated translations: + Belarusian + Croatian + Esperanto + Friulian + German + Greek + Hebrew + Indonesian + Kazakh + Norwegian bokmål + Serbian + Slovenian + Spanish + Turkish + Vietnamese + + +Overview of changes in 3.24.0 +============================= + +* Updated translations: + Czech + Danish + Finnish + French + Friulian + Galician + German + Hungarian + Indonesian + Italian + Kazakh + Korean + Latvian + Lithuanian + Polish + Portuguese (Brazilian) + Russian + Slovak + Swedish + Turkish + Ukrainian + + +Overview of changes in 3.23.92 +============================== + +* Bugs fixed: + 778416 live: Re-title it as "Microsoft" + 778417 Capitalize "Account" in the dialog's title + 779548 Don't leak the name_owner and result in + dbus_proxy_reload_properties_sync + +* Updated translations: + Croatian + Danish + Icelandic + Italian + Kazakh + Korean + Lithuanian + + +Overview of changes in 3.23.91 +============================== + +* Bugs fixed: + 778353 Disconnect all signal handlers from the GtkDialog once add_account is + done + 778779 Improve the spacing between UI elements + +* Updated translations: + Basque + Traditional Chinese (Taiwan) + Finnish + French + Galician + Hungarian + Portuguese (Brazilian) + Serbian + Swedish + Ukrainian + + +Overview of changes in 3.23.90 +============================== + +* Bugs fixed: + 772205 Use double quotes instead of single quotes in translatable strings + +* Updated translations: + Belarusian + Catalan + Czech + Danish + Friulian + German + Indonesian + Kazakh + Norwegian bokmål + Polish + Russian + Slovak + Spanish + + +Overview of changes in 3.23.4 +============================= + +* Bugs fixed: + 764157 Port to GTask from GSimpleAsyncResult + 765121 Memory leak in goa-daemon + 768515 Add support for Nextcloud + 776871 Broken error handling in on_got_identity_for_sign_out + 776897 The invocation is leaked when handling ExchangeSecretKeys and SignOut + 776906 Miscellaneous fixes and improvements to add_temporary_account + +* Updated translations: + Czech + Hungarian + Kazakh + Norwegian bokmål + Spanish + + +Overview of changes in 3.23.3 +============================= + +* New API key for Google + +* Bugs fixed: + 738315 IRC: network selection appears broken + 769267 kerberos: Specify an icon + 774176 Don't depend needlessly on X11 + 774205 oauth, oauth2: Remove borders from widgets + +* Updated translations: + Basque + Simplified Chinese + Traditional Chinese (Taiwan) + Croatian + Dutch + English (British) + Italian + Norwegian bokmål + Ukrainian + + +Overview of changes in 3.21.92 +============================== + +* Experimental account templates support (771366) + +* Updated translations: + Bulgarian + Danish + Finnish + Galician + Gaelic (Scottish) + Greek + Hebrew + Kazakh + Korean + Latvian + Lithuanian + Persian + Russian + Swedish + Thai + Turkish + Vietnamese + + +Overview of changes in 3.21.91 +============================== + +* Bugs fixed: + 770610 daemon: Clean-up the memory management of our GKeyFile instances + +* Updated translations: + French + Friulian + Hungarian + Polish + Serbian + Slovenian + + +Overview of changes in 3.21.90 +============================== + +* Bugs fixed: + 688041 daemon: Ensure temporary accounts are really removed from the keyring + 755386 pocket: Support logging in with a Firefox account + 756431 identity: Don't leak the GoaObject from find_object_with_principal + 764157 Port to GTask from GSimpleAsyncResult + 768808 identity: Silence -Wincompatible-pointer-types + 769213 Let goa_provider_show_account have more control over the UI + +* Updated translations: + Czech + Friulian + German + Gujarati + Hebrew + Hungarian + Indonesian + Lithuanian + Portuguese (Brazilian) + Spanish + Slovak + + +Overview of changes in 3.21.4 +============================= + +* Bugs fixed: + 756431 identity: Don't leak the invocation when handling SignIn + 764157 Port to GTask from GSimpleAsyncResult + 766733 kerberos, telepathy: Stopping goa-daemon removes account or expires + credentials + 767914 Offer a simple mechanism to introspect the available providers and + services + 768808 identity: Clean up the credential cache and don't keep trying to sign + in if we encounter a failure + 768845 kerberos: Don't leak the GSimpleAsyncResult and object_path when + signing in + +* Updated translations: + Indonesian + Polish + Slovak + Vietnamese + + +Overview of changes in 3.21.3 +============================= + +* Bugs fixed: + 688041 Don't let temporary accounts accumulate in accounts.conf and the + keyring + 760991 lastfm: Don't forget to update the ret variable + 762155 Skip EnsureCredentials if the account is disabled + 764157 Port to GTask from GSimpleAsyncResult + 764283 Misc usability improvements to the imap-smtp provider + 765994 org.gnome.OnlineAccounts.Account:IsTemporary is not being set + 766733 kerberos, telepathy: Stopping goa-daemon removes account or expires + credentials + 767299 Adding a Telepathy account is racy due after adding a headerbar + +* Updated translations: + Catalan + German + Indonesian + Occitan + Portuguese + Portuguese (Brazilian) + Spanish + Turkish + + +Overview of changes in 3.21.1 +============================= + +* Bugs fixed: + 756495 identity: fix renewal requests for kernel keyring based tickets + 764157 Port to GTask from GSimpleAsyncResult + 765455 goa-daemon --help shows translated characters as question marks on + some locales + +* Updated translations: + Basque + Bulgarian + Simplified Chinese + Friulian + Gaelic (Scottish) + Hungarian + Japanese + Persian + Portuguese + + +Overview of changes in 3.20.0 +============================= + +* Updated translations: + Danish + Friulian + Italian + Serbian + Serbian Latin + Turkish + + +Overview of changes in 3.19.92.1 +================================ + +* Bugs fixed: + 763078 Documentation missing from tarball + + +Overview of changes in 3.19.92 +============================== + +* Bugs fixed: + 756495 identity: don't ignore almost all renewal requests + 761262 alarm, daemon: Avoid using %m for errors + 761510 Factorize common code in GoaBackend::build_object() + 762097 httpclient: Don't hard-code "Connection: close" in the request headers + 762155 kerberos: Do not use goa_object_peek_* in threaded code + 762548 Fix the dialogs' dimensions with newer GTK+ + 763078 build: Update autogen.sh from GNOME recommendation + +* Updated translations: + Catalan + Finnish + Galician + Greek + Hebrew + Korean + Latvian + Lithuanian + Occitan + Russian + Serbian + Slovenian + Swedish + Ukrainian + + +Overview of changes in 3.19.90 +============================== + +* Bugs fixed: + 755316 backends: Factorize common code in credential handling + 756498 kerberos: Fail early on ticket request when ticketing disabled + 760991 imap-smtp: EnsureCredentials returns TRUE even when smtp-password + can't be found and an error is set + 761188 Use primary@REALM as the presentation identity for temporary accounts + 761510 Factorize common code in GoaBackend::build_object() + +* Updated translations: + Bulgarian + Traditional Chinese (Taiwan) + Czech + French + Friulian + German + Hungarian + Kazakh + Polish + Portuguese (Brazilian) + Slovak + Slovenian + Spanish + Vietnamese + + +Overview of changes in 3.19.4 +============================= + +* Bugs fixed: + 758475 Examples fail if backend is disabled + 759571 build: Add Vala bindings + 759828 google: Do not support chat when telepathy is disabled + 760189 Don't require Telepathy when built with --disable-telepathy + +* Updated translations: + Aragonese + German + Portuguese (Brazilian) + Russian + Vietnamese + + +Overview of changes in 3.19.3 +============================= + +* Bugs fixed: + 751524 Network changes cause authentication token timeouts + 758361 Crash in mail_client_check_auth_run_cb when goa_mail_auth_run fails + +* Updated translations: + Slovenian + Swedish + + +Overview of changes in 3.19.2 +============================= + +* Bugs fixed: + 755316 imap-smtp: Fix typo in error message + 757952 org.gnome.Identity.service.in is missing from tarball + 758361 smtp-auth: Plug leaks in error handling + +* Updated translations: + Simplified Chinese + Gaelic (Scottish) + Hebrew + Hungarian + Lithuanian + Portuguese + Spanish + Turkish + + +Overview of changes in 3.19.1 +============================= + +* Bugs fixed: + 752736 owncloud: Doesn't work with non-standard ports + 754142 icons: Shiny new Google icons + 755168 owncloud, exchange: Sanitize HTTP error messages + 755315 lastfm: Leak fixes + 756394 identity: Allow multiple simultaneous sign-in requests from one sender + 756494 identity: Don't ever nullify identifier + 756759 provider, telepathy: Small leak fixes + +* Updated translations: + Basque + Czech + Danish + Finnish + Galician + German + Greek + Hungarian + Indonesian + Italian + Japanese + Kazakh + Korean + Norwegian bokmål + Persian + Portuguese + Portuguese (Brazilian) + Russian + Serbian + Serbian Latin + Swedish + Turkish + Vietnamese + + +Overview of changes in 3.17.92 +============================== + +* Support Last.fm (728621) + +* Bugs fixed: + 751128 build: Make it possible to disable the backend build + 754142 icons: Provide HiDpi variants + 754840 examples: Print out keys for all the accounts + +* Updated translations: + Traditional Chinese (Taiwan) + Finnish + French + Persian + Polish + Slovak + Spanish + Swedish + + +Overview of changes in 3.17.91 +============================== + +* Add org.gnome.OnlineAccounts.Music D-Bus interface (705969) + +* Bugs fixed: + 693578 Refresh credentials at startup and network changes + 750392 Avoid NULL pointer dereference when EWS autodiscover fails + 750479 process_config_entries uses a non-existent variable + 750897 Fix parallel installation failure + 752270 configure script uses pkg-config without checking for it + 752939 Several leak fixes + 752941 Add generic GoaProvider::show_account() implementation + 752964 google: Stop identifying ourselves as Android + +* Updated translations: + Aragonese + Catalan + Traditional Chinese (Taiwan) + French + Friulian + Dutch + Galician + German + Greek + Hebrew + Hungarian + Indonesian + Italian + Kazakh + Korean + Lithuanian + Norwegian bokmål + Polish + Portuguese + Portuguese (Brazilian) + Romanian + Russian + Slovak + Slovenian + Spanish + Swedish + Turkish + + +Overview of changes in 3.17.2 +============================= + +* Foursquare is enabled by default + +* Remove Yahoo! support (721061) + +* Bugs fixed: + 710764 live: "Microsoft Account" is the common parlance nowadays and new icons + 739593 Separate identity service off into its own process + 739594 kerberos: Support refreshing smartcard authenticated kerberos tickets + 742680 Port to WebKit2 + 744165 telepathy: "use this account for external calls" checkbox is not + working + 745004 facebook: Restore a wrongly deleted string + 746540 Add some spacing between the service name and its switch + +* Updated translations: + Arabic + Bosnian + Bulgarian + Simplified Chinese + Czech + Danish + Finnish + German + Greek + Hebrew + Indonesian + Italian + Kazakh + Korean + Norwegian bokmål + Occitan + Polish + Portuguese (Brazilian) + Serbian + Slovak + Slovenian + Swedish + Tajik + Thai + Turkish + Ukrainian + + +Overview of changes in 3.15.90 +============================== + +* Remove Facebook chat support (745004) + +* Bugs fixed: + 742651 ewsclient, httpclient: Stop using deprecated SoupSessionAsync + +* Updated translations: + Aragonese + Simplified Chinese + Traditional Chinese (Taiwan) + French + Friulian + Galician + Greek + Hebrew + Icelandic + Japanese + Kazakh + Slovak + Swedish + Turkish + + +Overview of changes in 3.15.4 +============================= + +* Bugs fixed: + 743044 ewsclient: httpclient: Don't crash or deadlock during clean up + +* Updated translations: + Basque + Czech + Hungarian + Indonesian + Lithuanian + Norwegian bokmål + Portuguese (Brazilian) + Russian + Slovenian + Swedish + + +Overview of changes in 3.15.3 +============================= + +* Support Foursquare (729837) + +* Updated translations: + Basque + German + Hungarian + Spanish + Turkish + + +Overview of changes in 3.15.2 +============================= + +* Bugs fixed: + 739009 google: Add support for files + 739168 facebook: Add fallback to get presentation id + 739590 Memory leak fixes + 739593 kerberos: A pile of fixes + +* Updated translations: + Aragonese + Czech + Esperanto + Greek + Hebrew + Russian + Vietnamese + + +Overview of changes in 3.15.1 +============================= + +* Support locked accounts (737656) + +* Bugs fixed: + 736749 oauth2: Silence uninit_use_in_call from Coverity + 737549 Fix a life-cycle issue that affected gnome-initial-setup + 737721 daemon: Allow account ID to be provided for new accounts + +* Updated translations: + Bulgarian + Kazakh + Norwegian bokmål + Portuguese + Russian + Spanish + + +Overview of changes in 3.14.0 +============================= + +* Updated translations: + Bengali (India) + Simplified Chinese + Danish + Hindi + Japanese + Kannada + Nepali + Serbian + Ukrainian + + +Overview of changes in 3.13.92 +============================== + +* Bugs fixed: + 736407 media-server: Use a hyphen instead of underscore in provider type + +* Updated translations: + Finnish + Galician + German + Hungarian + Italian + Korean + Latvian + Marathi + Nepali + Polish + Punjabi + Slovak + Slovenian + Swedish + Tamil + + +Overview of changes in 3.13.91 +============================== + +* Updated translations: + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Czech + French + Gujarati + Hebrew + Indonesian + Japanese + Oriya + Persian + Telugu + + +Overview of changes in 3.13.90 +============================== + +* Updated translations: + Assamese + Basque + Catalan + Catalan (Valencian) + Dutch + Friulian + Gaelic (Scottish) + Greek + Lithuanian + Norwegian bokmål + Portuguese (Brazilian) + Russian + Spanish + Thai + Turkish + + +Overview of changes in 3.13.3 +============================= + +* Add a whitelist for providers (729173) + +* Support media servers (730890) + +* Bugs fixed: + 693689 google: Add support for tasks + 699553 Crash in ews_client_autodiscover_data_free() + 707299 alarm: Don't translate private classes + 729638 Adjust the UI so that we can use a header bar in the dialog + 730041 ewsclient: Autodiscover XML can contain multiple Protocol elements + 731531 daemon: Don't try to remove non-existent GSource + 731614 webview: Ensure that mouse and keyboard events reach the inspector + +* Updated translations: + Traditional Chinese (Taiwan) + German + Hungarian + Norwegian bokmål + Slovenian + Swedish + Turkish + + +Overview of changes in 3.13.2 +============================= + +* Bugs fixed: + 728877 google: Add support for photos + 729389 build: Remove deprecated call to GNOME_COMMON_INIT + 729638 Adjust the UI so that we can use a header bar in the dialog + 729718 Dramatically simplify alarm logic to stop timerfd leaks + 729740 facebook: Add support for maps + 729864 goaalarm: small memory leak fix + 729865 identity: fix another principal leak + 729874 identity: don't leak default credentials cache + 730810 flickr: Use SSL + +* Updated translations: + Catalan (Valencian) + Czech + Indonesian + Lithuanian + Norwegian bokmål + Portuguese (Brazilian) + Spanish + + +Overview of changes in 3.13.1 +============================= + +* Remove Twitter support (660273, 721061) + +* Remove Windows Live chat support (728787) + +* Bugs fixed: + 726353 kerberos: Leaking credentials, cursors, principals and GDateTime + 726570 build: Use Makefile.introspection + 726609 Popup is too small to display Facebook authorization + 727896 IdentityService crashes on startup if KerberosIdentityManager could + not be created + 727957 Broken check for non-empty strings + +* Updated translations: + Basque + Belarusian + Catalan + Simplified Chinese + Traditional Chinese (Taiwan) + Danish + Finnish + French + Friulian + German + Greek + Hungarian + Italian + Japanese + Khmer + Korean + Latvian + Norwegian bokmål + Polish + Portuguese + Punjabi + Russian + Serbian + Slovak + Slovenian + + +Overview of changes in 3.11.90 +============================== + +* Pocket is enabled by default (724300) + +* Bugs fixed: + 723926 Replace GOA logging with GLib logging + +* Updated translations: + Aragonese + Assamese + Traditional Chinese (Taiwan) + Czech + Galician + Gaelic (Scottish) + Hebrew + Indonesian + Lithuanian + Portuguese (Brazilian) + Spanish + Ukrainian + + +Overview of changes in 3.11.5 +============================= + +* Bugs fixed: + 689609 Remove unused GoaSpinnerButton widget + 720262 imap-smtp: Export the SASL mechanism used for SMTP + 723370 google: Add support for printers + +* Updated translations: + Aragonese + Assamese + Simplified Chinese + Czech + Dutch + Finnish + Gaelic (Scottish) + Galician + Hebrew + Kannada + Lithuanian + Norwegian bokmål + Portuguese (Brazilian) + Spanish + Tajik + + +Overview of changes in 3.11.4 +============================= + +* Support Pocket (704564) + +* Bugs fixed: + 720632 Replace deprecated GtkStock + +* Updated translations: + Aragonese + Simplified Chinese + Galician + German + Greek + Indonesian + Kannada + Lithuanian + Norwegian bokmål + Portuguese (Brazilian) + Slovenian + Spanish + Tajik + + +Overview of changes in 3.11.3 +============================= + +* Bugs fixed: + 701500 facebook: Add support for photos + 712535 telepathy: Documentation fixes + 712843 main: Be quieter during normal bootup + 720446 google: Request profile scope + +* Updated translations: + Simplified Chinese + Dutch + Norwegian bokmål + Tamil + + +Overview of changes in 3.11.2 +============================= + +* Support kernel keyring based Kerberos accounts (707402, 710116) + +* Bugs fixed: + 699491 kerberos: Don't crash when an identity could not be looked up + 704564 webview: Add some debug code to show an inspector + 705395 goaidentity: Fix deadlock in goaalarm on_cancelled + 706614 build: use enable_telepathy variable + 706664 Fix and simplify the use of GtkGrid inside show_account + 706803 Disable GSettings in tp-aw + 706894 Cannot set the avatar for Telepathy accounts + 706987 Ignore MSN Telepathy account type + 707005 telepathy: The en_US spelling is "initialize", not "initialise" + 707006 Update to new webkitgtk-2.1.90 API + 707435 Miscellaneous string fixes + 707916 google: Add the OAuth2 scope for CardDAV + 708399 telepathy: Choose better icons + 708462 Adding Google or Facebook accounts adds a second Jabber account + 708832 oauth2: Propagate the error if the dialog is dismissed during refresh + 708975 kerberos: still consuming 100% CPU + 709103 identity: don't queue two temporary accounts for one identity + 709393 live: Add support for mail + 709570 oauth2: Don't parse the DOM to detect access_denied + 709953 goaalarm: add locks when setting up timers + 709955 kerberos: correctly show sign in errors when mistyping password + 710363 Adapt to changes in the redirect URI used by Facebook + 711472 live: Does not update MailEnabled + 711572 kerberos: don't crash if keyring credentials disappear + 711696 kerberos: Leaking timerfds when we fall back to polling the ccache + +* Updated translations: + Afrikaans + Arabic + Assamese + Basque + Belarusian + Catalan + Catalan (Valencian) + Simplified Chinese + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Czech + Danish + Dutch + English (British) + Esperanto + Estonian + Finnish + French + Galician + German + Greek + Hebrew + Hungarian + Indonesian + Irish + Italian + Japanese + Kazakh + Korean + Latvian + Lithuanian + Norwegian bokmål + Persian + Polish + Portuguese + Portuguese (Brazilian) + Punjabi + Russian + Serbian + Slovak + Slovenian + Spanish + Tajik + Turkish + Ukrainian + + +Overview of changes in 3.9.90 +============================= + +* Support Telepathy accounts (696267) + +* Bugs fixed: + 705366 build: Fix build failure due to missing IT_PROG_INTLTOOL + 706074 owncloud: Add support for documents + +* Updated translations: + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Irish + Tajik + + +Overview of changes in 3.9.5 +============================ + +* Fixed license notices to be consistently LGPLv2+ + +* Updated translations: + Portuguese (Brazilian) + + +Overview of changes in 3.9.4 +============================ + +* Flickr is enabled by default + +* Bugs fixed: + 678151 flickr: Add icons + 688364 google: Don't offer a PasswordBased interface + 692176 build: Fix include paths + 692177 build: Add missing include path + 701500 facebook: Add support for photos + 702263 smtp-auth-plain: Handle multiline SMTP greetings + 702514 icons: Update the Twitter logo + +* Updated translations: + Galician + Indonesian + Norwegian bokmål + Slovak + Vietnamese + + +Overview of changes in 3.9.2 +============================ + +* Updated translations: + Hebrew + Japanese + Norwegian bokmål + Slovenian + Tajik + + +Overview of changes in 3.9.1 +============================ + +* IMAP/SMTP is enabled by default + +* Bugs fixed: + 657761 Don't use technical jargon in user visible strings + 660882 Drop the notification from EnsureCredentials + 669040 twitter: When verifying credentials, don't fetch the last status + 694313 Add a way to pass custom info to the provider when creating the account + 695065 build: Tell git.mk to ignore generated files + 695074 build: Fix `make distcheck` by updating the icon cache on uninstall too + 695106 Do not send the credentials before notifying the user of an invalid + SSL certificate (CVE-2013-1799) + 695118 Avoid gtk_dialog_run() in goa_oauth2_provider_add_account() + 695355 imap-smtp: Can not do STARTTLS connections + 695559 Add translator comment to explain what None refers to + 695768 provider: Silence warnings when setting :preseed-data to NULL + 695802 imap-auth-login: Escape backslashes in passwords + 695886 Categorize providers by supported features + 695888 owncloud: Make sure Uri always ends in a trailing slash + 696085 owncloud: Can't add more than one ownCloud account + 698178 Use SoupProxyResolverDefault with GoaEwsClient and GoaHttpClient + 698203 Socket times out with gnutls3 and some TLS servers + +* Updated translations: + Aragonese + Assamese + Belarussian + Catalan + Catalan (Valencian) + Simplified Chinese + Czech + Danish + Dutch + English (British) + Esperanto + Estonian + Finnish + French + German + Greek + Gujarati + Hebrew + Hindi + Hungarian + Italian + Kannada + Korean + Latvian + Malayalam + Norwegian bokmål + Persian + Polish + Portuguese + Portuguese (Brazilian) + Russian + Slovak + Slovenian + Tamil + Ukranian + Vietnamese + + +Overview of changes in 3.7.90 +============================= + +* Support IMAP/SMTP (692736) + +* Bugs fixed: + 692936 oauth2: Support getting refresh_token from uri fragment + 693273 identity: Fix implicit declaration of + goa_kerberos_identity_inquiry_new + +* Updated translations: + Catalan + Catalan (Valencian) + Galician + German + Latvian + Lithuanian + Malayalam + Polish + Punjabi + Serbian + Spanish + Uyghur + + +Overview of changes in 3.7.5 +============================ + +* ownCloud is enabled by default + +* Bugs fixed: + 689645 provider: Desensitize and turn off the switches if there is an error + 692251 identity: Define GoaKerberosIdentity only in one header + 692276 Don't assume that secret_password_clear_sync() returns FALSE on error + 692284 Add --no-color option to suppress color output + 692285 Use g_unix_signal_add() instead of custom implementation + 692286 Better debugging messages for keyring interaction + 692768 Support notification filtering + 693214 Guard against invalid SSL certificates (CVE-2013-0240) + +* Updated translations: + Assamese + Basque + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Friulian + German + Hebrew + Norwegian bokmål + Polish + Portuguese + Serbian + Slovak + Slovenian + Spanish + Uyghur + + +Overview of changes in 3.7.4 +============================ + +* Bugs fixed: + 689770 google: Make the configure options match OAuth 2.0 lingo + 691122 webview: don't set the OSD style class on the whole overlay + 691142 identity: Don't leak the GoaKerberosIdentity + +* Updated translations: + Arabic + Aragonese + Assamese + Bulgarian + Simplified Chinese + Galician + Hebrew + Hungarian + Kazakh + Lithuanian + Norwegian bokmål + Persian + Polish + Portuguese (Brazilian) + Russian + Slovak + Slovenian + Spanish + Uyghur + + +Overview of changes in 3.7.3 +============================ + +* Bugs fixed: + 689516 build: Fix passing arguments to configure from autogen.sh + 689609 Spinners are white and don't spin + 689642 Make the cancel buttons work + +* Updated translations: + Assamese + Belarusian + Esperanto + Estonian + Galician + Kannada + Malayalam + Norwegian bokmål + Slovenian + Spanish + Tamil + + +Overview of changes in 3.7.2 +============================ + +* Add provider groups + +* Bugs fixed: + 660573 icons: Shiny new ownCloud icons + 686519 oauth2: Don't add redirect_uri when grant_type=refresh_token + 687578 Allow OAuth / OAuth2 based providers to offer password based + authentication + 687632 No notifications for PasswordBased providers for invalid passwords + 687930 .gitignore is autogenerated, remove it from version control + 687962 Kerberos: forgets the account + 688018 Kerberos: could not ensure credentials for account : + Timeout was reached + +* Updated translations: + Bengali (India) + Czech + Estonian + German + Greek + Gujarati + Indonesian + Japanese + Polish + Russian + Slovak + Slovenian + + +Overview of changes in 3.7.1 +============================ + +* Implement OAuth 2.0 for Google (661065) + +* Support ownCloud (660573) + +* Support Flickr (678151) + +* Bugs fixed: + 660932 Silently fails to renew credentials if refresh_account fails + 681729 Prefill the login / email field when refreshing + 683692 Ensure that all dialogs have consistent and meaningful strings + 683911 Set up mnemonic relations + 683968 Adapt to Windows Live UI changes + 685876 Kerberos: set up primary properly + 686410 Don't enroll the machine + 686415 Kerberos: use realmd directly + 686416 Kerberos: discover and validate realm before use + 686561 Add version definitions + +* Updated translations: + Arabic + Assamese + Belarusian + Bulgarian + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Catalan + Catalan (Valencian) + Czech + Danish + English (British) + Finnish + French + Galician + German + Greek + Gujarati + Hebrew + Hindi + Hungarian + Indonesian + Italian + Japanese + Kannada + Korean + Latvian + Lithuanian + Malayalam + Marathi + Norwegian bokmål + Persian + Polish + Portuguese + Portuguese (Brazilian) + Punjabi + Russian + Serbian + Slovak + Slovenian + Spanish + Telugu + Thai + Ukranian + Vietnamese + + +Overview of changes in 3.5.90 +============================= + +* Support enterprise logins via Kerberos (679253) + +* Drop the Microsoft Exchange and Windows Live icons, and use a transparent + PNG as the fallback + +* Add a goa_client_lookup_by_id API for looking up an account using its ID + +Bugs fixed: + 681720 ewsclient: Fix breakage because of libxml2 API breakage + +* Updated translations: + Assamese + Galician + German + Japanese + Marathi + + +Overview of changes in 3.5.5 +============================ + +* Bugs fixed: + 680622 introspection: Add exported package information to GIR + +* Updated translations: + Arabic + Chinese + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Galician + Greek + Gujarati + Hebrew + Hindi + Hungarian + Norwegian bokmål + Persian + Russian + Serbian + Slovenian + Spanish + Telugu + + +Overview of changes in 3.5.4 +============================ + +* Ported to libsecret + +* Bugs fixed: + 670298 Don't display an error message if user denied access + 678907 provider: Put the providers in an order that we recommend + +* Updated translations: + Arabic + Belarusian + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Galician + German + Greek + Hebrew + Lithuanian + Norwegian bokmål + Slovenian + Spanish + + +Overview of changes in 3.5.3 +============================ + +* Facebook is enabled by default + +* Microsoft Exchange is enabled by default + +* The AddAccount method exposed by org.gnome.OnlineAccounts.Manager now + requires a new argument of type a{sv}. This is an API break, but no one + should be calling it apart from the backend code implementing + goa_provider_add_account. This was necessary to ensure that the credentials + are stored in the keyring within the AddAccount method to avoid a race + between the "account-added" signal being emitted and the credentials being + actually store. + +* Methods to directly interact with the keyring are no longer exported as + public API. These were only meant to be used from within the backend and the + daemon and were never meant to be used from applications. + +* Updated translations: + Greek + + +Overview of changes in 3.5.2 +============================ + +* Bugs fixed: + 659435 New Google authentication page doesn't fit + 671980 Restrict the spinner's size and show a heading text + 675930 Facebook web authentication window too small + 676659 Remove custom CSS styling + +* Updated translations: + Belarusian + Dutch + Galician + Hebrew + Indonesian + Punjabi + Slovenian + Spanish + + +Overview of changes in 3.5.1 +============================ + +* Support Microsoft Exchange using EWS + +* Add API to enable/disable Mail, Calendar, Contacts, Chat & Documents + +* Add org.gnome.OnlineAccounts.PasswordBased D-Bus interface + +* Request read and write access to a user's files stored in Skydrive + +* Improve the design of the Online Accounts panel in System Settings + +* Bugs fixed: + 654168 Remove the credentials from the keyring when an account is + removed + 669042 examples: Add some basic examples + 669625 Replace GtkTable with GtkGrid + 672510 Provide better feedback to the user during authentication + 672785 daemon: Proper application name for notification + 673959 oauthprovider: Provide better error messages for request token + failures + 674165 Handle failures to store credentials in the keyring in a + better way + 674292 goabackend: Fix build failure with LD_FLAGS="-Wl,-z,defs" + +* Updated translations: + Catalan + Catalan (Valencian) + Traditional Chinese (Hong Kong) + Traditional Chinese (Taiwan) + Galician + German + Hebrew + Italian + Japanese + Norwegian bokmål + Slovak + Slovenian + Spanish + Telugu + Vietnamese diff --git a/README b/README new file mode 100644 index 0000000..6973165 --- /dev/null +++ b/README @@ -0,0 +1,92 @@ +GNOME Online Accounts - Single sign-on framework for GNOME +========================================================== + + +Facebook +-------- + +OAuth 2.0: +https://developers.facebook.com/docs/authentication/ +https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow +https://developers.facebook.com/docs/reference/dialogs/oauth/ +https://developers.facebook.com/tools/explorer/ + +Scopes: https://developers.facebook.com/docs/authentication/permissions/ + +Notes: +The client-side flow returns the access_token and expires_in in the URI's +fragment, and does not provide a refresh_token. However, if the user denied +access then the error is returned in the URI's query. The URIs look like this: + - ?#access_token=... + - ?error=access_denied...#_=_ + + +Flickr +------ + +OAuth 1.0: http://www.flickr.com/services/api/auth.oauth.html + + +Foursquare +---------- + +OAuth 2.0: https://developer.foursquare.com/overview/auth + + +Google +------ + +OAuth 2.0: +https://developers.google.com/accounts/docs/OAuth2InstalledApp +https://developers.google.com/oauthplayground/ + +Scopes: +https://developers.google.com/accounts/docs/OAuth2Login +https://developers.google.com/google-apps/calendar/auth +https://developers.google.com/google-apps/contacts/v3/ +https://developers.google.com/drive/web/scopes +https://developers.google.com/google-apps/gmail/oauth_protocol +https://developers.google.com/picasa-web/docs/2.0/developers_guide_protocol +https://developers.google.com/talk/jep_extensions/oauth +https://developers.google.com/cloud-print/docs/devguide + +Sometimes the documentation does not mention the OAuth2 scopes that need to be +specified in the source code. In such cases, the following can be useful: +https://developers.google.com/oauthplayground/ +https://discovery-check.appspot.com/ + +Notes: +We are allowed to embed the client_secret in the source code. See +https://developers.google.com/accounts/docs/OAuth2InstalledApp#overview + + +Pocket +------ + +OAuth 2.0 variant: +https://getpocket.com/developer/docs/authentication + +Authenticating with a Firefox Account is not documented. These slides are +useful: +http://www.slideshare.net/KuoE0/pocket-authentication-with-oauth-on-firefox-os + + +Todoist +------- + +OAuth 2.0: https://developer.todoist.com/ + + +Windows Live +------------ + +OAuth 2.0: http://msdn.microsoft.com/en-us/library/live/hh243647.aspx + +Scopes: +http://msdn.microsoft.com/en-us/library/live/hh243646.aspx +http://blogs.office.com/b/microsoft-outlook/archive/2013/09/12/outlook-com-now-with-imap.aspx + +Notes: +We do not need the client_secret because we are marked as a desktop or mobile +application, and we use https://login.live.com/oauth20_desktop.srf as the +redirect_uri. diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..f5c6ad2 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1220 @@ +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_append_compile_flags.m4]) +m4_include([m4/ax_append_flag.m4]) +m4_include([m4/ax_append_link_flags.m4]) +m4_include([m4/ax_check_compile_flag.m4]) +m4_include([m4/ax_check_enable_debug.m4]) +m4_include([m4/ax_check_link_flag.m4]) +m4_include([m4/ax_compiler_flags.m4]) +m4_include([m4/ax_compiler_flags_cflags.m4]) +m4_include([m4/ax_compiler_flags_gir.m4]) +m4_include([m4/ax_compiler_flags_ldflags.m4]) +m4_include([m4/ax_config_dir.m4]) +m4_include([m4/ax_is_release.m4]) +m4_include([m4/ax_require_defined.m4]) +m4_include([m4/gettext.m4]) +m4_include([m4/gsettings.m4]) +m4_include([m4/gtk-doc.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/intlmacosx.m4]) +m4_include([m4/introspection.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/pkg.m4]) +m4_include([m4/po.m4]) +m4_include([m4/progtest.m4]) +m4_include([m4/vapigen.m4]) diff --git a/compile b/compile new file mode 100755 index 0000000..de0005d --- /dev/null +++ b/compile @@ -0,0 +1,348 @@ +#!/bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/config.guess b/config.guess new file mode 100755 index 0000000..717b228 --- /dev/null +++ b/config.guess @@ -0,0 +1,1476 @@ +#!/bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2017 Free Software Foundation, Inc. + +timestamp='2017-08-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2017 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; + *:Redox:*:*) + echo ${UNAME_MACHINE}-unknown-redox + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = hppa2.0w ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +cat >&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..ec017bf --- /dev/null +++ b/config.h.in @@ -0,0 +1,236 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define to use the GCR API */ +#undef GCR_API_SUBJECT_TO_CHANGE + +/* gettext domain */ +#undef GETTEXT_PACKAGE + +/* Enable goabackend library */ +#undef GOA_BACKEND_ENABLED + +/* Enable Microsoft Exchange data provider */ +#undef GOA_EXCHANGE_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_EXCHANGE_NAME + +/* Facebook OAuth 2.0 client id */ +#undef GOA_FACEBOOK_CLIENT_ID + +/* Enable Facebook data provider */ +#undef GOA_FACEBOOK_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_FACEBOOK_NAME + +/* Flickr OAuth 1.0 consumer key */ +#undef GOA_FLICKR_CONSUMER_KEY + +/* Flickr OAuth 1.0 consumer secret */ +#undef GOA_FLICKR_CONSUMER_SECRET + +/* Enable Flickr data provider */ +#undef GOA_FLICKR_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_FLICKR_NAME + +/* Foursquare OAuth 2.0 client id */ +#undef GOA_FOURSQUARE_CLIENT_ID + +/* Enable Foursquare data provider */ +#undef GOA_FOURSQUARE_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_FOURSQUARE_NAME + +/* Google OAuth 2.0 client id */ +#undef GOA_GOOGLE_CLIENT_ID + +/* Google OAuth 2.0 client secret */ +#undef GOA_GOOGLE_CLIENT_SECRET + +/* Enable Google data provider */ +#undef GOA_GOOGLE_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_GOOGLE_NAME + +/* Enable IMAP/SMTP data provider */ +#undef GOA_IMAP_SMTP_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_IMAP_SMTP_NAME + +/* Enable a WebKitWebInspector for the embedded web view */ +#undef GOA_INSPECTOR_ENABLED + +/* Enable Enterprise Identity data provider */ +#undef GOA_KERBEROS_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_KERBEROS_NAME + +/* LastFM client id */ +#undef GOA_LASTFM_CLIENT_ID + +/* LastFM client secret */ +#undef GOA_LASTFM_CLIENT_SECRET + +/* Enable LastFM data provider */ +#undef GOA_LASTFM_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_LASTFM_NAME + +/* Define to the GOA major version */ +#undef GOA_MAJOR_VERSION + +/* Enable Media Server provider */ +#undef GOA_MEDIA_SERVER_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_MEDIA_SERVER_NAME + +/* Define to the GOA micro version */ +#undef GOA_MICRO_VERSION + +/* Define to the GOA minor version */ +#undef GOA_MINOR_VERSION + +/* Enable ownCloud data provider */ +#undef GOA_OWNCLOUD_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_OWNCLOUD_NAME + +/* Pocket OAuth 2.0 client id */ +#undef GOA_POCKET_CLIENT_ID + +/* Enable Pocket data provider */ +#undef GOA_POCKET_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_POCKET_NAME + +/* Enable Telepathy data provider */ +#undef GOA_TELEPATHY_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_TELEPATHY_NAME + +/* Path to the template file */ +#undef GOA_TEMPLATE_FILE + +/* Todoist OAuth 2.0 client id */ +#undef GOA_TODOIST_CLIENT_ID + +/* Todoist client secret */ +#undef GOA_TODOIST_CLIENT_SECRET + +/* Enable Todoist data provider */ +#undef GOA_TODOIST_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_TODOIST_NAME + +/* Windows Live OAuth 2.0 client id */ +#undef GOA_WINDOWS_LIVE_CLIENT_ID + +/* Enable Windows Live data provider */ +#undef GOA_WINDOWS_LIVE_ENABLED + +/* ProviderType and extension point name */ +#undef GOA_WINDOWS_LIVE_NAME + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* have timerfd support */ +#undef HAVE_TIMERFD + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define if debugging is disabled */ +#undef NDEBUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* have timerfd support */ +#undef TFD_TIMER_CANCEL_ON_SET + +/* Version number of package */ +#undef VERSION diff --git a/config.rpath b/config.rpath new file mode 100755 index 0000000..98183ff --- /dev/null +++ b/config.rpath @@ -0,0 +1,684 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2016 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + newsos6) + ;; + *nto* | *qnx*) + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + haiku*) + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then + : + else + ld_shlibs=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.[01]*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + *nto* | *qnx*) + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd[23].*) + library_names_spec='$libname$shrext$versuffix' + ;; + freebsd* | dragonfly*) + library_names_spec='$libname$shrext' + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + haiku*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + *nto* | *qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + tpf*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2017 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + wasm32) + basic_machine=wasm32-unknown + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + pru-*) + os=-elf + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure new file mode 100755 index 0000000..c67f388 --- /dev/null +++ b/configure @@ -0,0 +1,22538 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for GNOME Online Accounts 3.28.2. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='GNOME Online Accounts' +PACKAGE_TARNAME='gnome-online-accounts' +PACKAGE_VERSION='3.28.2' +PACKAGE_STRING='GNOME Online Accounts 3.28.2' +PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts' +PACKAGE_URL='https://wiki.gnome.org/Projects/GnomeOnlineAccounts' + +ac_unique_file="src" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +enable_option_checking=no +gt_needs= +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +GETTEXT_PACKAGE +BUILD_KERBEROS_FALSE +BUILD_KERBEROS_TRUE +KRB5_LIBS +KRB5_CFLAGS +GCR_LIBS +GCR_CFLAGS +KRB5_CONFIG +TPAW_LIBS +TPAW_CFLAGS +TP_LIBS +TP_CFLAGS +LIBXML_LIBS +LIBXML_CFLAGS +SECRET_LIBS +SECRET_CFLAGS +REST_LIBS +REST_CFLAGS +JSON_GLIB_LIBS +JSON_GLIB_CFLAGS +LIBSOUP_LIBS +LIBSOUP_CFLAGS +WEBKIT_GTK_LIBS +WEBKIT_GTK_CFLAGS +GTK_LIBS +GTK_CFLAGS +BUILD_BACKEND_FALSE +BUILD_BACKEND_TRUE +BUILD_TELEPATHY_FALSE +BUILD_TELEPATHY_TRUE +ENABLE_VAPIGEN_FALSE +ENABLE_VAPIGEN_TRUE +VAPIGEN_MAKEFILE +VAPIGEN_VAPIDIR +VAPIGEN +HAVE_INTROSPECTION_FALSE +HAVE_INTROSPECTION_TRUE +INTROSPECTION_MAKEFILE +INTROSPECTION_LIBS +INTROSPECTION_CFLAGS +INTROSPECTION_TYPELIBDIR +INTROSPECTION_GIRDIR +INTROSPECTION_GENERATE +INTROSPECTION_COMPILER +INTROSPECTION_SCANNER +GLIB_LIBS +GLIB_CFLAGS +GTK_DOC_USE_REBASE_FALSE +GTK_DOC_USE_REBASE_TRUE +GTK_DOC_USE_LIBTOOL_FALSE +GTK_DOC_USE_LIBTOOL_TRUE +GTK_DOC_BUILD_PDF_FALSE +GTK_DOC_BUILD_PDF_TRUE +GTK_DOC_BUILD_HTML_FALSE +GTK_DOC_BUILD_HTML_TRUE +ENABLE_GTK_DOC_FALSE +ENABLE_GTK_DOC_TRUE +HAVE_GTK_DOC_FALSE +HAVE_GTK_DOC_TRUE +GTKDOC_DEPS_LIBS +GTKDOC_DEPS_CFLAGS +HTML_DIR +GTKDOC_MKPDF +GTKDOC_REBASE +GTKDOC_CHECK_PATH +GTKDOC_CHECK +XSLTPROC +ENABLE_DOCUMENTATION_FALSE +ENABLE_DOCUMENTATION_TRUE +GSETTINGS_RULES +GLIB_COMPILE_SCHEMAS +gsettingsschemadir +GSETTINGS_DISABLE_SCHEMAS_COMPILE +GOA_BACKEND_LT_VERSION +GOA_LT_VERSION +GOA_MICRO_VERSION +GOA_MINOR_VERSION +GOA_MAJOR_VERSION +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +EGREP +GREP +CPP +WARN_SCANNERFLAGS +WARN_LDFLAGS +WARN_CFLAGS +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +SED +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_maintainer_mode +enable_debug +enable_compile_warnings +enable_Werror +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_schemas_compile +enable_documentation +with_html_dir +enable_gtk_doc +enable_gtk_doc_html +enable_gtk_doc_pdf +enable_introspection +enable_vala +enable_telepathy +enable_backend +enable_inspector +with_template_file +enable_exchange +enable_flickr +with_flickr_consumer_key +with_flickr_consumer_secret +enable_foursquare +with_foursquare_client_id +enable_google +with_google_client_id +with_google_client_secret +enable_imap_smtp +enable_media_server +enable_owncloud +enable_facebook +with_facebook_client_id +enable_todoist +with_todoist_client_id +with_todoist_client_secret +enable_windows_live +with_windows_live_client_id +enable_pocket +with_pocket_client_id +enable_kerberos +enable_lastfm +with_lastfm_client_id +with_lastfm_client_secret +enable_nls +enable_rpath +with_libiconv_prefix +with_libintl_prefix +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +LT_SYS_LIBRARY_PATH +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +GTKDOC_DEPS_CFLAGS +GTKDOC_DEPS_LIBS +GLIB_CFLAGS +GLIB_LIBS +GTK_CFLAGS +GTK_LIBS +WEBKIT_GTK_CFLAGS +WEBKIT_GTK_LIBS +LIBSOUP_CFLAGS +LIBSOUP_LIBS +JSON_GLIB_CFLAGS +JSON_GLIB_LIBS +REST_CFLAGS +REST_LIBS +SECRET_CFLAGS +SECRET_LIBS +LIBXML_CFLAGS +LIBXML_LIBS +TP_CFLAGS +TP_LIBS +TPAW_CFLAGS +TPAW_LIBS +GCR_CFLAGS +GCR_LIBS' +ac_subdirs_all='telepathy-account-widgets' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures GNOME Online Accounts 3.28.2 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root + [DATAROOTDIR/doc/gnome-online-accounts] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of GNOME Online Accounts 3.28.2:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-debug=[yes/info/profile/no] + compile with debugging + --enable-compile-warnings=[no/yes/error] + Enable compiler warnings and errors + --disable-Werror Unconditionally make all compiler warnings non-fatal + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-schemas-compile + Disable regeneration of gschemas.compiled on install + --enable-documentation enable man pages and HTML + --enable-gtk-doc use gtk-doc to build documentation [[default=no]] + --enable-gtk-doc-html build documentation in html format [[default=yes]] + --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] + --enable-introspection=[no/auto/yes] + Enable introspection for this build + --enable-vala=[no/auto/yes] + build Vala bindings [default=auto] + --enable-telepathy Enable Telepathy IM provider + --enable-backend Enable goabackend library + --enable-inspector Enable a WebKitWebInspector for the embedded web + view + --enable-exchange Enable Microsoft Exchange provider + --enable-flickr Enable Flickr provider + --enable-foursquare Enable Foursquare provider + --enable-google Enable Google provider + --enable-imap-smtp Enable IMAP/SMTP provider + --enable-media-server Enable Media Server provider + --enable-owncloud Enable ownCloud provider + --enable-facebook Enable Facebook provider + --enable-todoist Enable Todoist provider + --enable-windows-live Enable Windows Live provider + --enable-pocket Enable Pocket provider + --enable-kerberos Enable kerberos support + --enable-lastfm Enable Last.fm provider + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-html-dir=PATH path to installed docs + --with-template-file Path to the template file + --with-flickr-consumer-key + Flickr OAuth 1.0 consumer key + --with-flickr-consumer-secret + Flickr OAuth 1.0 consumer secret + --with-foursquare-client-id + Foursquare OAuth 2.0 client id + --with-google-client-id Google OAuth 2.0 client id + --with-google-client-secret + Google OAuth 2.0 client secret + --with-facebook-client-id + Facebook OAuth 2.0 client id + --with-todoist-client-id + Todoist OAuth 2.0 client id + --with-todoist-client-secret + Todoist client secret + --with-windows-live-client-id + Windows Live OAuth 2.0 client id + --with-pocket-client-id Pocket OAuth 2.0 client id + --with-lastfm-client-id Last.fm client id + --with-lastfm-client-secret + Last.fm client secret + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + GTKDOC_DEPS_CFLAGS + C compiler flags for GTKDOC_DEPS, overriding pkg-config + GTKDOC_DEPS_LIBS + linker flags for GTKDOC_DEPS, overriding pkg-config + GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config + GLIB_LIBS linker flags for GLIB, overriding pkg-config + GTK_CFLAGS C compiler flags for GTK, overriding pkg-config + GTK_LIBS linker flags for GTK, overriding pkg-config + WEBKIT_GTK_CFLAGS + C compiler flags for WEBKIT_GTK, overriding pkg-config + WEBKIT_GTK_LIBS + linker flags for WEBKIT_GTK, overriding pkg-config + LIBSOUP_CFLAGS + C compiler flags for LIBSOUP, overriding pkg-config + LIBSOUP_LIBS + linker flags for LIBSOUP, overriding pkg-config + JSON_GLIB_CFLAGS + C compiler flags for JSON_GLIB, overriding pkg-config + JSON_GLIB_LIBS + linker flags for JSON_GLIB, overriding pkg-config + REST_CFLAGS C compiler flags for REST, overriding pkg-config + REST_LIBS linker flags for REST, overriding pkg-config + SECRET_CFLAGS + C compiler flags for SECRET, overriding pkg-config + SECRET_LIBS linker flags for SECRET, overriding pkg-config + LIBXML_CFLAGS + C compiler flags for LIBXML, overriding pkg-config + LIBXML_LIBS linker flags for LIBXML, overriding pkg-config + TP_CFLAGS C compiler flags for TP, overriding pkg-config + TP_LIBS linker flags for TP, overriding pkg-config + TPAW_CFLAGS C compiler flags for TPAW, overriding pkg-config + TPAW_LIBS linker flags for TPAW, overriding pkg-config + GCR_CFLAGS C compiler flags for GCR, overriding pkg-config + GCR_LIBS linker flags for GCR, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +GNOME Online Accounts home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +GNOME Online Accounts configure 3.28.2 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by GNOME Online Accounts $as_me 3.28.2, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +gt_needs="$gt_needs " +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +am__api_version='1.15' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='gnome-online-accounts' + VERSION='3.28.2' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test $am_uid -le $am_max_uid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test $am_gid -le $am_max_gid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + + + +ac_config_headers="$ac_config_headers config.h" + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + + + + + + # $is_release = (.git directory does not exist) + if test -d ${srcdir}/.git; then : + ax_is_release=no +else + ax_is_release=yes +fi + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debugging" >&5 +$as_echo_n "checking whether to enable debugging... " >&6; } + + ax_enable_debug_default=yes + ax_enable_debug_is_release=$ax_is_release + + # If this is a release, override the default. + if test "$ax_enable_debug_is_release" = "yes"; then : + ax_enable_debug_default="no" +fi + + + + + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; +else + enable_debug=$ax_enable_debug_default +fi + + + # empty mean debug yes + if test "x$enable_debug" = "x"; then : + enable_debug="yes" +fi + + # case of debug + case $enable_debug in #( + yes) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + CFLAGS="${CFLAGS} -g -O0" + CXXFLAGS="${CXXFLAGS} -g -O0" + FFLAGS="${FFLAGS} -g -O0" + FCFLAGS="${FCFLAGS} -g -O0" + OBJCFLAGS="${OBJCFLAGS} -g -O0" + ;; #( + info) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: info" >&5 +$as_echo "info" >&6; } + CFLAGS="${CFLAGS} -g" + CXXFLAGS="${CXXFLAGS} -g" + FFLAGS="${FFLAGS} -g" + FCFLAGS="${FCFLAGS} -g" + OBJCFLAGS="${OBJCFLAGS} -g" + ;; #( + profile) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: profile" >&5 +$as_echo "profile" >&6; } + CFLAGS="${CFLAGS} -g -pg" + CXXFLAGS="${CXXFLAGS} -g -pg" + FFLAGS="${FFLAGS} -g -pg" + FCFLAGS="${FCFLAGS} -g -pg" + OBJCFLAGS="${OBJCFLAGS} -g -pg" + LDFLAGS="${LDFLAGS} -pg" + ;; #( + *) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "x${CFLAGS+set}" != "xset"; then : + CFLAGS="" +fi + if test "x${CXXFLAGS+set}" != "xset"; then : + CXXFLAGS="" +fi + if test "x${FFLAGS+set}" != "xset"; then : + FFLAGS="" +fi + if test "x${FCFLAGS+set}" != "xset"; then : + FCFLAGS="" +fi + if test "x${OBJCFLAGS+set}" != "xset"; then : + OBJCFLAGS="" +fi + ;; +esac + + if test "x$enable_debug" = "xyes"; then : + +else + +$as_echo "#define NDEBUG /**/" >>confdefs.h + +fi + ax_enable_debug=$enable_debug + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + + + # C support is enabled by default. + + + # Only enable C++ support if AC_PROG_CXX is called. The redefinition of + # AC_PROG_CXX is so that a fatal error is emitted if this macro is called + # before AC_PROG_CXX, which would otherwise cause no C++ warnings to be + # checked. + + + + + # Default value for IS-RELEASE is $ax_is_release + ax_compiler_flags_is_release=$ax_is_release + + # Check whether --enable-compile-warnings was given. +if test "${enable_compile_warnings+set}" = set; then : + enableval=$enable_compile_warnings; +else + if test "$ax_compiler_flags_is_release" = "yes"; then : + enable_compile_warnings="yes" +else + enable_compile_warnings="error" +fi +fi + + # Check whether --enable-Werror was given. +if test "${enable_Werror+set}" = set; then : + enableval=$enable_Werror; +else + enable_Werror=maybe +fi + + + # Return the user's chosen warning level + if test "$enable_Werror" = "no" -a \ + "$enable_compile_warnings" = "error"; then : + + enable_compile_warnings="yes" + +fi + + ax_enable_compile_warnings=$enable_compile_warnings + + + + + + + + + + + # Variable names + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #ifndef __cplusplus + #error "no C++" + #endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_compiler_cxx=yes; +else + ax_compiler_cxx=no; +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_cflags variable, and + # Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unknown-warning-option" >&5 +$as_echo_n "checking whether C compiler accepts -Werror=unknown-warning-option... " >&6; } +if ${ax_cv_check_cflags___Werror_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Werror_unknown_warning_option=yes +else + ax_cv_check_cflags___Werror_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Werror_unknown_warning_option" >&5 +$as_echo "$ax_cv_check_cflags___Werror_unknown_warning_option" >&6; } +if test "x$ax_cv_check_cflags___Werror_unknown_warning_option" = xyes; then : + + ax_compiler_flags_test="-Werror=unknown-warning-option" + +else + + ax_compiler_flags_test="" + +fi + + + # Check that -Wno-suggest-attribute=format is supported + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wno-suggest-attribute=format" >&5 +$as_echo_n "checking whether C compiler accepts -Wno-suggest-attribute=format... " >&6; } +if ${ax_cv_check_cflags___Wno_suggest_attribute_format+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Wno-suggest-attribute=format" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Wno_suggest_attribute_format=yes +else + ax_cv_check_cflags___Wno_suggest_attribute_format=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wno_suggest_attribute_format" >&5 +$as_echo "$ax_cv_check_cflags___Wno_suggest_attribute_format" >&6; } +if test "x$ax_cv_check_cflags___Wno_suggest_attribute_format" = xyes; then : + + ax_compiler_no_suggest_attribute_flags="-Wno-suggest-attribute=format" + +else + + ax_compiler_no_suggest_attribute_flags="" + +fi + + + # Base flags + + + + +for flag in -fno-strict-aliasing ; do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + + if test "$ax_enable_compile_warnings" != "no"; then : + + # "yes" flags + + + + +for flag in -Wall -Wextra -Wundef -Wwrite-strings -Wpointer-arith -Wmissing-declarations -Wredundant-decls -Wno-unused-parameter -Wno-missing-field-initializers -Wformat=2 -Wcast-align -Wformat-nonliteral -Wformat-security -Wsign-compare -Wstrict-aliasing -Wshadow -Winline -Wpacked -Wmissing-format-attribute -Wmissing-noreturn -Winit-self -Wredundant-decls -Wmissing-include-dirs -Wunused-but-set-variable -Warray-bounds -Wreturn-type -Wswitch-enum -Wswitch-default -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wrestrict -Wnull-dereference -Wdouble-promotion ; do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + if test "$ax_compiler_cxx" = "no" ; then + # C-only flags. Warn in C++ + + + + +for flag in -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -Wdeclaration-after-statement -Wimplicit-function-declaration -Wold-style-definition -Wjump-misses-init ; do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + fi + +fi + if test "$ax_enable_compile_warnings" = "error"; then : + + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" -Werror "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains -Werror"; } >&5 + (: WARN_CFLAGS already contains -Werror) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " -Werror" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=-Werror + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + + + + + +for flag in $ax_compiler_no_suggest_attribute_flags ; do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +fi + + # In the flags below, when disabling specific flags, always add *both* + # -Wno-foo and -Wno-error=foo. This fixes the situation where (for example) + # we enable -Werror, disable a flag, and a build bot passes CFLAGS=-Wall, + # which effectively turns that flag back on again as an error. + for flag in $WARN_CFLAGS; do + case $flag in #( + -Wno-*=*) : + ;; #( + -Wno-*) : + + + + + +for flag in -Wno-error=$($as_echo $flag | $SED 's/^-Wno-//'); do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + ;; #( + *) : + ;; +esac + done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + # Substitute the variables + + + + + + + + + + + + + + # Variable names + + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_ldflags variable, + # and Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unknown-warning-option" >&5 +$as_echo_n "checking whether C compiler accepts -Werror=unknown-warning-option... " >&6; } +if ${ax_cv_check_cflags___Werror_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Werror_unknown_warning_option=yes +else + ax_cv_check_cflags___Werror_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Werror_unknown_warning_option" >&5 +$as_echo "$ax_cv_check_cflags___Werror_unknown_warning_option" >&6; } +if test "x$ax_cv_check_cflags___Werror_unknown_warning_option" = xyes; then : + + ax_compiler_flags_test="-Werror=unknown-warning-option" + +else + + ax_compiler_flags_test="" + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--as-needed" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--as-needed... " >&6; } +if ${ax_cv_check_ldflags___Wl___as_needed+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--as-needed" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl___as_needed=yes +else + ax_cv_check_ldflags___Wl___as_needed=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___as_needed" >&5 +$as_echo "$ax_cv_check_ldflags___Wl___as_needed" >&6; } +if test "x$ax_cv_check_ldflags___Wl___as_needed" = xyes; then : + + + + + +for flag in -Wl,--as-needed; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${AM_LDFLAGS+:} false; then : + + case " $AM_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5 + (: AM_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append AM_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + AM_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +else + : +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,relro" >&5 +$as_echo_n "checking whether the linker accepts -Wl,-z,relro... " >&6; } +if ${ax_cv_check_ldflags___Wl__z_relro+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-z,relro" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl__z_relro=yes +else + ax_cv_check_ldflags___Wl__z_relro=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_relro" >&5 +$as_echo "$ax_cv_check_ldflags___Wl__z_relro" >&6; } +if test "x$ax_cv_check_ldflags___Wl__z_relro" = xyes; then : + + + + + +for flag in -Wl,-z,relro; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${AM_LDFLAGS+:} false; then : + + case " $AM_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5 + (: AM_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append AM_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + AM_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +else + : +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,now" >&5 +$as_echo_n "checking whether the linker accepts -Wl,-z,now... " >&6; } +if ${ax_cv_check_ldflags___Wl__z_now+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-z,now" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl__z_now=yes +else + ax_cv_check_ldflags___Wl__z_now=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_now" >&5 +$as_echo "$ax_cv_check_ldflags___Wl__z_now" >&6; } +if test "x$ax_cv_check_ldflags___Wl__z_now" = xyes; then : + + + + + +for flag in -Wl,-z,now; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${AM_LDFLAGS+:} false; then : + + case " $AM_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5 + (: AM_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append AM_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + AM_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +else + : +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,noexecstack" >&5 +$as_echo_n "checking whether the linker accepts -Wl,-z,noexecstack... " >&6; } +if ${ax_cv_check_ldflags___Wl__z_noexecstack+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-z,noexecstack" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl__z_noexecstack=yes +else + ax_cv_check_ldflags___Wl__z_noexecstack=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_noexecstack" >&5 +$as_echo "$ax_cv_check_ldflags___Wl__z_noexecstack" >&6; } +if test "x$ax_cv_check_ldflags___Wl__z_noexecstack" = xyes; then : + + + + + +for flag in -Wl,-z,noexecstack; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${AM_LDFLAGS+:} false; then : + + case " $AM_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5 + (: AM_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append AM_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + AM_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5 + (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +else + : +fi + + # textonly, retpolineplt not yet + + # macOS and cygwin linker do not have --as-needed + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--no-as-needed" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--no-as-needed... " >&6; } +if ${ax_cv_check_ldflags___Wl___no_as_needed+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--no-as-needed" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl___no_as_needed=yes +else + ax_cv_check_ldflags___Wl___no_as_needed=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___no_as_needed" >&5 +$as_echo "$ax_cv_check_ldflags___Wl___no_as_needed" >&6; } +if test "x$ax_cv_check_ldflags___Wl___no_as_needed" = xyes; then : + + ax_compiler_flags_as_needed_option="-Wl,--no-as-needed" + +else + + ax_compiler_flags_as_needed_option="" + +fi + + + # macOS linker speaks with a different accent + ax_compiler_flags_fatal_warnings_option="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--fatal-warnings" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--fatal-warnings... " >&6; } +if ${ax_cv_check_ldflags___Wl___fatal_warnings+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--fatal-warnings" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl___fatal_warnings=yes +else + ax_cv_check_ldflags___Wl___fatal_warnings=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___fatal_warnings" >&5 +$as_echo "$ax_cv_check_ldflags___Wl___fatal_warnings" >&6; } +if test "x$ax_cv_check_ldflags___Wl___fatal_warnings" = xyes; then : + + ax_compiler_flags_fatal_warnings_option="-Wl,--fatal-warnings" + +else + : +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-fatal_warnings" >&5 +$as_echo_n "checking whether the linker accepts -Wl,-fatal_warnings... " >&6; } +if ${ax_cv_check_ldflags___Wl__fatal_warnings+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-fatal_warnings" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl__fatal_warnings=yes +else + ax_cv_check_ldflags___Wl__fatal_warnings=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__fatal_warnings" >&5 +$as_echo "$ax_cv_check_ldflags___Wl__fatal_warnings" >&6; } +if test "x$ax_cv_check_ldflags___Wl__fatal_warnings" = xyes; then : + + ax_compiler_flags_fatal_warnings_option="-Wl,-fatal_warnings" + +else + : +fi + + + # Base flags + + + + +for flag in $ax_compiler_flags_as_needed_option ; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_LDFLAGS+:} false; then : + + case " $WARN_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS already contains \$flag"; } >&5 + (: WARN_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + + if test "$ax_enable_compile_warnings" != "no"; then : + + # "yes" flags + + + + +for flag in ; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_LDFLAGS+:} false; then : + + case " $WARN_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS already contains \$flag"; } >&5 + (: WARN_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +fi + if test "$ax_enable_compile_warnings" = "error"; then : + + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + + + + +for flag in $ax_compiler_flags_fatal_warnings_option ; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_LDFLAGS+:} false; then : + + case " $WARN_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS already contains \$flag"; } >&5 + (: WARN_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +fi + + # Substitute the variables + + + + + + + # Variable names + + + # Base flags + +if ${WARN_SCANNERFLAGS+:} false; then : + + case " $WARN_SCANNERFLAGS " in #( + *" "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS already contains "; } >&5 + (: WARN_SCANNERFLAGS already contains ) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_SCANNERFLAGS " " + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_SCANNERFLAGS= + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + + if test "$ax_enable_compile_warnings" != "no"; then : + + # "yes" flags + +if ${WARN_SCANNERFLAGS+:} false; then : + + case " $WARN_SCANNERFLAGS " in #( + *" --warn-all "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS already contains --warn-all "; } >&5 + (: WARN_SCANNERFLAGS already contains --warn-all ) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_SCANNERFLAGS " --warn-all " + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_SCANNERFLAGS= --warn-all + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + +fi + if test "$ax_enable_compile_warnings" = "error"; then : + + # "error" flags + +if ${WARN_SCANNERFLAGS+:} false; then : + + case " $WARN_SCANNERFLAGS " in #( + *" --warn-error "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS already contains --warn-error "; } >&5 + (: WARN_SCANNERFLAGS already contains --warn-error ) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_SCANNERFLAGS " --warn-error " + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_SCANNERFLAGS= --warn-error + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + +fi + + # Substitute the variables + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if ${ac_cv_search_strerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror (); +int +main () +{ +return strerror (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cposix; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_strerror=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_strerror+:} false; then : + break +fi +done +if ${ac_cv_search_strerror+:} false; then : + +else + ac_cv_search_strerror=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 +$as_echo "$ac_cv_search_strerror" >&6; } +ac_res=$ac_cv_search_strerror +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +GOA_MAJOR_VERSION=3 +GOA_MINOR_VERSION=28 +GOA_MICRO_VERSION=2 + + + + + +# Before making a release, the LT_VERSION string should be modified. +# The string is of the form C:R:A. +# - If interfaces have been changed or added, but binary compatibility has +# been preserved, change to C+1:0:A+1 +# - If binary compatibility has been broken (eg removed or changed interfaces) +# change to C+1:0:0 +# - If the interface is the same as the previous version, change to C:R+1:A +GOA_LT_VERSION=0:0:0 +GOA_BACKEND_LT_VERSION=1:0:0 + + + + +$as_echo "#define GOA_MAJOR_VERSION 3" >>confdefs.h + + +$as_echo "#define GOA_MINOR_VERSION 28" >>confdefs.h + + +$as_echo "#define GOA_MICRO_VERSION 2" >>confdefs.h + + +# Initialization +# + + + + + + # Check whether --enable-schemas-compile was given. +if test "${enable_schemas_compile+set}" = set; then : + enableval=$enable_schemas_compile; case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;; + esac +fi + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + gsettingsschemadir=${datadir}/glib-2.0/schemas + + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + # Extract the first word of "glib-compile-schemas", so it can be a program name with args. +set dummy glib-compile-schemas; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GLIB_COMPILE_SCHEMAS in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS +if test -n "$GLIB_COMPILE_SCHEMAS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5 +$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5 + else + : + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p $(@D) && touch $@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" $^ > $@.tmp && mv $@.tmp $@ +endif +' + + + + + + + +# Check whether --enable-documentation was given. +if test "${enable_documentation+set}" = set; then : + enableval=$enable_documentation; +else + enable_documentation=yes +fi + + if test x$enable_documentation = xyes; then + ENABLE_DOCUMENTATION_TRUE= + ENABLE_DOCUMENTATION_FALSE='#' +else + ENABLE_DOCUMENTATION_TRUE='#' + ENABLE_DOCUMENTATION_FALSE= +fi + +if test x$enable_documentation = xyes; then + # Extract the first word of "xsltproc", so it can be a program name with args. +set dummy xsltproc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XSLTPROC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XSLTPROC in + [\\/]* | ?:[\\/]*) + ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XSLTPROC=$ac_cv_path_XSLTPROC +if test -n "$XSLTPROC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 +$as_echo "$XSLTPROC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test -z "$XSLTPROC"; then + as_fn_error $? "xsltproc is needed" "$LINENO" 5 + fi +fi + + + + + + + gtk_doc_requires="gtk-doc >= 1.3" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5 +$as_echo_n "checking for gtk-doc... " >&6; } + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + have_gtk_doc=yes +else + have_gtk_doc=no +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5 +$as_echo "$have_gtk_doc" >&6; } + + if test "$have_gtk_doc" = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found." >&5 +$as_echo "$as_me: WARNING: + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found." >&2;} + fi + + # Extract the first word of "gtkdoc-check", so it can be a program name with args. +set dummy gtkdoc-check; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_GTKDOC_CHECK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$GTKDOC_CHECK"; then + ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK +if test -n "$GTKDOC_CHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 +$as_echo "$GTKDOC_CHECK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "gtkdoc-check", so it can be a program name with args. +set dummy gtkdoc-check; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_CHECK_PATH in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH +if test -n "$GTKDOC_CHECK_PATH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5 +$as_echo "$GTKDOC_CHECK_PATH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + for ac_prog in gtkdoc-rebase +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GTKDOC_REBASE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_REBASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE +if test -n "$GTKDOC_REBASE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 +$as_echo "$GTKDOC_REBASE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$GTKDOC_REBASE" && break +done +test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" + + # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. +set dummy gtkdoc-mkpdf; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GTKDOC_MKPDF+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_MKPDF in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF +if test -n "$GTKDOC_MKPDF"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 +$as_echo "$GTKDOC_MKPDF" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + +# Check whether --with-html-dir was given. +if test "${with_html_dir+set}" = set; then : + withval=$with_html_dir; +else + with_html_dir='${datadir}/gtk-doc/html' +fi + + HTML_DIR="$with_html_dir" + + + # Check whether --enable-gtk-doc was given. +if test "${enable_gtk_doc+set}" = set; then : + enableval=$enable_gtk_doc; +else + enable_gtk_doc=no +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 +$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 +$as_echo "$enable_gtk_doc" >&6; } + + if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then + as_fn_error $? " + You must have $gtk_doc_requires installed to build documentation for + $PACKAGE_NAME. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5 + fi + + if test "x$PACKAGE_NAME" != "xglib"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5 +$as_echo_n "checking for GTKDOC_DEPS... " >&6; } + +if test -n "$GTKDOC_DEPS_CFLAGS"; then + pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GTKDOC_DEPS_LIBS"; then + pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1` + else + GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTKDOC_DEPS_PKG_ERRORS" >&5 + + : +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + : +else + GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS + GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + fi + + # Check whether --enable-gtk-doc-html was given. +if test "${enable_gtk_doc_html+set}" = set; then : + enableval=$enable_gtk_doc_html; +else + enable_gtk_doc_html=yes +fi + + # Check whether --enable-gtk-doc-pdf was given. +if test "${enable_gtk_doc_pdf+set}" = set; then : + enableval=$enable_gtk_doc_pdf; +else + enable_gtk_doc_pdf=no +fi + + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 + fi + + + if test x$have_gtk_doc = xyes; then + HAVE_GTK_DOC_TRUE= + HAVE_GTK_DOC_FALSE='#' +else + HAVE_GTK_DOC_TRUE='#' + HAVE_GTK_DOC_FALSE= +fi + + if test x$enable_gtk_doc = xyes; then + ENABLE_GTK_DOC_TRUE= + ENABLE_GTK_DOC_FALSE='#' +else + ENABLE_GTK_DOC_TRUE='#' + ENABLE_GTK_DOC_FALSE= +fi + + if test x$enable_gtk_doc_html = xyes; then + GTK_DOC_BUILD_HTML_TRUE= + GTK_DOC_BUILD_HTML_FALSE='#' +else + GTK_DOC_BUILD_HTML_TRUE='#' + GTK_DOC_BUILD_HTML_FALSE= +fi + + if test x$enable_gtk_doc_pdf = xyes; then + GTK_DOC_BUILD_PDF_TRUE= + GTK_DOC_BUILD_PDF_FALSE='#' +else + GTK_DOC_BUILD_PDF_TRUE='#' + GTK_DOC_BUILD_PDF_FALSE= +fi + + if test -n "$LIBTOOL"; then + GTK_DOC_USE_LIBTOOL_TRUE= + GTK_DOC_USE_LIBTOOL_FALSE='#' +else + GTK_DOC_USE_LIBTOOL_TRUE='#' + GTK_DOC_USE_LIBTOOL_FALSE= +fi + + if test -n "$GTKDOC_REBASE"; then + GTK_DOC_USE_REBASE_TRUE= + GTK_DOC_USE_REBASE_FALSE='#' +else + GTK_DOC_USE_REBASE_TRUE='#' + GTK_DOC_USE_REBASE_FALSE= +fi + + + +# Libraries +# + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 +$as_echo_n "checking for GLIB... " >&6; } + +if test -n "$GLIB_CFLAGS"; then + pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GLIB_LIBS"; then + pkg_cv_GLIB_LIBS="$GLIB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52" 2>&1` + else + GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GLIB_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52) were not met: + +$GLIB_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GLIB_CFLAGS +and GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GLIB_CFLAGS +and GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS + GLIB_LIBS=$pkg_cv_GLIB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + + + + + + # Check whether --enable-introspection was given. +if test "${enable_introspection+set}" = set; then : + enableval=$enable_introspection; +else + enable_introspection=auto +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5 +$as_echo_n "checking for gobject-introspection... " >&6; } + + case $enable_introspection in #( + no) : + found_introspection="no (disabled, use --enable-introspection to enable)" + ;; #( + yes) : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + : +else + as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5 +fi + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + found_introspection=yes +else + as_fn_error $? "You need to have gobject-introspection >= 0.6.2 installed to build GNOME Online Accounts" "$LINENO" 5 +fi + ;; #( + auto) : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + found_introspection=yes +else + found_introspection=no +fi + enable_introspection=$found_introspection + ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5 +$as_echo "$found_introspection" >&6; } + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + + + + + + + + + + if test "x$found_introspection" = "xyes"; then + HAVE_INTROSPECTION_TRUE= + HAVE_INTROSPECTION_FALSE='#' +else + HAVE_INTROSPECTION_TRUE='#' + HAVE_INTROSPECTION_FALSE= +fi + + + + + + if test "x" != "xyes"; then : + + + +fi + + # Check whether --enable-vala was given. +if test "${enable_vala+set}" = set; then : + enableval=$enable_vala; +else + + if test "x" = "x"; then : + + enable_vala=auto + +else + + enable_vala= + +fi + +fi + + + case $enable_vala in #( + no) : + enable_vala=no ;; #( + yes) : + + if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then : + + as_fn_error $? "Vala bindings require GObject Introspection" "$LINENO" 5 + +fi + ;; #( + auto) : + + if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then : + + enable_vala=no + +fi + ;; #( + *) : + + as_fn_error $? "Invalid argument passed to --enable-vala, should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + + if test "x" = "x"; then : + + vapigen_pkg_name=vapigen + +else + + vapigen_pkg_name=vapigen- + +fi + if test "x" = "x"; then : + + vapigen_pkg="$vapigen_pkg_name" + +else + + vapigen_pkg="$vapigen_pkg_name >= " + +fi + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$vapigen_pkg\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$vapigen_pkg") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + if test "$enable_vala" = "auto"; then : + + enable_vala=yes + +fi + +else + + case $enable_vala in #( + yes) : + + as_fn_error $? "$vapigen_pkg not found" "$LINENO" 5 + ;; #( + auto) : + + enable_vala=no + ;; #( + *) : + ;; +esac + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vapigen" >&5 +$as_echo_n "checking for vapigen... " >&6; } + + case $enable_vala in #( + yes) : + + VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen + if test "x" = "x"; then : + + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name` + +else + + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name` + +fi + ;; #( + *) : + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_vala" >&5 +$as_echo "$enable_vala" >&6; } + + + + + + if test "x$enable_vala" = "xyes"; then + ENABLE_VAPIGEN_TRUE= + ENABLE_VAPIGEN_FALSE='#' +else + ENABLE_VAPIGEN_TRUE='#' + ENABLE_VAPIGEN_FALSE= +fi + + + +# Telepathy + +$as_echo "#define GOA_TELEPATHY_NAME \"telepathy\"" >>confdefs.h + +# Check whether --enable-telepathy was given. +if test "${enable_telepathy+set}" = set; then : + enableval=$enable_telepathy; +else + enable_telepathy=no +fi + +if test "$enable_telepathy" != "no"; then + +$as_echo "#define GOA_TELEPATHY_ENABLED 1" >>confdefs.h + +fi + if test x$enable_telepathy != xno; then + BUILD_TELEPATHY_TRUE= + BUILD_TELEPATHY_FALSE='#' +else + BUILD_TELEPATHY_TRUE='#' + BUILD_TELEPATHY_FALSE= +fi + + +# Check whether --enable-backend was given. +if test "${enable_backend+set}" = set; then : + enableval=$enable_backend; +else + enable_backend=yes +fi + + if test x$enable_backend != xno; then + BUILD_BACKEND_TRUE= + BUILD_BACKEND_FALSE='#' +else + BUILD_BACKEND_TRUE='#' + BUILD_BACKEND_FALSE= +fi + + +if test "$enable_backend" != "no"; then + +$as_echo "#define GOA_BACKEND_ENABLED 1" >>confdefs.h + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 +$as_echo_n "checking for GTK... " >&6; } + +if test -n "$GTK_CFLAGS"; then + pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.19.12\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.19.12") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.19.12" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GTK_LIBS"; then + pkg_cv_GTK_LIBS="$GTK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.19.12\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.19.12") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.19.12" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.19.12" 2>&1` + else + GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.19.12" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTK_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (gtk+-3.0 >= 3.19.12) were not met: + +$GTK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GTK_CFLAGS +and GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + GTK_CFLAGS=$pkg_cv_GTK_CFLAGS + GTK_LIBS=$pkg_cv_GTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WEBKIT_GTK" >&5 +$as_echo_n "checking for WEBKIT_GTK... " >&6; } + +if test -n "$WEBKIT_GTK_CFLAGS"; then + pkg_cv_WEBKIT_GTK_CFLAGS="$WEBKIT_GTK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.0 >= 2.12.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.0 >= 2.12.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_WEBKIT_GTK_CFLAGS=`$PKG_CONFIG --cflags "webkit2gtk-4.0 >= 2.12.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$WEBKIT_GTK_LIBS"; then + pkg_cv_WEBKIT_GTK_LIBS="$WEBKIT_GTK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.0 >= 2.12.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.0 >= 2.12.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_WEBKIT_GTK_LIBS=`$PKG_CONFIG --libs "webkit2gtk-4.0 >= 2.12.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + WEBKIT_GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "webkit2gtk-4.0 >= 2.12.0" 2>&1` + else + WEBKIT_GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "webkit2gtk-4.0 >= 2.12.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$WEBKIT_GTK_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (webkit2gtk-4.0 >= 2.12.0) were not met: + +$WEBKIT_GTK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables WEBKIT_GTK_CFLAGS +and WEBKIT_GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables WEBKIT_GTK_CFLAGS +and WEBKIT_GTK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + WEBKIT_GTK_CFLAGS=$pkg_cv_WEBKIT_GTK_CFLAGS + WEBKIT_GTK_LIBS=$pkg_cv_WEBKIT_GTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSOUP" >&5 +$as_echo_n "checking for LIBSOUP... " >&6; } + +if test -n "$LIBSOUP_CFLAGS"; then + pkg_cv_LIBSOUP_CFLAGS="$LIBSOUP_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.42\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.42") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.4 >= 2.42" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBSOUP_LIBS"; then + pkg_cv_LIBSOUP_LIBS="$LIBSOUP_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.42\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.42") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.4 >= 2.42" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBSOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsoup-2.4 >= 2.42" 2>&1` + else + LIBSOUP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsoup-2.4 >= 2.42" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBSOUP_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libsoup-2.4 >= 2.42) were not met: + +$LIBSOUP_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBSOUP_CFLAGS +and LIBSOUP_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBSOUP_CFLAGS +and LIBSOUP_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + LIBSOUP_CFLAGS=$pkg_cv_LIBSOUP_CFLAGS + LIBSOUP_LIBS=$pkg_cv_LIBSOUP_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JSON_GLIB" >&5 +$as_echo_n "checking for JSON_GLIB... " >&6; } + +if test -n "$JSON_GLIB_CFLAGS"; then + pkg_cv_JSON_GLIB_CFLAGS="$JSON_GLIB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "json-glib-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_JSON_GLIB_CFLAGS=`$PKG_CONFIG --cflags "json-glib-1.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$JSON_GLIB_LIBS"; then + pkg_cv_JSON_GLIB_LIBS="$JSON_GLIB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "json-glib-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_JSON_GLIB_LIBS=`$PKG_CONFIG --libs "json-glib-1.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + JSON_GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "json-glib-1.0" 2>&1` + else + JSON_GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "json-glib-1.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$JSON_GLIB_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (json-glib-1.0) were not met: + +$JSON_GLIB_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables JSON_GLIB_CFLAGS +and JSON_GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables JSON_GLIB_CFLAGS +and JSON_GLIB_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + JSON_GLIB_CFLAGS=$pkg_cv_JSON_GLIB_CFLAGS + JSON_GLIB_LIBS=$pkg_cv_JSON_GLIB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for REST" >&5 +$as_echo_n "checking for REST... " >&6; } + +if test -n "$REST_CFLAGS"; then + pkg_cv_REST_CFLAGS="$REST_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"rest-0.7\""; } >&5 + ($PKG_CONFIG --exists --print-errors "rest-0.7") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_REST_CFLAGS=`$PKG_CONFIG --cflags "rest-0.7" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$REST_LIBS"; then + pkg_cv_REST_LIBS="$REST_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"rest-0.7\""; } >&5 + ($PKG_CONFIG --exists --print-errors "rest-0.7") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_REST_LIBS=`$PKG_CONFIG --libs "rest-0.7" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + REST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "rest-0.7" 2>&1` + else + REST_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "rest-0.7" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$REST_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (rest-0.7) were not met: + +$REST_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables REST_CFLAGS +and REST_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables REST_CFLAGS +and REST_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + REST_CFLAGS=$pkg_cv_REST_CFLAGS + REST_LIBS=$pkg_cv_REST_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SECRET" >&5 +$as_echo_n "checking for SECRET... " >&6; } + +if test -n "$SECRET_CFLAGS"; then + pkg_cv_SECRET_CFLAGS="$SECRET_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsecret-1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsecret-1") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SECRET_CFLAGS=`$PKG_CONFIG --cflags "libsecret-1" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$SECRET_LIBS"; then + pkg_cv_SECRET_LIBS="$SECRET_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsecret-1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsecret-1") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SECRET_LIBS=`$PKG_CONFIG --libs "libsecret-1" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SECRET_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsecret-1" 2>&1` + else + SECRET_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsecret-1" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SECRET_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libsecret-1) were not met: + +$SECRET_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables SECRET_CFLAGS +and SECRET_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables SECRET_CFLAGS +and SECRET_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + SECRET_CFLAGS=$pkg_cv_SECRET_CFLAGS + SECRET_LIBS=$pkg_cv_SECRET_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML" >&5 +$as_echo_n "checking for LIBXML... " >&6; } + +if test -n "$LIBXML_CFLAGS"; then + pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBXML_LIBS"; then + pkg_cv_LIBXML_LIBS="$LIBXML_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBXML_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0" 2>&1` + else + LIBXML_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBXML_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (libxml-2.0) were not met: + +$LIBXML_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBXML_CFLAGS +and LIBXML_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBXML_CFLAGS +and LIBXML_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS + LIBXML_LIBS=$pkg_cv_LIBXML_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + if test "$enable_telepathy" != "no"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TP" >&5 +$as_echo_n "checking for TP... " >&6; } + +if test -n "$TP_CFLAGS"; then + pkg_cv_TP_CFLAGS="$TP_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"telepathy-glib\""; } >&5 + ($PKG_CONFIG --exists --print-errors "telepathy-glib") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TP_CFLAGS=`$PKG_CONFIG --cflags "telepathy-glib" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$TP_LIBS"; then + pkg_cv_TP_LIBS="$TP_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"telepathy-glib\""; } >&5 + ($PKG_CONFIG --exists --print-errors "telepathy-glib") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TP_LIBS=`$PKG_CONFIG --libs "telepathy-glib" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + TP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "telepathy-glib" 2>&1` + else + TP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "telepathy-glib" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$TP_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (telepathy-glib) were not met: + +$TP_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables TP_CFLAGS +and TP_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables TP_CFLAGS +and TP_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + TP_CFLAGS=$pkg_cv_TP_CFLAGS + TP_LIBS=$pkg_cv_TP_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + # telepathy-account-widgets + prev_top_build_prefix=$ac_top_build_prefix + prev_ac_configure_args=$ac_configure_args + ac_configure_args="$ac_configure_args --with-cheese=no --disable-gudev --enable-ubuntu-online-accounts=no" + # install the data together with the rest of GOA's data + ac_configure_args="$ac_configure_args --with-pkgdatadir=${datadir}/gnome-online-accounts" + # GOA ships its icons directly in ${datadir}/icons (usually /usr/share/icons/) and not + # in its own data directory + ac_configure_args="$ac_configure_args --with-icondir=${datadir}/icons" + # Change the name of tpaw's .mo files to avoid conflicts with other packages using tp-aw + ac_configure_args="$ac_configure_args --with-gettext-package=gnome-online-accounts-tpaw" + # Disable the installation of the GSettings schema to avoid multiple components shipping + # the same file. See https://bugzilla.gnome.org/show_bug.cgi?id=706803 + ac_configure_args="$ac_configure_args --disable-schemas-compile --disable-settings" + + + + + + # Remove --cache-file and --srcdir arguments so they do not pile up. + ax_sub_configure_args= + ax_prev= + eval "set x $ac_configure_args" + shift + for ax_arg + do + if test -n "$ax_prev"; then + ax_prev= + continue + fi + case $ax_arg in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ax_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ + | --c=*) + ;; + --config-cache | -C) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ax_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ax_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + ;; + *) + case $ax_arg in + *\'*) ax_arg=`echo "$ax_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ax_sub_configure_args="$ax_sub_configure_args '$ax_arg'" ;; + esac + done + + # Always prepend --prefix to ensure using the same prefix + # in subdir configurations. + ax_arg="--prefix=$prefix" + case $ax_arg in + *\'*) ax_arg=`echo "$ax_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ax_sub_configure_args="'$ax_arg' $ax_sub_configure_args" + + # Pass --silent + if test "$silent" = yes; then + ax_sub_configure_args="--silent $ax_sub_configure_args" + fi + + ax_popdir=`pwd` + { $as_echo "$as_me:${as_lineno-$LINENO}: Configuring sources in telepathy-account-widgets" >&5 +$as_echo "$as_me: Configuring sources in telepathy-account-widgets" >&6;} + as_dir="telepathy-account-widgets"; as_fn_mkdir_p + ac_builddir=. + +case "telepathy-account-widgets" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "telepathy-account-widgets" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "telepathy-account-widgets" + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f "configure.gnu"; then + ax_sub_configure=$ac_srcdir/configure.gnu + elif test -f "$ac_srcdir/configure"; then + ax_sub_configure=$ac_srcdir/configure + elif test -f "$ac_srcdir/configure.in"; then + # This should be Cygnus configure. + ax_sub_configure=$ac_aux_dir/configure + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in telepathy-account-widgets" >&5 +$as_echo "$as_me: WARNING: no configuration information is in telepathy-account-widgets" >&2;} + ax_sub_configure= + fi + + # The recursion is here. + if test -n "$ax_sub_configure"; then + # Make the cache file name correct relative to the subdirectory. + case $cache_file in + [\\/]* | ?:[\\/]* ) ax_sub_cache_file=$cache_file ;; + *) # Relative name. + ax_sub_cache_file=$ac_top_build_prefix$cache_file ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ax_sub_configure $ax_sub_configure_args --cache-file=$ax_sub_cache_file --srcdir=$ac_srcdir" >&5 +$as_echo "$as_me: running $SHELL $ax_sub_configure $ax_sub_configure_args --cache-file=$ax_sub_cache_file --srcdir=$ac_srcdir" >&6;} + # The eval makes quoting arguments work. + eval "\$SHELL \"\$ax_sub_configure\" $ax_sub_configure_args \ + --cache-file=\"\$ax_sub_cache_file\" --srcdir=\"\$ax_srcdir\"" + fi + + cd "$ax_popdir" + { $as_echo "$as_me:${as_lineno-$LINENO}: Done configuring in telepathy-account-widgets" >&5 +$as_echo "$as_me: Done configuring in telepathy-account-widgets" >&6;} + + ac_top_build_prefix=$prev_top_build_prefix + ac_configure_args=$prev_ac_configure_args + + export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:"$ac_top_build_prefix"telepathy-account-widgets/ + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TPAW" >&5 +$as_echo_n "checking for TPAW... " >&6; } + +if test -n "$TPAW_CFLAGS"; then + pkg_cv_TPAW_CFLAGS="$TPAW_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"telepathy-account-widgets\""; } >&5 + ($PKG_CONFIG --exists --print-errors "telepathy-account-widgets") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TPAW_CFLAGS=`$PKG_CONFIG --cflags "telepathy-account-widgets" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$TPAW_LIBS"; then + pkg_cv_TPAW_LIBS="$TPAW_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"telepathy-account-widgets\""; } >&5 + ($PKG_CONFIG --exists --print-errors "telepathy-account-widgets") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TPAW_LIBS=`$PKG_CONFIG --libs "telepathy-account-widgets" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + TPAW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "telepathy-account-widgets" 2>&1` + else + TPAW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "telepathy-account-widgets" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$TPAW_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (telepathy-account-widgets) were not met: + +$TPAW_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables TPAW_CFLAGS +and TPAW_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables TPAW_CFLAGS +and TPAW_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + TPAW_CFLAGS=$pkg_cv_TPAW_CFLAGS + TPAW_LIBS=$pkg_cv_TPAW_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + fi +fi + +# Check whether --enable-inspector was given. +if test "${enable_inspector+set}" = set; then : + enableval=$enable_inspector; +else + enable_inspector=no +fi + +if test "$enable_inspector" != "no"; then + +$as_echo "#define GOA_INSPECTOR_ENABLED 1" >>confdefs.h + +fi + + +# Check whether --with-template-file was given. +if test "${with_template_file+set}" = set; then : + withval=$with_template_file; +fi + + +cat >>confdefs.h <<_ACEOF +#define GOA_TEMPLATE_FILE "$with_template_file" +_ACEOF + + +# service providers +# + +# Microsoft Exchange + +$as_echo "#define GOA_EXCHANGE_NAME \"exchange\"" >>confdefs.h + +# Check whether --enable-exchange was given. +if test "${enable_exchange+set}" = set; then : + enableval=$enable_exchange; +else + enable_exchange=yes +fi + +if test "$enable_exchange" != "no"; then + +$as_echo "#define GOA_EXCHANGE_ENABLED 1" >>confdefs.h + +fi + +# Flickr + +$as_echo "#define GOA_FLICKR_NAME \"flickr\"" >>confdefs.h + +# Check whether --enable-flickr was given. +if test "${enable_flickr+set}" = set; then : + enableval=$enable_flickr; +else + enable_flickr=yes +fi + + +# Check whether --with-flickr-consumer-key was given. +if test "${with_flickr_consumer_key+set}" = set; then : + withval=$with_flickr_consumer_key; +fi + + +# Check whether --with-flickr-consumer-secret was given. +if test "${with_flickr_consumer_secret+set}" = set; then : + withval=$with_flickr_consumer_secret; +fi + +if test "$with_flickr_consumer_key" = ""; then + with_flickr_consumer_key=ed00ad7e0869897506e23c0d18e34d01 +fi +if test "$with_flickr_consumer_secret" = ""; then + with_flickr_consumer_secret=ebd556dd187188b1 +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_FLICKR_CONSUMER_KEY "$with_flickr_consumer_key" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define GOA_FLICKR_CONSUMER_SECRET "$with_flickr_consumer_secret" +_ACEOF + +if test "$enable_flickr" != "no"; then + +$as_echo "#define GOA_FLICKR_ENABLED 1" >>confdefs.h + +fi + +# Foursquare + +$as_echo "#define GOA_FOURSQUARE_NAME \"foursquare\"" >>confdefs.h + +# Check whether --enable-foursquare was given. +if test "${enable_foursquare+set}" = set; then : + enableval=$enable_foursquare; +else + enable_foursquare=yes +fi + + +# Check whether --with-foursquare-client-id was given. +if test "${with_foursquare_client_id+set}" = set; then : + withval=$with_foursquare_client_id; +fi + +if test "$with_foursquare_client_id" = ""; then + with_foursquare_client_id="MBNU2NES5HASNDQJ25YPFGG2UGRZHPI3IYTNJGE0KIWT2HCF" +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_FOURSQUARE_CLIENT_ID "$with_foursquare_client_id" +_ACEOF + +if test "$enable_foursquare" != "no"; then + +$as_echo "#define GOA_FOURSQUARE_ENABLED 1" >>confdefs.h + +fi + +# Google + +$as_echo "#define GOA_GOOGLE_NAME \"google\"" >>confdefs.h + +# Check whether --enable-google was given. +if test "${enable_google+set}" = set; then : + enableval=$enable_google; +else + enable_google=yes +fi + + +# Check whether --with-google-client-id was given. +if test "${with_google_client_id+set}" = set; then : + withval=$with_google_client_id; +fi + + +# Check whether --with-google-client-secret was given. +if test "${with_google_client_secret+set}" = set; then : + withval=$with_google_client_secret; +fi + +if test "$with_google_client_id" = ""; then + with_google_client_id=44438659992-7kgjeitenc16ssihbtdjbgguch7ju55s.apps.googleusercontent.com +fi +if test "$with_google_client_secret" = ""; then + with_google_client_secret=-gMLuQyDiI0XrQS_vx_mhuYF +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_GOOGLE_CLIENT_ID "$with_google_client_id" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define GOA_GOOGLE_CLIENT_SECRET "$with_google_client_secret" +_ACEOF + +if test "$enable_google" != "no"; then + +$as_echo "#define GOA_GOOGLE_ENABLED 1" >>confdefs.h + +fi + +# IMAP/SMTP + +$as_echo "#define GOA_IMAP_SMTP_NAME \"imap_smtp\"" >>confdefs.h + +# Check whether --enable-imap-smtp was given. +if test "${enable_imap_smtp+set}" = set; then : + enableval=$enable_imap_smtp; +else + enable_imap_smtp=yes +fi + +if test "$enable_imap_smtp" != "no"; then + +$as_echo "#define GOA_IMAP_SMTP_ENABLED 1" >>confdefs.h + +fi + +# Media Server + +$as_echo "#define GOA_MEDIA_SERVER_NAME \"media-server\"" >>confdefs.h + +# Check whether --enable-media-server was given. +if test "${enable_media_server+set}" = set; then : + enableval=$enable_media_server; +else + enable_media_server=no +fi + +if test "$enable_media_server" != "no"; then + +$as_echo "#define GOA_MEDIA_SERVER_ENABLED 1" >>confdefs.h + +fi + +# ownCloud + +$as_echo "#define GOA_OWNCLOUD_NAME \"owncloud\"" >>confdefs.h + +# Check whether --enable-owncloud was given. +if test "${enable_owncloud+set}" = set; then : + enableval=$enable_owncloud; +else + enable_owncloud=yes +fi + +if test "$enable_owncloud" != "no"; then + +$as_echo "#define GOA_OWNCLOUD_ENABLED 1" >>confdefs.h + +fi + +# Facebook + +$as_echo "#define GOA_FACEBOOK_NAME \"facebook\"" >>confdefs.h + +# Check whether --enable-facebook was given. +if test "${enable_facebook+set}" = set; then : + enableval=$enable_facebook; +else + enable_facebook=yes +fi + + +# Check whether --with-facebook-client-id was given. +if test "${with_facebook_client_id+set}" = set; then : + withval=$with_facebook_client_id; +fi + +if test "$with_facebook_client_id" = ""; then + with_facebook_client_id=297654143624603 +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_FACEBOOK_CLIENT_ID "$with_facebook_client_id" +_ACEOF + +if test "$enable_facebook" != "no"; then + +$as_echo "#define GOA_FACEBOOK_ENABLED 1" >>confdefs.h + +fi + +# Todoist + +$as_echo "#define GOA_TODOIST_NAME \"todoist\"" >>confdefs.h + +# Check whether --enable-todoist was given. +if test "${enable_todoist+set}" = set; then : + enableval=$enable_todoist; +else + enable_todoist=no +fi + + +# Check whether --with-todoist-client-id was given. +if test "${with_todoist_client_id+set}" = set; then : + withval=$with_todoist_client_id; +fi + + +# Check whether --with-todoist-client-secret was given. +if test "${with_todoist_client_secret+set}" = set; then : + withval=$with_todoist_client_secret; +fi + +if test "$with_todoist_client_id" = ""; then + with_todoist_client_id="2e41575c1dd74f98ad7cfb178e1ba3dd" +fi +if test "$with_todoist_client_secret" = ""; then + with_todoist_client_secret="3e59831ffdd64633918d19aa0a1efd2b" +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_TODOIST_CLIENT_ID "$with_todoist_client_id" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define GOA_TODOIST_CLIENT_SECRET "$with_todoist_client_secret" +_ACEOF + +if test "$enable_todoist" != "no"; then + +$as_echo "#define GOA_TODOIST_ENABLED 1" >>confdefs.h + +fi + +# Windows Live + +$as_echo "#define GOA_WINDOWS_LIVE_NAME \"windows_live\"" >>confdefs.h + +# Check whether --enable-windows-live was given. +if test "${enable_windows_live+set}" = set; then : + enableval=$enable_windows_live; +else + enable_windows_live=yes +fi + + +# Check whether --with-windows-live-client-id was given. +if test "${with_windows_live_client_id+set}" = set; then : + withval=$with_windows_live_client_id; +fi + +if test "$with_windows_live_client_id" = ""; then + with_windows_live_client_id=0000000044067703 +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_WINDOWS_LIVE_CLIENT_ID "$with_windows_live_client_id" +_ACEOF + +if test "$enable_windows_live" != "no"; then + +$as_echo "#define GOA_WINDOWS_LIVE_ENABLED 1" >>confdefs.h + +fi + +# Pocket + +$as_echo "#define GOA_POCKET_NAME \"pocket\"" >>confdefs.h + +# Check whether --enable-pocket was given. +if test "${enable_pocket+set}" = set; then : + enableval=$enable_pocket; +else + enable_pocket=yes +fi + + +# Check whether --with-pocket-client-id was given. +if test "${with_pocket_client_id+set}" = set; then : + withval=$with_pocket_client_id; +fi + +if test "$with_pocket_client_id" = ""; then + with_pocket_client_id="16630-40b25246b56e8ad5310b2883" +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_POCKET_CLIENT_ID "$with_pocket_client_id" +_ACEOF + +if test "$enable_pocket" != "no"; then + +$as_echo "#define GOA_POCKET_ENABLED 1" >>confdefs.h + +fi + +# Kerberos + +$as_echo "#define GOA_KERBEROS_NAME \"kerberos\"" >>confdefs.h + +# Check whether --enable-kerberos was given. +if test "${enable_kerberos+set}" = set; then : + enableval=$enable_kerberos; enable_kerberos=$enableval +else + enable_kerberos=auto +fi + +# Extract the first word of "krb5-config", so it can be a program name with args. +set dummy krb5-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_KRB5_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $KRB5_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_KRB5_CONFIG="$KRB5_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/kerberos/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_KRB5_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_KRB5_CONFIG" && ac_cv_path_KRB5_CONFIG="none" + ;; +esac +fi +KRB5_CONFIG=$ac_cv_path_KRB5_CONFIG +if test -n "$KRB5_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KRB5_CONFIG" >&5 +$as_echo "$KRB5_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +if test "x$KRB5_CONFIG" != "xnone"; then + KRB5_LIBS="`${KRB5_CONFIG} --libs krb5`" + KRB5_CFLAGS="`${KRB5_CONFIG} --cflags krb5`" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCR" >&5 +$as_echo_n "checking for GCR... " >&6; } + +if test -n "$GCR_CFLAGS"; then + pkg_cv_GCR_CFLAGS="$GCR_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gcr-3\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gcr-3") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GCR_CFLAGS=`$PKG_CONFIG --cflags "gcr-3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GCR_LIBS"; then + pkg_cv_GCR_LIBS="$GCR_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gcr-3\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gcr-3") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GCR_LIBS=`$PKG_CONFIG --libs "gcr-3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GCR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gcr-3" 2>&1` + else + GCR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gcr-3" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GCR_PKG_ERRORS" >&5 + + have_kerberos=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_kerberos=no +else + GCR_CFLAGS=$pkg_cv_GCR_CFLAGS + GCR_LIBS=$pkg_cv_GCR_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_kerberos=yes +fi +else + KRB5_LIBS="" + KRB5_CFLAGS="" + have_kerberos=no +fi + + + +if test "$enable_kerberos" != "no"; then + if test "$enable_kerberos" == "yes" && + test "$have_kerberos" == "no" ; then + as_fn_error $? "kerberos support requested, but not available" "$LINENO" 5 + fi + + enable_kerberos=$have_kerberos + + if test "$enable_kerberos" == "yes"; then + +$as_echo "#define GCR_API_SUBJECT_TO_CHANGE 1" >>confdefs.h + + +$as_echo "#define GOA_KERBEROS_ENABLED 1" >>confdefs.h + + fi +else + enable_kerberos=no +fi + if test x$enable_kerberos != xno; then + BUILD_KERBEROS_TRUE= + BUILD_KERBEROS_FALSE='#' +else + BUILD_KERBEROS_TRUE='#' + BUILD_KERBEROS_FALSE= +fi + + +# Last.fm + +$as_echo "#define GOA_LASTFM_NAME \"lastfm\"" >>confdefs.h + +# Check whether --enable-lastfm was given. +if test "${enable_lastfm+set}" = set; then : + enableval=$enable_lastfm; +else + enable_lastfm=no +fi + + +# Check whether --with-lastfm-client-id was given. +if test "${with_lastfm_client_id+set}" = set; then : + withval=$with_lastfm_client_id; +fi + + +# Check whether --with-lastfm-client-secret was given. +if test "${with_lastfm_client_secret+set}" = set; then : + withval=$with_lastfm_client_secret; +fi + +if test "$with_lastfm_client_id" = ""; then + with_lastfm_client_id="7a2461fe34c9c8124fb28ac750ba12fa" +fi +if test "$with_lastfm_client_secret" = ""; then + with_lastfm_client_secret="49ec391644459c417f3afe57ca246c5a" +fi + +cat >>confdefs.h <<_ACEOF +#define GOA_LASTFM_CLIENT_ID "$with_lastfm_client_id" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define GOA_LASTFM_CLIENT_SECRET "$with_lastfm_client_secret" +_ACEOF + +if test "$enable_lastfm" != "no"; then + +$as_echo "#define GOA_LASTFM_ENABLED 1" >>confdefs.h + +fi + +# Optional timerfd support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for timerfd support" >&5 +$as_echo_n "checking for timerfd support... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ + +int +main (void) +{ + struct itimerspec timer_spec = { 0 }; + timerfd_settime (timerfd_create (CLOCK_MONOTONIC, TFD_CLOEXEC), + TFD_TIMER_ABSTIME, + &timer_spec, + NULL); + + return 0; +} + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + have_timerfd=yes +else + have_timerfd=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_timerfd" >&5 +$as_echo "$have_timerfd" >&6; } +if test x"$have_timerfd" = x"yes"; then + +$as_echo "#define HAVE_TIMERFD 1" >>confdefs.h + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for timerfd cancel-on-set support" >&5 +$as_echo_n "checking for timerfd cancel-on-set support... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + +int +main () +{ + + int + main (void) + { + struct itimerspec timer_spec = { 0 }; + timerfd_settime (timerfd_create (CLOCK_MONOTONIC, TFD_CLOEXEC), + TFD_TIMER_ABSTIME | TFD_TIMER_CANCEL_ON_SET, + &timer_spec, + NULL); + + return 0; + } + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + have_tfd_timer_cancel_on_set=yes +else + have_tfd_timer_cancel_on_set=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_tfd_timer_cancel_on_set" >&5 +$as_echo "$have_tfd_timer_cancel_on_set" >&6; } + if test x"$have_tfd_timer_cancel_on_set" = x"no"; then + +$as_echo "#define TFD_TIMER_CANCEL_ON_SET (1 << 1)" >>confdefs.h + + fi +fi + +# Internationalization +# + +GETTEXT_PACKAGE=gnome-online-accounts + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.19 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${acl_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${acl_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } +if ${acl_cv_rpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then : + enableval=$enable_rpath; : +else + enable_rpath=yes +fi + + + + + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 +$as_echo_n "checking for 64-bit host... " >&6; } +if ${gl_cv_solaris_64bit+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _LP64 +sixtyfour bits +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "sixtyfour bits" >/dev/null 2>&1; then : + gl_cv_solaris_64bit=yes +else + gl_cv_solaris_64bit=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 +$as_echo "$gl_cv_solaris_64bit" >&6; } + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFLocaleCopyCurrent=yes +else + gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } +if eval \${$gt_func_gnugettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main () +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libc=yes" +else + eval "$gt_func_gnugettext_libc=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$gt_func_gnugettext_libc + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } +if ${am_cv_func_iconv+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } +if ${am_cv_func_iconv_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + +int +main () +{ +int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_iconv_works=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +$as_echo "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then : + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + HAVE_LIBINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } +if eval \${$gt_func_gnugettext_libintl+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main () +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libintl=yes" +else + eval "$gt_func_gnugettext_libintl=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main () +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + fi + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +$as_echo "$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +$as_echo "$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + +$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + +# goaconfig.h +# + +ac_config_commands="$ac_config_commands src/goa/goaconfig.h" + + +# Generate +# + +ac_config_files="$ac_config_files Makefile data/Makefile data/icons/Makefile data/icons/16x16/Makefile data/icons/22x22/Makefile data/icons/24x24/Makefile data/icons/32x32/Makefile data/icons/48x48/Makefile data/icons/96x96/Makefile data/icons/256x256/Makefile src/Makefile src/goa/Makefile src/goa/goa-1.0.pc src/goabackend/Makefile src/goabackend/goa-backend-1.0.pc src/goaidentity/Makefile src/daemon/Makefile src/examples/Makefile po/Makefile.in doc/Makefile doc/version.xml" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_DOCUMENTATION_TRUE}" && test -z "${ENABLE_DOCUMENTATION_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_DOCUMENTATION\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then + as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_VAPIGEN_TRUE}" && test -z "${ENABLE_VAPIGEN_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_VAPIGEN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_TELEPATHY_TRUE}" && test -z "${BUILD_TELEPATHY_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TELEPATHY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_BACKEND_TRUE}" && test -z "${BUILD_BACKEND_FALSE}"; then + as_fn_error $? "conditional \"BUILD_BACKEND\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_KERBEROS_TRUE}" && test -z "${BUILD_KERBEROS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_KERBEROS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by GNOME Online Accounts $as_me 3.28.2, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +GNOME Online Accounts home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +GNOME Online Accounts config.status 3.28.2 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + + GOA_MAJOR_VERSION=$GOA_MAJOR_VERSION + GOA_MINOR_VERSION=$GOA_MINOR_VERSION + GOA_MICRO_VERSION=$GOA_MICRO_VERSION + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "src/goa/goaconfig.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/goa/goaconfig.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; + "data/icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/16x16/Makefile" ;; + "data/icons/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/22x22/Makefile" ;; + "data/icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/24x24/Makefile" ;; + "data/icons/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/32x32/Makefile" ;; + "data/icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/48x48/Makefile" ;; + "data/icons/96x96/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/96x96/Makefile" ;; + "data/icons/256x256/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/256x256/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/goa/Makefile") CONFIG_FILES="$CONFIG_FILES src/goa/Makefile" ;; + "src/goa/goa-1.0.pc") CONFIG_FILES="$CONFIG_FILES src/goa/goa-1.0.pc" ;; + "src/goabackend/Makefile") CONFIG_FILES="$CONFIG_FILES src/goabackend/Makefile" ;; + "src/goabackend/goa-backend-1.0.pc") CONFIG_FILES="$CONFIG_FILES src/goabackend/goa-backend-1.0.pc" ;; + "src/goaidentity/Makefile") CONFIG_FILES="$CONFIG_FILES src/goaidentity/Makefile" ;; + "src/daemon/Makefile") CONFIG_FILES="$CONFIG_FILES src/daemon/Makefile" ;; + "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "doc/version.xml") CONFIG_FILES="$CONFIG_FILES doc/version.xml" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + "src/goa/goaconfig.h":C) + outfile=src/goa/goaconfig.h-tmp + cat > $outfile <<\_______EOF +/* goaconfig.h + * + * This is a generated file. Please modify 'configure.ac' + */ + +#ifndef __GOA_CONFIG_H__ +#define __GOA_CONFIG_H__ + +G_BEGIN_DECLS + +_______EOF + echo "#define GOA_MAJOR_VERSION $GOA_MAJOR_VERSION" >> $outfile + echo "#define GOA_MINOR_VERSION $GOA_MINOR_VERSION" >> $outfile + echo "#define GOA_MICRO_VERSION $GOA_MICRO_VERSION" >> $outfile + cat >> $outfile <<\_______EOF + +G_END_DECLS + +#endif /* __GOA_CONFIG_H__ */ +_______EOF + + + if cmp -s $outfile src/goa/goaconfig.h; then + { $as_echo "$as_me:${as_lineno-$LINENO}: src/goa/goaconfig.h is unchanged" >&5 +$as_echo "$as_me: src/goa/goaconfig.h is unchanged" >&6;} + rm -f $outfile + else + mv $outfile src/goa/goaconfig.h + fi + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +echo " + gnome-online-accounts $VERSION + =============================== + + prefix: ${prefix} + libdir: ${libdir} + libexecdir: ${libexecdir} + bindir: ${bindir} + sbindir: ${sbindir} + datadir: ${datadir} + sysconfdir: ${sysconfdir} + localstatedir: ${localstatedir} + + compiler: ${CC} + cflags: ${CFLAGS} + cppflags: ${CPPFLAGS} + + backend: ${enable_backend} + inspector: ${enable_inspector} + introspection: ${found_introspection} + template file: ${with_template_file} + + Flickr provider: ${enable_flickr} (OAuth 1.0, key:${with_flickr_consumer_key} secret:${with_flickr_consumer_secret}) + Foursquare provider: ${enable_foursquare} (id:${with_foursquare_client_id}) + Google provider: ${enable_google} (OAuth 2.0, id:${with_google_client_id} secret:${with_google_client_secret}) + IMAP/SMTP provider: ${enable_imap_smtp} + Media Server provider: ${enable_media_server} + Microsoft Exchange provider: ${enable_exchange} + ownCloud provider: ${enable_owncloud} + Kerberos provider: ${enable_kerberos} + Facebook provider: ${enable_facebook} (OAuth 2.0, id:${with_facebook_client_id}) + Todoist provider: ${enable_todoist} (OAuth 2.0, id:${with_todoist_client_id} secret:${with_todoist_client_secret}) + Windows Live provider: ${enable_windows_live} (OAuth 2.0, id:${with_windows_live_client_id}) + Telepathy provider: ${enable_telepathy} + Pocket provider: ${enable_pocket} (id:${with_pocket_client_id}) + Last.fm provider: ${enable_lastfm} (id:${with_lastfm_client_id} secret:${with_lastfm_client_secret}) + + Maintainer mode: ${USE_MAINTAINER_MODE} + Building api docs: ${enable_gtk_doc} +" diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..ddf98f1 --- /dev/null +++ b/configure.ac @@ -0,0 +1,621 @@ +m4_define([goa_major_version], [3]) +m4_define([goa_minor_version], [28]) +m4_define([goa_micro_version], [2]) +m4_define([goa_nano_version], [0]) + +m4_define([goa_base_version], + [goa_major_version.goa_minor_version.goa_micro_version]) +m4_define([goa_version], + [m4_if(goa_nano_version, 0, [goa_base_version], + [goa_base_version].[goa_nano_version])]) + +AC_INIT([GNOME Online Accounts], + [goa_version], + [https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts], + [gnome-online-accounts], + [https://wiki.gnome.org/Projects/GnomeOnlineAccounts]) + +AM_INIT_AUTOMAKE([1.9 foreign dist-xz no-dist-gzip tar-ustar]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_SRCDIR([src]) +AC_CONFIG_HEADERS([config.h]) + +AM_MAINTAINER_MODE([enable]) + +AX_IS_RELEASE([git-directory]) + +AX_CHECK_ENABLE_DEBUG([yes],,, [$ax_is_release]) +AX_COMPILER_FLAGS([WARN_CFLAGS], [WARN_LDFLAGS], [$ax_is_release]) + +AC_PROG_CC +AC_ISC_POSIX +AC_HEADER_STDC +AC_PROG_LIBTOOL + +PKG_PROG_PKG_CONFIG(0.16) + +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +GOA_MAJOR_VERSION=goa_major_version +GOA_MINOR_VERSION=goa_minor_version +GOA_MICRO_VERSION=goa_micro_version + +AC_SUBST(GOA_MAJOR_VERSION) +AC_SUBST(GOA_MINOR_VERSION) +AC_SUBST(GOA_MICRO_VERSION) + +# Before making a release, the LT_VERSION string should be modified. +# The string is of the form C:R:A. +# - If interfaces have been changed or added, but binary compatibility has +# been preserved, change to C+1:0:A+1 +# - If binary compatibility has been broken (eg removed or changed interfaces) +# change to C+1:0:0 +# - If the interface is the same as the previous version, change to C:R+1:A +GOA_LT_VERSION=0:0:0 +GOA_BACKEND_LT_VERSION=1:0:0 +AC_SUBST(GOA_LT_VERSION) +AC_SUBST(GOA_BACKEND_LT_VERSION) + +AC_DEFINE(GOA_MAJOR_VERSION, + [goa_major_version], + [Define to the GOA major version]) +AC_DEFINE(GOA_MINOR_VERSION, + [goa_minor_version], + [Define to the GOA minor version]) +AC_DEFINE(GOA_MICRO_VERSION, + [goa_micro_version], + [Define to the GOA micro version]) + +# Initialization +# + +AX_REQUIRE_DEFINED([GLIB_GSETTINGS]) +GLIB_GSETTINGS + +AC_ARG_ENABLE([documentation], + AS_HELP_STRING([--enable-documentation], [enable man pages and HTML]), + [], [enable_documentation=yes]) +AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes) +if test x$enable_documentation = xyes; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test -z "$XSLTPROC"; then + AC_MSG_ERROR([xsltproc is needed]) + fi +fi + +AX_REQUIRE_DEFINED([GTK_DOC_CHECK]) +GTK_DOC_CHECK([1.3]) + +# Libraries +# + +PKG_CHECK_MODULES(GLIB, [glib-2.0 gio-2.0 gio-unix-2.0 >= 2.52]) +AC_SUBST(GLIB_CFLAGS) +AC_SUBST(GLIB_LIBS) + +AX_REQUIRE_DEFINED([GOBJECT_INTROSPECTION_CHECK]) +GOBJECT_INTROSPECTION_CHECK([0.6.2]) + +VAPIGEN_CHECK() + +# Telepathy +AC_DEFINE(GOA_TELEPATHY_NAME, ["telepathy"], [ProviderType and extension point name]) +AC_ARG_ENABLE([telepathy], + [AS_HELP_STRING([--enable-telepathy], + [Enable Telepathy IM provider])], + [], + [enable_telepathy=no]) +if test "$enable_telepathy" != "no"; then + AC_DEFINE(GOA_TELEPATHY_ENABLED, 1, [Enable Telepathy data provider]) +fi +AM_CONDITIONAL(BUILD_TELEPATHY, [test x$enable_telepathy != xno]) + +AC_ARG_ENABLE([backend], + [AS_HELP_STRING([--enable-backend], + [Enable goabackend library])], + [], + [enable_backend=yes]) +AM_CONDITIONAL(BUILD_BACKEND, [test x$enable_backend != xno]) + +if test "$enable_backend" != "no"; then + AC_DEFINE(GOA_BACKEND_ENABLED, 1, [Enable goabackend library]) + + PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= 3.19.12]) + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + + PKG_CHECK_MODULES(WEBKIT_GTK, [webkit2gtk-4.0 >= 2.12.0]) + AC_SUBST(WEBKIT_GTK_CFLAGS) + AC_SUBST(WEBKIT_GTK_LIBS) + + PKG_CHECK_MODULES(LIBSOUP, [libsoup-2.4 >= 2.42]) + AC_SUBST(LIBSOUP_CFLAGS) + AC_SUBST(LIBSOUP_LIBS) + + PKG_CHECK_MODULES(JSON_GLIB, [json-glib-1.0]) + AC_SUBST(JSON_GLIB_CFLAGS) + AC_SUBST(JSON_GLIB_LIBS) + + PKG_CHECK_MODULES(REST, [rest-0.7]) + AC_SUBST(REST_CFLAGS) + AC_SUBST(REST_LIBS) + + PKG_CHECK_MODULES(SECRET, [libsecret-1]) + AC_SUBST(SECRET_CFLAGS) + AC_SUBST(SECRET_LIBS) + + PKG_CHECK_MODULES(LIBXML, [libxml-2.0]) + AC_SUBST(LIBXML_CFLAGS) + AC_SUBST(LIBXML_LIBS) + + if test "$enable_telepathy" != "no"; then + PKG_CHECK_MODULES(TP, [telepathy-glib]) + AC_SUBST(TP_CFLAGS) + AC_SUBST(TP_LIBS) + + # telepathy-account-widgets + prev_top_build_prefix=$ac_top_build_prefix + prev_ac_configure_args=$ac_configure_args + ac_configure_args="$ac_configure_args --with-cheese=no --disable-gudev --enable-ubuntu-online-accounts=no" + # install the data together with the rest of GOA's data + ac_configure_args="$ac_configure_args --with-pkgdatadir=${datadir}/gnome-online-accounts" + # GOA ships its icons directly in ${datadir}/icons (usually /usr/share/icons/) and not + # in its own data directory + ac_configure_args="$ac_configure_args --with-icondir=${datadir}/icons" + # Change the name of tpaw's .mo files to avoid conflicts with other packages using tp-aw + ac_configure_args="$ac_configure_args --with-gettext-package=gnome-online-accounts-tpaw" + # Disable the installation of the GSettings schema to avoid multiple components shipping + # the same file. See https://bugzilla.gnome.org/show_bug.cgi?id=706803 + ac_configure_args="$ac_configure_args --disable-schemas-compile --disable-settings" + AX_CONFIG_DIR([telepathy-account-widgets]) + ac_top_build_prefix=$prev_top_build_prefix + ac_configure_args=$prev_ac_configure_args + + export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:"$ac_top_build_prefix"telepathy-account-widgets/ + PKG_CHECK_MODULES(TPAW, telepathy-account-widgets) + fi +fi + +AC_ARG_ENABLE([inspector], + [AS_HELP_STRING([--enable-inspector], [Enable a WebKitWebInspector for the embedded web view])], + [], + [enable_inspector=no]) +if test "$enable_inspector" != "no"; then + AC_DEFINE(GOA_INSPECTOR_ENABLED, 1, [Enable a WebKitWebInspector for the embedded web view]) +fi + +AC_ARG_WITH(template-file, + [AS_HELP_STRING([--with-template-file], [Path to the template file])], + [], + []) +AC_DEFINE_UNQUOTED(GOA_TEMPLATE_FILE, ["$with_template_file"], [Path to the template file]) + +# service providers +# + +# Microsoft Exchange +AC_DEFINE(GOA_EXCHANGE_NAME, ["exchange"], [ProviderType and extension point name]) +AC_ARG_ENABLE([exchange], + [AS_HELP_STRING([--enable-exchange], [Enable Microsoft Exchange provider])], + [], + [enable_exchange=yes]) +if test "$enable_exchange" != "no"; then + AC_DEFINE(GOA_EXCHANGE_ENABLED, 1, [Enable Microsoft Exchange data provider]) +fi + +# Flickr +AC_DEFINE(GOA_FLICKR_NAME, ["flickr"], [ProviderType and extension point name]) +AC_ARG_ENABLE([flickr], + [AS_HELP_STRING([--enable-flickr], [Enable Flickr provider])], + [], + [enable_flickr=yes]) +AC_ARG_WITH(flickr-consumer-key, + [AS_HELP_STRING([--with-flickr-consumer-key], [Flickr OAuth 1.0 consumer key])], + [], + []) +AC_ARG_WITH(flickr-consumer-secret, + [AS_HELP_STRING([--with-flickr-consumer-secret], [Flickr OAuth 1.0 consumer secret])], + [], + []) +if test "$with_flickr_consumer_key" = ""; then + with_flickr_consumer_key=ed00ad7e0869897506e23c0d18e34d01 +fi +if test "$with_flickr_consumer_secret" = ""; then + with_flickr_consumer_secret=ebd556dd187188b1 +fi +AC_DEFINE_UNQUOTED(GOA_FLICKR_CONSUMER_KEY, ["$with_flickr_consumer_key"], [Flickr OAuth 1.0 consumer key]) +AC_DEFINE_UNQUOTED(GOA_FLICKR_CONSUMER_SECRET, ["$with_flickr_consumer_secret"], [Flickr OAuth 1.0 consumer secret]) +if test "$enable_flickr" != "no"; then + AC_DEFINE(GOA_FLICKR_ENABLED, 1, [Enable Flickr data provider]) +fi + +# Foursquare +AC_DEFINE(GOA_FOURSQUARE_NAME, ["foursquare"], [ProviderType and extension point name]) +AC_ARG_ENABLE([foursquare], + [AS_HELP_STRING([--enable-foursquare], [Enable Foursquare provider])], + [], + [enable_foursquare=yes]) +AC_ARG_WITH(foursquare-client-id, + [AS_HELP_STRING([--with-foursquare-client-id], [Foursquare OAuth 2.0 client id])], + [], + []) +if test "$with_foursquare_client_id" = ""; then + with_foursquare_client_id="MBNU2NES5HASNDQJ25YPFGG2UGRZHPI3IYTNJGE0KIWT2HCF" +fi +AC_DEFINE_UNQUOTED(GOA_FOURSQUARE_CLIENT_ID, ["$with_foursquare_client_id"], [Foursquare OAuth 2.0 client id]) +if test "$enable_foursquare" != "no"; then + AC_DEFINE(GOA_FOURSQUARE_ENABLED, 1, [Enable Foursquare data provider]) +fi + +# Google +AC_DEFINE(GOA_GOOGLE_NAME, ["google"], [ProviderType and extension point name]) +AC_ARG_ENABLE([google], + [AS_HELP_STRING([--enable-google], [Enable Google provider])], + [], + [enable_google=yes]) +AC_ARG_WITH(google-client-id, + [AS_HELP_STRING([--with-google-client-id], [Google OAuth 2.0 client id])], + [], + []) +AC_ARG_WITH(google-client-secret, + [AS_HELP_STRING([--with-google-client-secret], [Google OAuth 2.0 client secret])], + [], + []) +if test "$with_google_client_id" = ""; then + with_google_client_id=44438659992-7kgjeitenc16ssihbtdjbgguch7ju55s.apps.googleusercontent.com +fi +if test "$with_google_client_secret" = ""; then + with_google_client_secret=-gMLuQyDiI0XrQS_vx_mhuYF +fi +AC_DEFINE_UNQUOTED(GOA_GOOGLE_CLIENT_ID, ["$with_google_client_id"], [Google OAuth 2.0 client id]) +AC_DEFINE_UNQUOTED(GOA_GOOGLE_CLIENT_SECRET, ["$with_google_client_secret"], [Google OAuth 2.0 client secret]) +if test "$enable_google" != "no"; then + AC_DEFINE(GOA_GOOGLE_ENABLED, 1, [Enable Google data provider]) +fi + +# IMAP/SMTP +AC_DEFINE(GOA_IMAP_SMTP_NAME, ["imap_smtp"], [ProviderType and extension point name]) +AC_ARG_ENABLE([imap-smtp], + [AS_HELP_STRING([--enable-imap-smtp], [Enable IMAP/SMTP provider])], + [], + [enable_imap_smtp=yes]) +if test "$enable_imap_smtp" != "no"; then + AC_DEFINE(GOA_IMAP_SMTP_ENABLED, 1, [Enable IMAP/SMTP data provider]) +fi + +# Media Server +AC_DEFINE(GOA_MEDIA_SERVER_NAME, ["media-server"], [ProviderType and extension point name]) +AC_ARG_ENABLE([media-server], + [AS_HELP_STRING([--enable-media-server], [Enable Media Server provider])], + [], + [enable_media_server=no]) +if test "$enable_media_server" != "no"; then + AC_DEFINE(GOA_MEDIA_SERVER_ENABLED, 1, [Enable Media Server provider]) +fi + +# ownCloud +AC_DEFINE(GOA_OWNCLOUD_NAME, ["owncloud"], [ProviderType and extension point name]) +AC_ARG_ENABLE([owncloud], + [AS_HELP_STRING([--enable-owncloud], [Enable ownCloud provider])], + [], + [enable_owncloud=yes]) +if test "$enable_owncloud" != "no"; then + AC_DEFINE(GOA_OWNCLOUD_ENABLED, 1, [Enable ownCloud data provider]) +fi + +# Facebook +AC_DEFINE(GOA_FACEBOOK_NAME, ["facebook"], [ProviderType and extension point name]) +AC_ARG_ENABLE([facebook], + [AS_HELP_STRING([--enable-facebook], [Enable Facebook provider])], + [], + [enable_facebook=yes]) +AC_ARG_WITH(facebook-client-id, + [AS_HELP_STRING([--with-facebook-client-id], [Facebook OAuth 2.0 client id])], + [], + []) +if test "$with_facebook_client_id" = ""; then + with_facebook_client_id=297654143624603 +fi +AC_DEFINE_UNQUOTED(GOA_FACEBOOK_CLIENT_ID, ["$with_facebook_client_id"], [Facebook OAuth 2.0 client id]) +if test "$enable_facebook" != "no"; then + AC_DEFINE(GOA_FACEBOOK_ENABLED, 1, [Enable Facebook data provider]) +fi + +# Todoist +AC_DEFINE(GOA_TODOIST_NAME, ["todoist"], [ProviderType and extension point name]) +AC_ARG_ENABLE([todoist], + [AS_HELP_STRING([--enable-todoist], [Enable Todoist provider])], + [], + [enable_todoist=no]) +AC_ARG_WITH(todoist-client-id, + [AS_HELP_STRING([--with-todoist-client-id], [Todoist OAuth 2.0 client id])], + [], + []) +AC_ARG_WITH(todoist-client-secret, + [AS_HELP_STRING([--with-todoist-client-secret], [Todoist client secret])], + [], + []) +if test "$with_todoist_client_id" = ""; then + with_todoist_client_id="2e41575c1dd74f98ad7cfb178e1ba3dd" +fi +if test "$with_todoist_client_secret" = ""; then + with_todoist_client_secret="3e59831ffdd64633918d19aa0a1efd2b" +fi +AC_DEFINE_UNQUOTED(GOA_TODOIST_CLIENT_ID, ["$with_todoist_client_id"], [Todoist OAuth 2.0 client id]) +AC_DEFINE_UNQUOTED(GOA_TODOIST_CLIENT_SECRET, ["$with_todoist_client_secret"], [Todoist client secret]) +if test "$enable_todoist" != "no"; then + AC_DEFINE(GOA_TODOIST_ENABLED, 1, [Enable Todoist data provider]) +fi + +# Windows Live +AC_DEFINE(GOA_WINDOWS_LIVE_NAME, ["windows_live"], [ProviderType and extension point name]) +AC_ARG_ENABLE([windows-live], + [AS_HELP_STRING([--enable-windows-live], [Enable Windows Live provider])], + [], + [enable_windows_live=yes]) +AC_ARG_WITH(windows-live-client-id, + [AS_HELP_STRING([--with-windows-live-client-id], [Windows Live OAuth 2.0 client id])], + [], + []) +if test "$with_windows_live_client_id" = ""; then + with_windows_live_client_id=0000000044067703 +fi +AC_DEFINE_UNQUOTED(GOA_WINDOWS_LIVE_CLIENT_ID, ["$with_windows_live_client_id"], [Windows Live OAuth 2.0 client id]) +if test "$enable_windows_live" != "no"; then + AC_DEFINE(GOA_WINDOWS_LIVE_ENABLED, 1, [Enable Windows Live data provider]) +fi + +# Pocket +AC_DEFINE(GOA_POCKET_NAME, ["pocket"], [ProviderType and extension point name]) +AC_ARG_ENABLE([pocket], + [AS_HELP_STRING([--enable-pocket], [Enable Pocket provider])], + [], + [enable_pocket=yes]) +AC_ARG_WITH(pocket-client-id, + [AS_HELP_STRING([--with-pocket-client-id], [Pocket OAuth 2.0 client id])], + [], + []) +if test "$with_pocket_client_id" = ""; then + with_pocket_client_id="16630-40b25246b56e8ad5310b2883" +fi +AC_DEFINE_UNQUOTED(GOA_POCKET_CLIENT_ID, ["$with_pocket_client_id"], [Pocket OAuth 2.0 client id]) +if test "$enable_pocket" != "no"; then + AC_DEFINE(GOA_POCKET_ENABLED, 1, [Enable Pocket data provider]) +fi + +# Kerberos +AC_DEFINE(GOA_KERBEROS_NAME, ["kerberos"], [ProviderType and extension point name]) +AC_ARG_ENABLE([kerberos], + [AS_HELP_STRING([--enable-kerberos], [Enable kerberos support])], + [enable_kerberos=$enableval], + [enable_kerberos=auto]) +AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin) + +if test "x$KRB5_CONFIG" != "xnone"; then + KRB5_LIBS="`${KRB5_CONFIG} --libs krb5`" + KRB5_CFLAGS="`${KRB5_CONFIG} --cflags krb5`" + PKG_CHECK_MODULES(GCR, gcr-3, [have_kerberos=yes], [have_kerberos=no]) +else + KRB5_LIBS="" + KRB5_CFLAGS="" + have_kerberos=no +fi +AC_SUBST(KRB5_CFLAGS) +AC_SUBST(KRB5_LIBS) + +if test "$enable_kerberos" != "no"; then + if test "$enable_kerberos" == "yes" && + test "$have_kerberos" == "no" ; then + AC_MSG_ERROR([kerberos support requested, but not available]) + fi + + enable_kerberos=$have_kerberos + + if test "$enable_kerberos" == "yes"; then + AC_DEFINE(GCR_API_SUBJECT_TO_CHANGE, 1, [Define to use the GCR API]) + AC_DEFINE(GOA_KERBEROS_ENABLED, 1, [Enable Enterprise Identity data provider]) + fi +else + enable_kerberos=no +fi +AM_CONDITIONAL(BUILD_KERBEROS, [test x$enable_kerberos != xno]) + +# Last.fm +AC_DEFINE(GOA_LASTFM_NAME, ["lastfm"], [ProviderType and extension point name]) +AC_ARG_ENABLE([lastfm], + [AS_HELP_STRING([--enable-lastfm], [Enable Last.fm provider])], + [], + [enable_lastfm=no]) +AC_ARG_WITH(lastfm-client-id, + [AS_HELP_STRING([--with-lastfm-client-id], [Last.fm client id])], + [], + []) +AC_ARG_WITH(lastfm-client-secret, + [AS_HELP_STRING([--with-lastfm-client-secret], [Last.fm client secret])], + [], + []) +if test "$with_lastfm_client_id" = ""; then + with_lastfm_client_id="7a2461fe34c9c8124fb28ac750ba12fa" +fi +if test "$with_lastfm_client_secret" = ""; then + with_lastfm_client_secret="49ec391644459c417f3afe57ca246c5a" +fi +AC_DEFINE_UNQUOTED(GOA_LASTFM_CLIENT_ID, ["$with_lastfm_client_id"], [LastFM client id]) +AC_DEFINE_UNQUOTED(GOA_LASTFM_CLIENT_SECRET, ["$with_lastfm_client_secret"], [LastFM client secret]) +if test "$enable_lastfm" != "no"; then + AC_DEFINE(GOA_LASTFM_ENABLED, 1, [Enable LastFM data provider]) +fi + +# Optional timerfd support +AC_MSG_CHECKING([for timerfd support]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +#include +#include +],[ +int +main (void) +{ + struct itimerspec timer_spec = { 0 }; + timerfd_settime (timerfd_create (CLOCK_MONOTONIC, TFD_CLOEXEC), + TFD_TIMER_ABSTIME, + &timer_spec, + NULL); + + return 0; +} +])], +[have_timerfd=yes], +[have_timerfd=no]) +AC_MSG_RESULT($have_timerfd) +if test x"$have_timerfd" = x"yes"; then + AC_DEFINE(HAVE_TIMERFD, 1, [have timerfd support]) + + dnl libc headers tend to trail kernel support + dnl so compensate if necessary + AC_MSG_CHECKING([for timerfd cancel-on-set support]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #include + #include + ],[ + int + main (void) + { + struct itimerspec timer_spec = { 0 }; + timerfd_settime (timerfd_create (CLOCK_MONOTONIC, TFD_CLOEXEC), + TFD_TIMER_ABSTIME | TFD_TIMER_CANCEL_ON_SET, + &timer_spec, + NULL); + + return 0; + } + ])], + [have_tfd_timer_cancel_on_set=yes], + [have_tfd_timer_cancel_on_set=no]) + AC_MSG_RESULT($have_tfd_timer_cancel_on_set) + if test x"$have_tfd_timer_cancel_on_set" = x"no"; then + AC_DEFINE(TFD_TIMER_CANCEL_ON_SET, [(1 << 1)], [have timerfd support]) + fi +fi + +# Internationalization +# + +GETTEXT_PACKAGE=gnome-online-accounts +AC_SUBST([GETTEXT_PACKAGE]) +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[gettext domain]) + +AX_REQUIRE_DEFINED([AM_GNU_GETTEXT_VERSION]) +AM_GNU_GETTEXT_VERSION([0.19.8]) + +AX_REQUIRE_DEFINED([AM_GNU_GETTEXT]) +AM_GNU_GETTEXT([external]) + +# goaconfig.h +# + +AC_CONFIG_COMMANDS([src/goa/goaconfig.h], +[ + outfile=src/goa/goaconfig.h-tmp + cat > $outfile <<\_______EOF +/* goaconfig.h + * + * This is a generated file. Please modify 'configure.ac' + */ + +#ifndef __GOA_CONFIG_H__ +#define __GOA_CONFIG_H__ + +G_BEGIN_DECLS + +_______EOF + echo "#define GOA_MAJOR_VERSION $GOA_MAJOR_VERSION" >> $outfile + echo "#define GOA_MINOR_VERSION $GOA_MINOR_VERSION" >> $outfile + echo "#define GOA_MICRO_VERSION $GOA_MICRO_VERSION" >> $outfile + cat >> $outfile <<\_______EOF + +G_END_DECLS + +#endif /* __GOA_CONFIG_H__ */ +_______EOF + + + if cmp -s $outfile src/goa/goaconfig.h; then + AC_MSG_NOTICE([src/goa/goaconfig.h is unchanged]) + rm -f $outfile + else + mv $outfile src/goa/goaconfig.h + fi +],[ + GOA_MAJOR_VERSION=$GOA_MAJOR_VERSION + GOA_MINOR_VERSION=$GOA_MINOR_VERSION + GOA_MICRO_VERSION=$GOA_MICRO_VERSION +]) + +# Generate +# + +AC_OUTPUT([ +Makefile +data/Makefile +data/icons/Makefile +data/icons/16x16/Makefile +data/icons/22x22/Makefile +data/icons/24x24/Makefile +data/icons/32x32/Makefile +data/icons/48x48/Makefile +data/icons/96x96/Makefile +data/icons/256x256/Makefile +src/Makefile +src/goa/Makefile +src/goa/goa-1.0.pc +src/goabackend/Makefile +src/goabackend/goa-backend-1.0.pc +src/goaidentity/Makefile +src/daemon/Makefile +src/examples/Makefile +po/Makefile.in +doc/Makefile +doc/version.xml +]) + +dnl ========================================================================== +echo " + gnome-online-accounts $VERSION + =============================== + + prefix: ${prefix} + libdir: ${libdir} + libexecdir: ${libexecdir} + bindir: ${bindir} + sbindir: ${sbindir} + datadir: ${datadir} + sysconfdir: ${sysconfdir} + localstatedir: ${localstatedir} + + compiler: ${CC} + cflags: ${CFLAGS} + cppflags: ${CPPFLAGS} + + backend: ${enable_backend} + inspector: ${enable_inspector} + introspection: ${found_introspection} + template file: ${with_template_file} + + Flickr provider: ${enable_flickr} (OAuth 1.0, key:${with_flickr_consumer_key} secret:${with_flickr_consumer_secret}) + Foursquare provider: ${enable_foursquare} (id:${with_foursquare_client_id}) + Google provider: ${enable_google} (OAuth 2.0, id:${with_google_client_id} secret:${with_google_client_secret}) + IMAP/SMTP provider: ${enable_imap_smtp} + Media Server provider: ${enable_media_server} + Microsoft Exchange provider: ${enable_exchange} + ownCloud provider: ${enable_owncloud} + Kerberos provider: ${enable_kerberos} + Facebook provider: ${enable_facebook} (OAuth 2.0, id:${with_facebook_client_id}) + Todoist provider: ${enable_todoist} (OAuth 2.0, id:${with_todoist_client_id} secret:${with_todoist_client_secret}) + Windows Live provider: ${enable_windows_live} (OAuth 2.0, id:${with_windows_live_client_id}) + Telepathy provider: ${enable_telepathy} + Pocket provider: ${enable_pocket} (id:${with_pocket_client_id}) + Last.fm provider: ${enable_lastfm} (id:${with_lastfm_client_id} secret:${with_lastfm_client_secret}) + + Maintainer mode: ${USE_MAINTAINER_MODE} + Building api docs: ${enable_gtk_doc} +" diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..286dcd0 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,38 @@ + +NULL = + +SUBDIRS = icons + +gsettings_SCHEMAS = org.gnome.online-accounts.gschema.xml + +if BUILD_BACKEND +@GSETTINGS_RULES@ + +servicedir = $(datadir)/dbus-1/services +service_in_files = org.gnome.OnlineAccounts.service.in + +if BUILD_KERBEROS +service_in_files += org.gnome.Identity.service.in +endif + +service_DATA = $(service_in_files:.service.in=.service) +%.service: %.service.in Makefile + @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ +endif + +EXTRA_DIST = \ + $(gsettings_SCHEMAS) \ + dbus-interfaces.xml \ + org.gnome.Identity.service.in \ + org.gnome.OnlineAccounts.service.in \ + $(NULL) + +CLEANFILES = \ + org.gnome.OnlineAccounts.service \ + org.gnome.Identity.service \ + $(NULL) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/Makefile.in b/data/Makefile.in new file mode 100644 index 0000000..6c4583c --- /dev/null +++ b/data/Makefile.in @@ -0,0 +1,797 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_BACKEND_TRUE@@BUILD_KERBEROS_TRUE@am__append_1 = org.gnome.Identity.service.in +subdir = data +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(servicedir)" +DATA = $(service_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +SUBDIRS = icons +gsettings_SCHEMAS = org.gnome.online-accounts.gschema.xml +@BUILD_BACKEND_TRUE@servicedir = $(datadir)/dbus-1/services +@BUILD_BACKEND_TRUE@service_in_files = \ +@BUILD_BACKEND_TRUE@ org.gnome.OnlineAccounts.service.in \ +@BUILD_BACKEND_TRUE@ $(am__append_1) +@BUILD_BACKEND_TRUE@service_DATA = $(service_in_files:.service.in=.service) +EXTRA_DIST = \ + $(gsettings_SCHEMAS) \ + dbus-interfaces.xml \ + org.gnome.Identity.service.in \ + org.gnome.OnlineAccounts.service.in \ + $(NULL) + +CLEANFILES = \ + org.gnome.OnlineAccounts.service \ + org.gnome.Identity.service \ + $(NULL) + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-serviceDATA: $(service_DATA) + @$(NORMAL_INSTALL) + @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(servicedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(servicedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(servicedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(servicedir)" || exit $$?; \ + done + +uninstall-serviceDATA: + @$(NORMAL_UNINSTALL) + @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(servicedir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(servicedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-serviceDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-serviceDATA + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool clean-local \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-serviceDATA install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-serviceDATA + +.PRECIOUS: Makefile + + +@BUILD_BACKEND_TRUE@@GSETTINGS_RULES@ +@BUILD_BACKEND_TRUE@%.service: %.service.in Makefile +@BUILD_BACKEND_TRUE@ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/dbus-interfaces.xml b/data/dbus-interfaces.xml new file mode 100644 index 0000000..205ce04 --- /dev/null +++ b/data/dbus-interfaces.xml @@ -0,0 +1,824 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/16x16/Makefile.am b/data/icons/16x16/Makefile.am new file mode 100644 index 0000000..38c1d22 --- /dev/null +++ b/data/icons/16x16/Makefile.am @@ -0,0 +1,22 @@ +NULL = + +icondir = $(datadir)/icons/hicolor/16x16/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-flickr.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/16x16/Makefile.in b/data/icons/16x16/Makefile.in new file mode 100644 index 0000000..a968d58 --- /dev/null +++ b/data/icons/16x16/Makefile.in @@ -0,0 +1,607 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/16x16 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +icondir = $(datadir)/icons/hicolor/16x16/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-flickr.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/16x16/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/16x16/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconDATA + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/icons/16x16/goa-account-facebook.png b/data/icons/16x16/goa-account-facebook.png new file mode 100644 index 0000000..d8e414b Binary files /dev/null and b/data/icons/16x16/goa-account-facebook.png differ diff --git a/data/icons/16x16/goa-account-flickr.png b/data/icons/16x16/goa-account-flickr.png new file mode 100644 index 0000000..a81c62c Binary files /dev/null and b/data/icons/16x16/goa-account-flickr.png differ diff --git a/data/icons/16x16/goa-account-foursquare.png b/data/icons/16x16/goa-account-foursquare.png new file mode 100644 index 0000000..fc41da8 Binary files /dev/null and b/data/icons/16x16/goa-account-foursquare.png differ diff --git a/data/icons/16x16/goa-account-google.png b/data/icons/16x16/goa-account-google.png new file mode 100644 index 0000000..241b225 Binary files /dev/null and b/data/icons/16x16/goa-account-google.png differ diff --git a/data/icons/16x16/goa-account-msn.png b/data/icons/16x16/goa-account-msn.png new file mode 100644 index 0000000..71f51d0 Binary files /dev/null and b/data/icons/16x16/goa-account-msn.png differ diff --git a/data/icons/16x16/goa-account-owncloud.png b/data/icons/16x16/goa-account-owncloud.png new file mode 100644 index 0000000..40d028c Binary files /dev/null and b/data/icons/16x16/goa-account-owncloud.png differ diff --git a/data/icons/16x16/goa-account-pocket.png b/data/icons/16x16/goa-account-pocket.png new file mode 100644 index 0000000..d3038c4 Binary files /dev/null and b/data/icons/16x16/goa-account-pocket.png differ diff --git a/data/icons/16x16/goa-account-todoist.png b/data/icons/16x16/goa-account-todoist.png new file mode 100644 index 0000000..855cfda Binary files /dev/null and b/data/icons/16x16/goa-account-todoist.png differ diff --git a/data/icons/16x16/goa-account.png b/data/icons/16x16/goa-account.png new file mode 100644 index 0000000..a06b11e Binary files /dev/null and b/data/icons/16x16/goa-account.png differ diff --git a/data/icons/22x22/Makefile.am b/data/icons/22x22/Makefile.am new file mode 100644 index 0000000..4ca45d3 --- /dev/null +++ b/data/icons/22x22/Makefile.am @@ -0,0 +1,22 @@ +NULL = + +icondir = $(datadir)/icons/hicolor/22x22/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-flickr.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/22x22/Makefile.in b/data/icons/22x22/Makefile.in new file mode 100644 index 0000000..ef11027 --- /dev/null +++ b/data/icons/22x22/Makefile.in @@ -0,0 +1,607 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/22x22 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +icondir = $(datadir)/icons/hicolor/22x22/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-flickr.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/22x22/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/22x22/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconDATA + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/icons/22x22/goa-account-facebook.png b/data/icons/22x22/goa-account-facebook.png new file mode 100644 index 0000000..4a0e058 Binary files /dev/null and b/data/icons/22x22/goa-account-facebook.png differ diff --git a/data/icons/22x22/goa-account-flickr.png b/data/icons/22x22/goa-account-flickr.png new file mode 100644 index 0000000..30ffa83 Binary files /dev/null and b/data/icons/22x22/goa-account-flickr.png differ diff --git a/data/icons/22x22/goa-account-foursquare.png b/data/icons/22x22/goa-account-foursquare.png new file mode 100644 index 0000000..cc28bb9 Binary files /dev/null and b/data/icons/22x22/goa-account-foursquare.png differ diff --git a/data/icons/22x22/goa-account-google.png b/data/icons/22x22/goa-account-google.png new file mode 100644 index 0000000..6fd2c94 Binary files /dev/null and b/data/icons/22x22/goa-account-google.png differ diff --git a/data/icons/22x22/goa-account-msn.png b/data/icons/22x22/goa-account-msn.png new file mode 100644 index 0000000..8a3832f Binary files /dev/null and b/data/icons/22x22/goa-account-msn.png differ diff --git a/data/icons/22x22/goa-account-owncloud.png b/data/icons/22x22/goa-account-owncloud.png new file mode 100644 index 0000000..960d1c1 Binary files /dev/null and b/data/icons/22x22/goa-account-owncloud.png differ diff --git a/data/icons/22x22/goa-account-pocket.png b/data/icons/22x22/goa-account-pocket.png new file mode 100644 index 0000000..86ceadd Binary files /dev/null and b/data/icons/22x22/goa-account-pocket.png differ diff --git a/data/icons/22x22/goa-account-todoist.png b/data/icons/22x22/goa-account-todoist.png new file mode 100644 index 0000000..e74be0b Binary files /dev/null and b/data/icons/22x22/goa-account-todoist.png differ diff --git a/data/icons/22x22/goa-account.png b/data/icons/22x22/goa-account.png new file mode 100644 index 0000000..89dc92f Binary files /dev/null and b/data/icons/22x22/goa-account.png differ diff --git a/data/icons/24x24/Makefile.am b/data/icons/24x24/Makefile.am new file mode 100644 index 0000000..0d45d8a --- /dev/null +++ b/data/icons/24x24/Makefile.am @@ -0,0 +1,22 @@ +NULL = + +icondir = $(datadir)/icons/hicolor/24x24/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-flickr.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/24x24/Makefile.in b/data/icons/24x24/Makefile.in new file mode 100644 index 0000000..a7c0690 --- /dev/null +++ b/data/icons/24x24/Makefile.in @@ -0,0 +1,607 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/24x24 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +icondir = $(datadir)/icons/hicolor/24x24/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-flickr.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/24x24/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/24x24/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconDATA + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/icons/24x24/goa-account-facebook.png b/data/icons/24x24/goa-account-facebook.png new file mode 100644 index 0000000..d8127e6 Binary files /dev/null and b/data/icons/24x24/goa-account-facebook.png differ diff --git a/data/icons/24x24/goa-account-flickr.png b/data/icons/24x24/goa-account-flickr.png new file mode 100644 index 0000000..019e298 Binary files /dev/null and b/data/icons/24x24/goa-account-flickr.png differ diff --git a/data/icons/24x24/goa-account-foursquare.png b/data/icons/24x24/goa-account-foursquare.png new file mode 100644 index 0000000..349226d Binary files /dev/null and b/data/icons/24x24/goa-account-foursquare.png differ diff --git a/data/icons/24x24/goa-account-google.png b/data/icons/24x24/goa-account-google.png new file mode 100644 index 0000000..7fc4547 Binary files /dev/null and b/data/icons/24x24/goa-account-google.png differ diff --git a/data/icons/24x24/goa-account-msn.png b/data/icons/24x24/goa-account-msn.png new file mode 100644 index 0000000..96c2fe7 Binary files /dev/null and b/data/icons/24x24/goa-account-msn.png differ diff --git a/data/icons/24x24/goa-account-owncloud.png b/data/icons/24x24/goa-account-owncloud.png new file mode 100644 index 0000000..4bf2f10 Binary files /dev/null and b/data/icons/24x24/goa-account-owncloud.png differ diff --git a/data/icons/24x24/goa-account-pocket.png b/data/icons/24x24/goa-account-pocket.png new file mode 100644 index 0000000..569d965 Binary files /dev/null and b/data/icons/24x24/goa-account-pocket.png differ diff --git a/data/icons/24x24/goa-account-todoist.png b/data/icons/24x24/goa-account-todoist.png new file mode 100644 index 0000000..cbd6466 Binary files /dev/null and b/data/icons/24x24/goa-account-todoist.png differ diff --git a/data/icons/24x24/goa-account.png b/data/icons/24x24/goa-account.png new file mode 100644 index 0000000..3860c2c Binary files /dev/null and b/data/icons/24x24/goa-account.png differ diff --git a/data/icons/256x256/Makefile.am b/data/icons/256x256/Makefile.am new file mode 100644 index 0000000..617385d --- /dev/null +++ b/data/icons/256x256/Makefile.am @@ -0,0 +1,14 @@ +NULL = + +icondir = $(datadir)/icons/hicolor/256x256/apps +icon_DATA = \ + goa-account.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/256x256/Makefile.in b/data/icons/256x256/Makefile.in new file mode 100644 index 0000000..94d034a --- /dev/null +++ b/data/icons/256x256/Makefile.in @@ -0,0 +1,599 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/256x256 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +icondir = $(datadir)/icons/hicolor/256x256/apps +icon_DATA = \ + goa-account.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/256x256/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/256x256/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconDATA + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/icons/256x256/goa-account.png b/data/icons/256x256/goa-account.png new file mode 100644 index 0000000..c0b2239 Binary files /dev/null and b/data/icons/256x256/goa-account.png differ diff --git a/data/icons/32x32/Makefile.am b/data/icons/32x32/Makefile.am new file mode 100644 index 0000000..8a0b612 --- /dev/null +++ b/data/icons/32x32/Makefile.am @@ -0,0 +1,22 @@ +NULL = + +icondir = $(datadir)/icons/hicolor/32x32/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-flickr.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/32x32/Makefile.in b/data/icons/32x32/Makefile.in new file mode 100644 index 0000000..91f77c8 --- /dev/null +++ b/data/icons/32x32/Makefile.in @@ -0,0 +1,607 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/32x32 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +icondir = $(datadir)/icons/hicolor/32x32/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-flickr.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/32x32/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/32x32/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconDATA + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/icons/32x32/goa-account-facebook.png b/data/icons/32x32/goa-account-facebook.png new file mode 100644 index 0000000..7837505 Binary files /dev/null and b/data/icons/32x32/goa-account-facebook.png differ diff --git a/data/icons/32x32/goa-account-flickr.png b/data/icons/32x32/goa-account-flickr.png new file mode 100644 index 0000000..da7af59 Binary files /dev/null and b/data/icons/32x32/goa-account-flickr.png differ diff --git a/data/icons/32x32/goa-account-foursquare.png b/data/icons/32x32/goa-account-foursquare.png new file mode 100644 index 0000000..a72375a Binary files /dev/null and b/data/icons/32x32/goa-account-foursquare.png differ diff --git a/data/icons/32x32/goa-account-google.png b/data/icons/32x32/goa-account-google.png new file mode 100644 index 0000000..cc371f4 Binary files /dev/null and b/data/icons/32x32/goa-account-google.png differ diff --git a/data/icons/32x32/goa-account-msn.png b/data/icons/32x32/goa-account-msn.png new file mode 100644 index 0000000..f67aa22 Binary files /dev/null and b/data/icons/32x32/goa-account-msn.png differ diff --git a/data/icons/32x32/goa-account-owncloud.png b/data/icons/32x32/goa-account-owncloud.png new file mode 100644 index 0000000..b748019 Binary files /dev/null and b/data/icons/32x32/goa-account-owncloud.png differ diff --git a/data/icons/32x32/goa-account-pocket.png b/data/icons/32x32/goa-account-pocket.png new file mode 100644 index 0000000..3f4cd66 Binary files /dev/null and b/data/icons/32x32/goa-account-pocket.png differ diff --git a/data/icons/32x32/goa-account-todoist.png b/data/icons/32x32/goa-account-todoist.png new file mode 100644 index 0000000..7c29d64 Binary files /dev/null and b/data/icons/32x32/goa-account-todoist.png differ diff --git a/data/icons/32x32/goa-account.png b/data/icons/32x32/goa-account.png new file mode 100644 index 0000000..9e641ec Binary files /dev/null and b/data/icons/32x32/goa-account.png differ diff --git a/data/icons/48x48/Makefile.am b/data/icons/48x48/Makefile.am new file mode 100644 index 0000000..8232309 --- /dev/null +++ b/data/icons/48x48/Makefile.am @@ -0,0 +1,22 @@ +NULL = + +icondir = $(datadir)/icons/hicolor/48x48/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-flickr.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/48x48/Makefile.in b/data/icons/48x48/Makefile.in new file mode 100644 index 0000000..61cd09c --- /dev/null +++ b/data/icons/48x48/Makefile.in @@ -0,0 +1,607 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/48x48 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +icondir = $(datadir)/icons/hicolor/48x48/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-flickr.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/48x48/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/48x48/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconDATA + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/icons/48x48/goa-account-facebook.png b/data/icons/48x48/goa-account-facebook.png new file mode 100644 index 0000000..33b746a Binary files /dev/null and b/data/icons/48x48/goa-account-facebook.png differ diff --git a/data/icons/48x48/goa-account-flickr.png b/data/icons/48x48/goa-account-flickr.png new file mode 100644 index 0000000..15a2a95 Binary files /dev/null and b/data/icons/48x48/goa-account-flickr.png differ diff --git a/data/icons/48x48/goa-account-foursquare.png b/data/icons/48x48/goa-account-foursquare.png new file mode 100644 index 0000000..0e14443 Binary files /dev/null and b/data/icons/48x48/goa-account-foursquare.png differ diff --git a/data/icons/48x48/goa-account-google.png b/data/icons/48x48/goa-account-google.png new file mode 100644 index 0000000..8d80315 Binary files /dev/null and b/data/icons/48x48/goa-account-google.png differ diff --git a/data/icons/48x48/goa-account-msn.png b/data/icons/48x48/goa-account-msn.png new file mode 100644 index 0000000..0199248 Binary files /dev/null and b/data/icons/48x48/goa-account-msn.png differ diff --git a/data/icons/48x48/goa-account-owncloud.png b/data/icons/48x48/goa-account-owncloud.png new file mode 100644 index 0000000..80f7f7c Binary files /dev/null and b/data/icons/48x48/goa-account-owncloud.png differ diff --git a/data/icons/48x48/goa-account-pocket.png b/data/icons/48x48/goa-account-pocket.png new file mode 100644 index 0000000..a8a9dc4 Binary files /dev/null and b/data/icons/48x48/goa-account-pocket.png differ diff --git a/data/icons/48x48/goa-account-todoist.png b/data/icons/48x48/goa-account-todoist.png new file mode 100644 index 0000000..449e452 Binary files /dev/null and b/data/icons/48x48/goa-account-todoist.png differ diff --git a/data/icons/48x48/goa-account.png b/data/icons/48x48/goa-account.png new file mode 100644 index 0000000..5edaf1c Binary files /dev/null and b/data/icons/48x48/goa-account.png differ diff --git a/data/icons/96x96/Makefile.am b/data/icons/96x96/Makefile.am new file mode 100644 index 0000000..bc174ef --- /dev/null +++ b/data/icons/96x96/Makefile.am @@ -0,0 +1,22 @@ +NULL = + +icondir = $(datadir)/icons/hicolor/96x96/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-flickr.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/96x96/Makefile.in b/data/icons/96x96/Makefile.in new file mode 100644 index 0000000..988cea5 --- /dev/null +++ b/data/icons/96x96/Makefile.in @@ -0,0 +1,607 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons/96x96 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(icondir)" +DATA = $(icon_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +icondir = $(datadir)/icons/hicolor/96x96/apps +icon_DATA = \ + goa-account.png \ + goa-account-facebook.png \ + goa-account-google.png \ + goa-account-msn.png \ + goa-account-owncloud.png \ + goa-account-pocket.png \ + goa-account-flickr.png \ + goa-account-foursquare.png \ + goa-account-todoist.png \ + $(NULL) + +EXTRA_DIST = \ + $(icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/96x96/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/96x96/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-iconDATA: $(icon_DATA) + @$(NORMAL_INSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ + done + +uninstall-iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(icondir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-iconDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-iconDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-iconDATA install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-iconDATA + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/icons/96x96/goa-account-facebook.png b/data/icons/96x96/goa-account-facebook.png new file mode 100644 index 0000000..465b25f Binary files /dev/null and b/data/icons/96x96/goa-account-facebook.png differ diff --git a/data/icons/96x96/goa-account-flickr.png b/data/icons/96x96/goa-account-flickr.png new file mode 100644 index 0000000..58d76dc Binary files /dev/null and b/data/icons/96x96/goa-account-flickr.png differ diff --git a/data/icons/96x96/goa-account-foursquare.png b/data/icons/96x96/goa-account-foursquare.png new file mode 100644 index 0000000..fa25a75 Binary files /dev/null and b/data/icons/96x96/goa-account-foursquare.png differ diff --git a/data/icons/96x96/goa-account-google.png b/data/icons/96x96/goa-account-google.png new file mode 100644 index 0000000..01b91b5 Binary files /dev/null and b/data/icons/96x96/goa-account-google.png differ diff --git a/data/icons/96x96/goa-account-msn.png b/data/icons/96x96/goa-account-msn.png new file mode 100644 index 0000000..a604ba7 Binary files /dev/null and b/data/icons/96x96/goa-account-msn.png differ diff --git a/data/icons/96x96/goa-account-owncloud.png b/data/icons/96x96/goa-account-owncloud.png new file mode 100644 index 0000000..53ed8b0 Binary files /dev/null and b/data/icons/96x96/goa-account-owncloud.png differ diff --git a/data/icons/96x96/goa-account-pocket.png b/data/icons/96x96/goa-account-pocket.png new file mode 100644 index 0000000..42513d6 Binary files /dev/null and b/data/icons/96x96/goa-account-pocket.png differ diff --git a/data/icons/96x96/goa-account-todoist.png b/data/icons/96x96/goa-account-todoist.png new file mode 100644 index 0000000..ea9c139 Binary files /dev/null and b/data/icons/96x96/goa-account-todoist.png differ diff --git a/data/icons/96x96/goa-account.png b/data/icons/96x96/goa-account.png new file mode 100644 index 0000000..fdb7399 Binary files /dev/null and b/data/icons/96x96/goa-account.png differ diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am new file mode 100644 index 0000000..f610e85 --- /dev/null +++ b/data/icons/Makefile.am @@ -0,0 +1,21 @@ + +SUBDIRS = 16x16 22x22 24x24 32x32 48x48 96x96 256x256 + +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor + +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi + +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/data/icons/Makefile.in b/data/icons/Makefile.in new file mode 100644 index 0000000..7e69011 --- /dev/null +++ b/data/icons/Makefile.in @@ -0,0 +1,734 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = 16x16 22x22 24x24 32x32 48x48 96x96 256x256 +gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign data/icons/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-data-hook +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-hook +.MAKE: $(am__recursive_targets) install-am install-data-am \ + install-strip uninstall-am + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool clean-local \ + cscopelist-am ctags ctags-am distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-data-hook install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-hook + +.PRECIOUS: Makefile + + +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + $(gtk_update_icon_cache); \ + else \ + echo "*** Icon cache not updated. After install, run this:"; \ + echo "*** $(gtk_update_icon_cache)"; \ + fi + +install-data-hook: update-icon-cache +uninstall-hook: update-icon-cache + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/org.gnome.Identity.service.in b/data/org.gnome.Identity.service.in new file mode 100644 index 0000000..bd3b032 --- /dev/null +++ b/data/org.gnome.Identity.service.in @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.gnome.Identity +Exec=@libexecdir@/goa-identity-service diff --git a/data/org.gnome.OnlineAccounts.service.in b/data/org.gnome.OnlineAccounts.service.in new file mode 100644 index 0000000..ff2b976 --- /dev/null +++ b/data/org.gnome.OnlineAccounts.service.in @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.gnome.OnlineAccounts +Exec=@libexecdir@/goa-daemon diff --git a/data/org.gnome.online-accounts.gschema.xml b/data/org.gnome.online-accounts.gschema.xml new file mode 100644 index 0000000..46b79b2 --- /dev/null +++ b/data/org.gnome.online-accounts.gschema.xml @@ -0,0 +1,12 @@ + + + + + ['all'] + List of providers that are allowed to be loaded + + A list of strings representing the providers that are allowed to be loaded (default: 'all'). This is only evaluated on startup. + + + + diff --git a/depcomp b/depcomp new file mode 100755 index 0000000..30379e2 --- /dev/null +++ b/depcomp @@ -0,0 +1,791 @@ +#!/bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..0631321 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,107 @@ + +NULL = + +SUBDIRS = + +# The name of the module. +DOC_MODULE=goa + +# The top-level SGML file. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# Extra options to supply to gtkdoc-scan +SCAN_OPTIONS= + +# The directory containing the source code. Relative to $(srcdir) +DOC_SOURCE_DIR=$(top_srcdir)/src + +HFILE_GLOB=$(top_srcdir)/src/goa/*.h $(top_srcdir)/src/goabackend/*.h +CFILE_GLOB=$(top_srcdir)/src/goa/*.c $(top_srcdir)/src/goabackend/*.c + +# Headers to ignore +IGNORE_HFILES= \ + config.h \ + $(NULL) + +# CFLAGS and LDFLAGS for compiling scan program. Only needed +# if $(DOC_MODULE).types is non-empty. +AM_CPPFLAGS = \ + -I$(srcdir) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + $(GLIB_CFLAGS) \ + $(GIO_CFLAGS) \ + $(NULL) + +GTKDOC_LIBS = \ + $(GLIB_LIBS) \ + $(GIO_LIBS) \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(top_builddir)/src/goabackend/libgoa-backend-1.0.la \ + $(NULL) + +# Extra options to supply to gtkdoc-mkdb +MKDB_OPTIONS = --output-format=xml --sgml-mode --name-space=goa + +# Images to copy into HTML directory +HTML_IMAGES = \ + $(NULL) + +content_files = \ + $(NULL) + +expand_content_files = \ + goa-daemon.xml \ + goa-overview.xml \ + $(NULL) + +extra_files = \ + $(NULL) + +man_MANS = + +if ENABLE_DOCUMENTATION +man_MANS += \ + goa-daemon.8 \ + $(NULL) +endif + +.xml.8: + $(AM_V_GEN) $(XSLTPROC) \ + --nonet \ + --stringparam man.output.quietly 1 \ + --stringparam funcsynopsis.style ansi \ + http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< + +if ENABLE_GTK_DOC +include $(top_srcdir)/gtk-doc.make +else +EXTRA_DIST = +CLEANFILES = +endif + +EXTRA_DIST += \ + goa-daemon.xml \ + goa-overview.xml \ + version.xml.in \ + $(NULL) + +CLEANFILES += \ + $(DOC_MODULE)-decl-list.txt \ + $(DOC_MODULE)-decl.txt \ + $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE)-unused.txt \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals \ + *.stamp \ + *.8 \ + -rf xml html tmpl \ + $(NULL) + +-include $(top_srcdir)/git.mk diff --git a/doc/Makefile.in b/doc/Makefile.in new file mode 100644 index 0000000..0fe24af --- /dev/null +++ b/doc/Makefile.in @@ -0,0 +1,1208 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- mode: makefile -*- +# +# gtk-doc.make - make rules for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2004-2007 Damon Chaplin +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@ENABLE_DOCUMENTATION_TRUE@am__append_1 = \ +@ENABLE_DOCUMENTATION_TRUE@ goa-daemon.8 \ +@ENABLE_DOCUMENTATION_TRUE@ $(NULL) + +subdir = doc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = version.xml +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man8dir = $(mandir)/man8 +am__installdirs = "$(DESTDIR)$(man8dir)" +NROFF = nroff +MANS = $(man_MANS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.xml.in \ + $(top_srcdir)/gtk-doc.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +SUBDIRS = + +# The name of the module. +DOC_MODULE = goa + +# The top-level SGML file. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# Extra options to supply to gtkdoc-scan +SCAN_OPTIONS = + +# The directory containing the source code. Relative to $(srcdir) +DOC_SOURCE_DIR = $(top_srcdir)/src +HFILE_GLOB = $(top_srcdir)/src/goa/*.h $(top_srcdir)/src/goabackend/*.h +CFILE_GLOB = $(top_srcdir)/src/goa/*.c $(top_srcdir)/src/goabackend/*.c + +# Headers to ignore +IGNORE_HFILES = \ + config.h \ + $(NULL) + + +# CFLAGS and LDFLAGS for compiling scan program. Only needed +# if $(DOC_MODULE).types is non-empty. +AM_CPPFLAGS = \ + -I$(srcdir) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + $(GLIB_CFLAGS) \ + $(GIO_CFLAGS) \ + $(NULL) + +GTKDOC_LIBS = \ + $(GLIB_LIBS) \ + $(GIO_LIBS) \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(top_builddir)/src/goabackend/libgoa-backend-1.0.la \ + $(NULL) + + +# Extra options to supply to gtkdoc-mkdb +MKDB_OPTIONS = --output-format=xml --sgml-mode --name-space=goa + +# Images to copy into HTML directory +HTML_IMAGES = \ + $(NULL) + +content_files = \ + $(NULL) + +expand_content_files = \ + goa-daemon.xml \ + goa-overview.xml \ + $(NULL) + +extra_files = \ + $(NULL) + +man_MANS = $(am__append_1) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +@ENABLE_GTK_DOC_TRUE@GPATH = $(srcdir) +@ENABLE_GTK_DOC_TRUE@TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) +@ENABLE_GTK_DOC_TRUE@SETUP_FILES = \ +@ENABLE_GTK_DOC_TRUE@ $(content_files) \ +@ENABLE_GTK_DOC_TRUE@ $(expand_content_files) \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MAIN_SGML_FILE) \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-sections.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-overrides.txt + +@ENABLE_GTK_DOC_FALSE@EXTRA_DIST = goa-daemon.xml goa-overview.xml \ +@ENABLE_GTK_DOC_FALSE@ version.xml.in $(NULL) +@ENABLE_GTK_DOC_TRUE@EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) \ +@ENABLE_GTK_DOC_TRUE@ goa-daemon.xml goa-overview.xml \ +@ENABLE_GTK_DOC_TRUE@ version.xml.in $(NULL) +@ENABLE_GTK_DOC_TRUE@DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ +@ENABLE_GTK_DOC_TRUE@ html-build.stamp pdf-build.stamp \ +@ENABLE_GTK_DOC_TRUE@ sgml.stamp html.stamp pdf.stamp + +@ENABLE_GTK_DOC_TRUE@SCANOBJ_FILES = \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).args \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).hierarchy \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).interfaces \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).prerequisites \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).signals + +@ENABLE_GTK_DOC_TRUE@REPORT_FILES = \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-undocumented.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-undeclared.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-unused.txt + +@ENABLE_GTK_DOC_FALSE@CLEANFILES = $(DOC_MODULE)-decl-list.txt \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE)-decl.txt \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE)-overrides.txt \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE)-undeclared.txt \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE)-undocumented.txt \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE)-overrides.txt \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE)-unused.txt \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE).args \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE).hierarchy \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE).interfaces \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE).prerequisites \ +@ENABLE_GTK_DOC_FALSE@ $(DOC_MODULE).signals *.stamp *.8 -rf \ +@ENABLE_GTK_DOC_FALSE@ xml html tmpl $(NULL) +@ENABLE_GTK_DOC_TRUE@CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_STAMPS) gtkdoc-check.test \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-decl-list.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-decl.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-overrides.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-undeclared.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-undocumented.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-overrides.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-unused.txt \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).args \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).hierarchy \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).interfaces \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).prerequisites \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE).signals *.stamp *.8 -rf xml \ +@ENABLE_GTK_DOC_TRUE@ html tmpl $(NULL) +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = +@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp + +#### setup #### +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_@AM_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; + +#### scan #### +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_@AM_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_@AM_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; + +#### xml #### +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML = $(GTK_DOC_V_XML_@AM_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_@AM_DEFAULT_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XML_0 = @echo " DOC Building XML"; + +#### html #### +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_@AM_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_@AM_DEFAULT_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_@AM_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_@AM_DEFAULT_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; + +#### pdf #### +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_@AM_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_@AM_DEFAULT_V@) +@ENABLE_GTK_DOC_TRUE@GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .8 .xml +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign doc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/gtk-doc.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +version.xml: $(top_builddir)/config.status $(srcdir)/version.xml.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-man8: $(man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man8dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.8[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ + done; } + +uninstall-man8: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man8dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.8[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +@ENABLE_GTK_DOC_FALSE@dist-hook: + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-recursive +@ENABLE_GTK_DOC_FALSE@all-local: +all-am: Makefile $(MANS) all-local +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(man8dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +@ENABLE_GTK_DOC_FALSE@distclean-local: +@ENABLE_GTK_DOC_FALSE@install-data-local: +@ENABLE_GTK_DOC_FALSE@uninstall-local: +@ENABLE_GTK_DOC_FALSE@clean-local: +@ENABLE_GTK_DOC_FALSE@maintainer-clean-local: +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-data-local install-man + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: install-man8 + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-local uninstall-man + +uninstall-man: uninstall-man8 + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ + check check-am clean clean-generic clean-libtool clean-local \ + cscopelist-am ctags ctags-am dist-hook distclean \ + distclean-generic distclean-libtool distclean-local \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man8 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-local uninstall-man uninstall-man8 + +.PRECIOUS: Makefile + + +.xml.8: + $(AM_V_GEN) $(XSLTPROC) \ + --nonet \ + --stringparam man.output.quietly 1 \ + --stringparam funcsynopsis.style ansi \ + http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< + +@ENABLE_GTK_DOC_TRUE@gtkdoc-check.test: Makefile +@ENABLE_GTK_DOC_TRUE@ $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ +@ENABLE_GTK_DOC_TRUE@ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ +@ENABLE_GTK_DOC_TRUE@ chmod +x $@ + +@ENABLE_GTK_DOC_TRUE@all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +@ENABLE_GTK_DOC_TRUE@.PHONY: all-gtk-doc + +@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc + +@ENABLE_GTK_DOC_TRUE@docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +@ENABLE_GTK_DOC_TRUE@$(REPORT_FILES): sgml-build.stamp + +@ENABLE_GTK_DOC_TRUE@setup-build.stamp: +@ENABLE_GTK_DOC_TRUE@ -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ +@ENABLE_GTK_DOC_TRUE@ files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ +@ENABLE_GTK_DOC_TRUE@ if test "x$$files" != "x" ; then \ +@ENABLE_GTK_DOC_TRUE@ for file in $$files ; do \ +@ENABLE_GTK_DOC_TRUE@ destdir=`dirname $(abs_builddir)/$$file`; \ +@ENABLE_GTK_DOC_TRUE@ test -d "$$destdir" || mkdir -p "$$destdir"; \ +@ENABLE_GTK_DOC_TRUE@ test -f $(abs_srcdir)/$$file && \ +@ENABLE_GTK_DOC_TRUE@ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch setup-build.stamp + +@ENABLE_GTK_DOC_TRUE@scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) +@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_SCAN)_source_dir='' ; \ +@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \ +@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \ +@ENABLE_GTK_DOC_TRUE@ done ; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) +@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ +@ENABLE_GTK_DOC_TRUE@ scanobj_options=""; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$$?" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ scanobj_options="--verbose"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ +@ENABLE_GTK_DOC_TRUE@ else \ +@ENABLE_GTK_DOC_TRUE@ for i in $(SCANOBJ_FILES) ; do \ +@ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \ +@ENABLE_GTK_DOC_TRUE@ done \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch scan-build.stamp + +@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent +@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_XML)_source_dir='' ; \ +@ENABLE_GTK_DOC_TRUE@ for i in $(DOC_SOURCE_DIR) ; do \ +@ENABLE_GTK_DOC_TRUE@ _source_dir="$${_source_dir} --source-dir=$$i" ; \ +@ENABLE_GTK_DOC_TRUE@ done ; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) +@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch sgml-build.stamp + +@ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +@ENABLE_GTK_DOC_TRUE@$(DOC_MAIN_SGML_FILE): sgml-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +@ENABLE_GTK_DOC_TRUE@xml/gtkdocentities.ent: Makefile +@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ +@ENABLE_GTK_DOC_TRUE@ echo ""; \ +@ENABLE_GTK_DOC_TRUE@ echo ""; \ +@ENABLE_GTK_DOC_TRUE@ echo ""; \ +@ENABLE_GTK_DOC_TRUE@ echo ""; \ +@ENABLE_GTK_DOC_TRUE@ echo ""; \ +@ENABLE_GTK_DOC_TRUE@ echo ""; \ +@ENABLE_GTK_DOC_TRUE@ echo ""; \ +@ENABLE_GTK_DOC_TRUE@ ) > $@ + +@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) +@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ +@ENABLE_GTK_DOC_TRUE@ mkhtml_options=""; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$$?" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ mkhtml_options="$$mkhtml_options --verbose"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$$?" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) +@ENABLE_GTK_DOC_TRUE@ -@test "x$(HTML_IMAGES)" = "x" || \ +@ENABLE_GTK_DOC_TRUE@ for file in $(HTML_IMAGES) ; do \ +@ENABLE_GTK_DOC_TRUE@ test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ +@ENABLE_GTK_DOC_TRUE@ test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ +@ENABLE_GTK_DOC_TRUE@ done; +@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) +@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch html-build.stamp + +@ENABLE_GTK_DOC_TRUE@pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) +@ENABLE_GTK_DOC_TRUE@ $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ +@ENABLE_GTK_DOC_TRUE@ mkpdf_options=""; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ +@ENABLE_GTK_DOC_TRUE@ if test "$$?" = "0"; then \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(V)" = "x1"; then \ +@ENABLE_GTK_DOC_TRUE@ mkpdf_options="$$mkpdf_options --verbose"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ if test "x$(HTML_IMAGES)" != "x"; then \ +@ENABLE_GTK_DOC_TRUE@ for img in $(HTML_IMAGES); do \ +@ENABLE_GTK_DOC_TRUE@ part=`dirname $$img`; \ +@ENABLE_GTK_DOC_TRUE@ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ +@ENABLE_GTK_DOC_TRUE@ if test $$? != 0; then \ +@ENABLE_GTK_DOC_TRUE@ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) +@ENABLE_GTK_DOC_TRUE@ $(AM_V_at)touch pdf-build.stamp + +############## + +@ENABLE_GTK_DOC_TRUE@clean-local: +@ENABLE_GTK_DOC_TRUE@ @rm -f *~ *.bak +@ENABLE_GTK_DOC_TRUE@ @rm -rf .libs +@ENABLE_GTK_DOC_TRUE@ @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ +@ENABLE_GTK_DOC_TRUE@ rm -f $(DOC_MODULE).types; \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_TRUE@ @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ +@ENABLE_GTK_DOC_TRUE@ rm -f $(DOC_MODULE)-sections.txt; \ +@ENABLE_GTK_DOC_TRUE@ fi + +@ENABLE_GTK_DOC_TRUE@distclean-local: +@ENABLE_GTK_DOC_TRUE@ @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ +@ENABLE_GTK_DOC_TRUE@ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt +@ENABLE_GTK_DOC_TRUE@ @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ +@ENABLE_GTK_DOC_TRUE@ rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ +@ENABLE_GTK_DOC_TRUE@ fi + +@ENABLE_GTK_DOC_TRUE@maintainer-clean-local: +@ENABLE_GTK_DOC_TRUE@ @rm -rf xml html + +@ENABLE_GTK_DOC_TRUE@install-data-local: +@ENABLE_GTK_DOC_TRUE@ @installfiles=`echo $(builddir)/html/*`; \ +@ENABLE_GTK_DOC_TRUE@ if test "$$installfiles" = '$(builddir)/html/*'; \ +@ENABLE_GTK_DOC_TRUE@ then echo 1>&2 'Nothing to install' ; \ +@ENABLE_GTK_DOC_TRUE@ else \ +@ENABLE_GTK_DOC_TRUE@ if test -n "$(DOC_MODULE_VERSION)"; then \ +@ENABLE_GTK_DOC_TRUE@ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ +@ENABLE_GTK_DOC_TRUE@ else \ +@ENABLE_GTK_DOC_TRUE@ installdir="$(DESTDIR)$(TARGET_DIR)"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ $(mkinstalldirs) $${installdir} ; \ +@ENABLE_GTK_DOC_TRUE@ for i in $$installfiles; do \ +@ENABLE_GTK_DOC_TRUE@ echo ' $(INSTALL_DATA) '$$i ; \ +@ENABLE_GTK_DOC_TRUE@ $(INSTALL_DATA) $$i $${installdir}; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ if test -n "$(DOC_MODULE_VERSION)"; then \ +@ENABLE_GTK_DOC_TRUE@ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ +@ENABLE_GTK_DOC_TRUE@ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ +@ENABLE_GTK_DOC_TRUE@ fi + +@ENABLE_GTK_DOC_TRUE@uninstall-local: +@ENABLE_GTK_DOC_TRUE@ @if test -n "$(DOC_MODULE_VERSION)"; then \ +@ENABLE_GTK_DOC_TRUE@ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ +@ENABLE_GTK_DOC_TRUE@ else \ +@ENABLE_GTK_DOC_TRUE@ installdir="$(DESTDIR)$(TARGET_DIR)"; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +@ENABLE_GTK_DOC_TRUE@@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs +@ENABLE_GTK_DOC_TRUE@@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_TRUE@@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" +@ENABLE_GTK_DOC_TRUE@@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" +@ENABLE_GTK_DOC_TRUE@@HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" +@ENABLE_GTK_DOC_TRUE@@HAVE_GTK_DOC_FALSE@ @false + +@ENABLE_GTK_DOC_TRUE@dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local +@ENABLE_GTK_DOC_TRUE@ @mkdir $(distdir)/html +@ENABLE_GTK_DOC_TRUE@ @cp ./html/* $(distdir)/html +@ENABLE_GTK_DOC_TRUE@ @-cp ./$(DOC_MODULE).pdf $(distdir)/ +@ENABLE_GTK_DOC_TRUE@ @-cp ./$(DOC_MODULE).types $(distdir)/ +@ENABLE_GTK_DOC_TRUE@ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ +@ENABLE_GTK_DOC_TRUE@ @cd $(distdir) && rm -f $(DISTCLEANFILES) +@ENABLE_GTK_DOC_TRUE@ @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +@ENABLE_GTK_DOC_TRUE@.PHONY : dist-hook-local docs + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/doc/goa-daemon.xml b/doc/goa-daemon.xml new file mode 100644 index 0000000..39da9a6 --- /dev/null +++ b/doc/goa-daemon.xml @@ -0,0 +1,119 @@ + + + goa-daemon + April 2011 + GNOME + + + + goa-daemon + 8 + + + + + goa-daemon + GNOME Online Accounts Daemon + + + + + goa-daemon + + + + + + + + DESCRIPTION + + The goa-daemon program provides the + org.gnome.OnlineAccounts name on the + session message bus. Users or administrators should never need + to start this daemon as it will be automatically started by + dbus-daemon1 + whenever an application sends a D-Bus message to the + org.gnome.OnlineAccounts name on the + session bus. + + + + + CONFIGURATION FILE + + The goa-daemon program stores configuration + in the + $XDG_CONFIG_HOME/goa-1.0/accounts.conf + (typically + ~/.config/goa-1.0/accounts.conf) + file. The format of this file is private and 3rd party programs + or libraries should never read it. This file does not contain + any passwords or secrets. + + + See the XDG + Base Directory Specification for more information about + $XDG_CONFIG_HOME. + + + + + SECRETS + + The goa-daemon program stores secrets (such as + OAuth tokens) in + GNOME Keyring. + The format of the stored secrets is private and 3rd party + programs or libraries should never read, modify or delete these secrets. + + + + + OPTIONS + + + + + + Replace existing instance. + + + + + + + + Show help options. + + + + + + + AUTHOR + + Written by David Zeuthen with + a lot of help from many others. + + + + + BUGS + + Please send bug reports to either the distribution bug tracker + or the upstream bug tracker at + . + + + + + SEE ALSO + + + dbus-daemon1 + + + + diff --git a/doc/goa-docs.xml b/doc/goa-docs.xml new file mode 100644 index 0000000..0abb53a --- /dev/null +++ b/doc/goa-docs.xml @@ -0,0 +1,194 @@ + + +]> + + + GNOME Online Accounts Reference Manual + Version &version; + + + David + Zeuthen + +
+ zeuthen@gmail.com +
+
+
+ + Debarshi + Ray + +
+ debarshir@gnome.org +
+
+
+
+ + + 2011 – 2017 + The GOA Authors + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free + Documentation License, Version 1.1 or any later + version published by the Free Software Foundation with no + Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. You may obtain a copy of the GNU Free + Documentation License from the Free Software + Foundation by visiting their Web site or by writing + to: +
+ 51 Franklin Street, Suite 500 + Boston, MA 02110-1335 + USA +
+
+ + Many of the names used by companies to distinguish their + products and services are claimed as trademarks. Where those + names appear in any GNOME documentation, and those trademarks + are made aware to the members of the GNOME project, the names + have been printed in caps or initial caps. + +
+
+ + + + + D-Bus API Reference + + Objects & Names + + The org.gnome.OnlineAccounts bus name + + The D-Bus name org.gnome.OnlineAccounts + on the session bus is used by the GOA daemon, goa-daemon. If this daemon + isn't running, it will be started if D-Bus messages are sent + to the name. + + + + The /org/gnome/OnlineAccounts and /org/gnome/OnlineAccounts/Manager objects + + The process that owns the well-known D-Bus name org.gnome.OnlineAccounts + on the session bus (typically goa-daemon) exports an object + at the well-known path + /org/gnome/OnlineAccounts. This object + implements the org.freedesktop.DBus.ObjectManager + interface and should be used by clients to discover other + objects. + + + One of the objects in the + /org/gnome/OnlineAccounts hierarchy + is an object at the path + /org/gnome/OnlineAccounts/Manager which + implements the org.gnome.OnlineAccounts.Manager + interface. + + + + + + Core Interfaces + + + + + Credentials Interfaces + + + + + + Service-specific Interfaces + + + + + + + + + + + + + + + + + + + Client Library API Reference + + + + + Generated Code + + + + + + + + + + + + + + + + + + + + + + + + + + + Backend Library API Reference + + Core + + + + + + + + + Tools, File Formats and Manual Pages + + + + + Index + + + + Object Hierarchy + + + + +
diff --git a/doc/goa-overrides.txt b/doc/goa-overrides.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doc/goa-overrides.txt diff --git a/doc/goa-overview.xml b/doc/goa-overview.xml new file mode 100644 index 0000000..2afc0eb --- /dev/null +++ b/doc/goa-overview.xml @@ -0,0 +1,125 @@ + + +]> + + GNOME Online Accounts Overview + + + Writing GOA applications + + The term GOA application is used to + describe applications or libraries that are using the GNOME Online Accounts D-Bus APIs + either directly or through the supplied client library. + + + + Account Objects + + A GOA application typically creates #GoaClient object to get a + list of accounts and listen for changes. Each account provide + one or more specific services (such as mail, + calendaring + or contacts) + so the application will need to set up a filter for the + services it is interested in. For example, a mail application + would only be interested in GOA accounts with mail- and + contacts-services, not accounts with + calendaring-services. Applications can use methods on the + #GoaObject type (such as goa_object_peek_mail()) to check what + kind of services an account provides. Note that this list can + change at run-time if e.g. the user toggles a Use + account for Mail check-button. + + + Applications may use the Account.Id + property as a unique key to store information obtained from + an account. + + + Applications must not destroy data if an account object is + removed (e.g. when the #GoaClient::account-removed signal is + emitted) - for example, if the goa-daemon + program crashes or is restarted on software upgrade, account + objects will be removed only to be added back the next time + goa-daemon is started. + + + Applications should use the + Account.ProviderIcon, + Account.ProviderName + and + Account.PresentationIdentity + properties when presenting an account in an user interface. + For example, for a hypothetical online services provider Acme, + this would be the Acme Logo, the word "Acme" and the identity + could be either an email address such as + or an user + handle such as davidz25 or + chunkylover53. + + + + + Accessing Services + + A GOA application needs to handle service-specific protocols + and quirks itself. Some service-types, such as mail, may + use standard protocols such as IMAP or + SMTP + but they also may not. GOA applications should always look at + the Account.ProviderType + property to infer what kind of protocol and endpoint to use. + + + + + Credentials Handling + + For accessing a service, the application typically needs to + present credentials. The application can request the + credentials via GOA. First the application should invoke the + Account.EnsureCredentials() + method on the account object. If this succeeds, the + application can request the credentials using e.g. OAuthBased.GetAccessToken() + or OAuth2Based.GetAccessToken() + depending on what kind of credentials the account is using. + If the service returns an authorization error (say, the access + token expired), the application should call Account.EnsureCredentials() + again to e.g. renew the credentials. + + + On the other hand, if Account.EnsureCredentials() + ever fails, then the user will get notified that there is a + problem with the account so he can take actions to fix it. + Applications can listen to changes on the Account.AttentionNeeded + property to get notified when it's time to try accessing the + account again. + + + Note that the implementation for a provider may switch from + e.g. OAuth to OAuth2 in a newer release of GNOME Online + Accounts. Therefore, applications must never assume that the + #GoaObject for an account implements a fixed set of + interfaces. + + + + + diff --git a/doc/goa-sections.txt b/doc/goa-sections.txt new file mode 100644 index 0000000..306846e --- /dev/null +++ b/doc/goa-sections.txt @@ -0,0 +1,1224 @@ +
+GoaManager +GoaManager +GoaManagerIface +goa_manager_interface_info +goa_manager_override_properties +goa_manager_call_add_account +goa_manager_call_add_account_finish +goa_manager_call_add_account_sync +goa_manager_complete_add_account +GoaManagerProxy +GoaManagerProxyClass +goa_manager_proxy_new +goa_manager_proxy_new_finish +goa_manager_proxy_new_sync +goa_manager_proxy_new_for_bus +goa_manager_proxy_new_for_bus_finish +goa_manager_proxy_new_for_bus_sync +GoaManagerSkeleton +GoaManagerSkeletonClass +goa_manager_skeleton_new + +GOA_TYPE_MANAGER +GOA_IS_MANAGER +GOA_MANAGER +GOA_MANAGER_GET_IFACE +GOA_TYPE_MANAGER_PROXY +GOA_IS_MANAGER_PROXY +GOA_IS_MANAGER_PROXY_CLASS +GOA_MANAGER_PROXY +GOA_MANAGER_PROXY_CLASS +GOA_MANAGER_PROXY_GET_CLASS +GOA_TYPE_MANAGER_SKELETON +GOA_IS_MANAGER_SKELETON +GOA_IS_MANAGER_SKELETON_CLASS +GOA_MANAGER_SKELETON +GOA_MANAGER_SKELETON_CLASS +GOA_MANAGER_SKELETON_GET_CLASS +GoaManagerProxyPrivate +GoaManagerSkeletonPrivate +goa_manager_get_type +goa_manager_proxy_get_type +goa_manager_skeleton_get_type +
+ +
+GoaObject +GoaObject +GoaObject +GoaObjectIface +goa_object_get_manager +goa_object_get_account +goa_object_get_oauth_based +goa_object_get_oauth2_based +goa_object_get_mail +goa_object_get_calendar +goa_object_get_contacts +goa_object_get_chat +goa_object_get_documents +goa_object_get_maps +goa_object_get_media_server +goa_object_get_music +goa_object_get_photos +goa_object_get_printers +goa_object_get_files +goa_object_get_exchange +goa_object_get_todo +goa_object_peek_manager +goa_object_peek_account +goa_object_peek_oauth_based +goa_object_peek_oauth2_based +goa_object_peek_mail +goa_object_peek_calendar +goa_object_peek_contacts +goa_object_peek_chat +goa_object_peek_documents +goa_object_peek_maps +goa_object_peek_media_server +goa_object_peek_music +goa_object_peek_photos +goa_object_peek_printers +goa_object_peek_files +goa_object_peek_exchange +goa_object_peek_todo +GoaObjectProxy +GoaObjectProxyClass +goa_object_proxy_new +GoaObjectSkeleton +GoaObjectSkeletonClass +goa_object_skeleton_new +goa_object_skeleton_set_manager +goa_object_skeleton_set_account +goa_object_skeleton_set_oauth_based +goa_object_skeleton_set_oauth2_based +goa_object_skeleton_set_mail +goa_object_skeleton_set_calendar +goa_object_skeleton_set_contacts +goa_object_skeleton_set_chat +goa_object_skeleton_set_documents +goa_object_skeleton_set_maps +goa_object_skeleton_set_music +goa_object_skeleton_set_photos +goa_object_skeleton_set_files +goa_object_skeleton_set_exchange + +goa_object_get_type +goa_object_proxy_get_type +goa_object_skeleton_get_type +GoaObjectProxyPrivate +GoaObjectSkeletonPrivate +GOA_IS_OBJECT +GOA_IS_OBJECT_PROXY +GOA_IS_OBJECT_PROXY_CLASS +GOA_IS_OBJECT_SKELETON +GOA_IS_OBJECT_SKELETON_CLASS +GOA_OBJECT +GOA_OBJECT_GET_IFACE +GOA_OBJECT_PROXY +GOA_OBJECT_PROXY_CLASS +GOA_OBJECT_PROXY_GET_CLASS +GOA_OBJECT_SKELETON +GOA_OBJECT_SKELETON_CLASS +GOA_OBJECT_SKELETON_GET_CLASS +GOA_TYPE_OBJECT +GOA_TYPE_OBJECT_PROXY +GOA_TYPE_OBJECT_SKELETON +
+ +
+GoaAccount +GoaAccount +GoaAccountIface +goa_account_interface_info +goa_account_override_properties +goa_account_get_provider_type +goa_account_dup_provider_type +goa_account_set_provider_type +goa_account_get_provider_name +goa_account_dup_provider_name +goa_account_set_provider_name +goa_account_get_provider_icon +goa_account_dup_provider_icon +goa_account_set_provider_icon +goa_account_get_id +goa_account_dup_id +goa_account_set_id +goa_account_get_is_locked +goa_account_set_is_locked +goa_account_get_is_temporary +goa_account_set_is_temporary +goa_account_get_attention_needed +goa_account_set_attention_needed +goa_account_get_identity +goa_account_dup_identity +goa_account_set_identity +goa_account_get_presentation_identity +goa_account_dup_presentation_identity +goa_account_set_presentation_identity +goa_account_get_mail_disabled +goa_account_set_mail_disabled +goa_account_get_calendar_disabled +goa_account_set_calendar_disabled +goa_account_get_contacts_disabled +goa_account_set_contacts_disabled +goa_account_get_chat_disabled +goa_account_set_chat_disabled +goa_account_get_documents_disabled +goa_account_set_documents_disabled +goa_account_get_maps_disabled +goa_account_set_maps_disabled +goa_account_get_music_disabled +goa_account_set_music_disabled +goa_account_get_photos_disabled +goa_account_set_photos_disabled +goa_account_get_printers_disabled +goa_account_set_printers_disabled +goa_account_get_files_disabled +goa_account_set_files_disabled +goa_account_get_ticketing_disabled +goa_account_set_ticketing_disabled +goa_account_get_todo_disabled +goa_account_set_todo_disabled +goa_account_call_ensure_credentials +goa_account_call_ensure_credentials_finish +goa_account_call_ensure_credentials_sync +goa_account_complete_ensure_credentials +goa_account_call_remove +goa_account_call_remove_finish +goa_account_call_remove_sync +goa_account_complete_remove +GoaAccountProxy +GoaAccountProxyClass +goa_account_proxy_new +goa_account_proxy_new_finish +goa_account_proxy_new_sync +goa_account_proxy_new_for_bus +goa_account_proxy_new_for_bus_finish +goa_account_proxy_new_for_bus_sync +GoaAccountSkeleton +GoaAccountSkeletonClass +goa_account_skeleton_new + +GOA_TYPE_ACCOUNT +GOA_IS_ACCOUNT +GOA_ACCOUNT +GOA_ACCOUNT_GET_IFACE +GOA_TYPE_ACCOUNT_PROXY +GOA_IS_ACCOUNT_PROXY +GOA_IS_ACCOUNT_PROXY_CLASS +GOA_ACCOUNT_PROXY +GOA_ACCOUNT_PROXY_CLASS +GOA_ACCOUNT_PROXY_GET_CLASS +GOA_TYPE_ACCOUNT_SKELETON +GOA_IS_ACCOUNT_SKELETON +GOA_IS_ACCOUNT_SKELETON_CLASS +GOA_ACCOUNT_SKELETON +GOA_ACCOUNT_SKELETON_CLASS +GOA_ACCOUNT_SKELETON_GET_CLASS +GoaAccountProxyPrivate +GoaAccountSkeletonPrivate +goa_account_get_type +goa_account_proxy_get_type +goa_account_skeleton_get_type +
+ +
+GoaOAuth2Based +GoaOAuth2Based +GoaOAuth2BasedIface +goa_oauth2_based_interface_info +goa_oauth2_based_override_properties +goa_oauth2_based_get_client_id +goa_oauth2_based_set_client_id +goa_oauth2_based_dup_client_id +goa_oauth2_based_get_client_secret +goa_oauth2_based_set_client_secret +goa_oauth2_based_dup_client_secret +goa_oauth2_based_call_get_access_token +goa_oauth2_based_call_get_access_token_finish +goa_oauth2_based_call_get_access_token_sync +goa_oauth2_based_complete_get_access_token +GoaOAuth2BasedProxy +GoaOAuth2BasedProxyClass +goa_oauth2_based_proxy_new +goa_oauth2_based_proxy_new_finish +goa_oauth2_based_proxy_new_sync +goa_oauth2_based_proxy_new_for_bus +goa_oauth2_based_proxy_new_for_bus_finish +goa_oauth2_based_proxy_new_for_bus_sync +GoaOAuth2BasedSkeleton +GoaOAuth2BasedSkeletonClass +goa_oauth2_based_skeleton_new + +GOA_OAUTH2_BASED +GOA_OAUTH2_BASED_GET_IFACE +GOA_OAUTH2_BASED_PROXY +GOA_OAUTH2_BASED_PROXY_CLASS +GOA_OAUTH2_BASED_PROXY_GET_CLASS +GOA_OAUTH2_BASED_SKELETON +GOA_OAUTH2_BASED_SKELETON_CLASS +GOA_OAUTH2_BASED_SKELETON_GET_CLASS +GOA_IS_OAUTH2_BASED +GOA_IS_OAUTH2_BASED_PROXY +GOA_IS_OAUTH2_BASED_PROXY_CLASS +GOA_IS_OAUTH2_BASED_SKELETON +GOA_IS_OAUTH2_BASED_SKELETON_CLASS +GOA_TYPE_OAUTH2_BASED +GOA_TYPE_OAUTH2_BASED_PROXY +GOA_TYPE_OAUTH2_BASED_SKELETON +GoaOAuth2BasedProxyPrivate +GoaOAuth2BasedSkeletonPrivate +goa_oauth2_based_get_type +goa_oauth2_based_proxy_get_type +goa_oauth2_based_skeleton_get_type +
+ +
+GoaOAuthBased +GoaOAuthBased +GoaOAuthBasedIface +goa_oauth_based_interface_info +goa_oauth_based_override_properties +goa_oauth_based_call_get_access_token +goa_oauth_based_call_get_access_token_finish +goa_oauth_based_call_get_access_token_sync +goa_oauth_based_complete_get_access_token +goa_oauth_based_get_consumer_key +goa_oauth_based_dup_consumer_key +goa_oauth_based_set_consumer_key +goa_oauth_based_get_consumer_secret +goa_oauth_based_dup_consumer_secret +goa_oauth_based_set_consumer_secret +GoaOAuthBasedProxy +GoaOAuthBasedProxyClass +goa_oauth_based_proxy_new +goa_oauth_based_proxy_new_finish +goa_oauth_based_proxy_new_sync +goa_oauth_based_proxy_new_for_bus +goa_oauth_based_proxy_new_for_bus_finish +goa_oauth_based_proxy_new_for_bus_sync +GoaOAuthBasedSkeleton +GoaOAuthBasedSkeletonClass +goa_oauth_based_skeleton_new + +GOA_OAUTH_BASED +GOA_OAUTH_BASED_GET_IFACE +GOA_OAUTH_BASED_PROXY +GOA_OAUTH_BASED_PROXY_CLASS +GOA_OAUTH_BASED_PROXY_GET_CLASS +GOA_OAUTH_BASED_SKELETON +GOA_OAUTH_BASED_SKELETON_CLASS +GOA_OAUTH_BASED_SKELETON_GET_CLASS +GOA_IS_OAUTH_BASED +GOA_IS_OAUTH_BASED_PROXY +GOA_IS_OAUTH_BASED_PROXY_CLASS +GOA_IS_OAUTH_BASED_SKELETON +GOA_IS_OAUTH_BASED_SKELETON_CLASS +GOA_TYPE_OAUTH_BASED +GOA_TYPE_OAUTH_BASED_PROXY +GOA_TYPE_OAUTH_BASED_SKELETON +GoaOAuthBasedProxyPrivate +GoaOAuthBasedSkeletonPrivate +goa_oauth_based_get_type +goa_oauth_based_proxy_get_type +goa_oauth_based_skeleton_get_type +
+ +
+GoaPasswordBased +GoaPasswordBased +GoaPasswordBasedIface +goa_password_based_interface_info +goa_password_based_override_properties +goa_password_based_call_get_password +goa_password_based_call_get_password_finish +goa_password_based_call_get_password_sync +goa_password_based_complete_get_password +GoaPasswordBasedProxy +GoaPasswordBasedProxyClass +goa_password_based_proxy_new +goa_password_based_proxy_new_finish +goa_password_based_proxy_new_sync +goa_password_based_proxy_new_for_bus +goa_password_based_proxy_new_for_bus_finish +goa_password_based_proxy_new_for_bus_sync +GoaPasswordBasedSkeleton +GoaPasswordBasedSkeletonClass +goa_password_based_skeleton_new + +GOA_PASSWORD_BASED +GOA_PASSWORD_BASED_GET_IFACE +GOA_PASSWORD_BASED_PROXY +GOA_PASSWORD_BASED_PROXY_CLASS +GOA_PASSWORD_BASED_PROXY_GET_CLASS +GOA_PASSWORD_BASED_SKELETON +GOA_PASSWORD_BASED_SKELETON_CLASS +GOA_PASSWORD_BASED_SKELETON_GET_CLASS +GOA_IS_PASSWORD_BASED +GOA_IS_PASSWORD_BASED_PROXY +GOA_IS_PASSWORD_BASED_PROXY_CLASS +GOA_IS_PASSWORD_BASED_SKELETON +GOA_IS_PASSWORD_BASED_SKELETON_CLASS +GOA_TYPE_PASSWORD_BASED +GOA_TYPE_PASSWORD_BASED_PROXY +GOA_TYPE_PASSWORD_BASED_SKELETON +GoaPasswordBasedProxyPrivate +GoaPasswordBasedSkeletonPrivate +goa_password_based_get_type +goa_password_based_proxy_get_type +goa_password_based_skeleton_get_type +
+ +
+GoaObjectManagerClient +GoaObjectManagerClient +GoaObjectManagerClientClass +goa_object_manager_client_get_proxy_type +goa_object_manager_client_new +goa_object_manager_client_new_finish +goa_object_manager_client_new_for_bus +goa_object_manager_client_new_for_bus_finish +goa_object_manager_client_new_for_bus_sync +goa_object_manager_client_new_sync + +GOA_IS_OBJECT_MANAGER_CLIENT +GOA_IS_OBJECT_MANAGER_CLIENT_CLASS +GOA_OBJECT_MANAGER_CLIENT +GOA_OBJECT_MANAGER_CLIENT_CLASS +GOA_OBJECT_MANAGER_CLIENT_GET_CLASS +GOA_TYPE_OBJECT_MANAGER_CLIENT +GoaObjectManagerClientPrivate +goa_object_manager_client_get_type +
+ +
+goaclient +GoaClient +goa_client_new +goa_client_new_finish +goa_client_new_sync +goa_client_get_manager +goa_client_get_accounts +goa_client_get_object_manager +goa_client_lookup_by_id + +GOA_CLIENT +GOA_IS_CLIENT +GOA_TYPE_CLIENT +goa_client_get_type +
+ +
+goaerror +GOA_ERROR +GoaError + +goa_error_quark +GOA_ERROR_NUM_ENTRIES +GOA_TYPE_ERROR +goa_error_get_type +
+ +
+Version Information +goaversion +goa_major_version +goa_minor_version +goa_micro_version +goa_check_version + +GOA_MAJOR_VERSION +GOA_MINOR_VERSION +GOA_MICRO_VERSION +GOA_CHECK_VERSION +
+ +
+goaprovider +GoaProvider +GoaProviderClass +GoaProviderGroup +GoaProviderFeatures +goa_provider_get_provider_type +goa_provider_get_provider_name +goa_provider_get_provider_icon +goa_provider_get_provider_group +goa_provider_get_provider_features +goa_provider_build_object +goa_provider_add_account +goa_provider_set_preseed_data +goa_provider_get_preseed_data +goa_provider_refresh_account +goa_provider_show_account +goa_provider_ensure_credentials +goa_provider_ensure_credentials_finish +goa_provider_ensure_credentials_sync +goa_provider_get_credentials_generation +GOA_PROVIDER_EXTENSION_POINT_NAME +goa_provider_get_all +goa_provider_get_for_provider_type + +GOA_PROVIDER +GOA_PROVIDER_CLASS +GOA_PROVIDER_GET_CLASS +GOA_IS_PROVIDER +GOA_IS_PROVIDER_CLASS +GOA_TYPE_PROVIDER +goa_provider_get_type +
+ +
+goaoauth2provider +GoaOAuth2Provider +GoaOAuth2ProviderClass +goa_oauth2_provider_get_authorization_uri +goa_oauth2_provider_get_token_uri +goa_oauth2_provider_get_redirect_uri +goa_oauth2_provider_get_scope +goa_oauth2_provider_get_client_id +goa_oauth2_provider_get_client_secret +goa_oauth2_provider_get_use_mobile_browser +goa_oauth2_provider_is_deny_node +goa_oauth2_provider_is_identity_node +goa_oauth2_provider_is_password_node +goa_oauth2_provider_build_authorization_uri +goa_oauth2_provider_add_account_key_values +goa_oauth2_provider_get_identity_sync +goa_oauth2_provider_get_access_token_sync +goa_oauth2_provider_process_redirect_url + +GOA_OAUTH2_PROVIDER +GOA_OAUTH2_PROVIDER_CLASS +GOA_OAUTH2_PROVIDER_GET_CLASS +GOA_IS_OAUTH2_PROVIDER +GOA_IS_OAUTH2_PROVIDER_CLASS +GOA_TYPE_OAUTH2_PROVIDER +GoaOAuth2ProviderPrivate +goa_oauth2_provider_get_type +
+ +
+goaoauthprovider +GoaOAuthProvider +GoaOAuthProviderClass +goa_oauth_provider_get_request_uri +goa_oauth_provider_get_request_uri_params +goa_oauth_provider_get_authorization_uri +goa_oauth_provider_get_token_uri +goa_oauth_provider_get_callback_uri +goa_oauth_provider_get_consumer_key +goa_oauth_provider_get_consumer_secret +goa_oauth_provider_build_authorization_uri +goa_oauth_provider_get_use_mobile_browser +goa_oauth_provider_is_deny_node +goa_oauth_provider_is_identity_node +goa_oauth_provider_is_password_node +goa_oauth_provider_add_account_key_values +goa_oauth_provider_get_identity_sync +goa_oauth_provider_get_access_token_sync +goa_oauth_provider_parse_request_token_error + +GOA_OAUTH_PROVIDER +GOA_OAUTH_PROVIDER_CLASS +GOA_OAUTH_PROVIDER_GET_CLASS +GOA_IS_OAUTH_PROVIDER +GOA_IS_OAUTH_PROVIDER_CLASS +GOA_TYPE_OAUTH_PROVIDER +goa_oauth_provider_get_type +
+ +
+GoaMail +GoaMail +GoaMailIface +goa_mail_override_properties +goa_mail_interface_info +goa_mail_get_email_address +goa_mail_dup_email_address +goa_mail_set_email_address +goa_mail_get_name +goa_mail_dup_name +goa_mail_set_name +goa_mail_get_imap_host +goa_mail_dup_imap_host +goa_mail_set_imap_host +goa_mail_get_imap_supported +goa_mail_set_imap_supported +goa_mail_get_imap_accept_ssl_errors +goa_mail_set_imap_accept_ssl_errors +goa_mail_get_imap_use_ssl +goa_mail_set_imap_use_ssl +goa_mail_get_imap_use_tls +goa_mail_set_imap_use_tls +goa_mail_get_imap_user_name +goa_mail_dup_imap_user_name +goa_mail_set_imap_user_name +goa_mail_get_smtp_host +goa_mail_dup_smtp_host +goa_mail_set_smtp_host +goa_mail_get_smtp_supported +goa_mail_set_smtp_supported +goa_mail_get_smtp_accept_ssl_errors +goa_mail_set_smtp_accept_ssl_errors +goa_mail_get_smtp_use_auth +goa_mail_set_smtp_use_auth +goa_mail_get_smtp_auth_login +goa_mail_set_smtp_auth_login +goa_mail_get_smtp_auth_plain +goa_mail_set_smtp_auth_plain +goa_mail_get_smtp_auth_xoauth2 +goa_mail_set_smtp_auth_xoauth2 +goa_mail_get_smtp_use_ssl +goa_mail_set_smtp_use_ssl +goa_mail_get_smtp_use_tls +goa_mail_set_smtp_use_tls +goa_mail_get_smtp_user_name +goa_mail_dup_smtp_user_name +goa_mail_set_smtp_user_name +GoaMailProxy +GoaMailProxyClass +goa_mail_proxy_new +goa_mail_proxy_new_finish +goa_mail_proxy_new_sync +goa_mail_proxy_new_for_bus +goa_mail_proxy_new_for_bus_finish +goa_mail_proxy_new_for_bus_sync +GoaMailSkeleton +GoaMailSkeletonClass +goa_mail_skeleton_new + +GOA_TYPE_MAIL +GOA_IS_MAIL +GOA_MAIL +GOA_MAIL_GET_IFACE +GOA_TYPE_MAIL_PROXY +GOA_IS_MAIL_PROXY +GOA_IS_MAIL_PROXY_CLASS +GOA_MAIL_PROXY +GOA_MAIL_PROXY_CLASS +GOA_MAIL_PROXY_GET_CLASS +GOA_TYPE_MAIL_SKELETON +GOA_IS_MAIL_SKELETON +GOA_IS_MAIL_SKELETON_CLASS +GOA_MAIL_SKELETON +GOA_MAIL_SKELETON_CLASS +GOA_MAIL_SKELETON_GET_CLASS +GoaMailProxyPrivate +GoaMailSkeletonPrivate +goa_mail_get_type +goa_mail_proxy_get_type +goa_mail_skeleton_get_type +
+ +
+GoaCalendar +GoaCalendar +GoaCalendarIface +goa_calendar_interface_info +goa_calendar_override_properties +goa_calendar_get_accept_ssl_errors +goa_calendar_set_accept_ssl_errors +goa_calendar_get_uri +goa_calendar_dup_uri +goa_calendar_set_uri +GoaCalendarProxy +GoaCalendarProxyClass +goa_calendar_proxy_new +goa_calendar_proxy_new_finish +goa_calendar_proxy_new_sync +goa_calendar_proxy_new_for_bus +goa_calendar_proxy_new_for_bus_finish +goa_calendar_proxy_new_for_bus_sync +GoaCalendarSkeleton +GoaCalendarSkeletonClass +goa_calendar_skeleton_new + +GOA_TYPE_CALENDAR +GOA_IS_CALENDAR +GOA_CALENDAR +GOA_CALENDAR_GET_IFACE +GOA_TYPE_CALENDAR_PROXY +GOA_IS_CALENDAR_PROXY +GOA_IS_CALENDAR_PROXY_CLASS +GOA_CALENDAR_PROXY +GOA_CALENDAR_PROXY_CLASS +GOA_CALENDAR_PROXY_GET_CLASS +GOA_TYPE_CALENDAR_SKELETON +GOA_IS_CALENDAR_SKELETON +GOA_IS_CALENDAR_SKELETON_CLASS +GOA_CALENDAR_SKELETON +GOA_CALENDAR_SKELETON_CLASS +GOA_CALENDAR_SKELETON_GET_CLASS +GoaCalendarProxyPrivate +GoaCalendarSkeletonPrivate +goa_calendar_get_type +goa_calendar_proxy_get_type +goa_calendar_skeleton_get_type +
+ +
+GoaContacts +GoaContacts +GoaContactsIface +goa_contacts_interface_info +goa_contacts_override_properties +goa_contacts_get_accept_ssl_errors +goa_contacts_set_accept_ssl_errors +goa_contacts_get_uri +goa_contacts_dup_uri +goa_contacts_set_uri +GoaContactsProxy +GoaContactsProxyClass +goa_contacts_proxy_new +goa_contacts_proxy_new_finish +goa_contacts_proxy_new_sync +goa_contacts_proxy_new_for_bus +goa_contacts_proxy_new_for_bus_finish +goa_contacts_proxy_new_for_bus_sync +GoaContactsSkeleton +GoaContactsSkeletonClass +goa_contacts_skeleton_new + +GOA_TYPE_CONTACTS +GOA_IS_CONTACTS +GOA_CONTACTS +GOA_CONTACTS_GET_IFACE +GOA_TYPE_CONTACTS_PROXY +GOA_IS_CONTACTS_PROXY +GOA_IS_CONTACTS_PROXY_CLASS +GOA_CONTACTS_PROXY +GOA_CONTACTS_PROXY_CLASS +GOA_CONTACTS_PROXY_GET_CLASS +GOA_TYPE_CONTACTS_SKELETON +GOA_IS_CONTACTS_SKELETON +GOA_IS_CONTACTS_SKELETON_CLASS +GOA_CONTACTS_SKELETON +GOA_CONTACTS_SKELETON_CLASS +GOA_CONTACTS_SKELETON_GET_CLASS +GoaContactsProxyPrivate +GoaContactsSkeletonPrivate +goa_contacts_get_type +goa_contacts_proxy_get_type +goa_contacts_skeleton_get_type +
+ +
+GoaChat +GoaChat +GoaChatIface +goa_chat_interface_info +goa_chat_override_properties +GoaChatProxy +GoaChatProxyClass +goa_chat_proxy_new +goa_chat_proxy_new_finish +goa_chat_proxy_new_sync +goa_chat_proxy_new_for_bus +goa_chat_proxy_new_for_bus_finish +goa_chat_proxy_new_for_bus_sync +GoaChatSkeleton +GoaChatSkeletonClass +goa_chat_skeleton_new + +GOA_TYPE_CHAT +GOA_IS_CHAT +GOA_CHAT +GOA_CHAT_GET_IFACE +GOA_TYPE_CHAT_PROXY +GOA_IS_CHAT_PROXY +GOA_IS_CHAT_PROXY_CLASS +GOA_CHAT_PROXY +GOA_CHAT_PROXY_CLASS +GOA_CHAT_PROXY_GET_CLASS +GOA_TYPE_CHAT_SKELETON +GOA_IS_CHAT_SKELETON +GOA_IS_CHAT_SKELETON_CLASS +GOA_CHAT_SKELETON +GOA_CHAT_SKELETON_CLASS +GOA_CHAT_SKELETON_GET_CLASS +GoaChatProxyPrivate +GoaChatSkeletonPrivate +goa_chat_get_type +goa_chat_proxy_get_type +goa_chat_skeleton_get_type +
+ +
+GoaDocuments +GoaDocuments +GoaDocumentsIface +goa_documents_interface_info +goa_documents_override_properties +GoaDocumentsProxy +GoaDocumentsProxyClass +goa_documents_proxy_new +goa_documents_proxy_new_finish +goa_documents_proxy_new_sync +goa_documents_proxy_new_for_bus +goa_documents_proxy_new_for_bus_finish +goa_documents_proxy_new_for_bus_sync +GoaDocumentsSkeleton +GoaDocumentsSkeletonClass +goa_documents_skeleton_new + +GOA_TYPE_DOCUMENTS +GOA_IS_DOCUMENTS +GOA_DOCUMENTS +GOA_DOCUMENTS_GET_IFACE +GOA_TYPE_DOCUMENTS_PROXY +GOA_IS_DOCUMENTS_PROXY +GOA_IS_DOCUMENTS_PROXY_CLASS +GOA_DOCUMENTS_PROXY +GOA_DOCUMENTS_PROXY_CLASS +GOA_DOCUMENTS_PROXY_GET_CLASS +GOA_TYPE_DOCUMENTS_SKELETON +GOA_IS_DOCUMENTS_SKELETON +GOA_IS_DOCUMENTS_SKELETON_CLASS +GOA_DOCUMENTS_SKELETON +GOA_DOCUMENTS_SKELETON_CLASS +GOA_DOCUMENTS_SKELETON_GET_CLASS +GoaDocumentsProxyPrivate +GoaDocumentsSkeletonPrivate +goa_documents_get_type +goa_documents_proxy_get_type +goa_documents_skeleton_get_type +
+ +
+GoaMaps +GoaMaps +GoaMapsIface +goa_maps_interface_info +goa_maps_override_properties +GoaMapsProxy +GoaMapsProxyClass +goa_maps_proxy_new +goa_maps_proxy_new_finish +goa_maps_proxy_new_sync +goa_maps_proxy_new_for_bus +goa_maps_proxy_new_for_bus_finish +goa_maps_proxy_new_for_bus_sync +GoaMapsSkeleton +GoaMapsSkeletonClass +goa_maps_skeleton_new + +GOA_TYPE_MAPS +GOA_IS_MAPS +GOA_MAPS +GOA_MAPS_GET_IFACE +GOA_TYPE_MAPS_PROXY +GOA_IS_MAPS_PROXY +GOA_IS_MAPS_PROXY_CLASS +GOA_MAPS_PROXY +GOA_MAPS_PROXY_CLASS +GOA_MAPS_PROXY_GET_CLASS +GOA_TYPE_MAPS_SKELETON +GOA_IS_MAPS_SKELETON +GOA_IS_MAPS_SKELETON_CLASS +GOA_MAPS_SKELETON +GOA_MAPS_SKELETON_CLASS +GOA_MAPS_SKELETON_GET_CLASS +GoaMapsProxyPrivate +GoaMapsSkeletonPrivate +goa_maps_get_type +goa_maps_proxy_get_type +goa_maps_skeleton_get_type +
+ +
+GoaMusic +GoaMusic +GoaMusicIface +goa_music_interface_info +goa_music_override_properties +GoaMusicProxy +GoaMusicProxyClass +goa_music_proxy_new +goa_music_proxy_new_finish +goa_music_proxy_new_sync +goa_music_proxy_new_for_bus +goa_music_proxy_new_for_bus_finish +goa_music_proxy_new_for_bus_sync +GoaMusicSkeleton +GoaMusicSkeletonClass +goa_music_skeleton_new + +GOA_TYPE_MUSIC +GOA_IS_MUSIC +GOA_MUSIC +GOA_MUSIC_GET_IFACE +GOA_TYPE_MUSIC_PROXY +GOA_IS_MUSIC_PROXY +GOA_IS_MUSIC_PROXY_CLASS +GOA_MUSIC_PROXY +GOA_MUSIC_PROXY_CLASS +GOA_MUSIC_PROXY_GET_CLASS +GOA_TYPE_MUSIC_SKELETON +GOA_IS_MUSIC_SKELETON +GOA_IS_MUSIC_SKELETON_CLASS +GOA_MUSIC_SKELETON +GOA_MUSIC_SKELETON_CLASS +GOA_MUSIC_SKELETON_GET_CLASS +GoaMusicProxyPrivate +GoaMusicSkeletonPrivate +goa_music_get_type +goa_music_proxy_get_type +goa_music_skeleton_get_type +
+ +
+GoaPhotos +GoaPhotos +GoaPhotosIface +goa_photos_interface_info +goa_photos_override_properties +GoaPhotosProxy +GoaPhotosProxyClass +goa_photos_proxy_new +goa_photos_proxy_new_finish +goa_photos_proxy_new_sync +goa_photos_proxy_new_for_bus +goa_photos_proxy_new_for_bus_finish +goa_photos_proxy_new_for_bus_sync +GoaPhotosSkeleton +GoaPhotosSkeletonClass +goa_photos_skeleton_new + +GOA_TYPE_PHOTOS +GOA_IS_PHOTOS +GOA_PHOTOS +GOA_PHOTOS_GET_IFACE +GOA_TYPE_PHOTOS_PROXY +GOA_IS_PHOTOS_PROXY +GOA_IS_PHOTOS_PROXY_CLASS +GOA_PHOTOS_PROXY +GOA_PHOTOS_PROXY_CLASS +GOA_PHOTOS_PROXY_GET_CLASS +GOA_TYPE_PHOTOS_SKELETON +GOA_IS_PHOTOS_SKELETON +GOA_IS_PHOTOS_SKELETON_CLASS +GOA_PHOTOS_SKELETON +GOA_PHOTOS_SKELETON_CLASS +GOA_PHOTOS_SKELETON_GET_CLASS +GoaPhotosProxyPrivate +GoaPhotosSkeletonPrivate +goa_photos_get_type +goa_photos_proxy_get_type +goa_photos_skeleton_get_type +
+ +
+GoaFiles +GoaFiles +GoaFilesIface +goa_files_override_properties +goa_files_interface_info +goa_files_get_accept_ssl_errors +goa_files_set_accept_ssl_errors +goa_files_get_uri +goa_files_dup_uri +goa_files_set_uri +GoaFilesProxy +GoaFilesProxyClass +goa_files_proxy_new +goa_files_proxy_new_finish +goa_files_proxy_new_sync +goa_files_proxy_new_for_bus +goa_files_proxy_new_for_bus_finish +goa_files_proxy_new_for_bus_sync +GoaFilesSkeleton +GoaFilesSkeletonClass +goa_files_skeleton_new + +GOA_TYPE_FILES +GOA_IS_FILES +GOA_FILES +GOA_FILES_GET_IFACE +GOA_TYPE_FILES_PROXY +GOA_IS_FILES_PROXY +GOA_IS_FILES_PROXY_CLASS +GOA_FILES_PROXY +GOA_FILES_PROXY_CLASS +GOA_FILES_PROXY_GET_CLASS +GOA_TYPE_FILES_SKELETON +GOA_IS_FILES_SKELETON +GOA_IS_FILES_SKELETON_CLASS +GOA_FILES_SKELETON +GOA_FILES_SKELETON_CLASS +GOA_FILES_SKELETON_GET_CLASS +GoaFilesProxyPrivate +GoaFilesSkeletonPrivate +goa_files_get_type +goa_files_proxy_get_type +goa_files_skeleton_get_type +
+ +
+GoaExchange +GoaExchange +GoaExchangeIface +goa_exchange_interface_info +goa_exchange_get_accept_ssl_errors +goa_exchange_set_accept_ssl_errors +goa_exchange_get_host +goa_exchange_dup_host +goa_exchange_set_host +goa_exchange_override_properties +GoaExchangeProxy +GoaExchangeProxyClass +goa_exchange_proxy_new +goa_exchange_proxy_new_finish +goa_exchange_proxy_new_sync +goa_exchange_proxy_new_for_bus +goa_exchange_proxy_new_for_bus_finish +goa_exchange_proxy_new_for_bus_sync +GoaExchangeSkeleton +GoaExchangeSkeletonClass +goa_exchange_skeleton_new + +GOA_TYPE_EXCHANGE +GOA_IS_EXCHANGE +GOA_EXCHANGE +GOA_EXCHANGE_GET_IFACE +GOA_TYPE_EXCHANGE_PROXY +GOA_IS_EXCHANGE_PROXY +GOA_IS_EXCHANGE_PROXY_CLASS +GOA_EXCHANGE_PROXY +GOA_EXCHANGE_PROXY_CLASS +GOA_EXCHANGE_PROXY_GET_CLASS +GOA_TYPE_EXCHANGE_SKELETON +GOA_IS_EXCHANGE_SKELETON +GOA_IS_EXCHANGE_SKELETON_CLASS +GOA_EXCHANGE_SKELETON +GOA_EXCHANGE_SKELETON_CLASS +GOA_EXCHANGE_SKELETON_GET_CLASS +GoaExchangeProxyPrivate +GoaExchangeSkeletonPrivate +goa_exchange_get_type +goa_exchange_proxy_get_type +goa_exchange_skeleton_get_type +
+ +
+GoaMediaServer +GoaMediaServer +GoaMediaServerIface +goa_media_server_interface_info +goa_media_server_get_dlna_supported +goa_media_server_set_dlna_supported +goa_media_server_get_udn +goa_media_server_dup_udn +goa_media_server_set_udn +goa_media_server_override_properties +GoaMediaServerProxy +GoaMediaServerProxyClass +goa_media_server_proxy_new +goa_media_server_proxy_new_finish +goa_media_server_proxy_new_sync +goa_media_server_proxy_new_for_bus +goa_media_server_proxy_new_for_bus_finish +goa_media_server_proxy_new_for_bus_sync +GoaMediaServerSkeleton +GoaMediaServerSkeletonClass +goa_media_server_skeleton_new + +GOA_TYPE_MEDIA_SERVER +GOA_IS_MEDIA_SERVER +GOA_MEDIA_SERVER +GOA_MEDIA_SERVER_GET_IFACE +GOA_TYPE_MEDIA_SERVER_PROXY +GOA_IS_MEDIA_SERVER_PROXY +GOA_IS_MEDIA_SERVER_PROXY_CLASS +GOA_MEDIA_SERVER_PROXY +GOA_MEDIA_SERVER_PROXY_CLASS +GOA_MEDIA_SERVER_PROXY_GET_CLASS +GOA_TYPE_MEDIA_SERVER_SKELETON +GOA_IS_MEDIA_SERVER_SKELETON +GOA_IS_MEDIA_SERVER_SKELETON_CLASS +GOA_MEDIA_SERVER_SKELETON +GOA_MEDIA_SERVER_SKELETON_CLASS +GOA_MEDIA_SERVER_SKELETON_GET_CLASS +GoaMediaServerProxyPrivate +GoaMediaServerSkeletonPrivate +goa_media_server_get_type +goa_media_server_proxy_get_type +goa_media_server_skeleton_get_type +
+ + +
+GoaTicketing +GoaTicketing +GoaTicketingIface +goa_ticketing_interface_info +goa_ticketing_override_properties +goa_ticketing_call_get_ticket +goa_ticketing_call_get_ticket_finish +goa_ticketing_call_get_ticket_sync +goa_ticketing_complete_get_ticket +GoaTicketingProxy +GoaTicketingProxyClass +goa_ticketing_proxy_new +goa_ticketing_proxy_new_finish +goa_ticketing_proxy_new_sync +goa_ticketing_proxy_new_for_bus +goa_ticketing_proxy_new_for_bus_finish +goa_ticketing_proxy_new_for_bus_sync +GoaTicketingSkeleton +GoaTicketingSkeletonClass +goa_ticketing_skeleton_new + +GOA_TYPE_TICKETING +GOA_IS_TICKETING +GOA_TICKETING +GOA_TICKETING_GET_IFACE +GOA_TYPE_TICKETING_PROXY +GOA_IS_TICKETING_PROXY +GOA_IS_TICKETING_PROXY_CLASS +GOA_TICKETING_PROXY +GOA_TICKETING_PROXY_CLASS +GOA_TICKETING_PROXY_GET_CLASS +GOA_TYPE_TICKETING_SKELETON +GOA_IS_TICKETING_SKELETON +GOA_IS_TICKETING_SKELETON_CLASS +GOA_TICKETING_SKELETON +GOA_TICKETING_SKELETON_CLASS +GOA_TICKETING_SKELETON_GET_CLASS +GoaTicketingProxyPrivate +GoaTicketingSkeletonPrivate +goa_ticketing_get_type +goa_ticketing_proxy_get_type +goa_ticketing_skeleton_get_type +
+ +
+GoaTodo +GoaTodo +GoaTodoIface +goa_todo_interface_info +goa_todo_override_properties +GoaTodoProxy +GoaTodoProxyClass +goa_todo_proxy_new +goa_todo_proxy_new_finish +goa_todo_proxy_new_sync +goa_todo_proxy_new_for_bus +goa_todo_proxy_new_for_bus_finish +goa_todo_proxy_new_for_bus_sync +GoaTodoSkeleton +GoaTodoSkeletonClass +goa_todo_skeleton_new + +GOA_TYPE_TODO +GOA_IS_TODO +GOA_TODO +GOA_TODO_GET_IFACE +GOA_TYPE_TODO_PROXY +GOA_IS_TODO_PROXY +GOA_IS_TODO_PROXY_CLASS +GOA_TODO_PROXY +GOA_TODO_PROXY_CLASS +GOA_TODO_PROXY_GET_CLASS +GOA_TYPE_TODO_SKELETON +GOA_IS_TODO_SKELETON +GOA_IS_TODO_SKELETON_CLASS +GOA_TODO_SKELETON +GOA_TODO_SKELETON_CLASS +GOA_TODO_SKELETON_GET_CLASS +GoaTodoProxyPrivate +GoaTodoSkeletonPrivate +goa_todo_get_type +goa_todo_proxy_get_type +goa_todo_skeleton_get_type +
+ +
+GoaReadLater +GoaReadLater +GoaReadLaterIface +goa_read_later_interface_info +goa_read_later_override_properties +GoaReadLaterProxy +GoaReadLaterProxyClass +goa_read_later_proxy_new +goa_read_later_proxy_new_finish +goa_read_later_proxy_new_sync +goa_read_later_proxy_new_for_bus +goa_read_later_proxy_new_for_bus_finish +goa_read_later_proxy_new_for_bus_sync +GoaReadLaterSkeleton +GoaReadLaterSkeletonClass +goa_read_later_skeleton_new + +GOA_TYPE_READ_LATER +GOA_IS_READ_LATER +GOA_READ_LATER +GOA_READ_LATER_GET_IFACE +GOA_TYPE_READ_LATER_PROXY +GOA_IS_READ_LATER_PROXY +GOA_IS_READ_LATER_PROXY_CLASS +GOA_READ_LATER_PROXY +GOA_READ_LATER_PROXY_CLASS +GOA_READ_LATER_PROXY_GET_CLASS +GOA_TYPE_READ_LATER_SKELETON +GOA_IS_READ_LATER_SKELETON +GOA_IS_READ_LATER_SKELETON_CLASS +GOA_READ_LATER_SKELETON +GOA_READ_LATER_SKELETON_CLASS +GOA_READ_LATER_SKELETON_GET_CLASS +GoaReadLaterProxyPrivate +GoaReadLaterSkeletonPrivate +goa_read_later_get_type +goa_read_later_proxy_get_type +goa_read_later_skeleton_get_type +
+ +
+GoaPrinters +GoaPrinters +GoaPrintersIface +goa_printers_interface_info +goa_printers_override_properties +GoaPrintersProxy +GoaPrintersProxyClass +goa_printers_proxy_new +goa_printers_proxy_new_finish +goa_printers_proxy_new_sync +goa_printers_proxy_new_for_bus +goa_printers_proxy_new_for_bus_finish +goa_printers_proxy_new_for_bus_sync +GoaPrintersSkeleton +GoaPrintersSkeletonClass +goa_printers_skeleton_new + +GOA_TYPE_PRINTERS +GOA_IS_PRINTERS +GOA_PRINTERS +GOA_PRINTERS_GET_IFACE +GOA_TYPE_PRINTERS_PROXY +GOA_IS_PRINTERS_PROXY +GOA_IS_PRINTERS_PROXY_CLASS +GOA_PRINTERS_PROXY +GOA_PRINTERS_PROXY_CLASS +GOA_PRINTERS_PROXY_GET_CLASS +GOA_TYPE_PRINTERS_SKELETON +GOA_IS_PRINTERS_SKELETON +GOA_IS_PRINTERS_SKELETON_CLASS +GOA_PRINTERS_SKELETON +GOA_PRINTERS_SKELETON_CLASS +GOA_PRINTERS_SKELETON_GET_CLASS +GoaPrintersProxyPrivate +GoaPrintersSkeletonPrivate +goa_printers_get_type +goa_printers_proxy_get_type +goa_printers_skeleton_get_type +
+ +
+goautil +goa_util_add_row_widget +goa_util_lookup_keyfile_boolean +goa_util_lookup_keyfile_string + +
diff --git a/doc/goa.types b/doc/goa.types new file mode 100644 index 0000000..56ba3c4 --- /dev/null +++ b/doc/goa.types @@ -0,0 +1,66 @@ +goa_client_get_type +goa_account_get_type +goa_account_proxy_get_type +goa_account_skeleton_get_type +goa_manager_get_type +goa_manager_proxy_get_type +goa_manager_skeleton_get_type +goa_object_manager_client_get_type +goa_object_get_type +goa_object_proxy_get_type +goa_object_skeleton_get_type +goa_oauth_based_get_type +goa_oauth_based_proxy_get_type +goa_oauth_based_skeleton_get_type +goa_oauth2_based_get_type +goa_oauth2_based_proxy_get_type +goa_oauth2_based_skeleton_get_type +goa_password_based_get_type +goa_password_based_proxy_get_type +goa_password_based_skeleton_get_type +goa_mail_get_type +goa_mail_proxy_get_type +goa_mail_skeleton_get_type +goa_calendar_get_type +goa_calendar_proxy_get_type +goa_calendar_skeleton_get_type +goa_contacts_get_type +goa_contacts_proxy_get_type +goa_contacts_skeleton_get_type +goa_chat_get_type +goa_chat_proxy_get_type +goa_chat_skeleton_get_type +goa_documents_get_type +goa_documents_proxy_get_type +goa_documents_skeleton_get_type +goa_maps_get_type +goa_maps_proxy_get_type +goa_maps_skeleton_get_type +goa_music_get_type +goa_music_proxy_get_type +goa_music_skeleton_get_type +goa_photos_get_type +goa_photos_proxy_get_type +goa_photos_skeleton_get_type +goa_files_get_type +goa_files_proxy_get_type +goa_files_skeleton_get_type +goa_exchange_get_type +goa_exchange_proxy_get_type +goa_exchange_skeleton_get_type +goa_media_server_get_type +goa_media_server_proxy_get_type +goa_media_server_skeleton_get_type +goa_ticketing_get_type +goa_ticketing_proxy_get_type +goa_ticketing_skeleton_get_type +goa_read_later_get_type +goa_read_later_proxy_get_type +goa_read_later_skeleton_get_type +goa_printers_get_type +goa_printers_proxy_get_type +goa_printers_skeleton_get_type + +goa_provider_get_type +goa_oauth_provider_get_type +goa_oauth2_provider_get_type diff --git a/doc/html/GoaAccount.html b/doc/html/GoaAccount.html new file mode 100644 index 0000000..a2e2211 --- /dev/null +++ b/doc/html/GoaAccount.html @@ -0,0 +1,3577 @@ + + + + +GoaAccount: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaAccount

+

GoaAccount — Generated C code for the org.gnome.OnlineAccounts.Account D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_account_interface_info () +
+guint + +goa_account_override_properties () +
const gchar * + +goa_account_get_provider_type () +
+gchar * + +goa_account_dup_provider_type () +
+void + +goa_account_set_provider_type () +
const gchar * + +goa_account_get_provider_name () +
+gchar * + +goa_account_dup_provider_name () +
+void + +goa_account_set_provider_name () +
const gchar * + +goa_account_get_provider_icon () +
+gchar * + +goa_account_dup_provider_icon () +
+void + +goa_account_set_provider_icon () +
const gchar * + +goa_account_get_id () +
+gchar * + +goa_account_dup_id () +
+void + +goa_account_set_id () +
+gboolean + +goa_account_get_is_locked () +
+void + +goa_account_set_is_locked () +
+gboolean + +goa_account_get_is_temporary () +
+void + +goa_account_set_is_temporary () +
+gboolean + +goa_account_get_attention_needed () +
+void + +goa_account_set_attention_needed () +
const gchar * + +goa_account_get_identity () +
+gchar * + +goa_account_dup_identity () +
+void + +goa_account_set_identity () +
const gchar * + +goa_account_get_presentation_identity () +
+gchar * + +goa_account_dup_presentation_identity () +
+void + +goa_account_set_presentation_identity () +
+gboolean + +goa_account_get_mail_disabled () +
+void + +goa_account_set_mail_disabled () +
+gboolean + +goa_account_get_calendar_disabled () +
+void + +goa_account_set_calendar_disabled () +
+gboolean + +goa_account_get_contacts_disabled () +
+void + +goa_account_set_contacts_disabled () +
+gboolean + +goa_account_get_chat_disabled () +
+void + +goa_account_set_chat_disabled () +
+gboolean + +goa_account_get_documents_disabled () +
+void + +goa_account_set_documents_disabled () +
+gboolean + +goa_account_get_maps_disabled () +
+void + +goa_account_set_maps_disabled () +
+gboolean + +goa_account_get_music_disabled () +
+void + +goa_account_set_music_disabled () +
+gboolean + +goa_account_get_photos_disabled () +
+void + +goa_account_set_photos_disabled () +
+gboolean + +goa_account_get_printers_disabled () +
+void + +goa_account_set_printers_disabled () +
+gboolean + +goa_account_get_files_disabled () +
+void + +goa_account_set_files_disabled () +
+gboolean + +goa_account_get_ticketing_disabled () +
+void + +goa_account_set_ticketing_disabled () +
+gboolean + +goa_account_get_todo_disabled () +
+void + +goa_account_set_todo_disabled () +
+void + +goa_account_call_ensure_credentials () +
+gboolean + +goa_account_call_ensure_credentials_finish () +
+gboolean + +goa_account_call_ensure_credentials_sync () +
+void + +goa_account_complete_ensure_credentials () +
+void + +goa_account_call_remove () +
+gboolean + +goa_account_call_remove_finish () +
+gboolean + +goa_account_call_remove_sync () +
+void + +goa_account_complete_remove () +
+void + +goa_account_proxy_new () +
+GoaAccount * + +goa_account_proxy_new_finish () +
+GoaAccount * + +goa_account_proxy_new_sync () +
+void + +goa_account_proxy_new_for_bus () +
+GoaAccount * + +goa_account_proxy_new_for_bus_finish () +
+GoaAccount * + +goa_account_proxy_new_for_bus_sync () +
+GoaAccount * + +goa_account_skeleton_new () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
gbooleanattention-neededRead / Write
gbooleancalendar-disabledRead / Write
gbooleanchat-disabledRead / Write
gbooleancontacts-disabledRead / Write
gbooleandocuments-disabledRead / Write
gbooleanfiles-disabledRead / Write
+gchar *idRead / Write
+gchar *identityRead / Write
gbooleanis-lockedRead / Write
gbooleanis-temporaryRead / Write
gbooleanmail-disabledRead / Write
gbooleanmaps-disabledRead / Write
gbooleanmusic-disabledRead / Write
gbooleanphotos-disabledRead / Write
+gchar *presentation-identityRead / Write
gbooleanprinters-disabledRead / Write
+gchar *provider-iconRead / Write
+gchar *provider-nameRead / Write
+gchar *provider-typeRead / Write
gbooleanread-later-disabledRead / Write
gbooleanticketing-disabledRead / Write
gbooleantodo-disabledRead / Write
+
+ +
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaAccount
structGoaAccountIface
structGoaAccountProxy
structGoaAccountProxyClass
structGoaAccountSkeleton
structGoaAccountSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaAccount
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaAccountSkeleton
+    ╰── GDBusProxy
+        ╰── GoaAccountProxy
+
+
+
+

Prerequisites

+

+GoaAccount requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaAccountProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaAccount.

+

+GoaAccountSkeleton implements + GDBusInterface and GoaAccount.

+
+
+

Known Implementations

+

+GoaAccount is implemented by + GoaAccountProxy and GoaAccountSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Account D-Bus interface in C.

+
+
+

Functions

+
+

goa_account_interface_info ()

+
GDBusInterfaceInfo *
+goa_account_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Account D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_account_override_properties ()

+
guint
+goa_account_override_properties (GObjectClass *klass,
+                                 guint property_id_begin);
+

Overrides all GObject properties in the GoaAccount interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_account_get_provider_type ()

+
const gchar *
+goa_account_get_provider_type (GoaAccount *object);
+

Gets the value of the "ProviderType" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_account_dup_provider_type() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_account_dup_provider_type ()

+
gchar *
+goa_account_dup_provider_type (GoaAccount *object);
+

Gets a copy of the "ProviderType" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_account_set_provider_type ()

+
void
+goa_account_set_provider_type (GoaAccount *object,
+                               const gchar *value);
+

Sets the "ProviderType" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_provider_name ()

+
const gchar *
+goa_account_get_provider_name (GoaAccount *object);
+

Gets the value of the "ProviderName" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_account_dup_provider_name() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_account_dup_provider_name ()

+
gchar *
+goa_account_dup_provider_name (GoaAccount *object);
+

Gets a copy of the "ProviderName" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_account_set_provider_name ()

+
void
+goa_account_set_provider_name (GoaAccount *object,
+                               const gchar *value);
+

Sets the "ProviderName" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_provider_icon ()

+
const gchar *
+goa_account_get_provider_icon (GoaAccount *object);
+

Gets the value of the "ProviderIcon" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_account_dup_provider_icon() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_account_dup_provider_icon ()

+
gchar *
+goa_account_dup_provider_icon (GoaAccount *object);
+

Gets a copy of the "ProviderIcon" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_account_set_provider_icon ()

+
void
+goa_account_set_provider_icon (GoaAccount *object,
+                               const gchar *value);
+

Sets the "ProviderIcon" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_id ()

+
const gchar *
+goa_account_get_id (GoaAccount *object);
+

Gets the value of the "Id" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_account_dup_id() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_account_dup_id ()

+
gchar *
+goa_account_dup_id (GoaAccount *object);
+

Gets a copy of the "Id" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_account_set_id ()

+
void
+goa_account_set_id (GoaAccount *object,
+                    const gchar *value);
+

Sets the "Id" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_is_locked ()

+
gboolean
+goa_account_get_is_locked (GoaAccount *object);
+

Gets the value of the "IsLocked" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.16.0

+
+
+
+

goa_account_set_is_locked ()

+
void
+goa_account_set_is_locked (GoaAccount *object,
+                           gboolean value);
+

Sets the "IsLocked" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.16.0

+
+
+
+

goa_account_get_is_temporary ()

+
gboolean
+goa_account_get_is_temporary (GoaAccount *object);
+

Gets the value of the "IsTemporary" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_account_set_is_temporary ()

+
void
+goa_account_set_is_temporary (GoaAccount *object,
+                              gboolean value);
+

Sets the "IsTemporary" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_attention_needed ()

+
gboolean
+goa_account_get_attention_needed (GoaAccount *object);
+

Gets the value of the "AttentionNeeded" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_account_set_attention_needed ()

+
void
+goa_account_set_attention_needed (GoaAccount *object,
+                                  gboolean value);
+

Sets the "AttentionNeeded" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_identity ()

+
const gchar *
+goa_account_get_identity (GoaAccount *object);
+

Gets the value of the "Identity" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_account_dup_identity() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_account_dup_identity ()

+
gchar *
+goa_account_dup_identity (GoaAccount *object);
+

Gets a copy of the "Identity" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_account_set_identity ()

+
void
+goa_account_set_identity (GoaAccount *object,
+                          const gchar *value);
+

Sets the "Identity" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_presentation_identity ()

+
const gchar *
+goa_account_get_presentation_identity (GoaAccount *object);
+

Gets the value of the "PresentationIdentity" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_account_dup_presentation_identity() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_account_dup_presentation_identity ()

+
gchar *
+goa_account_dup_presentation_identity (GoaAccount *object);
+

Gets a copy of the "PresentationIdentity" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_account_set_presentation_identity ()

+
void
+goa_account_set_presentation_identity (GoaAccount *object,
+                                       const gchar *value);
+

Sets the "PresentationIdentity" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_mail_disabled ()

+
gboolean
+goa_account_get_mail_disabled (GoaAccount *object);
+

Gets the value of the "MailDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_account_set_mail_disabled ()

+
void
+goa_account_set_mail_disabled (GoaAccount *object,
+                               gboolean value);
+

Sets the "MailDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_calendar_disabled ()

+
gboolean
+goa_account_get_calendar_disabled (GoaAccount *object);
+

Gets the value of the "CalendarDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_account_set_calendar_disabled ()

+
void
+goa_account_set_calendar_disabled (GoaAccount *object,
+                                   gboolean value);
+

Sets the "CalendarDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_contacts_disabled ()

+
gboolean
+goa_account_get_contacts_disabled (GoaAccount *object);
+

Gets the value of the "ContactsDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_account_set_contacts_disabled ()

+
void
+goa_account_set_contacts_disabled (GoaAccount *object,
+                                   gboolean value);
+

Sets the "ContactsDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_chat_disabled ()

+
gboolean
+goa_account_get_chat_disabled (GoaAccount *object);
+

Gets the value of the "ChatDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_account_set_chat_disabled ()

+
void
+goa_account_set_chat_disabled (GoaAccount *object,
+                               gboolean value);
+

Sets the "ChatDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_documents_disabled ()

+
gboolean
+goa_account_get_documents_disabled (GoaAccount *object);
+

Gets the value of the "DocumentsDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_account_set_documents_disabled ()

+
void
+goa_account_set_documents_disabled (GoaAccount *object,
+                                    gboolean value);
+

Sets the "DocumentsDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+
+
+
+

goa_account_get_maps_disabled ()

+
gboolean
+goa_account_get_maps_disabled (GoaAccount *object);
+

Gets the value of the "MapsDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.14.0

+
+
+
+

goa_account_set_maps_disabled ()

+
void
+goa_account_set_maps_disabled (GoaAccount *object,
+                               gboolean value);
+

Sets the "MapsDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.14.0

+
+
+
+

goa_account_get_music_disabled ()

+
gboolean
+goa_account_get_music_disabled (GoaAccount *object);
+

Gets the value of the "MusicDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.18.0

+
+
+
+

goa_account_set_music_disabled ()

+
void
+goa_account_set_music_disabled (GoaAccount *object,
+                                gboolean value);
+

Sets the "MusicDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.18.0

+
+
+
+

goa_account_get_photos_disabled ()

+
gboolean
+goa_account_get_photos_disabled (GoaAccount *object);
+

Gets the value of the "PhotosDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_account_set_photos_disabled ()

+
void
+goa_account_set_photos_disabled (GoaAccount *object,
+                                 gboolean value);
+

Sets the "PhotosDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_account_get_printers_disabled ()

+
gboolean
+goa_account_get_printers_disabled (GoaAccount *object);
+

Gets the value of the "PrintersDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.12.0

+
+
+
+

goa_account_set_printers_disabled ()

+
void
+goa_account_set_printers_disabled (GoaAccount *object,
+                                   gboolean value);
+

Sets the "PrintersDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.12.0

+
+
+
+

goa_account_get_files_disabled ()

+
gboolean
+goa_account_get_files_disabled (GoaAccount *object);
+

Gets the value of the "FilesDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_account_set_files_disabled ()

+
void
+goa_account_set_files_disabled (GoaAccount *object,
+                                gboolean value);
+

Sets the "FilesDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_account_get_ticketing_disabled ()

+
gboolean
+goa_account_get_ticketing_disabled (GoaAccount *object);
+

Gets the value of the "TicketingDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.6.0

+
+
+
+

goa_account_set_ticketing_disabled ()

+
void
+goa_account_set_ticketing_disabled (GoaAccount *object,
+                                    gboolean value);
+

Sets the "TicketingDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.6.0

+
+
+
+

goa_account_get_todo_disabled ()

+
gboolean
+goa_account_get_todo_disabled (GoaAccount *object);
+

Gets the value of the "TodoDisabled" D-Bus property.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaAccount.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.26.0

+
+
+
+

goa_account_set_todo_disabled ()

+
void
+goa_account_set_todo_disabled (GoaAccount *object,
+                               gboolean value);
+

Sets the "TodoDisabled" D-Bus property to value +.

+

Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

value

The value to set.

 
+
+

Since: 3.26.0

+
+
+
+

goa_account_call_ensure_credentials ()

+
void
+goa_account_call_ensure_credentials (GoaAccount *proxy,
+                                     GCancellable *cancellable,
+                                     GAsyncReadyCallback callback,
+                                     gpointer user_data);
+

Asynchronously invokes the EnsureCredentials() D-Bus method on proxy +. +When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_account_call_ensure_credentials_finish() to get the result of the operation.

+

See goa_account_call_ensure_credentials_sync() for the synchronous, blocking version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaAccountProxy.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied or NULL.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_account_call_ensure_credentials_finish ()

+
gboolean
+goa_account_call_ensure_credentials_finish
+                               (GoaAccount *proxy,
+                                gint *out_expires_in,
+                                GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_account_call_ensure_credentials().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaAccountProxy.

 

out_expires_in

Return location for return parameter or NULL to ignore.

[out]

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_account_call_ensure_credentials().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_account_call_ensure_credentials_sync ()

+
gboolean
+goa_account_call_ensure_credentials_sync
+                               (GoaAccount *proxy,
+                                gint *out_expires_in,
+                                GCancellable *cancellable,
+                                GError **error);
+

Synchronously invokes the EnsureCredentials() D-Bus method on proxy +. The calling thread is blocked until a reply is received.

+

See goa_account_call_ensure_credentials() for the asynchronous version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaAccountProxy.

 

out_expires_in

Return location for return parameter or NULL to ignore.

[out]

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_account_complete_ensure_credentials ()

+
void
+goa_account_complete_ensure_credentials
+                               (GoaAccount *object,
+                                GDBusMethodInvocation *invocation,
+                                gint expires_in);
+

Helper function used in service implementations to finish handling invocations of the EnsureCredentials() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

+

This method will free invocation +, you cannot use it afterwards.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaAccount.

 

invocation

A GDBusMethodInvocation.

[transfer full]

expires_in

Parameter to return.

 
+
+
+
+
+

goa_account_call_remove ()

+
void
+goa_account_call_remove (GoaAccount *proxy,
+                         GCancellable *cancellable,
+                         GAsyncReadyCallback callback,
+                         gpointer user_data);
+

Asynchronously invokes the Remove() D-Bus method on proxy +. +When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_account_call_remove_finish() to get the result of the operation.

+

See goa_account_call_remove_sync() for the synchronous, blocking version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaAccountProxy.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied or NULL.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_account_call_remove_finish ()

+
gboolean
+goa_account_call_remove_finish (GoaAccount *proxy,
+                                GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_account_call_remove().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

proxy

A GoaAccountProxy.

 

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_account_call_remove().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_account_call_remove_sync ()

+
gboolean
+goa_account_call_remove_sync (GoaAccount *proxy,
+                              GCancellable *cancellable,
+                              GError **error);
+

Synchronously invokes the Remove() D-Bus method on proxy +. The calling thread is blocked until a reply is received.

+

See goa_account_call_remove() for the asynchronous version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

proxy

A GoaAccountProxy.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_account_complete_remove ()

+
void
+goa_account_complete_remove (GoaAccount *object,
+                             GDBusMethodInvocation *invocation);
+

Helper function used in service implementations to finish handling invocations of the Remove() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

+

This method will free invocation +, you cannot use it afterwards.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaAccount.

 

invocation

A GDBusMethodInvocation.

[transfer full]
+
+
+
+
+

goa_account_proxy_new ()

+
void
+goa_account_proxy_new (GDBusConnection *connection,
+                       GDBusProxyFlags flags,
+                       const gchar *name,
+                       const gchar *object_path,
+                       GCancellable *cancellable,
+                       GAsyncReadyCallback callback,
+                       gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Account. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_account_proxy_new_finish() to get the result of the operation.

+

See goa_account_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_account_proxy_new_finish ()

+
GoaAccount *
+goa_account_proxy_new_finish (GAsyncResult *res,
+                              GError **error);
+

Finishes an operation started with goa_account_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_account_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaAccountProxy]

+
+
+
+
+

goa_account_proxy_new_sync ()

+
GoaAccount *
+goa_account_proxy_new_sync (GDBusConnection *connection,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Account. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_account_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaAccountProxy]

+
+
+
+
+

goa_account_proxy_new_for_bus ()

+
void
+goa_account_proxy_new_for_bus (GBusType bus_type,
+                               GDBusProxyFlags flags,
+                               const gchar *name,
+                               const gchar *object_path,
+                               GCancellable *cancellable,
+                               GAsyncReadyCallback callback,
+                               gpointer user_data);
+

Like goa_account_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_account_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_account_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_account_proxy_new_for_bus_finish ()

+
GoaAccount *
+goa_account_proxy_new_for_bus_finish (GAsyncResult *res,
+                                      GError **error);
+

Finishes an operation started with goa_account_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_account_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaAccountProxy]

+
+
+
+
+

goa_account_proxy_new_for_bus_sync ()

+
GoaAccount *
+goa_account_proxy_new_for_bus_sync (GBusType bus_type,
+                                    GDBusProxyFlags flags,
+                                    const gchar *name,
+                                    const gchar *object_path,
+                                    GCancellable *cancellable,
+                                    GError **error);
+

Like goa_account_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_account_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaAccountProxy]

+
+
+
+
+

goa_account_skeleton_new ()

+
GoaAccount *
+goa_account_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Account.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaAccountSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaAccount

+
typedef struct _GoaAccount GoaAccount;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Account.

+
+
+
+

struct GoaAccountIface

+
struct GoaAccountIface {
+  GTypeInterface parent_iface;
+
+
+  gboolean (*handle_ensure_credentials) (
+    GoaAccount *object,
+    GDBusMethodInvocation *invocation);
+
+  gboolean (*handle_remove) (
+    GoaAccount *object,
+    GDBusMethodInvocation *invocation);
+
+  gboolean  (*get_attention_needed) (GoaAccount *object);
+
+  gboolean  (*get_calendar_disabled) (GoaAccount *object);
+
+  gboolean  (*get_chat_disabled) (GoaAccount *object);
+
+  gboolean  (*get_contacts_disabled) (GoaAccount *object);
+
+  gboolean  (*get_documents_disabled) (GoaAccount *object);
+
+  const gchar * (*get_id) (GoaAccount *object);
+
+  const gchar * (*get_identity) (GoaAccount *object);
+
+  gboolean  (*get_is_temporary) (GoaAccount *object);
+
+  gboolean  (*get_mail_disabled) (GoaAccount *object);
+
+  const gchar * (*get_presentation_identity) (GoaAccount *object);
+
+  const gchar * (*get_provider_icon) (GoaAccount *object);
+
+  const gchar * (*get_provider_name) (GoaAccount *object);
+
+  const gchar * (*get_provider_type) (GoaAccount *object);
+
+  gboolean  (*get_ticketing_disabled) (GoaAccount *object);
+
+  gboolean  (*get_files_disabled) (GoaAccount *object);
+
+  gboolean  (*get_photos_disabled) (GoaAccount *object);
+
+  gboolean  (*get_printers_disabled) (GoaAccount *object);
+
+  gboolean  (*get_read_later_disabled) (GoaAccount *object);
+
+  gboolean  (*get_maps_disabled) (GoaAccount *object);
+
+  gboolean  (*get_is_locked) (GoaAccount *object);
+
+  gboolean  (*get_music_disabled) (GoaAccount *object);
+
+  gboolean  (*get_todo_disabled) (GoaAccount *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Account.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

handle_ensure_credentials ()

Handler for the “handle-ensure-credentials” signal.

 

handle_remove ()

Handler for the “handle-remove” signal.

 

get_attention_needed ()

Getter for the “attention-needed” property.

 

get_calendar_disabled ()

Getter for the “calendar-disabled” property.

 

get_chat_disabled ()

Getter for the “chat-disabled” property.

 

get_contacts_disabled ()

Getter for the “contacts-disabled” property.

 

get_documents_disabled ()

Getter for the “documents-disabled” property.

 

get_id ()

Getter for the “id” property.

 

get_identity ()

Getter for the “identity” property.

 

get_is_temporary ()

Getter for the “is-temporary” property.

 

get_mail_disabled ()

Getter for the “mail-disabled” property.

 

get_presentation_identity ()

Getter for the “presentation-identity” property.

 

get_provider_icon ()

Getter for the “provider-icon” property.

 

get_provider_name ()

Getter for the “provider-name” property.

 

get_provider_type ()

Getter for the “provider-type” property.

 

get_ticketing_disabled ()

Getter for the “ticketing-disabled” property.

 

get_files_disabled ()

Getter for the “files-disabled” property.

 

get_photos_disabled ()

Getter for the “photos-disabled” property.

 

get_printers_disabled ()

Getter for the “printers-disabled” property.

 

get_read_later_disabled ()

Getter for the “read-later-disabled” property.

 

get_maps_disabled ()

Getter for the “maps-disabled” property.

 

get_is_locked ()

Getter for the “is-locked” property.

 

get_music_disabled ()

Getter for the “music-disabled” property.

 

get_todo_disabled ()

Getter for the “todo-disabled” property.

 
+
+
+
+
+

struct GoaAccountProxy

+
struct GoaAccountProxy;
+

The GoaAccountProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaAccountProxyClass

+
struct GoaAccountProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaAccountProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaAccountSkeleton

+
struct GoaAccountSkeleton;
+

The GoaAccountSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaAccountSkeletonClass

+
struct GoaAccountSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaAccountSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Property Details

+
+

The “attention-needed” property

+
  “attention-needed”         gboolean
+

Represents the D-Bus property "AttentionNeeded".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “calendar-disabled” property

+
  “calendar-disabled”        gboolean
+

Represents the D-Bus property "CalendarDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “chat-disabled” property

+
  “chat-disabled”            gboolean
+

Represents the D-Bus property "ChatDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “contacts-disabled” property

+
  “contacts-disabled”        gboolean
+

Represents the D-Bus property "ContactsDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “documents-disabled” property

+
  “documents-disabled”       gboolean
+

Represents the D-Bus property "DocumentsDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “files-disabled” property

+
  “files-disabled”           gboolean
+

Represents the D-Bus property "FilesDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “id” property

+
  “id”                       gchar *
+

Represents the D-Bus property "Id".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “identity” property

+
  “identity”                 gchar *
+

Represents the D-Bus property "Identity".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “is-locked” property

+
  “is-locked”                gboolean
+

Represents the D-Bus property "IsLocked".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.16.0

+
+
+
+

The “is-temporary” property

+
  “is-temporary”             gboolean
+

Represents the D-Bus property "IsTemporary".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “mail-disabled” property

+
  “mail-disabled”            gboolean
+

Represents the D-Bus property "MailDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “maps-disabled” property

+
  “maps-disabled”            gboolean
+

Represents the D-Bus property "MapsDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.14.0

+
+
+
+

The “music-disabled” property

+
  “music-disabled”           gboolean
+

Represents the D-Bus property "MusicDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.18.0

+
+
+
+

The “photos-disabled” property

+
  “photos-disabled”          gboolean
+

Represents the D-Bus property "PhotosDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “presentation-identity” property

+
  “presentation-identity”    gchar *
+

Represents the D-Bus property "PresentationIdentity".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “printers-disabled” property

+
  “printers-disabled”        gboolean
+

Represents the D-Bus property "PrintersDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.12.0

+
+
+
+

The “provider-icon” property

+
  “provider-icon”            gchar *
+

Represents the D-Bus property "ProviderIcon".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “provider-name” property

+
  “provider-name”            gchar *
+

Represents the D-Bus property "ProviderName".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “provider-type” property

+
  “provider-type”            gchar *
+

Represents the D-Bus property "ProviderType".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “read-later-disabled” property

+
  “read-later-disabled”      gboolean
+

Represents the D-Bus property "ReadLaterDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.12.0

+
+
+
+

The “ticketing-disabled” property

+
  “ticketing-disabled”       gboolean
+

Represents the D-Bus property "TicketingDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.6.0

+
+
+
+

The “todo-disabled” property

+
  “todo-disabled”            gboolean
+

Represents the D-Bus property "TodoDisabled".

+

Since the D-Bus property for this GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.26.0

+
+
+
+

Signal Details

+
+

The “handle-ensure-credentials” signal

+
gboolean
+user_function (GoaAccount            *object,
+               GDBusMethodInvocation *invocation,
+               gpointer               user_data)
+

Signal emitted when a remote caller is invoking the EnsureCredentials() D-Bus method.

+

If a signal handler returns TRUE, it means the signal handler will handle the invocation (e.g. take a reference to invocation + and eventually call goa_account_complete_ensure_credentials() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the G_DBUS_ERROR_UNKNOWN_METHOD error is returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaAccount.

 

invocation

A GDBusMethodInvocation.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the invocation was handled, FALSE to let other signal handlers run.

+
+

Flags: Run Last

+
+
+
+

The “handle-remove” signal

+
gboolean
+user_function (GoaAccount            *object,
+               GDBusMethodInvocation *invocation,
+               gpointer               user_data)
+

Signal emitted when a remote caller is invoking the Remove() D-Bus method.

+

If a signal handler returns TRUE, it means the signal handler will handle the invocation (e.g. take a reference to invocation + and eventually call goa_account_complete_remove() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the G_DBUS_ERROR_UNKNOWN_METHOD error is returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaAccount.

 

invocation

A GDBusMethodInvocation.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the invocation was handled, FALSE to let other signal handlers run.

+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaCalendar.html b/doc/html/GoaCalendar.html new file mode 100644 index 0000000..158ffbb --- /dev/null +++ b/doc/html/GoaCalendar.html @@ -0,0 +1,929 @@ + + + + +GoaCalendar: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaCalendar

+

GoaCalendar — Generated C code for the org.gnome.OnlineAccounts.Calendar D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_calendar_interface_info () +
+guint + +goa_calendar_override_properties () +
+gboolean + +goa_calendar_get_accept_ssl_errors () +
+void + +goa_calendar_set_accept_ssl_errors () +
const gchar * + +goa_calendar_get_uri () +
+gchar * + +goa_calendar_dup_uri () +
+void + +goa_calendar_set_uri () +
+void + +goa_calendar_proxy_new () +
+GoaCalendar * + +goa_calendar_proxy_new_finish () +
+GoaCalendar * + +goa_calendar_proxy_new_sync () +
+void + +goa_calendar_proxy_new_for_bus () +
+GoaCalendar * + +goa_calendar_proxy_new_for_bus_finish () +
+GoaCalendar * + +goa_calendar_proxy_new_for_bus_sync () +
+GoaCalendar * + +goa_calendar_skeleton_new () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + +
gbooleanaccept-ssl-errorsRead / Write
+gchar *uriRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaCalendar
structGoaCalendarIface
structGoaCalendarProxy
structGoaCalendarProxyClass
structGoaCalendarSkeleton
structGoaCalendarSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaCalendar
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaCalendarSkeleton
+    ╰── GDBusProxy
+        ╰── GoaCalendarProxy
+
+
+
+

Prerequisites

+

+GoaCalendar requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaCalendarProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaCalendar.

+

+GoaCalendarSkeleton implements + GDBusInterface and GoaCalendar.

+
+
+

Known Implementations

+

+GoaCalendar is implemented by + GoaCalendarProxy and GoaCalendarSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Calendar D-Bus interface in C.

+
+
+

Functions

+
+

goa_calendar_interface_info ()

+
GDBusInterfaceInfo *
+goa_calendar_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Calendar D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_calendar_override_properties ()

+
guint
+goa_calendar_override_properties (GObjectClass *klass,
+                                  guint property_id_begin);
+

Overrides all GObject properties in the GoaCalendar interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_calendar_get_accept_ssl_errors ()

+
gboolean
+goa_calendar_get_accept_ssl_errors (GoaCalendar *object);
+

Gets the value of the "AcceptSslErrors" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaCalendar.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_calendar_set_accept_ssl_errors ()

+
void
+goa_calendar_set_accept_ssl_errors (GoaCalendar *object,
+                                    gboolean value);
+

Sets the "AcceptSslErrors" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaCalendar.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_calendar_get_uri ()

+
const gchar *
+goa_calendar_get_uri (GoaCalendar *object);
+

Gets the value of the "Uri" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_calendar_dup_uri() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaCalendar.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_calendar_dup_uri ()

+
gchar *
+goa_calendar_dup_uri (GoaCalendar *object);
+

Gets a copy of the "Uri" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaCalendar.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+

Since: 3.8.0

+
+
+
+

goa_calendar_set_uri ()

+
void
+goa_calendar_set_uri (GoaCalendar *object,
+                      const gchar *value);
+

Sets the "Uri" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaCalendar.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_calendar_proxy_new ()

+
void
+goa_calendar_proxy_new (GDBusConnection *connection,
+                        GDBusProxyFlags flags,
+                        const gchar *name,
+                        const gchar *object_path,
+                        GCancellable *cancellable,
+                        GAsyncReadyCallback callback,
+                        gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Calendar. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_calendar_proxy_new_finish() to get the result of the operation.

+

See goa_calendar_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_calendar_proxy_new_finish ()

+
GoaCalendar *
+goa_calendar_proxy_new_finish (GAsyncResult *res,
+                               GError **error);
+

Finishes an operation started with goa_calendar_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_calendar_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaCalendarProxy]

+
+
+
+
+

goa_calendar_proxy_new_sync ()

+
GoaCalendar *
+goa_calendar_proxy_new_sync (GDBusConnection *connection,
+                             GDBusProxyFlags flags,
+                             const gchar *name,
+                             const gchar *object_path,
+                             GCancellable *cancellable,
+                             GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Calendar. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_calendar_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaCalendarProxy]

+
+
+
+
+

goa_calendar_proxy_new_for_bus ()

+
void
+goa_calendar_proxy_new_for_bus (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Like goa_calendar_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_calendar_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_calendar_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_calendar_proxy_new_for_bus_finish ()

+
GoaCalendar *
+goa_calendar_proxy_new_for_bus_finish (GAsyncResult *res,
+                                       GError **error);
+

Finishes an operation started with goa_calendar_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_calendar_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaCalendarProxy]

+
+
+
+
+

goa_calendar_proxy_new_for_bus_sync ()

+
GoaCalendar *
+goa_calendar_proxy_new_for_bus_sync (GBusType bus_type,
+                                     GDBusProxyFlags flags,
+                                     const gchar *name,
+                                     const gchar *object_path,
+                                     GCancellable *cancellable,
+                                     GError **error);
+

Like goa_calendar_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_calendar_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaCalendarProxy]

+
+
+
+
+

goa_calendar_skeleton_new ()

+
GoaCalendar *
+goa_calendar_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Calendar.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaCalendarSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaCalendar

+
typedef struct _GoaCalendar GoaCalendar;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Calendar.

+
+
+
+

struct GoaCalendarIface

+
struct GoaCalendarIface {
+  GTypeInterface parent_iface;
+
+  gboolean  (*get_accept_ssl_errors) (GoaCalendar *object);
+
+  const gchar * (*get_uri) (GoaCalendar *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Calendar.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

get_accept_ssl_errors ()

Getter for the “accept-ssl-errors” property.

 

get_uri ()

Getter for the “uri” property.

 
+
+
+
+
+

struct GoaCalendarProxy

+
struct GoaCalendarProxy;
+

The GoaCalendarProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaCalendarProxyClass

+
struct GoaCalendarProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaCalendarProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaCalendarSkeleton

+
struct GoaCalendarSkeleton;
+

The GoaCalendarSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaCalendarSkeletonClass

+
struct GoaCalendarSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaCalendarSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Property Details

+
+

The “accept-ssl-errors” property

+
  “accept-ssl-errors”        gboolean
+

Represents the D-Bus property "AcceptSslErrors".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

Represents the D-Bus property "Uri".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+

Since: 3.8.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaChat.html b/doc/html/GoaChat.html new file mode 100644 index 0000000..5029b56 --- /dev/null +++ b/doc/html/GoaChat.html @@ -0,0 +1,669 @@ + + + + +GoaChat: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaChat

+

GoaChat — Generated C code for the org.gnome.OnlineAccounts.Chat D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_chat_interface_info () +
+guint + +goa_chat_override_properties () +
+void + +goa_chat_proxy_new () +
+GoaChat * + +goa_chat_proxy_new_finish () +
+GoaChat * + +goa_chat_proxy_new_sync () +
+void + +goa_chat_proxy_new_for_bus () +
+GoaChat * + +goa_chat_proxy_new_for_bus_finish () +
+GoaChat * + +goa_chat_proxy_new_for_bus_sync () +
+GoaChat * + +goa_chat_skeleton_new () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaChat
structGoaChatIface
structGoaChatProxy
structGoaChatProxyClass
structGoaChatSkeleton
structGoaChatSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaChat
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaChatSkeleton
+    ╰── GDBusProxy
+        ╰── GoaChatProxy
+
+
+
+

Prerequisites

+

+GoaChat requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaChatProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaChat.

+

+GoaChatSkeleton implements + GDBusInterface and GoaChat.

+
+
+

Known Implementations

+

+GoaChat is implemented by + GoaChatProxy and GoaChatSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Chat D-Bus interface in C.

+
+
+

Functions

+
+

goa_chat_interface_info ()

+
GDBusInterfaceInfo *
+goa_chat_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Chat D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_chat_override_properties ()

+
guint
+goa_chat_override_properties (GObjectClass *klass,
+                              guint property_id_begin);
+

Overrides all GObject properties in the GoaChat interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_chat_proxy_new ()

+
void
+goa_chat_proxy_new (GDBusConnection *connection,
+                    GDBusProxyFlags flags,
+                    const gchar *name,
+                    const gchar *object_path,
+                    GCancellable *cancellable,
+                    GAsyncReadyCallback callback,
+                    gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Chat. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_chat_proxy_new_finish() to get the result of the operation.

+

See goa_chat_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_chat_proxy_new_finish ()

+
GoaChat *
+goa_chat_proxy_new_finish (GAsyncResult *res,
+                           GError **error);
+

Finishes an operation started with goa_chat_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_chat_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaChatProxy]

+
+
+
+
+

goa_chat_proxy_new_sync ()

+
GoaChat *
+goa_chat_proxy_new_sync (GDBusConnection *connection,
+                         GDBusProxyFlags flags,
+                         const gchar *name,
+                         const gchar *object_path,
+                         GCancellable *cancellable,
+                         GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Chat. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_chat_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaChatProxy]

+
+
+
+
+

goa_chat_proxy_new_for_bus ()

+
void
+goa_chat_proxy_new_for_bus (GBusType bus_type,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer user_data);
+

Like goa_chat_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_chat_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_chat_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_chat_proxy_new_for_bus_finish ()

+
GoaChat *
+goa_chat_proxy_new_for_bus_finish (GAsyncResult *res,
+                                   GError **error);
+

Finishes an operation started with goa_chat_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_chat_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaChatProxy]

+
+
+
+
+

goa_chat_proxy_new_for_bus_sync ()

+
GoaChat *
+goa_chat_proxy_new_for_bus_sync (GBusType bus_type,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GError **error);
+

Like goa_chat_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_chat_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaChatProxy]

+
+
+
+
+

goa_chat_skeleton_new ()

+
GoaChat *
+goa_chat_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Chat.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaChatSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaChat

+
typedef struct _GoaChat GoaChat;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Chat.

+
+
+
+

struct GoaChatIface

+
struct GoaChatIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Chat.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+
+
+
+

struct GoaChatProxy

+
struct GoaChatProxy;
+

The GoaChatProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaChatProxyClass

+
struct GoaChatProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaChatProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaChatSkeleton

+
struct GoaChatSkeleton;
+

The GoaChatSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaChatSkeletonClass

+
struct GoaChatSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaChatSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaClient.html b/doc/html/GoaClient.html new file mode 100644 index 0000000..d3fe599 --- /dev/null +++ b/doc/html/GoaClient.html @@ -0,0 +1,566 @@ + + + + +GoaClient: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaClient

+

GoaClient — Object for accessing account information

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +goa_client_new () +
+GoaClient * + +goa_client_new_finish () +
+GoaClient * + +goa_client_new_sync () +
+GoaManager * + +goa_client_get_manager () +
+GList * + +goa_client_get_accounts () +
+GDBusObjectManager * + +goa_client_get_object_manager () +
+GoaObject * + +goa_client_lookup_by_id () +
+
+
+

Properties

+
+++++ + + + + + +
+GDBusObjectManager *object-managerRead
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + +
voidaccount-addedRun Last
voidaccount-changedRun Last
voidaccount-removedRun Last
+
+
+

Types and Values

+
++++ + + + + +
 GoaClient
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GoaClient
+
+
+
+

Implemented Interfaces

+

+GoaClient implements + GInitable and GAsyncInitable.

+
+
+

Description

+

GoaClient is used for accessing the GNOME Online Accounts service +from a client program.

+
+
+

Functions

+
+

goa_client_new ()

+
void
+goa_client_new (GCancellable *cancellable,
+                GAsyncReadyCallback callback,
+                gpointer user_data);
+

Asynchronously gets a GoaClient. When the operation is +finished, callback + will be invoked in the thread-default main +loop of the thread you are calling this method from.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cancellable

A GCancellable or NULL.

 

callback

Function that will be called when the result is ready.

 

user_data

Data to pass to callback +.

 
+
+
+
+
+

goa_client_new_finish ()

+
GoaClient *
+goa_client_new_finish (GAsyncResult *res,
+                       GError **error);
+

Finishes an operation started with goa_client_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

A GAsyncResult.

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

A GoaClient or NULL if error +is set. Free with +g_object_unref() when done with it.

+
+
+
+
+

goa_client_new_sync ()

+
GoaClient *
+goa_client_new_sync (GCancellable *cancellable,
+                     GError **error);
+

Synchronously gets a GoaClient for the local system.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cancellable

A GCancellable or NULL.

[allow-none]

error

Return location for error or NULL.

[allow-none]
+
+
+

Returns

+

A GoaClient or NULL if error +is set. Free with +g_object_unref() when done with it.

+
+
+
+
+

goa_client_get_manager ()

+
GoaManager *
+goa_client_get_manager (GoaClient *self);
+

Gets the GoaManager for self +.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaClient.

 
+
+
+

Returns

+

A GoaManager. Do not free, the returned +object belongs to self +.

+

[transfer none]

+
+
+
+
+

goa_client_get_accounts ()

+
GList *
+goa_client_get_accounts (GoaClient *self);
+

Gets all accounts that self + knows about. The result is a list of +GoaObject instances where each object at least has an GoaAccount +interface (that can be obtained via the goa_object_get_account() +method) but may also implement other interfaces such as +GoaMail or GoaFiles.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaClient.

 
+
+
+

Returns

+

A list of +GoaObject instances that must be freed with g_list_free() after +each element has been freed with g_object_unref().

+

[transfer full][element-type GoaObject]

+
+
+
+
+

goa_client_get_object_manager ()

+
GDBusObjectManager *
+goa_client_get_object_manager (GoaClient *self);
+

Gets the GDBusObjectManager used by self +.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaClient.

 
+
+
+

Returns

+

A GDBusObjectManager. Do not free, the +instance is owned by self +.

+

[transfer none]

+
+
+
+
+

goa_client_lookup_by_id ()

+
GoaObject *
+goa_client_lookup_by_id (GoaClient *self,
+                         const gchar *id);
+

Finds and returns the GoaObject instance whose +"Id" +D-Bus property matches id +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

A GoaClient.

 

id

The ID to look for.

 
+
+
+

Returns

+

A GoaObject. Free the returned +object with g_object_unref().

+

[transfer full]

+
+

Since: 3.6

+
+
+
+

Types and Values

+
+

GoaClient

+
typedef struct _GoaClient GoaClient;
+

The GoaClient structure contains only private data and should +only be accessed using the provided API.

+
+
+
+

Property Details

+
+

The “object-manager” property

+
  “object-manager”           GDBusObjectManager *
+

The GDBusObjectManager used by the GoaClient instance.

+

Flags: Read

+
+
+
+

Signal Details

+
+

The “account-added” signal

+
void
+user_function (GoaClient *client,
+               GoaObject *object,
+               gpointer   user_data)
+

Emitted when object + has been added. See +goa_client_get_accounts() for information about how to use this +object.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

client

The GoaClient object emitting the signal.

 

object

The GoaObject for the added account.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “account-changed” signal

+
void
+user_function (GoaClient *client,
+               GoaObject *object,
+               gpointer   user_data)
+

Emitted when something on object + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

client

The GoaClient object emitting the signal.

 

object

The GoaObject for the account with changes.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “account-removed” signal

+
void
+user_function (GoaClient *client,
+               GoaObject *object,
+               gpointer   user_data)
+

Emitted when object + has been removed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

client

The GoaClient object emitting the signal.

 

object

The GoaObject for the removed account.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaContacts.html b/doc/html/GoaContacts.html new file mode 100644 index 0000000..90cf21d --- /dev/null +++ b/doc/html/GoaContacts.html @@ -0,0 +1,929 @@ + + + + +GoaContacts: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaContacts

+

GoaContacts — Generated C code for the org.gnome.OnlineAccounts.Contacts D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_contacts_interface_info () +
+guint + +goa_contacts_override_properties () +
+gboolean + +goa_contacts_get_accept_ssl_errors () +
+void + +goa_contacts_set_accept_ssl_errors () +
const gchar * + +goa_contacts_get_uri () +
+gchar * + +goa_contacts_dup_uri () +
+void + +goa_contacts_set_uri () +
+void + +goa_contacts_proxy_new () +
+GoaContacts * + +goa_contacts_proxy_new_finish () +
+GoaContacts * + +goa_contacts_proxy_new_sync () +
+void + +goa_contacts_proxy_new_for_bus () +
+GoaContacts * + +goa_contacts_proxy_new_for_bus_finish () +
+GoaContacts * + +goa_contacts_proxy_new_for_bus_sync () +
+GoaContacts * + +goa_contacts_skeleton_new () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + +
gbooleanaccept-ssl-errorsRead / Write
+gchar *uriRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaContacts
structGoaContactsIface
structGoaContactsProxy
structGoaContactsProxyClass
structGoaContactsSkeleton
structGoaContactsSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaContacts
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaContactsSkeleton
+    ╰── GDBusProxy
+        ╰── GoaContactsProxy
+
+
+
+

Prerequisites

+

+GoaContacts requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaContactsProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaContacts.

+

+GoaContactsSkeleton implements + GDBusInterface and GoaContacts.

+
+
+

Known Implementations

+

+GoaContacts is implemented by + GoaContactsProxy and GoaContactsSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Contacts D-Bus interface in C.

+
+
+

Functions

+
+

goa_contacts_interface_info ()

+
GDBusInterfaceInfo *
+goa_contacts_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Contacts D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_contacts_override_properties ()

+
guint
+goa_contacts_override_properties (GObjectClass *klass,
+                                  guint property_id_begin);
+

Overrides all GObject properties in the GoaContacts interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_contacts_get_accept_ssl_errors ()

+
gboolean
+goa_contacts_get_accept_ssl_errors (GoaContacts *object);
+

Gets the value of the "AcceptSslErrors" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaContacts.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_contacts_set_accept_ssl_errors ()

+
void
+goa_contacts_set_accept_ssl_errors (GoaContacts *object,
+                                    gboolean value);
+

Sets the "AcceptSslErrors" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaContacts.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_contacts_get_uri ()

+
const gchar *
+goa_contacts_get_uri (GoaContacts *object);
+

Gets the value of the "Uri" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_contacts_dup_uri() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaContacts.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_contacts_dup_uri ()

+
gchar *
+goa_contacts_dup_uri (GoaContacts *object);
+

Gets a copy of the "Uri" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaContacts.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+

Since: 3.8.0

+
+
+
+

goa_contacts_set_uri ()

+
void
+goa_contacts_set_uri (GoaContacts *object,
+                      const gchar *value);
+

Sets the "Uri" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaContacts.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_contacts_proxy_new ()

+
void
+goa_contacts_proxy_new (GDBusConnection *connection,
+                        GDBusProxyFlags flags,
+                        const gchar *name,
+                        const gchar *object_path,
+                        GCancellable *cancellable,
+                        GAsyncReadyCallback callback,
+                        gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Contacts. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_contacts_proxy_new_finish() to get the result of the operation.

+

See goa_contacts_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_contacts_proxy_new_finish ()

+
GoaContacts *
+goa_contacts_proxy_new_finish (GAsyncResult *res,
+                               GError **error);
+

Finishes an operation started with goa_contacts_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_contacts_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaContactsProxy]

+
+
+
+
+

goa_contacts_proxy_new_sync ()

+
GoaContacts *
+goa_contacts_proxy_new_sync (GDBusConnection *connection,
+                             GDBusProxyFlags flags,
+                             const gchar *name,
+                             const gchar *object_path,
+                             GCancellable *cancellable,
+                             GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Contacts. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_contacts_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaContactsProxy]

+
+
+
+
+

goa_contacts_proxy_new_for_bus ()

+
void
+goa_contacts_proxy_new_for_bus (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Like goa_contacts_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_contacts_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_contacts_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_contacts_proxy_new_for_bus_finish ()

+
GoaContacts *
+goa_contacts_proxy_new_for_bus_finish (GAsyncResult *res,
+                                       GError **error);
+

Finishes an operation started with goa_contacts_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_contacts_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaContactsProxy]

+
+
+
+
+

goa_contacts_proxy_new_for_bus_sync ()

+
GoaContacts *
+goa_contacts_proxy_new_for_bus_sync (GBusType bus_type,
+                                     GDBusProxyFlags flags,
+                                     const gchar *name,
+                                     const gchar *object_path,
+                                     GCancellable *cancellable,
+                                     GError **error);
+

Like goa_contacts_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_contacts_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaContactsProxy]

+
+
+
+
+

goa_contacts_skeleton_new ()

+
GoaContacts *
+goa_contacts_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Contacts.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaContactsSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaContacts

+
typedef struct _GoaContacts GoaContacts;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Contacts.

+
+
+
+

struct GoaContactsIface

+
struct GoaContactsIface {
+  GTypeInterface parent_iface;
+
+  gboolean  (*get_accept_ssl_errors) (GoaContacts *object);
+
+  const gchar * (*get_uri) (GoaContacts *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Contacts.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

get_accept_ssl_errors ()

Getter for the “accept-ssl-errors” property.

 

get_uri ()

Getter for the “uri” property.

 
+
+
+
+
+

struct GoaContactsProxy

+
struct GoaContactsProxy;
+

The GoaContactsProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaContactsProxyClass

+
struct GoaContactsProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaContactsProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaContactsSkeleton

+
struct GoaContactsSkeleton;
+

The GoaContactsSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaContactsSkeletonClass

+
struct GoaContactsSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaContactsSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Property Details

+
+

The “accept-ssl-errors” property

+
  “accept-ssl-errors”        gboolean
+

Represents the D-Bus property "AcceptSslErrors".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

Represents the D-Bus property "Uri".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+

Since: 3.8.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaDocuments.html b/doc/html/GoaDocuments.html new file mode 100644 index 0000000..01ed5d8 --- /dev/null +++ b/doc/html/GoaDocuments.html @@ -0,0 +1,670 @@ + + + + +GoaDocuments: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaDocuments

+

GoaDocuments — Generated C code for the org.gnome.OnlineAccounts.Documents D-Bus interface

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaDocuments
structGoaDocumentsIface
structGoaDocumentsProxy
structGoaDocumentsProxyClass
structGoaDocumentsSkeleton
structGoaDocumentsSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaDocuments
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaDocumentsSkeleton
+    ╰── GDBusProxy
+        ╰── GoaDocumentsProxy
+
+
+
+

Prerequisites

+

+GoaDocuments requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaDocumentsProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaDocuments.

+

+GoaDocumentsSkeleton implements + GDBusInterface and GoaDocuments.

+
+
+

Known Implementations

+

+GoaDocuments is implemented by + GoaDocumentsProxy and GoaDocumentsSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Documents D-Bus interface in C.

+
+
+

Functions

+
+

goa_documents_interface_info ()

+
GDBusInterfaceInfo *
+goa_documents_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Documents D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_documents_override_properties ()

+
guint
+goa_documents_override_properties (GObjectClass *klass,
+                                   guint property_id_begin);
+

Overrides all GObject properties in the GoaDocuments interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_documents_proxy_new ()

+
void
+goa_documents_proxy_new (GDBusConnection *connection,
+                         GDBusProxyFlags flags,
+                         const gchar *name,
+                         const gchar *object_path,
+                         GCancellable *cancellable,
+                         GAsyncReadyCallback callback,
+                         gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Documents. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_documents_proxy_new_finish() to get the result of the operation.

+

See goa_documents_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_documents_proxy_new_finish ()

+
GoaDocuments *
+goa_documents_proxy_new_finish (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_documents_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_documents_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaDocumentsProxy]

+
+
+
+
+

goa_documents_proxy_new_sync ()

+
GoaDocuments *
+goa_documents_proxy_new_sync (GDBusConnection *connection,
+                              GDBusProxyFlags flags,
+                              const gchar *name,
+                              const gchar *object_path,
+                              GCancellable *cancellable,
+                              GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Documents. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_documents_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaDocumentsProxy]

+
+
+
+
+

goa_documents_proxy_new_for_bus ()

+
void
+goa_documents_proxy_new_for_bus (GBusType bus_type,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GAsyncReadyCallback callback,
+                                 gpointer user_data);
+

Like goa_documents_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_documents_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_documents_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_documents_proxy_new_for_bus_finish ()

+
GoaDocuments *
+goa_documents_proxy_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_documents_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_documents_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaDocumentsProxy]

+
+
+
+
+

goa_documents_proxy_new_for_bus_sync ()

+
GoaDocuments *
+goa_documents_proxy_new_for_bus_sync (GBusType bus_type,
+                                      GDBusProxyFlags flags,
+                                      const gchar *name,
+                                      const gchar *object_path,
+                                      GCancellable *cancellable,
+                                      GError **error);
+

Like goa_documents_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_documents_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaDocumentsProxy]

+
+
+
+
+

goa_documents_skeleton_new ()

+
GoaDocuments *
+goa_documents_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Documents.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaDocumentsSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaDocuments

+
typedef struct _GoaDocuments GoaDocuments;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Documents.

+
+
+
+

struct GoaDocumentsIface

+
struct GoaDocumentsIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Documents.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+
+
+
+

struct GoaDocumentsProxy

+
struct GoaDocumentsProxy;
+

The GoaDocumentsProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaDocumentsProxyClass

+
struct GoaDocumentsProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaDocumentsProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaDocumentsSkeleton

+
struct GoaDocumentsSkeleton;
+

The GoaDocumentsSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaDocumentsSkeletonClass

+
struct GoaDocumentsSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaDocumentsSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaExchange.html b/doc/html/GoaExchange.html new file mode 100644 index 0000000..e999340 --- /dev/null +++ b/doc/html/GoaExchange.html @@ -0,0 +1,944 @@ + + + + +GoaExchange: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaExchange

+

GoaExchange — Generated C code for the org.gnome.OnlineAccounts.Exchange D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_exchange_interface_info () +
+gboolean + +goa_exchange_get_accept_ssl_errors () +
+void + +goa_exchange_set_accept_ssl_errors () +
const gchar * + +goa_exchange_get_host () +
+gchar * + +goa_exchange_dup_host () +
+void + +goa_exchange_set_host () +
+guint + +goa_exchange_override_properties () +
+void + +goa_exchange_proxy_new () +
+GoaExchange * + +goa_exchange_proxy_new_finish () +
+GoaExchange * + +goa_exchange_proxy_new_sync () +
+void + +goa_exchange_proxy_new_for_bus () +
+GoaExchange * + +goa_exchange_proxy_new_for_bus_finish () +
+GoaExchange * + +goa_exchange_proxy_new_for_bus_sync () +
+GoaExchange * + +goa_exchange_skeleton_new () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + +
gbooleanaccept-ssl-errorsRead / Write
+gchar *hostRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaExchange
structGoaExchangeIface
structGoaExchangeProxy
structGoaExchangeProxyClass
structGoaExchangeSkeleton
structGoaExchangeSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaExchange
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaExchangeSkeleton
+    ╰── GDBusProxy
+        ╰── GoaExchangeProxy
+
+
+
+

Prerequisites

+

+GoaExchange requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaExchangeProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaExchange.

+

+GoaExchangeSkeleton implements + GDBusInterface and GoaExchange.

+
+
+

Known Implementations

+

+GoaExchange is implemented by + GoaExchangeProxy and GoaExchangeSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Exchange D-Bus interface in C.

+
+
+

Functions

+
+

goa_exchange_interface_info ()

+
GDBusInterfaceInfo *
+goa_exchange_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Exchange D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_get_accept_ssl_errors ()

+
gboolean
+goa_exchange_get_accept_ssl_errors (GoaExchange *object);
+

Gets the value of the "AcceptSslErrors" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaExchange.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_exchange_set_accept_ssl_errors ()

+
void
+goa_exchange_set_accept_ssl_errors (GoaExchange *object,
+                                    gboolean value);
+

Sets the "AcceptSslErrors" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaExchange.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_exchange_get_host ()

+
const gchar *
+goa_exchange_get_host (GoaExchange *object);
+

Gets the value of the "Host" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_exchange_dup_host() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaExchange.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_dup_host ()

+
gchar *
+goa_exchange_dup_host (GoaExchange *object);
+

Gets a copy of the "Host" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaExchange.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_set_host ()

+
void
+goa_exchange_set_host (GoaExchange *object,
+                       const gchar *value);
+

Sets the "Host" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaExchange.

 

value

The value to set.

 
+
+

Since: 3.6.0

+
+
+
+

goa_exchange_override_properties ()

+
guint
+goa_exchange_override_properties (GObjectClass *klass,
+                                  guint property_id_begin);
+

Overrides all GObject properties in the GoaExchange interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_proxy_new ()

+
void
+goa_exchange_proxy_new (GDBusConnection *connection,
+                        GDBusProxyFlags flags,
+                        const gchar *name,
+                        const gchar *object_path,
+                        GCancellable *cancellable,
+                        GAsyncReadyCallback callback,
+                        gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Exchange. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_exchange_proxy_new_finish() to get the result of the operation.

+

See goa_exchange_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_exchange_proxy_new_finish ()

+
GoaExchange *
+goa_exchange_proxy_new_finish (GAsyncResult *res,
+                               GError **error);
+

Finishes an operation started with goa_exchange_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_exchange_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaExchangeProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_proxy_new_sync ()

+
GoaExchange *
+goa_exchange_proxy_new_sync (GDBusConnection *connection,
+                             GDBusProxyFlags flags,
+                             const gchar *name,
+                             const gchar *object_path,
+                             GCancellable *cancellable,
+                             GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Exchange. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_exchange_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaExchangeProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_proxy_new_for_bus ()

+
void
+goa_exchange_proxy_new_for_bus (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Like goa_exchange_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_exchange_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_exchange_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_exchange_proxy_new_for_bus_finish ()

+
GoaExchange *
+goa_exchange_proxy_new_for_bus_finish (GAsyncResult *res,
+                                       GError **error);
+

Finishes an operation started with goa_exchange_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_exchange_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaExchangeProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_proxy_new_for_bus_sync ()

+
GoaExchange *
+goa_exchange_proxy_new_for_bus_sync (GBusType bus_type,
+                                     GDBusProxyFlags flags,
+                                     const gchar *name,
+                                     const gchar *object_path,
+                                     GCancellable *cancellable,
+                                     GError **error);
+

Like goa_exchange_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_exchange_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaExchangeProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_exchange_skeleton_new ()

+
GoaExchange *
+goa_exchange_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Exchange.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaExchangeSkeleton]

+
+

Since: 3.6.0

+
+
+
+

Types and Values

+
+

GoaExchange

+
typedef struct _GoaExchange GoaExchange;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Exchange.

+

Since: 3.6.0

+
+
+
+

struct GoaExchangeIface

+
struct GoaExchangeIface {
+  GTypeInterface parent_iface;
+
+  const gchar * (*get_host) (GoaExchange *object);
+
+  gboolean  (*get_accept_ssl_errors) (GoaExchange *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Exchange.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

get_host ()

Getter for the “host” property.

 

get_accept_ssl_errors ()

Getter for the “accept-ssl-errors” property.

 
+
+

Since: 3.6.0

+
+
+
+

struct GoaExchangeProxy

+
struct GoaExchangeProxy;
+

The GoaExchangeProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.6.0

+
+
+
+

struct GoaExchangeProxyClass

+
struct GoaExchangeProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaExchangeProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.6.0

+
+
+
+

struct GoaExchangeSkeleton

+
struct GoaExchangeSkeleton;
+

The GoaExchangeSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.6.0

+
+
+
+

struct GoaExchangeSkeletonClass

+
struct GoaExchangeSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaExchangeSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.6.0

+
+
+
+

Property Details

+
+

The “accept-ssl-errors” property

+
  “accept-ssl-errors”        gboolean
+

Represents the D-Bus property "AcceptSslErrors".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “host” property

+
  “host”                     gchar *
+

Represents the D-Bus property "Host".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+

Since: 3.6.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaFiles.html b/doc/html/GoaFiles.html new file mode 100644 index 0000000..1a3ef8a --- /dev/null +++ b/doc/html/GoaFiles.html @@ -0,0 +1,944 @@ + + + + +GoaFiles: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaFiles

+

GoaFiles — Generated C code for the org.gnome.OnlineAccounts.Files D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+guint + +goa_files_override_properties () +
+GDBusInterfaceInfo * + +goa_files_interface_info () +
+gboolean + +goa_files_get_accept_ssl_errors () +
+void + +goa_files_set_accept_ssl_errors () +
const gchar * + +goa_files_get_uri () +
+gchar * + +goa_files_dup_uri () +
+void + +goa_files_set_uri () +
+void + +goa_files_proxy_new () +
+GoaFiles * + +goa_files_proxy_new_finish () +
+GoaFiles * + +goa_files_proxy_new_sync () +
+void + +goa_files_proxy_new_for_bus () +
+GoaFiles * + +goa_files_proxy_new_for_bus_finish () +
+GoaFiles * + +goa_files_proxy_new_for_bus_sync () +
+GoaFiles * + +goa_files_skeleton_new () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + +
gbooleanaccept-ssl-errorsRead / Write
+gchar *uriRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaFiles
structGoaFilesIface
structGoaFilesProxy
structGoaFilesProxyClass
structGoaFilesSkeleton
structGoaFilesSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaFiles
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaFilesSkeleton
+    ╰── GDBusProxy
+        ╰── GoaFilesProxy
+
+
+
+

Prerequisites

+

+GoaFiles requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaFilesProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaFiles.

+

+GoaFilesSkeleton implements + GDBusInterface and GoaFiles.

+
+
+

Known Implementations

+

+GoaFiles is implemented by + GoaFilesProxy and GoaFilesSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Files D-Bus interface in C.

+
+
+

Functions

+
+

goa_files_override_properties ()

+
guint
+goa_files_override_properties (GObjectClass *klass,
+                               guint property_id_begin);
+

Overrides all GObject properties in the GoaFiles interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.8.0

+
+
+
+

goa_files_interface_info ()

+
GDBusInterfaceInfo *
+goa_files_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Files D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_files_get_accept_ssl_errors ()

+
gboolean
+goa_files_get_accept_ssl_errors (GoaFiles *object);
+

Gets the value of the "AcceptSslErrors" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaFiles.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_files_set_accept_ssl_errors ()

+
void
+goa_files_set_accept_ssl_errors (GoaFiles *object,
+                                 gboolean value);
+

Sets the "AcceptSslErrors" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaFiles.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_files_get_uri ()

+
const gchar *
+goa_files_get_uri (GoaFiles *object);
+

Gets the value of the "Uri" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_files_dup_uri() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaFiles.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_files_dup_uri ()

+
gchar *
+goa_files_dup_uri (GoaFiles *object);
+

Gets a copy of the "Uri" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaFiles.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+

Since: 3.8.0

+
+
+
+

goa_files_set_uri ()

+
void
+goa_files_set_uri (GoaFiles *object,
+                   const gchar *value);
+

Sets the "Uri" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaFiles.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_files_proxy_new ()

+
void
+goa_files_proxy_new (GDBusConnection *connection,
+                     GDBusProxyFlags flags,
+                     const gchar *name,
+                     const gchar *object_path,
+                     GCancellable *cancellable,
+                     GAsyncReadyCallback callback,
+                     gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Files. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_files_proxy_new_finish() to get the result of the operation.

+

See goa_files_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.8.0

+
+
+
+

goa_files_proxy_new_finish ()

+
GoaFiles *
+goa_files_proxy_new_finish (GAsyncResult *res,
+                            GError **error);
+

Finishes an operation started with goa_files_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_files_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaFilesProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_files_proxy_new_sync ()

+
GoaFiles *
+goa_files_proxy_new_sync (GDBusConnection *connection,
+                          GDBusProxyFlags flags,
+                          const gchar *name,
+                          const gchar *object_path,
+                          GCancellable *cancellable,
+                          GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Files. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_files_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaFilesProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_files_proxy_new_for_bus ()

+
void
+goa_files_proxy_new_for_bus (GBusType bus_type,
+                             GDBusProxyFlags flags,
+                             const gchar *name,
+                             const gchar *object_path,
+                             GCancellable *cancellable,
+                             GAsyncReadyCallback callback,
+                             gpointer user_data);
+

Like goa_files_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_files_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_files_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.8.0

+
+
+
+

goa_files_proxy_new_for_bus_finish ()

+
GoaFiles *
+goa_files_proxy_new_for_bus_finish (GAsyncResult *res,
+                                    GError **error);
+

Finishes an operation started with goa_files_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_files_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaFilesProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_files_proxy_new_for_bus_sync ()

+
GoaFiles *
+goa_files_proxy_new_for_bus_sync (GBusType bus_type,
+                                  GDBusProxyFlags flags,
+                                  const gchar *name,
+                                  const gchar *object_path,
+                                  GCancellable *cancellable,
+                                  GError **error);
+

Like goa_files_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_files_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaFilesProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_files_skeleton_new ()

+
GoaFiles *
+goa_files_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Files.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaFilesSkeleton]

+
+

Since: 3.8.0

+
+
+
+

Types and Values

+
+

GoaFiles

+
typedef struct _GoaFiles GoaFiles;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Files.

+

Since: 3.8.0

+
+
+
+

struct GoaFilesIface

+
struct GoaFilesIface {
+  GTypeInterface parent_iface;
+
+  gboolean  (*get_accept_ssl_errors) (GoaFiles *object);
+
+  const gchar * (*get_uri) (GoaFiles *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Files.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

get_accept_ssl_errors ()

Getter for the “accept-ssl-errors” property.

 

get_uri ()

Getter for the “uri” property.

 
+
+

Since: 3.8.0

+
+
+
+

struct GoaFilesProxy

+
struct GoaFilesProxy;
+

The GoaFilesProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.8.0

+
+
+
+

struct GoaFilesProxyClass

+
struct GoaFilesProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaFilesProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.8.0

+
+
+
+

struct GoaFilesSkeleton

+
struct GoaFilesSkeleton;
+

The GoaFilesSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.8.0

+
+
+
+

struct GoaFilesSkeletonClass

+
struct GoaFilesSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaFilesSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.8.0

+
+
+
+

Property Details

+
+

The “accept-ssl-errors” property

+
  “accept-ssl-errors”        gboolean
+

Represents the D-Bus property "AcceptSslErrors".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “uri” property

+
  “uri”                      gchar *
+

Represents the D-Bus property "Uri".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+

Since: 3.8.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaMail.html b/doc/html/GoaMail.html new file mode 100644 index 0000000..766e56f --- /dev/null +++ b/doc/html/GoaMail.html @@ -0,0 +1,2718 @@ + + + + +GoaMail: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaMail

+

GoaMail — Generated C code for the org.gnome.OnlineAccounts.Mail D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+guint + +goa_mail_override_properties () +
+GDBusInterfaceInfo * + +goa_mail_interface_info () +
const gchar * + +goa_mail_get_email_address () +
+gchar * + +goa_mail_dup_email_address () +
+void + +goa_mail_set_email_address () +
const gchar * + +goa_mail_get_name () +
+gchar * + +goa_mail_dup_name () +
+void + +goa_mail_set_name () +
const gchar * + +goa_mail_get_imap_host () +
+gchar * + +goa_mail_dup_imap_host () +
+void + +goa_mail_set_imap_host () +
+gboolean + +goa_mail_get_imap_supported () +
+void + +goa_mail_set_imap_supported () +
+gboolean + +goa_mail_get_imap_accept_ssl_errors () +
+void + +goa_mail_set_imap_accept_ssl_errors () +
+gboolean + +goa_mail_get_imap_use_ssl () +
+void + +goa_mail_set_imap_use_ssl () +
+gboolean + +goa_mail_get_imap_use_tls () +
+void + +goa_mail_set_imap_use_tls () +
const gchar * + +goa_mail_get_imap_user_name () +
+gchar * + +goa_mail_dup_imap_user_name () +
+void + +goa_mail_set_imap_user_name () +
const gchar * + +goa_mail_get_smtp_host () +
+gchar * + +goa_mail_dup_smtp_host () +
+void + +goa_mail_set_smtp_host () +
+gboolean + +goa_mail_get_smtp_supported () +
+void + +goa_mail_set_smtp_supported () +
+gboolean + +goa_mail_get_smtp_accept_ssl_errors () +
+void + +goa_mail_set_smtp_accept_ssl_errors () +
+gboolean + +goa_mail_get_smtp_use_auth () +
+void + +goa_mail_set_smtp_use_auth () +
+gboolean + +goa_mail_get_smtp_auth_login () +
+void + +goa_mail_set_smtp_auth_login () +
+gboolean + +goa_mail_get_smtp_auth_plain () +
+void + +goa_mail_set_smtp_auth_plain () +
+gboolean + +goa_mail_get_smtp_auth_xoauth2 () +
+void + +goa_mail_set_smtp_auth_xoauth2 () +
+gboolean + +goa_mail_get_smtp_use_ssl () +
+void + +goa_mail_set_smtp_use_ssl () +
+gboolean + +goa_mail_get_smtp_use_tls () +
+void + +goa_mail_set_smtp_use_tls () +
const gchar * + +goa_mail_get_smtp_user_name () +
+gchar * + +goa_mail_dup_smtp_user_name () +
+void + +goa_mail_set_smtp_user_name () +
+void + +goa_mail_proxy_new () +
+GoaMail * + +goa_mail_proxy_new_finish () +
+GoaMail * + +goa_mail_proxy_new_sync () +
+void + +goa_mail_proxy_new_for_bus () +
+GoaMail * + +goa_mail_proxy_new_for_bus_finish () +
+GoaMail * + +goa_mail_proxy_new_for_bus_sync () +
+GoaMail * + +goa_mail_skeleton_new () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+gchar *email-addressRead / Write
gbooleanimap-accept-ssl-errorsRead / Write
+gchar *imap-hostRead / Write
gbooleanimap-supportedRead / Write
gbooleanimap-use-sslRead / Write
gbooleanimap-use-tlsRead / Write
+gchar *imap-user-nameRead / Write
+gchar *nameRead / Write
gbooleansmtp-accept-ssl-errorsRead / Write
gbooleansmtp-auth-loginRead / Write
gbooleansmtp-auth-plainRead / Write
gbooleansmtp-auth-xoauth2Read / Write
+gchar *smtp-hostRead / Write
gbooleansmtp-supportedRead / Write
gbooleansmtp-use-authRead / Write
gbooleansmtp-use-sslRead / Write
gbooleansmtp-use-tlsRead / Write
+gchar *smtp-user-nameRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaMail
structGoaMailIface
structGoaMailProxy
structGoaMailProxyClass
structGoaMailSkeleton
structGoaMailSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaMail
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaMailSkeleton
+    ╰── GDBusProxy
+        ╰── GoaMailProxy
+
+
+
+

Prerequisites

+

+GoaMail requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaMailProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaMail.

+

+GoaMailSkeleton implements + GDBusInterface and GoaMail.

+
+
+

Known Implementations

+

+GoaMail is implemented by + GoaMailProxy and GoaMailSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Mail D-Bus interface in C.

+
+
+

Functions

+
+

goa_mail_override_properties ()

+
guint
+goa_mail_override_properties (GObjectClass *klass,
+                              guint property_id_begin);
+

Overrides all GObject properties in the GoaMail interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_mail_interface_info ()

+
GDBusInterfaceInfo *
+goa_mail_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Mail D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_mail_get_email_address ()

+
const gchar *
+goa_mail_get_email_address (GoaMail *object);
+

Gets the value of the "EmailAddress" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_mail_dup_email_address() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_mail_dup_email_address ()

+
gchar *
+goa_mail_dup_email_address (GoaMail *object);
+

Gets a copy of the "EmailAddress" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_mail_set_email_address ()

+
void
+goa_mail_set_email_address (GoaMail *object,
+                            const gchar *value);
+

Sets the "EmailAddress" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_name ()

+
const gchar *
+goa_mail_get_name (GoaMail *object);
+

Gets the value of the "Name" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_mail_dup_name() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_mail_dup_name ()

+
gchar *
+goa_mail_dup_name (GoaMail *object);
+

Gets a copy of the "Name" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+

Since: 3.8.0

+
+
+
+

goa_mail_set_name ()

+
void
+goa_mail_set_name (GoaMail *object,
+                   const gchar *value);
+

Sets the "Name" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_mail_get_imap_host ()

+
const gchar *
+goa_mail_get_imap_host (GoaMail *object);
+

Gets the value of the "ImapHost" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_mail_dup_imap_host() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_mail_dup_imap_host ()

+
gchar *
+goa_mail_dup_imap_host (GoaMail *object);
+

Gets a copy of the "ImapHost" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_mail_set_imap_host ()

+
void
+goa_mail_set_imap_host (GoaMail *object,
+                        const gchar *value);
+

Sets the "ImapHost" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_imap_supported ()

+
gboolean
+goa_mail_get_imap_supported (GoaMail *object);
+

Gets the value of the "ImapSupported" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_mail_set_imap_supported ()

+
void
+goa_mail_set_imap_supported (GoaMail *object,
+                             gboolean value);
+

Sets the "ImapSupported" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_imap_accept_ssl_errors ()

+
gboolean
+goa_mail_get_imap_accept_ssl_errors (GoaMail *object);
+

Gets the value of the "ImapAcceptSslErrors" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_mail_set_imap_accept_ssl_errors ()

+
void
+goa_mail_set_imap_accept_ssl_errors (GoaMail *object,
+                                     gboolean value);
+

Sets the "ImapAcceptSslErrors" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_mail_get_imap_use_ssl ()

+
gboolean
+goa_mail_get_imap_use_ssl (GoaMail *object);
+

Gets the value of the "ImapUseSsl" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_mail_set_imap_use_ssl ()

+
void
+goa_mail_set_imap_use_ssl (GoaMail *object,
+                           gboolean value);
+

Sets the "ImapUseSsl" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_mail_get_imap_use_tls ()

+
gboolean
+goa_mail_get_imap_use_tls (GoaMail *object);
+

Gets the value of the "ImapUseTls" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_mail_set_imap_use_tls ()

+
void
+goa_mail_set_imap_use_tls (GoaMail *object,
+                           gboolean value);
+

Sets the "ImapUseTls" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_imap_user_name ()

+
const gchar *
+goa_mail_get_imap_user_name (GoaMail *object);
+

Gets the value of the "ImapUserName" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_mail_dup_imap_user_name() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_mail_dup_imap_user_name ()

+
gchar *
+goa_mail_dup_imap_user_name (GoaMail *object);
+

Gets a copy of the "ImapUserName" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_mail_set_imap_user_name ()

+
void
+goa_mail_set_imap_user_name (GoaMail *object,
+                             const gchar *value);
+

Sets the "ImapUserName" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_smtp_host ()

+
const gchar *
+goa_mail_get_smtp_host (GoaMail *object);
+

Gets the value of the "SmtpHost" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_mail_dup_smtp_host() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_mail_dup_smtp_host ()

+
gchar *
+goa_mail_dup_smtp_host (GoaMail *object);
+

Gets a copy of the "SmtpHost" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_mail_set_smtp_host ()

+
void
+goa_mail_set_smtp_host (GoaMail *object,
+                        const gchar *value);
+

Sets the "SmtpHost" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_smtp_supported ()

+
gboolean
+goa_mail_get_smtp_supported (GoaMail *object);
+

Gets the value of the "SmtpSupported" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_mail_set_smtp_supported ()

+
void
+goa_mail_set_smtp_supported (GoaMail *object,
+                             gboolean value);
+

Sets the "SmtpSupported" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_smtp_accept_ssl_errors ()

+
gboolean
+goa_mail_get_smtp_accept_ssl_errors (GoaMail *object);
+

Gets the value of the "SmtpAcceptSslErrors" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_mail_set_smtp_accept_ssl_errors ()

+
void
+goa_mail_set_smtp_accept_ssl_errors (GoaMail *object,
+                                     gboolean value);
+

Sets the "SmtpAcceptSslErrors" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_mail_get_smtp_use_auth ()

+
gboolean
+goa_mail_get_smtp_use_auth (GoaMail *object);
+

Gets the value of the "SmtpUseAuth" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_mail_set_smtp_use_auth ()

+
void
+goa_mail_set_smtp_use_auth (GoaMail *object,
+                            gboolean value);
+

Sets the "SmtpUseAuth" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_mail_get_smtp_auth_login ()

+
gboolean
+goa_mail_get_smtp_auth_login (GoaMail *object);
+

Gets the value of the "SmtpAuthLogin" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.12.0

+
+
+
+

goa_mail_set_smtp_auth_login ()

+
void
+goa_mail_set_smtp_auth_login (GoaMail *object,
+                              gboolean value);
+

Sets the "SmtpAuthLogin" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.12.0

+
+
+
+

goa_mail_get_smtp_auth_plain ()

+
gboolean
+goa_mail_get_smtp_auth_plain (GoaMail *object);
+

Gets the value of the "SmtpAuthPlain" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.12.0

+
+
+
+

goa_mail_set_smtp_auth_plain ()

+
void
+goa_mail_set_smtp_auth_plain (GoaMail *object,
+                              gboolean value);
+

Sets the "SmtpAuthPlain" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.12.0

+
+
+
+

goa_mail_get_smtp_auth_xoauth2 ()

+
gboolean
+goa_mail_get_smtp_auth_xoauth2 (GoaMail *object);
+

Gets the value of the "SmtpAuthXoauth2" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.12.0

+
+
+
+

goa_mail_set_smtp_auth_xoauth2 ()

+
void
+goa_mail_set_smtp_auth_xoauth2 (GoaMail *object,
+                                gboolean value);
+

Sets the "SmtpAuthXoauth2" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.12.0

+
+
+
+

goa_mail_get_smtp_use_ssl ()

+
gboolean
+goa_mail_get_smtp_use_ssl (GoaMail *object);
+

Gets the value of the "SmtpUseSsl" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.8.0

+
+
+
+

goa_mail_set_smtp_use_ssl ()

+
void
+goa_mail_set_smtp_use_ssl (GoaMail *object,
+                           gboolean value);
+

Sets the "SmtpUseSsl" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+

Since: 3.8.0

+
+
+
+

goa_mail_get_smtp_use_tls ()

+
gboolean
+goa_mail_get_smtp_use_tls (GoaMail *object);
+

Gets the value of the "SmtpUseTls" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value.

+
+
+
+
+

goa_mail_set_smtp_use_tls ()

+
void
+goa_mail_set_smtp_use_tls (GoaMail *object,
+                           gboolean value);
+

Sets the "SmtpUseTls" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_get_smtp_user_name ()

+
const gchar *
+goa_mail_get_smtp_user_name (GoaMail *object);
+

Gets the value of the "SmtpUserName" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_mail_dup_smtp_user_name() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_mail_dup_smtp_user_name ()

+
gchar *
+goa_mail_dup_smtp_user_name (GoaMail *object);
+

Gets a copy of the "SmtpUserName" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMail.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_mail_set_smtp_user_name ()

+
void
+goa_mail_set_smtp_user_name (GoaMail *object,
+                             const gchar *value);
+

Sets the "SmtpUserName" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMail.

 

value

The value to set.

 
+
+
+
+
+

goa_mail_proxy_new ()

+
void
+goa_mail_proxy_new (GDBusConnection *connection,
+                    GDBusProxyFlags flags,
+                    const gchar *name,
+                    const gchar *object_path,
+                    GCancellable *cancellable,
+                    GAsyncReadyCallback callback,
+                    gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Mail. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_mail_proxy_new_finish() to get the result of the operation.

+

See goa_mail_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_mail_proxy_new_finish ()

+
GoaMail *
+goa_mail_proxy_new_finish (GAsyncResult *res,
+                           GError **error);
+

Finishes an operation started with goa_mail_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_mail_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMailProxy]

+
+
+
+
+

goa_mail_proxy_new_sync ()

+
GoaMail *
+goa_mail_proxy_new_sync (GDBusConnection *connection,
+                         GDBusProxyFlags flags,
+                         const gchar *name,
+                         const gchar *object_path,
+                         GCancellable *cancellable,
+                         GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Mail. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_mail_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMailProxy]

+
+
+
+
+

goa_mail_proxy_new_for_bus ()

+
void
+goa_mail_proxy_new_for_bus (GBusType bus_type,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer user_data);
+

Like goa_mail_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_mail_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_mail_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_mail_proxy_new_for_bus_finish ()

+
GoaMail *
+goa_mail_proxy_new_for_bus_finish (GAsyncResult *res,
+                                   GError **error);
+

Finishes an operation started with goa_mail_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_mail_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMailProxy]

+
+
+
+
+

goa_mail_proxy_new_for_bus_sync ()

+
GoaMail *
+goa_mail_proxy_new_for_bus_sync (GBusType bus_type,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GError **error);
+

Like goa_mail_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_mail_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMailProxy]

+
+
+
+
+

goa_mail_skeleton_new ()

+
GoaMail *
+goa_mail_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Mail.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaMailSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaMail

+
typedef struct _GoaMail GoaMail;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Mail.

+
+
+
+

struct GoaMailIface

+
struct GoaMailIface {
+  GTypeInterface parent_iface;
+
+  const gchar * (*get_email_address) (GoaMail *object);
+
+  const gchar * (*get_imap_host) (GoaMail *object);
+
+  gboolean  (*get_imap_supported) (GoaMail *object);
+
+  gboolean  (*get_imap_use_tls) (GoaMail *object);
+
+  const gchar * (*get_imap_user_name) (GoaMail *object);
+
+  const gchar * (*get_smtp_host) (GoaMail *object);
+
+  gboolean  (*get_smtp_supported) (GoaMail *object);
+
+  gboolean  (*get_smtp_use_tls) (GoaMail *object);
+
+  const gchar * (*get_smtp_user_name) (GoaMail *object);
+
+  gboolean  (*get_imap_accept_ssl_errors) (GoaMail *object);
+
+  gboolean  (*get_imap_use_ssl) (GoaMail *object);
+
+  const gchar * (*get_name) (GoaMail *object);
+
+  gboolean  (*get_smtp_accept_ssl_errors) (GoaMail *object);
+
+  gboolean  (*get_smtp_use_auth) (GoaMail *object);
+
+  gboolean  (*get_smtp_use_ssl) (GoaMail *object);
+
+  gboolean  (*get_smtp_auth_login) (GoaMail *object);
+
+  gboolean  (*get_smtp_auth_plain) (GoaMail *object);
+
+  gboolean  (*get_smtp_auth_xoauth2) (GoaMail *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Mail.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

get_email_address ()

Getter for the “email-address” property.

 

get_imap_host ()

Getter for the “imap-host” property.

 

get_imap_supported ()

Getter for the “imap-supported” property.

 

get_imap_use_tls ()

Getter for the “imap-use-tls” property.

 

get_imap_user_name ()

Getter for the “imap-user-name” property.

 

get_smtp_host ()

Getter for the “smtp-host” property.

 

get_smtp_supported ()

Getter for the “smtp-supported” property.

 

get_smtp_use_tls ()

Getter for the “smtp-use-tls” property.

 

get_smtp_user_name ()

Getter for the “smtp-user-name” property.

 

get_imap_accept_ssl_errors ()

Getter for the “imap-accept-ssl-errors” property.

 

get_imap_use_ssl ()

Getter for the “imap-use-ssl” property.

 

get_name ()

Getter for the “name” property.

 

get_smtp_accept_ssl_errors ()

Getter for the “smtp-accept-ssl-errors” property.

 

get_smtp_use_auth ()

Getter for the “smtp-use-auth” property.

 

get_smtp_use_ssl ()

Getter for the “smtp-use-ssl” property.

 

get_smtp_auth_login ()

Getter for the “smtp-auth-login” property.

 

get_smtp_auth_plain ()

Getter for the “smtp-auth-plain” property.

 

get_smtp_auth_xoauth2 ()

Getter for the “smtp-auth-xoauth2” property.

 
+
+
+
+
+

struct GoaMailProxy

+
struct GoaMailProxy;
+

The GoaMailProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaMailProxyClass

+
struct GoaMailProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaMailProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaMailSkeleton

+
struct GoaMailSkeleton;
+

The GoaMailSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaMailSkeletonClass

+
struct GoaMailSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaMailSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Property Details

+
+

The “email-address” property

+
  “email-address”            gchar *
+

Represents the D-Bus property "EmailAddress".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “imap-accept-ssl-errors” property

+
  “imap-accept-ssl-errors”   gboolean
+

Represents the D-Bus property "ImapAcceptSslErrors".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “imap-host” property

+
  “imap-host”                gchar *
+

Represents the D-Bus property "ImapHost".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “imap-supported” property

+
  “imap-supported”           gboolean
+

Represents the D-Bus property "ImapSupported".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “imap-use-ssl” property

+
  “imap-use-ssl”             gboolean
+

Represents the D-Bus property "ImapUseSsl".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “imap-use-tls” property

+
  “imap-use-tls”             gboolean
+

Represents the D-Bus property "ImapUseTls".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “imap-user-name” property

+
  “imap-user-name”           gchar *
+

Represents the D-Bus property "ImapUserName".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “name” property

+
  “name”                     gchar *
+

Represents the D-Bus property "Name".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+

Since: 3.8.0

+
+
+
+

The “smtp-accept-ssl-errors” property

+
  “smtp-accept-ssl-errors”   gboolean
+

Represents the D-Bus property "SmtpAcceptSslErrors".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “smtp-auth-login” property

+
  “smtp-auth-login”          gboolean
+

Represents the D-Bus property "SmtpAuthLogin".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.12.0

+
+
+
+

The “smtp-auth-plain” property

+
  “smtp-auth-plain”          gboolean
+

Represents the D-Bus property "SmtpAuthPlain".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.12.0

+
+
+
+

The “smtp-auth-xoauth2” property

+
  “smtp-auth-xoauth2”        gboolean
+

Represents the D-Bus property "SmtpAuthXoauth2".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.12.0

+
+
+
+

The “smtp-host” property

+
  “smtp-host”                gchar *
+

Represents the D-Bus property "SmtpHost".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “smtp-supported” property

+
  “smtp-supported”           gboolean
+

Represents the D-Bus property "SmtpSupported".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “smtp-use-auth” property

+
  “smtp-use-auth”            gboolean
+

Represents the D-Bus property "SmtpUseAuth".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “smtp-use-ssl” property

+
  “smtp-use-ssl”             gboolean
+

Represents the D-Bus property "SmtpUseSsl".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.8.0

+
+
+
+

The “smtp-use-tls” property

+
  “smtp-use-tls”             gboolean
+

Represents the D-Bus property "SmtpUseTls".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+
+
+
+

The “smtp-user-name” property

+
  “smtp-user-name”           gchar *
+

Represents the D-Bus property "SmtpUserName".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaManager.html b/doc/html/GoaManager.html new file mode 100644 index 0000000..0aa74c2 --- /dev/null +++ b/doc/html/GoaManager.html @@ -0,0 +1,1052 @@ + + + + +GoaManager: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaManager

+

GoaManager — Generated C code for the org.gnome.OnlineAccounts.Manager D-Bus interface

+
+
+

Functions

+ +
+
+

Signals

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaManager
structGoaManagerIface
structGoaManagerProxy
structGoaManagerProxyClass
structGoaManagerSkeleton
structGoaManagerSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaManager
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaManagerSkeleton
+    ╰── GDBusProxy
+        ╰── GoaManagerProxy
+
+
+
+

Prerequisites

+

+GoaManager requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaManagerProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaManager.

+

+GoaManagerSkeleton implements + GDBusInterface and GoaManager.

+
+
+

Known Implementations

+

+GoaManager is implemented by + GoaManagerProxy and GoaManagerSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Manager D-Bus interface in C.

+
+
+

Functions

+
+

goa_manager_interface_info ()

+
GDBusInterfaceInfo *
+goa_manager_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Manager D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_manager_override_properties ()

+
guint
+goa_manager_override_properties (GObjectClass *klass,
+                                 guint property_id_begin);
+

Overrides all GObject properties in the GoaManager interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_manager_call_add_account ()

+
void
+goa_manager_call_add_account (GoaManager *proxy,
+                              const gchar *arg_provider,
+                              const gchar *arg_identity,
+                              const gchar *arg_presentation_identity,
+                              GVariant *arg_credentials,
+                              GVariant *arg_details,
+                              GCancellable *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer user_data);
+

Asynchronously invokes the AddAccount() D-Bus method on proxy +. +When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_manager_call_add_account_finish() to get the result of the operation.

+

See goa_manager_call_add_account_sync() for the synchronous, blocking version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaManagerProxy.

 

arg_provider

Argument to pass with the method invocation.

 

arg_identity

Argument to pass with the method invocation.

 

arg_presentation_identity

Argument to pass with the method invocation.

 

arg_credentials

Argument to pass with the method invocation.

 

arg_details

Argument to pass with the method invocation.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied or NULL.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_manager_call_add_account_finish ()

+
gboolean
+goa_manager_call_add_account_finish (GoaManager *proxy,
+                                     gchar **out_account_object_path,
+                                     GAsyncResult *res,
+                                     GError **error);
+

Finishes an operation started with goa_manager_call_add_account().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaManagerProxy.

 

out_account_object_path

Return location for return parameter or NULL to ignore.

[out]

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_manager_call_add_account().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_manager_call_add_account_sync ()

+
gboolean
+goa_manager_call_add_account_sync (GoaManager *proxy,
+                                   const gchar *arg_provider,
+                                   const gchar *arg_identity,
+                                   const gchar *arg_presentation_identity,
+                                   GVariant *arg_credentials,
+                                   GVariant *arg_details,
+                                   gchar **out_account_object_path,
+                                   GCancellable *cancellable,
+                                   GError **error);
+

Synchronously invokes the AddAccount() D-Bus method on proxy +. The calling thread is blocked until a reply is received.

+

See goa_manager_call_add_account() for the asynchronous version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaManagerProxy.

 

arg_provider

Argument to pass with the method invocation.

 

arg_identity

Argument to pass with the method invocation.

 

arg_presentation_identity

Argument to pass with the method invocation.

 

arg_credentials

Argument to pass with the method invocation.

 

arg_details

Argument to pass with the method invocation.

 

out_account_object_path

Return location for return parameter or NULL to ignore.

[out]

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_manager_complete_add_account ()

+
void
+goa_manager_complete_add_account (GoaManager *object,
+                                  GDBusMethodInvocation *invocation,
+                                  const gchar *account_object_path);
+

Helper function used in service implementations to finish handling invocations of the AddAccount() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

+

This method will free invocation +, you cannot use it afterwards.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaManager.

 

invocation

A GDBusMethodInvocation.

[transfer full]

account_object_path

Parameter to return.

 
+
+
+
+
+

goa_manager_proxy_new ()

+
void
+goa_manager_proxy_new (GDBusConnection *connection,
+                       GDBusProxyFlags flags,
+                       const gchar *name,
+                       const gchar *object_path,
+                       GCancellable *cancellable,
+                       GAsyncReadyCallback callback,
+                       gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Manager. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_manager_proxy_new_finish() to get the result of the operation.

+

See goa_manager_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_manager_proxy_new_finish ()

+
GoaManager *
+goa_manager_proxy_new_finish (GAsyncResult *res,
+                              GError **error);
+

Finishes an operation started with goa_manager_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_manager_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaManagerProxy]

+
+
+
+
+

goa_manager_proxy_new_sync ()

+
GoaManager *
+goa_manager_proxy_new_sync (GDBusConnection *connection,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Manager. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_manager_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaManagerProxy]

+
+
+
+
+

goa_manager_proxy_new_for_bus ()

+
void
+goa_manager_proxy_new_for_bus (GBusType bus_type,
+                               GDBusProxyFlags flags,
+                               const gchar *name,
+                               const gchar *object_path,
+                               GCancellable *cancellable,
+                               GAsyncReadyCallback callback,
+                               gpointer user_data);
+

Like goa_manager_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_manager_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_manager_proxy_new_for_bus_finish ()

+
GoaManager *
+goa_manager_proxy_new_for_bus_finish (GAsyncResult *res,
+                                      GError **error);
+

Finishes an operation started with goa_manager_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_manager_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaManagerProxy]

+
+
+
+
+

goa_manager_proxy_new_for_bus_sync ()

+
GoaManager *
+goa_manager_proxy_new_for_bus_sync (GBusType bus_type,
+                                    GDBusProxyFlags flags,
+                                    const gchar *name,
+                                    const gchar *object_path,
+                                    GCancellable *cancellable,
+                                    GError **error);
+

Like goa_manager_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_manager_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaManagerProxy]

+
+
+
+
+

goa_manager_skeleton_new ()

+
GoaManager *
+goa_manager_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Manager.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaManagerSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaManager

+
typedef struct _GoaManager GoaManager;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Manager.

+
+
+
+

struct GoaManagerIface

+
struct GoaManagerIface {
+  GTypeInterface parent_iface;
+
+  gboolean (*handle_add_account) (
+    GoaManager *object,
+    GDBusMethodInvocation *invocation,
+    const gchar *arg_provider,
+    const gchar *arg_identity,
+    const gchar *arg_presentation_identity,
+    GVariant *arg_credentials,
+    GVariant *arg_details);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Manager.

+
+

Members

+
+++++ + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

handle_add_account ()

Handler for the “handle-add-account” signal.

 
+
+
+
+
+

struct GoaManagerProxy

+
struct GoaManagerProxy;
+

The GoaManagerProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaManagerProxyClass

+
struct GoaManagerProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaManagerProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaManagerSkeleton

+
struct GoaManagerSkeleton;
+

The GoaManagerSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaManagerSkeletonClass

+
struct GoaManagerSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaManagerSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Signal Details

+
+

The “handle-add-account” signal

+
gboolean
+user_function (GoaManager            *object,
+               GDBusMethodInvocation *invocation,
+               gchar                 *arg_provider,
+               gchar                 *arg_identity,
+               gchar                 *arg_presentation_identity,
+               GVariant              *arg_credentials,
+               GVariant              *arg_details,
+               gpointer               user_data)
+

Signal emitted when a remote caller is invoking the AddAccount() D-Bus method.

+

If a signal handler returns TRUE, it means the signal handler will handle the invocation (e.g. take a reference to invocation + and eventually call goa_manager_complete_add_account() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the G_DBUS_ERROR_UNKNOWN_METHOD error is returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

object

A GoaManager.

 

invocation

A GDBusMethodInvocation.

 

arg_provider

Argument passed by remote caller.

 

arg_identity

Argument passed by remote caller.

 

arg_presentation_identity

Argument passed by remote caller.

 

arg_credentials

Argument passed by remote caller.

 

arg_details

Argument passed by remote caller.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the invocation was handled, FALSE to let other signal handlers run.

+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaMaps.html b/doc/html/GoaMaps.html new file mode 100644 index 0000000..80b6820 --- /dev/null +++ b/doc/html/GoaMaps.html @@ -0,0 +1,684 @@ + + + + +GoaMaps: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaMaps

+

GoaMaps — Generated C code for the org.gnome.OnlineAccounts.Maps D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_maps_interface_info () +
+guint + +goa_maps_override_properties () +
+void + +goa_maps_proxy_new () +
+GoaMaps * + +goa_maps_proxy_new_finish () +
+GoaMaps * + +goa_maps_proxy_new_sync () +
+void + +goa_maps_proxy_new_for_bus () +
+GoaMaps * + +goa_maps_proxy_new_for_bus_finish () +
+GoaMaps * + +goa_maps_proxy_new_for_bus_sync () +
+GoaMaps * + +goa_maps_skeleton_new () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaMaps
structGoaMapsIface
structGoaMapsProxy
structGoaMapsProxyClass
structGoaMapsSkeleton
structGoaMapsSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaMaps
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaMapsSkeleton
+    ╰── GDBusProxy
+        ╰── GoaMapsProxy
+
+
+
+

Prerequisites

+

+GoaMaps requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaMapsProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaMaps.

+

+GoaMapsSkeleton implements + GDBusInterface and GoaMaps.

+
+
+

Known Implementations

+

+GoaMaps is implemented by + GoaMapsProxy and GoaMapsSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Maps D-Bus interface in C.

+
+
+

Functions

+
+

goa_maps_interface_info ()

+
GDBusInterfaceInfo *
+goa_maps_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Maps D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.14.0

+
+
+
+

goa_maps_override_properties ()

+
guint
+goa_maps_override_properties (GObjectClass *klass,
+                              guint property_id_begin);
+

Overrides all GObject properties in the GoaMaps interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.14.0

+
+
+
+

goa_maps_proxy_new ()

+
void
+goa_maps_proxy_new (GDBusConnection *connection,
+                    GDBusProxyFlags flags,
+                    const gchar *name,
+                    const gchar *object_path,
+                    GCancellable *cancellable,
+                    GAsyncReadyCallback callback,
+                    gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Maps. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_maps_proxy_new_finish() to get the result of the operation.

+

See goa_maps_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.14.0

+
+
+
+

goa_maps_proxy_new_finish ()

+
GoaMaps *
+goa_maps_proxy_new_finish (GAsyncResult *res,
+                           GError **error);
+

Finishes an operation started with goa_maps_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_maps_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMapsProxy]

+
+

Since: 3.14.0

+
+
+
+

goa_maps_proxy_new_sync ()

+
GoaMaps *
+goa_maps_proxy_new_sync (GDBusConnection *connection,
+                         GDBusProxyFlags flags,
+                         const gchar *name,
+                         const gchar *object_path,
+                         GCancellable *cancellable,
+                         GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Maps. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_maps_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMapsProxy]

+
+

Since: 3.14.0

+
+
+
+

goa_maps_proxy_new_for_bus ()

+
void
+goa_maps_proxy_new_for_bus (GBusType bus_type,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer user_data);
+

Like goa_maps_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_maps_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_maps_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.14.0

+
+
+
+

goa_maps_proxy_new_for_bus_finish ()

+
GoaMaps *
+goa_maps_proxy_new_for_bus_finish (GAsyncResult *res,
+                                   GError **error);
+

Finishes an operation started with goa_maps_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_maps_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMapsProxy]

+
+

Since: 3.14.0

+
+
+
+

goa_maps_proxy_new_for_bus_sync ()

+
GoaMaps *
+goa_maps_proxy_new_for_bus_sync (GBusType bus_type,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GError **error);
+

Like goa_maps_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_maps_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMapsProxy]

+
+

Since: 3.14.0

+
+
+
+

goa_maps_skeleton_new ()

+
GoaMaps *
+goa_maps_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Maps.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaMapsSkeleton]

+
+

Since: 3.14.0

+
+
+
+

Types and Values

+
+

GoaMaps

+
typedef struct _GoaMaps GoaMaps;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Maps.

+

Since: 3.14.0

+
+
+
+

struct GoaMapsIface

+
struct GoaMapsIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Maps.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+

Since: 3.14.0

+
+
+
+

struct GoaMapsProxy

+
struct GoaMapsProxy;
+

The GoaMapsProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.14.0

+
+
+
+

struct GoaMapsProxyClass

+
struct GoaMapsProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaMapsProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.14.0

+
+
+
+

struct GoaMapsSkeleton

+
struct GoaMapsSkeleton;
+

The GoaMapsSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.14.0

+
+
+
+

struct GoaMapsSkeletonClass

+
struct GoaMapsSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaMapsSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.14.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaMediaServer.html b/doc/html/GoaMediaServer.html new file mode 100644 index 0000000..2864486 --- /dev/null +++ b/doc/html/GoaMediaServer.html @@ -0,0 +1,946 @@ + + + + +GoaMediaServer: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaMediaServer

+

GoaMediaServer — Generated C code for the org.gnome.OnlineAccounts.MediaServer D-Bus interface

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
gbooleandlna-supportedRead / Write
+gchar *udnRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaMediaServer
structGoaMediaServerIface
structGoaMediaServerProxy
structGoaMediaServerProxyClass
structGoaMediaServerSkeleton
structGoaMediaServerSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaMediaServer
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaMediaServerSkeleton
+    ╰── GDBusProxy
+        ╰── GoaMediaServerProxy
+
+
+
+

Prerequisites

+

+GoaMediaServer requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaMediaServerProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaMediaServer.

+

+GoaMediaServerSkeleton implements + GDBusInterface and GoaMediaServer.

+
+
+

Known Implementations

+

+GoaMediaServer is implemented by + GoaMediaServerProxy and GoaMediaServerSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.MediaServer D-Bus interface in C.

+
+
+

Functions

+
+

goa_media_server_interface_info ()

+
GDBusInterfaceInfo *
+goa_media_server_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.MediaServer D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.14

+
+
+
+

goa_media_server_get_dlna_supported ()

+
gboolean
+goa_media_server_get_dlna_supported (GoaMediaServer *object);
+

Gets the value of the "DlnaSupported" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMediaServer.

 
+
+
+

Returns

+

The property value.

+
+

Since: 3.14

+
+
+
+

goa_media_server_set_dlna_supported ()

+
void
+goa_media_server_set_dlna_supported (GoaMediaServer *object,
+                                     gboolean value);
+

Sets the "DlnaSupported" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMediaServer.

 

value

The value to set.

 
+
+

Since: 3.14

+
+
+
+

goa_media_server_get_udn ()

+
const gchar *
+goa_media_server_get_udn (GoaMediaServer *object);
+

Gets the value of the "Udn" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_media_server_dup_udn() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMediaServer.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+

Since: 3.14

+
+
+
+

goa_media_server_dup_udn ()

+
gchar *
+goa_media_server_dup_udn (GoaMediaServer *object);
+

Gets a copy of the "Udn" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaMediaServer.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+

Since: 3.14

+
+
+
+

goa_media_server_set_udn ()

+
void
+goa_media_server_set_udn (GoaMediaServer *object,
+                          const gchar *value);
+

Sets the "Udn" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaMediaServer.

 

value

The value to set.

 
+
+

Since: 3.14

+
+
+
+

goa_media_server_override_properties ()

+
guint
+goa_media_server_override_properties (GObjectClass *klass,
+                                      guint property_id_begin);
+

Overrides all GObject properties in the GoaMediaServer interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.14

+
+
+
+

goa_media_server_proxy_new ()

+
void
+goa_media_server_proxy_new (GDBusConnection *connection,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.MediaServer. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_media_server_proxy_new_finish() to get the result of the operation.

+

See goa_media_server_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.14

+
+
+
+

goa_media_server_proxy_new_finish ()

+
GoaMediaServer *
+goa_media_server_proxy_new_finish (GAsyncResult *res,
+                                   GError **error);
+

Finishes an operation started with goa_media_server_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_media_server_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMediaServerProxy]

+
+

Since: 3.14

+
+
+
+

goa_media_server_proxy_new_sync ()

+
GoaMediaServer *
+goa_media_server_proxy_new_sync (GDBusConnection *connection,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.MediaServer. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_media_server_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMediaServerProxy]

+
+

Since: 3.14

+
+
+
+

goa_media_server_proxy_new_for_bus ()

+
void
+goa_media_server_proxy_new_for_bus (GBusType bus_type,
+                                    GDBusProxyFlags flags,
+                                    const gchar *name,
+                                    const gchar *object_path,
+                                    GCancellable *cancellable,
+                                    GAsyncReadyCallback callback,
+                                    gpointer user_data);
+

Like goa_media_server_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_media_server_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_media_server_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.14

+
+
+
+

goa_media_server_proxy_new_for_bus_finish ()

+
GoaMediaServer *
+goa_media_server_proxy_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_media_server_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_media_server_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMediaServerProxy]

+
+

Since: 3.14

+
+
+
+

goa_media_server_proxy_new_for_bus_sync ()

+
GoaMediaServer *
+goa_media_server_proxy_new_for_bus_sync
+                               (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GError **error);
+

Like goa_media_server_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_media_server_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMediaServerProxy]

+
+

Since: 3.14

+
+
+
+

goa_media_server_skeleton_new ()

+
GoaMediaServer *
+goa_media_server_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.MediaServer.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaMediaServerSkeleton]

+
+

Since: 3.14

+
+
+
+

Types and Values

+
+

GoaMediaServer

+
typedef struct _GoaMediaServer GoaMediaServer;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.MediaServer.

+

Since: 3.14

+
+
+
+

struct GoaMediaServerIface

+
struct GoaMediaServerIface {
+  GTypeInterface parent_iface;
+
+  gboolean  (*get_dlna_supported) (GoaMediaServer *object);
+
+  const gchar * (*get_udn) (GoaMediaServer *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.MediaServer.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

get_dlna_supported ()

Getter for the “dlna-supported” property.

 

get_udn ()

Getter for the “udn” property.

 
+
+

Since: 3.14

+
+
+
+

struct GoaMediaServerProxy

+
struct GoaMediaServerProxy;
+

The GoaMediaServerProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.14

+
+
+
+

struct GoaMediaServerProxyClass

+
struct GoaMediaServerProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaMediaServerProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.14

+
+
+
+

struct GoaMediaServerSkeleton

+
struct GoaMediaServerSkeleton;
+

The GoaMediaServerSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.14

+
+
+
+

struct GoaMediaServerSkeletonClass

+
struct GoaMediaServerSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaMediaServerSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.14

+
+
+
+

Property Details

+
+

The “dlna-supported” property

+
  “dlna-supported”           gboolean
+

Represents the D-Bus property "DlnaSupported".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: FALSE

+

Since: 3.14

+
+
+
+

The “udn” property

+
  “udn”                      gchar *
+

Represents the D-Bus property "Udn".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+

Since: 3.14

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaMusic.html b/doc/html/GoaMusic.html new file mode 100644 index 0000000..ce07041 --- /dev/null +++ b/doc/html/GoaMusic.html @@ -0,0 +1,684 @@ + + + + +GoaMusic: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaMusic

+

GoaMusic — Generated C code for the org.gnome.OnlineAccounts.Music D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_music_interface_info () +
+guint + +goa_music_override_properties () +
+void + +goa_music_proxy_new () +
+GoaMusic * + +goa_music_proxy_new_finish () +
+GoaMusic * + +goa_music_proxy_new_sync () +
+void + +goa_music_proxy_new_for_bus () +
+GoaMusic * + +goa_music_proxy_new_for_bus_finish () +
+GoaMusic * + +goa_music_proxy_new_for_bus_sync () +
+GoaMusic * + +goa_music_skeleton_new () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaMusic
structGoaMusicIface
structGoaMusicProxy
structGoaMusicProxyClass
structGoaMusicSkeleton
structGoaMusicSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaMusic
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaMusicSkeleton
+    ╰── GDBusProxy
+        ╰── GoaMusicProxy
+
+
+
+

Prerequisites

+

+GoaMusic requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaMusicProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaMusic.

+

+GoaMusicSkeleton implements + GDBusInterface and GoaMusic.

+
+
+

Known Implementations

+

+GoaMusic is implemented by + GoaMusicProxy and GoaMusicSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Music D-Bus interface in C.

+
+
+

Functions

+
+

goa_music_interface_info ()

+
GDBusInterfaceInfo *
+goa_music_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Music D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.18.0

+
+
+
+

goa_music_override_properties ()

+
guint
+goa_music_override_properties (GObjectClass *klass,
+                               guint property_id_begin);
+

Overrides all GObject properties in the GoaMusic interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.18.0

+
+
+
+

goa_music_proxy_new ()

+
void
+goa_music_proxy_new (GDBusConnection *connection,
+                     GDBusProxyFlags flags,
+                     const gchar *name,
+                     const gchar *object_path,
+                     GCancellable *cancellable,
+                     GAsyncReadyCallback callback,
+                     gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Music. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_music_proxy_new_finish() to get the result of the operation.

+

See goa_music_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.18.0

+
+
+
+

goa_music_proxy_new_finish ()

+
GoaMusic *
+goa_music_proxy_new_finish (GAsyncResult *res,
+                            GError **error);
+

Finishes an operation started with goa_music_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_music_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMusicProxy]

+
+

Since: 3.18.0

+
+
+
+

goa_music_proxy_new_sync ()

+
GoaMusic *
+goa_music_proxy_new_sync (GDBusConnection *connection,
+                          GDBusProxyFlags flags,
+                          const gchar *name,
+                          const gchar *object_path,
+                          GCancellable *cancellable,
+                          GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Music. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_music_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMusicProxy]

+
+

Since: 3.18.0

+
+
+
+

goa_music_proxy_new_for_bus ()

+
void
+goa_music_proxy_new_for_bus (GBusType bus_type,
+                             GDBusProxyFlags flags,
+                             const gchar *name,
+                             const gchar *object_path,
+                             GCancellable *cancellable,
+                             GAsyncReadyCallback callback,
+                             gpointer user_data);
+

Like goa_music_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_music_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_music_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.18.0

+
+
+
+

goa_music_proxy_new_for_bus_finish ()

+
GoaMusic *
+goa_music_proxy_new_for_bus_finish (GAsyncResult *res,
+                                    GError **error);
+

Finishes an operation started with goa_music_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_music_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMusicProxy]

+
+

Since: 3.18.0

+
+
+
+

goa_music_proxy_new_for_bus_sync ()

+
GoaMusic *
+goa_music_proxy_new_for_bus_sync (GBusType bus_type,
+                                  GDBusProxyFlags flags,
+                                  const gchar *name,
+                                  const gchar *object_path,
+                                  GCancellable *cancellable,
+                                  GError **error);
+

Like goa_music_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_music_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaMusicProxy]

+
+

Since: 3.18.0

+
+
+
+

goa_music_skeleton_new ()

+
GoaMusic *
+goa_music_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Music.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaMusicSkeleton]

+
+

Since: 3.18.0

+
+
+
+

Types and Values

+
+

GoaMusic

+
typedef struct _GoaMusic GoaMusic;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Music.

+

Since: 3.18.0

+
+
+
+

struct GoaMusicIface

+
struct GoaMusicIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Music.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+

Since: 3.18.0

+
+
+
+

struct GoaMusicProxy

+
struct GoaMusicProxy;
+

The GoaMusicProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.18.0

+
+
+
+

struct GoaMusicProxyClass

+
struct GoaMusicProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaMusicProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.18.0

+
+
+
+

struct GoaMusicSkeleton

+
struct GoaMusicSkeleton;
+

The GoaMusicSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.18.0

+
+
+
+

struct GoaMusicSkeletonClass

+
struct GoaMusicSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaMusicSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.18.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaOAuth2Based.html b/doc/html/GoaOAuth2Based.html new file mode 100644 index 0000000..940fc22 --- /dev/null +++ b/doc/html/GoaOAuth2Based.html @@ -0,0 +1,1273 @@ + + + + +GoaOAuth2Based: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaOAuth2Based

+

GoaOAuth2Based — Generated C code for the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
+gchar *client-idRead / Write
+gchar *client-secretRead / Write
+
+
+

Signals

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaOAuth2Based
structGoaOAuth2BasedIface
structGoaOAuth2BasedProxy
structGoaOAuth2BasedProxyClass
structGoaOAuth2BasedSkeleton
structGoaOAuth2BasedSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaOAuth2Based
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaOAuth2BasedSkeleton
+    ╰── GDBusProxy
+        ╰── GoaOAuth2BasedProxy
+
+
+
+

Prerequisites

+

+GoaOAuth2Based requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaOAuth2BasedProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaOAuth2Based.

+

+GoaOAuth2BasedSkeleton implements + GDBusInterface and GoaOAuth2Based.

+
+
+

Known Implementations

+

+GoaOAuth2Based is implemented by + GoaOAuth2BasedProxy and GoaOAuth2BasedSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface in C.

+
+
+

Functions

+
+

goa_oauth2_based_interface_info ()

+
GDBusInterfaceInfo *
+goa_oauth2_based_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth2_based_override_properties ()

+
guint
+goa_oauth2_based_override_properties (GObjectClass *klass,
+                                      guint property_id_begin);
+

Overrides all GObject properties in the GoaOAuth2Based interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_oauth2_based_get_client_id ()

+
const gchar *
+goa_oauth2_based_get_client_id (GoaOAuth2Based *object);
+

Gets the value of the "ClientId" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_oauth2_based_dup_client_id() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuth2Based.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_oauth2_based_set_client_id ()

+
void
+goa_oauth2_based_set_client_id (GoaOAuth2Based *object,
+                                const gchar *value);
+

Sets the "ClientId" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaOAuth2Based.

 

value

The value to set.

 
+
+
+
+
+

goa_oauth2_based_dup_client_id ()

+
gchar *
+goa_oauth2_based_dup_client_id (GoaOAuth2Based *object);
+

Gets a copy of the "ClientId" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuth2Based.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_oauth2_based_get_client_secret ()

+
const gchar *
+goa_oauth2_based_get_client_secret (GoaOAuth2Based *object);
+

Gets the value of the "ClientSecret" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_oauth2_based_dup_client_secret() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuth2Based.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_oauth2_based_set_client_secret ()

+
void
+goa_oauth2_based_set_client_secret (GoaOAuth2Based *object,
+                                    const gchar *value);
+

Sets the "ClientSecret" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaOAuth2Based.

 

value

The value to set.

 
+
+
+
+
+

goa_oauth2_based_dup_client_secret ()

+
gchar *
+goa_oauth2_based_dup_client_secret (GoaOAuth2Based *object);
+

Gets a copy of the "ClientSecret" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuth2Based.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_oauth2_based_call_get_access_token ()

+
void
+goa_oauth2_based_call_get_access_token
+                               (GoaOAuth2Based *proxy,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Asynchronously invokes the GetAccessToken() D-Bus method on proxy +. +When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_oauth2_based_call_get_access_token_finish() to get the result of the operation.

+

See goa_oauth2_based_call_get_access_token_sync() for the synchronous, blocking version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaOAuth2BasedProxy.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied or NULL.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_oauth2_based_call_get_access_token_finish ()

+
gboolean
+goa_oauth2_based_call_get_access_token_finish
+                               (GoaOAuth2Based *proxy,
+                                gchar **out_access_token,
+                                gint *out_expires_in,
+                                GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_oauth2_based_call_get_access_token().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaOAuth2BasedProxy.

 

out_access_token

Return location for return parameter or NULL to ignore.

[out]

out_expires_in

Return location for return parameter or NULL to ignore.

[out]

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_oauth2_based_call_get_access_token().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_oauth2_based_call_get_access_token_sync ()

+
gboolean
+goa_oauth2_based_call_get_access_token_sync
+                               (GoaOAuth2Based *proxy,
+                                gchar **out_access_token,
+                                gint *out_expires_in,
+                                GCancellable *cancellable,
+                                GError **error);
+

Synchronously invokes the GetAccessToken() D-Bus method on proxy +. The calling thread is blocked until a reply is received.

+

See goa_oauth2_based_call_get_access_token() for the asynchronous version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaOAuth2BasedProxy.

 

out_access_token

Return location for return parameter or NULL to ignore.

[out]

out_expires_in

Return location for return parameter or NULL to ignore.

[out]

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_oauth2_based_complete_get_access_token ()

+
void
+goa_oauth2_based_complete_get_access_token
+                               (GoaOAuth2Based *object,
+                                GDBusMethodInvocation *invocation,
+                                const gchar *access_token,
+                                gint expires_in);
+

Helper function used in service implementations to finish handling invocations of the GetAccessToken() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

+

This method will free invocation +, you cannot use it afterwards.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

object

A GoaOAuth2Based.

 

invocation

A GDBusMethodInvocation.

[transfer full]

access_token

Parameter to return.

 

expires_in

Parameter to return.

 
+
+
+
+
+

goa_oauth2_based_proxy_new ()

+
void
+goa_oauth2_based_proxy_new (GDBusConnection *connection,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_oauth2_based_proxy_new_finish() to get the result of the operation.

+

See goa_oauth2_based_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_oauth2_based_proxy_new_finish ()

+
GoaOAuth2Based *
+goa_oauth2_based_proxy_new_finish (GAsyncResult *res,
+                                   GError **error);
+

Finishes an operation started with goa_oauth2_based_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_oauth2_based_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuth2BasedProxy]

+
+
+
+
+

goa_oauth2_based_proxy_new_sync ()

+
GoaOAuth2Based *
+goa_oauth2_based_proxy_new_sync (GDBusConnection *connection,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_oauth2_based_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuth2BasedProxy]

+
+
+
+
+

goa_oauth2_based_proxy_new_for_bus ()

+
void
+goa_oauth2_based_proxy_new_for_bus (GBusType bus_type,
+                                    GDBusProxyFlags flags,
+                                    const gchar *name,
+                                    const gchar *object_path,
+                                    GCancellable *cancellable,
+                                    GAsyncReadyCallback callback,
+                                    gpointer user_data);
+

Like goa_oauth2_based_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_oauth2_based_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_oauth2_based_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_oauth2_based_proxy_new_for_bus_finish ()

+
GoaOAuth2Based *
+goa_oauth2_based_proxy_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_oauth2_based_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_oauth2_based_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuth2BasedProxy]

+
+
+
+
+

goa_oauth2_based_proxy_new_for_bus_sync ()

+
GoaOAuth2Based *
+goa_oauth2_based_proxy_new_for_bus_sync
+                               (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GError **error);
+

Like goa_oauth2_based_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_oauth2_based_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuth2BasedProxy]

+
+
+
+
+

goa_oauth2_based_skeleton_new ()

+
GoaOAuth2Based *
+goa_oauth2_based_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaOAuth2BasedSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaOAuth2Based

+
typedef struct _GoaOAuth2Based GoaOAuth2Based;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based.

+
+
+
+

struct GoaOAuth2BasedIface

+
struct GoaOAuth2BasedIface {
+  GTypeInterface parent_iface;
+
+
+  gboolean (*handle_get_access_token) (
+    GoaOAuth2Based *object,
+    GDBusMethodInvocation *invocation);
+
+  const gchar * (*get_client_id) (GoaOAuth2Based *object);
+
+  const gchar * (*get_client_secret) (GoaOAuth2Based *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

handle_get_access_token ()

Handler for the “handle-get-access-token” signal.

 

get_client_id ()

Getter for the “client-id” property.

 

get_client_secret ()

Getter for the “client-secret” property.

 
+
+
+
+
+

struct GoaOAuth2BasedProxy

+
struct GoaOAuth2BasedProxy;
+

The GoaOAuth2BasedProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaOAuth2BasedProxyClass

+
struct GoaOAuth2BasedProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaOAuth2BasedProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaOAuth2BasedSkeleton

+
struct GoaOAuth2BasedSkeleton;
+

The GoaOAuth2BasedSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaOAuth2BasedSkeletonClass

+
struct GoaOAuth2BasedSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaOAuth2BasedSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Property Details

+
+

The “client-id” property

+
  “client-id”                gchar *
+

Represents the D-Bus property "ClientId".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “client-secret” property

+
  “client-secret”            gchar *
+

Represents the D-Bus property "ClientSecret".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

Signal Details

+
+

The “handle-get-access-token” signal

+
gboolean
+user_function (GoaOAuth2Based        *object,
+               GDBusMethodInvocation *invocation,
+               gpointer               user_data)
+

Signal emitted when a remote caller is invoking the GetAccessToken() D-Bus method.

+

If a signal handler returns TRUE, it means the signal handler will handle the invocation (e.g. take a reference to invocation + and eventually call goa_oauth2_based_complete_get_access_token() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the G_DBUS_ERROR_UNKNOWN_METHOD error is returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaOAuth2Based.

 

invocation

A GDBusMethodInvocation.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the invocation was handled, FALSE to let other signal handlers run.

+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaOAuth2Provider.html b/doc/html/GoaOAuth2Provider.html new file mode 100644 index 0000000..0093c9e --- /dev/null +++ b/doc/html/GoaOAuth2Provider.html @@ -0,0 +1,1004 @@ + + + + +GoaOAuth2Provider: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaOAuth2Provider

+

GoaOAuth2Provider — Abstract base class for OAuth 2.0 providers

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
 GoaOAuth2Provider
 GoaOAuth2ProviderClass
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GoaProvider
+        ╰── GoaOAuth2Provider
+
+
+ +
+

Functions

+
+

goa_oauth2_provider_get_authorization_uri ()

+
const gchar *
+goa_oauth2_provider_get_authorization_uri
+                               (GoaOAuth2Provider *provider);
+

Gets the authorization +endpoint used for authenticating the user and obtaining +authorization.

+

You should not include any parameters in the returned URI. If you +need to include additional parameters than the standard ones, +override GoaOAuth2ProviderClass.build_authorization_uri - +see goa_oauth2_provider_build_authorization_uri() for more +details.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaOAuth2Provider.

 
+
+
+

Returns

+

A string owned by self +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth2_provider_get_token_uri ()

+
const gchar *
+goa_oauth2_provider_get_token_uri (GoaOAuth2Provider *provider);
+

Gets the token +endpoint used for obtaining an access token.

+

A token URI is only needed when the OAuth2 provider does not support +a separate client-side flow. In such cases, override +GoaOAuth2ProviderClass.get_token_uri. You should not include any +parameters in the returned URI.

+

This is a virtual method where the default implementation returns +NULL.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaOAuth2Provider.

 
+
+
+

Returns

+

A string owned by self +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth2_provider_get_redirect_uri ()

+
const gchar *
+goa_oauth2_provider_get_redirect_uri (GoaOAuth2Provider *provider);
+

Gets the redirect_uri +used when requesting authorization.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaOAuth2Provider.

 
+
+
+

Returns

+

A string owned by self +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth2_provider_get_scope ()

+
const gchar *
+goa_oauth2_provider_get_scope (GoaOAuth2Provider *provider);
+

Gets the scope +used when requesting authorization.

+

This is a virtual method where the default implementation returns +NULL.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaOAuth2Provider.

 
+
+
+

Returns

+

A string owned by self +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth2_provider_get_client_id ()

+
const gchar *
+goa_oauth2_provider_get_client_id (GoaOAuth2Provider *provider);
+

Gets the client_id +identifying the client.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaOAuth2Provider.

 
+
+
+

Returns

+

A string owned by self +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth2_provider_get_client_secret ()

+
const gchar *
+goa_oauth2_provider_get_client_secret (GoaOAuth2Provider *provider);
+

Gets the client_secret +associated with the client.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaOAuth2Provider.

 
+
+
+

Returns

+

A string owned by self +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth2_provider_get_use_mobile_browser ()

+
gboolean
+goa_oauth2_provider_get_use_mobile_browser
+                               (GoaOAuth2Provider *provider);
+

Returns whether there is a need for the embedded browser to identify +itself as running on a mobile phone in order to get a more compact +version of the approval page.

+

This is a virtual method where the default implementation returns +FALSE.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaOAuth2Provider.

 
+
+
+

Returns

+

TRUE if the embedded browser should identify itself as +running on a mobile platform, FALSE otherwise.

+
+
+
+
+

goa_oauth2_provider_is_deny_node ()

+
gboolean
+goa_oauth2_provider_is_deny_node (GoaOAuth2Provider *provider,
+                                  WebKitDOMNode *node);
+

Checks whether node + is the HTML UI element that the user can use +to deny permission to access his account. Usually they are either a +WebKitDOMHTMLButtonElement or a WebKitDOMHTMLInputElement.

+

Please note that providers may have multiple such elements in their +UI and this method should catch all of them.

+

This is a virtual method where the default implementation returns +FALSE.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

A GoaOAuth2Provider.

 

node

A WebKitDOMNode.

 
+
+
+

Returns

+

TRUE if the node +can be used to deny permission.

+
+
+
+
+

goa_oauth2_provider_is_identity_node ()

+
gboolean
+goa_oauth2_provider_is_identity_node (GoaOAuth2Provider *provider,
+                                      WebKitDOMHTMLInputElement *element);
+

Checks whether element + is the HTML UI element that the user can +use to identify herself at the provider.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

A GoaOAuth2Provider.

 

element

A WebKitDOMHTMLInputElement.

 
+
+
+

Returns

+

TRUE if the element +can be used to deny permission.

+
+
+
+
+

goa_oauth2_provider_is_password_node ()

+
gboolean
+goa_oauth2_provider_is_password_node (GoaOAuth2Provider *provider,
+                                      WebKitDOMHTMLInputElement *element);
+

Checks whether element + is the HTML UI element that the user can +use to enter her password. This can be used to offer a +GoaPasswordBased interface by saving the user's +password. Providers usually frown upon doing this, so this is not +recommended.

+

This is a virtual method where the default implementation returns +FALSE.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

A GoaOAuth2Provider.

 

element

A WebKitDOMHTMLInputElement

 
+
+
+

Returns

+

TRUE if element +can be used to enter the password.

+
+
+
+
+

goa_oauth2_provider_build_authorization_uri ()

+
gchar *
+goa_oauth2_provider_build_authorization_uri
+                               (GoaOAuth2Provider *provider,
+                                const gchar *authorization_uri,
+                                const gchar *escaped_redirect_uri,
+                                const gchar *escaped_client_id,
+                                const gchar *escaped_scope);
+

Builds the URI that can be opened in a web browser (or embedded web +browser widget) to start authenticating an user.

+

The default implementation just returns the expected URI +(e.g. http://example.com/dialog/oauth2?response_type=code&redirect_uri=https3A2F2Fclient2Eexample2Ecom2Fcb&client_id=foo&scope=email20stuff)

+
  • override (and chain up) if you e.g. need to to pass additional +parameters.

+

The authorization_uri +, escaped_redirect_uri +, escaped_client_id + +and escaped_scope + parameters originate from the result of the +the goa_oauth2_provider_get_authorization_uri(), goa_oauth2_provider_get_redirect_uri(), goa_oauth2_provider_get_client_id() +and goa_oauth2_provider_get_scope() methods with the latter +three escaped using g_uri_escape_string().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaOAuth2Provider.

 

authorization_uri

An authorization URI.

 

escaped_redirect_uri

An escaped redirect URI

 

escaped_client_id

An escaped client id

 

escaped_scope

The escaped scope or NULL.

[allow-none]
+
+
+

Returns

+

An authorization URI that must be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_oauth2_provider_add_account_key_values ()

+
void
+goa_oauth2_provider_add_account_key_values
+                               (GoaOAuth2Provider *provider,
+                                GVariantBuilder *builder);
+

Hook for implementations to add key/value pairs to the key-file +when creating an account.

+

This is a virtual method where the default implementation does nothing.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

A GoaProvider.

 

builder

A GVariantBuilder for a a{ss} variant.

 
+
+
+
+
+

goa_oauth2_provider_get_identity_sync ()

+
gchar *
+goa_oauth2_provider_get_identity_sync (GoaOAuth2Provider *provider,
+                                       const gchar *access_token,
+                                       gchar **out_presentation_identity,
+                                       GCancellable *cancellable,
+                                       GError **error);
+

Method that returns the identity corresponding to +access_token +.

+

The identity is needed because all authentication happens out of +band. In addition to the identity, an implementation also returns a +presentation identity that is more suitable +for presentation (the identity could be a GUID for example).

+

The calling thread is blocked while the identity is obtained.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaOAuth2Provider.

 

access_token

A valid OAuth 2.0 access token.

 

out_presentation_identity

Return location for presentation identity or NULL.

[out]

cancellable

A GCancellable or NULL.

[allow-none]

error

Return location for error +or NULL.

 
+
+
+

Returns

+

The identity or NULL if error is set. The returned string +must be freed with g_free().

+
+
+
+
+

goa_oauth2_provider_get_access_token_sync ()

+
gchar *
+goa_oauth2_provider_get_access_token_sync
+                               (GoaOAuth2Provider *provider,
+                                GoaObject *object,
+                                gboolean force_refresh,
+                                gint *out_access_token_expires_in,
+                                GCancellable *cancellable,
+                                GError **error);
+

Synchronously gets an access token for object +. The calling thread +is blocked while the operation is pending.

+

The resulting token is typically read from the local cache so most +of the time only a local roundtrip to the storage for the token +cache (e.g. gnome-keyring-daemon) is +needed. However, the operation may involve refreshing the token +with the service provider so a full network round-trip may be +needed.

+

Note that multiple calls are serialized to avoid multiple +outstanding requests to the service provider.

+

This operation may fail if e.g. unable to refresh the credentials +or if network connectivity is not available. Note that even if a +token is returned, the returned token isn't guaranteed to work - +use goa_provider_ensure_credentials_sync() if you need +stronger guarantees.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaOAuth2Provider.

 

object

A GoaObject.

 

force_refresh

If set to TRUE, forces a refresh of the access token, if possible.

 

out_access_token_expires_in

Return location for how many seconds the returned token is valid for (0 if unknown) or NULL.

[out]

cancellable

A GCancellable or NULL.

[allow-none]

error

Return location for error or NULL.

 
+
+
+

Returns

+

The access token or NULL if error is set. The returned +string must be freed with g_free().

+
+
+
+
+

goa_oauth2_provider_process_redirect_url ()

+
gboolean
+goa_oauth2_provider_process_redirect_url
+                               (GoaOAuth2Provider *provider,
+                                const gchar *redirect_url,
+                                gchar **authorization_code,
+                                GError **error);
+

Certain OAuth2-like, but not exactly OAuth2, +providers do not follow the standard mechanisms for extracting the +access token or auth code from the redirect URI. They use some +non-standard technique to do so. This is a provider specific hook +to accommodate them and will only be used if implemented.

+

This is a pure virtual method - a subclass must provide an +implementation if needed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaOAuth2Provider.

 

redirect_url

A redirect URI from the web browser

 

authorization_code

Return location for access token.

[out]

error

Return location for error or NULL

 
+
+
+

Returns

+

TRUE if provider +could process redirect_url +, FALSE +otherwise.

+
+
+
+
+

Types and Values

+
+

GoaOAuth2Provider

+
typedef struct _GoaOAuth2Provider GoaOAuth2Provider;
+

The GoaOAuth2Provider structure contains only private data and should +only be accessed using the provided API.

+
+
+
+

GoaOAuth2ProviderClass

+
typedef struct {
+  GoaProviderClass parent_class;
+
+  /* pure virtual */
+  const gchar *(*get_authorization_uri)        (GoaOAuth2Provider            *provider);
+  const gchar *(*get_redirect_uri)             (GoaOAuth2Provider            *provider);
+  const gchar *(*get_client_id)                (GoaOAuth2Provider            *provider);
+  const gchar *(*get_client_secret)            (GoaOAuth2Provider            *provider);
+  gchar       *(*get_identity_sync)            (GoaOAuth2Provider            *provider,
+                                                const gchar                  *access_token,
+                                                gchar                       **out_presentation_identity,
+                                                GCancellable                 *cancellable,
+                                                GError                      **error);
+
+  /* virtual but with default implementation */
+  gchar       *(*build_authorization_uri)      (GoaOAuth2Provider            *provider,
+                                                const gchar                  *authorization_uri,
+                                                const gchar                  *escaped_redirect_uri,
+                                                const gchar                  *escaped_client_id,
+                                                const gchar                  *escaped_scope);
+  const gchar *(*get_token_uri)                (GoaOAuth2Provider            *provider);
+  const gchar *(*get_scope)                    (GoaOAuth2Provider            *provider);
+  gboolean     (*get_use_mobile_browser)       (GoaOAuth2Provider            *provider);
+  void         (*add_account_key_values)       (GoaOAuth2Provider            *provider,
+                                                GVariantBuilder              *builder);
+
+  /* pure virtual */
+  gboolean     (*is_identity_node)             (GoaOAuth2Provider            *provider,
+                                                WebKitDOMHTMLInputElement    *element);
+
+  /* virtual but with default implementation */
+  gboolean     (*is_deny_node)                 (GoaOAuth2Provider            *provider,
+                                                WebKitDOMNode                *node);
+  gboolean     (*is_password_node)             (GoaOAuth2Provider            *provider,
+                                                WebKitDOMHTMLInputElement    *element);
+  gboolean     (*decide_navigation_policy)     (GoaOAuth2Provider              *provider,
+                                                WebKitWebView                  *web_view,
+                                                WebKitNavigationPolicyDecision *decision);
+  gboolean     (*process_redirect_url)         (GoaOAuth2Provider            *provider,
+                                                const gchar                  *redirect_url,
+                                                gchar                       **access_token,
+                                                GError                      **error);
+} GoaOAuth2ProviderClass;
+
+

Class structure for GoaOAuth2Provider.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

get_authorization_uri ()

Virtual function for goa_oauth2_provider_get_authorization_uri().

 

get_redirect_uri ()

Virtual function for goa_oauth2_provider_get_redirect_uri().

 

get_client_id ()

Virtual function for goa_oauth2_provider_get_client_id().

 

get_client_secret ()

Virtual function for goa_oauth2_provider_get_client_secret().

 

get_identity_sync ()

Virtual function for goa_oauth2_provider_get_identity_sync().

 

build_authorization_uri ()

Virtual function for goa_oauth2_provider_build_authorization_uri().

 

get_token_uri ()

Virtual function for goa_oauth2_provider_get_token_uri().

 

get_scope ()

Virtual function for goa_oauth2_provider_get_scope().

 

get_use_mobile_browser ()

Virtual function for goa_oauth2_provider_get_use_mobile_browser().

 

add_account_key_values ()

Virtual function for goa_oauth2_provider_add_account_key_values().

 

is_identity_node ()

Virtual function for goa_oauth2_provider_is_identity_node().

 

is_deny_node ()

Virtual function for goa_oauth2_provider_is_deny_node().

 

is_password_node ()

Virtual function for goa_oauth2_provider_is_password_node().

 

decide_navigation_policy ()

Virtual function for goa_oauth2_provider_decide_navigation_policy().

 

process_redirect_url ()

Virtual function for goa_oauth2_provider_process_redirect_url().

 
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaOAuthBased.html b/doc/html/GoaOAuthBased.html new file mode 100644 index 0000000..7b858a1 --- /dev/null +++ b/doc/html/GoaOAuthBased.html @@ -0,0 +1,1290 @@ + + + + +GoaOAuthBased: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaOAuthBased

+

GoaOAuthBased — Generated C code for the org.gnome.OnlineAccounts.OAuthBased D-Bus interface

+
+ +
+

Properties

+
+++++ + + + + + + + + + + + + +
+gchar *consumer-keyRead / Write
+gchar *consumer-secretRead / Write
+
+
+

Signals

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaOAuthBased
structGoaOAuthBasedIface
structGoaOAuthBasedProxy
structGoaOAuthBasedProxyClass
structGoaOAuthBasedSkeleton
structGoaOAuthBasedSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaOAuthBased
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaOAuthBasedSkeleton
+    ╰── GDBusProxy
+        ╰── GoaOAuthBasedProxy
+
+
+
+

Prerequisites

+

+GoaOAuthBased requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaOAuthBasedProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaOAuthBased.

+

+GoaOAuthBasedSkeleton implements + GDBusInterface and GoaOAuthBased.

+
+
+

Known Implementations

+

+GoaOAuthBased is implemented by + GoaOAuthBasedProxy and GoaOAuthBasedSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.OAuthBased D-Bus interface in C.

+
+
+

Functions

+
+

goa_oauth_based_interface_info ()

+
GDBusInterfaceInfo *
+goa_oauth_based_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.OAuthBased D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth_based_override_properties ()

+
guint
+goa_oauth_based_override_properties (GObjectClass *klass,
+                                     guint property_id_begin);
+

Overrides all GObject properties in the GoaOAuthBased interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+
+
+
+

goa_oauth_based_call_get_access_token ()

+
void
+goa_oauth_based_call_get_access_token (GoaOAuthBased *proxy,
+                                       GCancellable *cancellable,
+                                       GAsyncReadyCallback callback,
+                                       gpointer user_data);
+

Asynchronously invokes the GetAccessToken() D-Bus method on proxy +. +When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_oauth_based_call_get_access_token_finish() to get the result of the operation.

+

See goa_oauth_based_call_get_access_token_sync() for the synchronous, blocking version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaOAuthBasedProxy.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied or NULL.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_oauth_based_call_get_access_token_finish ()

+
gboolean
+goa_oauth_based_call_get_access_token_finish
+                               (GoaOAuthBased *proxy,
+                                gchar **out_access_token,
+                                gchar **out_access_token_secret,
+                                gint *out_expires_in,
+                                GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_oauth_based_call_get_access_token().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaOAuthBasedProxy.

 

out_access_token

Return location for return parameter or NULL to ignore.

[out]

out_access_token_secret

Return location for return parameter or NULL to ignore.

[out]

out_expires_in

Return location for return parameter or NULL to ignore.

[out]

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_oauth_based_call_get_access_token().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_oauth_based_call_get_access_token_sync ()

+
gboolean
+goa_oauth_based_call_get_access_token_sync
+                               (GoaOAuthBased *proxy,
+                                gchar **out_access_token,
+                                gchar **out_access_token_secret,
+                                gint *out_expires_in,
+                                GCancellable *cancellable,
+                                GError **error);
+

Synchronously invokes the GetAccessToken() D-Bus method on proxy +. The calling thread is blocked until a reply is received.

+

See goa_oauth_based_call_get_access_token() for the asynchronous version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaOAuthBasedProxy.

 

out_access_token

Return location for return parameter or NULL to ignore.

[out]

out_access_token_secret

Return location for return parameter or NULL to ignore.

[out]

out_expires_in

Return location for return parameter or NULL to ignore.

[out]

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+
+
+
+

goa_oauth_based_complete_get_access_token ()

+
void
+goa_oauth_based_complete_get_access_token
+                               (GoaOAuthBased *object,
+                                GDBusMethodInvocation *invocation,
+                                const gchar *access_token,
+                                const gchar *access_token_secret,
+                                gint expires_in);
+

Helper function used in service implementations to finish handling invocations of the GetAccessToken() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

+

This method will free invocation +, you cannot use it afterwards.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

object

A GoaOAuthBased.

 

invocation

A GDBusMethodInvocation.

[transfer full]

access_token

Parameter to return.

 

access_token_secret

Parameter to return.

 

expires_in

Parameter to return.

 
+
+
+
+
+

goa_oauth_based_get_consumer_key ()

+
const gchar *
+goa_oauth_based_get_consumer_key (GoaOAuthBased *object);
+

Gets the value of the "ConsumerKey" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_oauth_based_dup_consumer_key() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuthBased.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_oauth_based_dup_consumer_key ()

+
gchar *
+goa_oauth_based_dup_consumer_key (GoaOAuthBased *object);
+

Gets a copy of the "ConsumerKey" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuthBased.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_oauth_based_set_consumer_key ()

+
void
+goa_oauth_based_set_consumer_key (GoaOAuthBased *object,
+                                  const gchar *value);
+

Sets the "ConsumerKey" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaOAuthBased.

 

value

The value to set.

 
+
+
+
+
+

goa_oauth_based_get_consumer_secret ()

+
const gchar *
+goa_oauth_based_get_consumer_secret (GoaOAuthBased *object);
+

Gets the value of the "ConsumerSecret" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+
The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where object was constructed. Use goa_oauth_based_dup_consumer_secret() if on another thread.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuthBased.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. Do not free the returned value, it belongs to object +.

+

[transfer none]

+
+
+
+
+

goa_oauth_based_dup_consumer_secret ()

+
gchar *
+goa_oauth_based_dup_consumer_secret (GoaOAuthBased *object);
+

Gets a copy of the "ConsumerSecret" D-Bus property.

+

Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaOAuthBased.

 
+
+
+

Returns

+

The property value or NULL if the property is not set. The returned value should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_oauth_based_set_consumer_secret ()

+
void
+goa_oauth_based_set_consumer_secret (GoaOAuthBased *object,
+                                     const gchar *value);
+

Sets the "ConsumerSecret" D-Bus property to value +.

+

Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.

+

[skip]

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaOAuthBased.

 

value

The value to set.

 
+
+
+
+
+

goa_oauth_based_proxy_new ()

+
void
+goa_oauth_based_proxy_new (GDBusConnection *connection,
+                           GDBusProxyFlags flags,
+                           const gchar *name,
+                           const gchar *object_path,
+                           GCancellable *cancellable,
+                           GAsyncReadyCallback callback,
+                           gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_oauth_based_proxy_new_finish() to get the result of the operation.

+

See goa_oauth_based_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_oauth_based_proxy_new_finish ()

+
GoaOAuthBased *
+goa_oauth_based_proxy_new_finish (GAsyncResult *res,
+                                  GError **error);
+

Finishes an operation started with goa_oauth_based_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_oauth_based_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuthBasedProxy]

+
+
+
+
+

goa_oauth_based_proxy_new_sync ()

+
GoaOAuthBased *
+goa_oauth_based_proxy_new_sync (GDBusConnection *connection,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_oauth_based_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuthBasedProxy]

+
+
+
+
+

goa_oauth_based_proxy_new_for_bus ()

+
void
+goa_oauth_based_proxy_new_for_bus (GBusType bus_type,
+                                   GDBusProxyFlags flags,
+                                   const gchar *name,
+                                   const gchar *object_path,
+                                   GCancellable *cancellable,
+                                   GAsyncReadyCallback callback,
+                                   gpointer user_data);
+

Like goa_oauth_based_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_oauth_based_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_oauth_based_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_oauth_based_proxy_new_for_bus_finish ()

+
GoaOAuthBased *
+goa_oauth_based_proxy_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_oauth_based_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_oauth_based_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuthBasedProxy]

+
+
+
+
+

goa_oauth_based_proxy_new_for_bus_sync ()

+
GoaOAuthBased *
+goa_oauth_based_proxy_new_for_bus_sync
+                               (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GError **error);
+

Like goa_oauth_based_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_oauth_based_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaOAuthBasedProxy]

+
+
+
+
+

goa_oauth_based_skeleton_new ()

+
GoaOAuthBased *
+goa_oauth_based_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaOAuthBasedSkeleton]

+
+
+
+
+

Types and Values

+
+

GoaOAuthBased

+
typedef struct _GoaOAuthBased GoaOAuthBased;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased.

+
+
+
+

struct GoaOAuthBasedIface

+
struct GoaOAuthBasedIface {
+  GTypeInterface parent_iface;
+
+
+  gboolean (*handle_get_access_token) (
+    GoaOAuthBased *object,
+    GDBusMethodInvocation *invocation);
+
+  const gchar * (*get_consumer_key) (GoaOAuthBased *object);
+
+  const gchar * (*get_consumer_secret) (GoaOAuthBased *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

handle_get_access_token ()

Handler for the “handle-get-access-token” signal.

 

get_consumer_key ()

Getter for the “consumer-key” property.

 

get_consumer_secret ()

Getter for the “consumer-secret” property.

 
+
+
+
+
+

struct GoaOAuthBasedProxy

+
struct GoaOAuthBasedProxy;
+

The GoaOAuthBasedProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaOAuthBasedProxyClass

+
struct GoaOAuthBasedProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaOAuthBasedProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaOAuthBasedSkeleton

+
struct GoaOAuthBasedSkeleton;
+

The GoaOAuthBasedSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaOAuthBasedSkeletonClass

+
struct GoaOAuthBasedSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaOAuthBasedSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Property Details

+
+

The “consumer-key” property

+
  “consumer-key”             gchar *
+

Represents the D-Bus property "ConsumerKey".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

The “consumer-secret” property

+
  “consumer-secret”          gchar *
+

Represents the D-Bus property "ConsumerSecret".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Default value: NULL

+
+
+
+

Signal Details

+
+

The “handle-get-access-token” signal

+
gboolean
+user_function (GoaOAuthBased         *object,
+               GDBusMethodInvocation *invocation,
+               gpointer               user_data)
+

Signal emitted when a remote caller is invoking the GetAccessToken() D-Bus method.

+

If a signal handler returns TRUE, it means the signal handler will handle the invocation (e.g. take a reference to invocation + and eventually call goa_oauth_based_complete_get_access_token() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the G_DBUS_ERROR_UNKNOWN_METHOD error is returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaOAuthBased.

 

invocation

A GDBusMethodInvocation.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the invocation was handled, FALSE to let other signal handlers run.

+
+

Flags: Run Last

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaOAuthProvider.html b/doc/html/GoaOAuthProvider.html new file mode 100644 index 0000000..ee44f1d --- /dev/null +++ b/doc/html/GoaOAuthProvider.html @@ -0,0 +1,1020 @@ + + + + +GoaOAuthProvider: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaOAuthProvider

+

GoaOAuthProvider — Abstract base class for OAuth 1.0a providers

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
 GoaOAuthProvider
structGoaOAuthProviderClass
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GoaProvider
+        ╰── GoaOAuthProvider
+
+
+
+

Description

+

GoaOAuthProvider is an abstract base class for OAuth 1.0a +compliant implementations as defined by RFC +5849. Additionally, the code works with providers +implementing OAuth +Session 1.0 Draft 1 for refreshing access tokens.

+

Subclasses must implement +GoaOAuthProviderClass.get_consumer_key, +GoaOAuthProviderClass.get_consumer_secret, +GoaOAuthProviderClass.get_request_uri, +GoaOAuthProviderClass.get_authorization_uri, +GoaOAuthProviderClass.get_token_uri, +GoaOAuthProviderClass.get_callback_uri and +GoaOAuthProviderClass.get_identity_sync methods.

+

Additionally, the +GoaProviderClass.get_provider_type, +GoaProviderClass.get_provider_name, +GoaProviderClass.build_object (this should chain up to its +parent class) methods must be implemented.

+

Note that the GoaProviderClass.add_account, +GoaProviderClass.refresh_account and +GoaProviderClass.ensure_credentials_sync methods do not +need to be implemented - this type implements these methods.

+
+
+

Functions

+
+

goa_oauth_provider_get_request_uri ()

+
const gchar *
+goa_oauth_provider_get_request_uri (GoaOAuthProvider *provider);
+

Gets the request uri.

+

http://tools.ietf.org/html/rfc5849section-2.1

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

A string owned by provider +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth_provider_get_request_uri_params ()

+
gchar **
+goa_oauth_provider_get_request_uri_params
+                               (GoaOAuthProvider *provider);
+

Gets additional parameters for the request URI.

+

http://tools.ietf.org/html/rfc5849section-2.1

+

This is a virtual method where the default implementation returns +NULL.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

NULL (for no parameters) or a +NULL-terminated array of (key, value) pairs that will be added to +the URI. The caller will free the returned value with g_strfreev().

+

[transfer full]

+
+
+
+
+

goa_oauth_provider_get_authorization_uri ()

+
const gchar *
+goa_oauth_provider_get_authorization_uri
+                               (GoaOAuthProvider *provider);
+

Gets the authorization uri.

+

http://tools.ietf.org/html/rfc5849section-2.2

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

A string owned by provider +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth_provider_get_token_uri ()

+
const gchar *
+goa_oauth_provider_get_token_uri (GoaOAuthProvider *provider);
+

Gets the token uri.

+

http://tools.ietf.org/html/rfc5849section-2.3

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

A string owned by provider +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth_provider_get_callback_uri ()

+
const gchar *
+goa_oauth_provider_get_callback_uri (GoaOAuthProvider *provider);
+

Gets the callback uri.

+

http://tools.ietf.org/html/rfc5849section-2.1

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

A string owned by provider +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth_provider_get_consumer_key ()

+
const gchar *
+goa_oauth_provider_get_consumer_key (GoaOAuthProvider *provider);
+

Gets the consumer key identifying the client.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

A string owned by provider +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth_provider_get_consumer_secret ()

+
const gchar *
+goa_oauth_provider_get_consumer_secret
+                               (GoaOAuthProvider *provider);
+

Gets the consumer secret identifying the client.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

A string owned by provider +- do not free.

+

[transfer none]

+
+
+
+
+

goa_oauth_provider_build_authorization_uri ()

+
gchar *
+goa_oauth_provider_build_authorization_uri
+                               (GoaOAuthProvider *provider,
+                                const gchar *authorization_uri,
+                                const gchar *escaped_oauth_token);
+

Builds the URI that can be opened in a web browser (or embedded web +browser widget) to start authenticating an user.

+

The default implementation just returns the expected URI +(e.g. http://example.com/dialog/oauth?auth_token=1234567890)

+
  • override (and chain up) if you e.g. need to to pass additional +parameters.

+

The authorization_uri + parameter originate from the result of the +the goa_oauth_provider_get_authorization_uri() method. The +escaped_oauth_token + parameter is the temporary credentials identifier +escaped using g_uri_escape_string().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

provider

A GoaOAuthProvider.

 

authorization_uri

An authorization URI.

 

escaped_oauth_token

An escaped oauth token.

 
+
+
+

Returns

+

An authorization URI that must be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_oauth_provider_get_use_mobile_browser ()

+
gboolean
+goa_oauth_provider_get_use_mobile_browser
+                               (GoaOAuthProvider *provider);
+

Returns whether there is a need for the embedded browser to identify +itself as running on a mobile phone in order to get a more compact +version of the approval page.

+

This is a virtual method where the default implementation returns +FALSE.

+
+

Parameters

+
+++++ + + + + + +

provider

A GoaOAuthProvider.

 
+
+
+

Returns

+

TRUE if the embedded browser should identify itself as +running on a mobile platform, FALSE otherwise.

+
+
+
+
+

goa_oauth_provider_is_deny_node ()

+
gboolean
+goa_oauth_provider_is_deny_node (GoaOAuthProvider *provider,
+                                 WebKitDOMNode *node);
+

Checks whether node + is the HTML UI element that the user can use +to deny permission to access his account. Usually they are either a +WebKitDOMHTMLButtonElement or a WebKitDOMHTMLInputElement.

+

Please note that providers may have multiple such elements in their +UI and this method should catch all of them.

+

This is a virtual method where the default implementation returns +FALSE.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

provider

A GoaOAuthProvider.

 

node

A WebKitDOMNode.

 
+
+
+

Returns

+

TRUE if the node +can be used to deny permission.

+
+
+
+
+

goa_oauth_provider_is_identity_node ()

+
gboolean
+goa_oauth_provider_is_identity_node (GoaOAuthProvider *provider,
+                                     WebKitDOMHTMLInputElement *element);
+

Checks whether element + is the HTML UI element that the user can +use to identify herself at the provider.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

provider

A GoaOAuthProvider.

 

element

A WebKitDOMHTMLInputElement.

 
+
+
+

Returns

+

TRUE if the element +can be used to deny permission.

+
+
+
+
+

goa_oauth_provider_is_password_node ()

+
gboolean
+goa_oauth_provider_is_password_node (GoaOAuthProvider *provider,
+                                     WebKitDOMHTMLInputElement *element);
+

Checks whether element + is the HTML UI element that the user can +use to enter her password. This can be used to offer a +GoaPasswordBased interface by saving the user's +password. Providers usually frown upon doing this, so this is not +recommended.

+

This is a virtual method where the default implementation returns +FALSE.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

provider

A GoaOAuthProvider.

 

element

A WebKitDOMHTMLInputElement

 
+
+
+

Returns

+

TRUE if element +can be used to enter the password.

+
+
+
+
+

goa_oauth_provider_add_account_key_values ()

+
void
+goa_oauth_provider_add_account_key_values
+                               (GoaOAuthProvider *provider,
+                                GVariantBuilder *builder);
+

Hook for implementations to add key/value pairs to the key-file +when creating an account.

+

This is a virtual method where the default implementation does nothing.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

provider

A GoaProvider.

 

builder

A GVariantBuilder for a a{ss} variant.

 
+
+
+
+
+

goa_oauth_provider_get_identity_sync ()

+
gchar *
+goa_oauth_provider_get_identity_sync (GoaOAuthProvider *provider,
+                                      const gchar *access_token,
+                                      const gchar *access_token_secret,
+                                      gchar **out_presentation_identity,
+                                      GCancellable *cancellable,
+                                      GError **error);
+

Method that returns the identity corresponding to access_token + and +access_token_secret +.

+

The identity is needed because all authentication happens out of +band. In addition to the identity, an implementation also returns a +presentation identity that is more suitable +for presentation (the identity could be a GUID for example).

+

The calling thread is blocked while the identity is obtained.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

provider

A GoaOAuthProvider.

 

access_token

A valid OAuth 1.0 access token.

 

access_token_secret

The valid secret for access_token +.

 

out_presentation_identity

Return location for presentation identity or NULL.

[out]

cancellable

A GCancellable or NULL.

[allow-none]

error

Return location for error or NULL.

 
+
+
+

Returns

+

The identity or NULL if error is set. The returned string +must be freed with g_free().

+
+
+
+
+

goa_oauth_provider_get_access_token_sync ()

+
gchar *
+goa_oauth_provider_get_access_token_sync
+                               (GoaOAuthProvider *provider,
+                                GoaObject *object,
+                                gboolean force_refresh,
+                                gchar **out_access_token_secret,
+                                gint *out_access_token_expires_in,
+                                GCancellable *cancellable,
+                                GError **error);
+

Synchronously gets an access token for object +. The calling thread +is blocked while the operation is pending.

+

The resulting token is typically read from the local cache so most +of the time only a local roundtrip to the storage for the token +cache (e.g. gnome-keyring-daemon) is +needed. However, the operation may involve refreshing the token +with the service provider so a full network round-trip may be +needed.

+

Note that multiple calls are serialized to avoid multiple +outstanding requests to the service provider.

+

This operation may fail if e.g. unable to refresh the credentials +or if network connectivity is not available. Note that even if a +token is returned, the returned token isn't guaranteed to work - +use goa_provider_ensure_credentials_sync() if you need +stronger guarantees.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

provider

A GoaOAuthProvider.

 

object

A GoaObject.

 

force_refresh

If set to TRUE, forces a refresh of the access token, if possible.

 

out_access_token_secret

The secret for the return access token.

[out]

out_access_token_expires_in

Return location for how many seconds the returned token is valid for (0 if unknown) or NULL.

[out]

cancellable

A GCancellable or NULL.

[allow-none]

error

Return location for error or NULL.

 
+
+
+

Returns

+

The access token or NULL if error is set. The returned +string must be freed with g_free().

+
+
+
+
+

goa_oauth_provider_parse_request_token_error ()

+
gchar *
+goa_oauth_provider_parse_request_token_error
+                               (GoaOAuthProvider *provider,
+                                RestProxyCall *call);
+

Tries to parse the headers and payload within call + to provide a +human readable error message in case the request token could not +be fetched.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

provider

A GoaOAuthProvider.

 

call

The RestProxyCall that was used to fetch the request token.

 
+
+
+

Returns

+

A human readable error message or NULL if the cause of the +error could not be determined. The returned string must be freed with +g_free().

+
+
+
+
+

Types and Values

+
+

GoaOAuthProvider

+
typedef struct _GoaOAuthProvider GoaOAuthProvider;
+

The GoaOAuthProvider structure contains only private data and should +only be accessed using the provided API.

+
+
+
+

struct GoaOAuthProviderClass

+
struct GoaOAuthProviderClass {
+  GoaProviderClass parent_class;
+
+  /* pure virtual */
+  const gchar *(*get_consumer_key)             (GoaOAuthProvider             *provider);
+  const gchar *(*get_consumer_secret)          (GoaOAuthProvider             *provider);
+  const gchar *(*get_request_uri)              (GoaOAuthProvider             *provider);
+  const gchar *(*get_authorization_uri)        (GoaOAuthProvider             *provider);
+  const gchar *(*get_token_uri)                (GoaOAuthProvider             *provider);
+  const gchar *(*get_callback_uri)             (GoaOAuthProvider             *provider);
+
+  gchar       *(*get_identity_sync)            (GoaOAuthProvider             *provider,
+                                                const gchar                  *access_token,
+                                                const gchar                  *access_token_secret,
+                                                gchar                       **out_presentation_identity,
+                                                GCancellable                 *cancellable,
+                                                GError                      **error);
+
+  gchar       *(*parse_request_token_error)    (GoaOAuthProvider             *provider,
+                                                RestProxyCall                *call);
+
+  /* virtual but with default implementation */
+  gchar       *(*build_authorization_uri)      (GoaOAuthProvider             *provider,
+                                                const gchar                  *authorization_uri,
+                                                const gchar                  *escaped_oauth_token);
+  gboolean     (*get_use_mobile_browser)       (GoaOAuthProvider             *provider);
+  gchar      **(*get_request_uri_params)       (GoaOAuthProvider             *provider);
+  void         (*add_account_key_values)       (GoaOAuthProvider             *provider,
+                                                GVariantBuilder              *builder);
+
+  /* pure virtual */
+  gboolean     (*is_identity_node)             (GoaOAuthProvider             *provider,
+                                                WebKitDOMHTMLInputElement    *element);
+
+  /* virtual but with default implementation */
+  gboolean     (*is_deny_node)                 (GoaOAuthProvider             *provider,
+                                                WebKitDOMNode                *node);
+  gboolean     (*is_password_node)             (GoaOAuthProvider             *provider,
+                                                WebKitDOMHTMLInputElement    *element);
+};
+
+

Class structure for GoaOAuthProvider.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

get_consumer_key ()

Virtual function for goa_oauth_provider_get_consumer_key().

 

get_consumer_secret ()

Virtual function for goa_oauth_provider_get_consumer_secret().

 

get_request_uri ()

Virtual function for goa_oauth_provider_get_request_uri().

 

get_authorization_uri ()

Virtual function for goa_oauth_provider_get_authorization_uri().

 

get_token_uri ()

Virtual function for goa_oauth_provider_get_token_uri().

 

get_callback_uri ()

Virtual function for goa_oauth_provider_get_callback_uri().

 

get_identity_sync ()

Virtual function for goa_oauth_provider_get_identity_sync().

 

parse_request_token_error ()

Virtual function for goa_oauth_provider_parse_request_token_error().

 

build_authorization_uri ()

Virtual function for goa_oauth_provider_build_authorization_uri().

 

get_use_mobile_browser ()

Virtual function for goa_oauth_provider_get_use_mobile_browser().

 

get_request_uri_params ()

Virtual function for goa_oauth_provider_get_request_uri_params().

 

add_account_key_values ()

Virtual function for goa_oauth_provider_add_account_key_values().

 

is_identity_node ()

Virtual function for goa_oauth_provider_is_identity_node().

 

is_deny_node ()

Virtual function for goa_oauth_provider_is_deny_node().

 

is_password_node ()

Virtual function for goa_oauth_provider_is_password_node().

 
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaObject.html b/doc/html/GoaObject.html new file mode 100644 index 0000000..7123f72 --- /dev/null +++ b/doc/html/GoaObject.html @@ -0,0 +1,2453 @@ + + + + +GoaObject: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaObject

+

GoaObject — Specialized GDBusObject types

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GoaManager * + +goa_object_get_manager () +
+GoaAccount * + +goa_object_get_account () +
+GoaOAuthBased * + +goa_object_get_oauth_based () +
+GoaOAuth2Based * + +goa_object_get_oauth2_based () +
+GoaMail * + +goa_object_get_mail () +
+GoaCalendar * + +goa_object_get_calendar () +
+GoaContacts * + +goa_object_get_contacts () +
+GoaChat * + +goa_object_get_chat () +
+GoaDocuments * + +goa_object_get_documents () +
+GoaMaps * + +goa_object_get_maps () +
+GoaMediaServer * + +goa_object_get_media_server () +
+GoaMusic * + +goa_object_get_music () +
+GoaPhotos * + +goa_object_get_photos () +
+GoaPrinters * + +goa_object_get_printers () +
+GoaFiles * + +goa_object_get_files () +
+GoaExchange * + +goa_object_get_exchange () +
+GoaTodo * + +goa_object_get_todo () +
+GoaManager * + +goa_object_peek_manager () +
+GoaAccount * + +goa_object_peek_account () +
+GoaOAuthBased * + +goa_object_peek_oauth_based () +
+GoaOAuth2Based * + +goa_object_peek_oauth2_based () +
+GoaMail * + +goa_object_peek_mail () +
+GoaCalendar * + +goa_object_peek_calendar () +
+GoaContacts * + +goa_object_peek_contacts () +
+GoaChat * + +goa_object_peek_chat () +
+GoaDocuments * + +goa_object_peek_documents () +
+GoaMaps * + +goa_object_peek_maps () +
+GoaMediaServer * + +goa_object_peek_media_server () +
+GoaMusic * + +goa_object_peek_music () +
+GoaPhotos * + +goa_object_peek_photos () +
+GoaPrinters * + +goa_object_peek_printers () +
+GoaFiles * + +goa_object_peek_files () +
+GoaExchange * + +goa_object_peek_exchange () +
+GoaTodo * + +goa_object_peek_todo () +
+GoaObjectProxy * + +goa_object_proxy_new () +
+GoaObjectSkeleton * + +goa_object_skeleton_new () +
+void + +goa_object_skeleton_set_manager () +
+void + +goa_object_skeleton_set_account () +
+void + +goa_object_skeleton_set_oauth_based () +
+void + +goa_object_skeleton_set_oauth2_based () +
+void + +goa_object_skeleton_set_mail () +
+void + +goa_object_skeleton_set_calendar () +
+void + +goa_object_skeleton_set_contacts () +
+void + +goa_object_skeleton_set_chat () +
+void + +goa_object_skeleton_set_documents () +
+void + +goa_object_skeleton_set_maps () +
+void + +goa_object_skeleton_set_music () +
+void + +goa_object_skeleton_set_photos () +
+void + +goa_object_skeleton_set_files () +
+void + +goa_object_skeleton_set_exchange () +
+
+
+

Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GoaAccount *accountRead / Write
+GoaCalendar *calendarRead / Write
+GoaChat *chatRead / Write
+GoaContacts *contactsRead / Write
+GoaDocuments *documentsRead / Write
+GoaExchange *exchangeRead / Write
+GoaFiles *filesRead / Write
+GoaMail *mailRead / Write
+GoaManager *managerRead / Write
+GoaMaps *mapsRead / Write
+GoaMediaServer *media-serverRead / Write
+GoaMusic *musicRead / Write
+GoaOAuthBased *oauth-basedRead / Write
+GoaOAuth2Based *oauth2-basedRead / Write
+GoaPasswordBased *password-basedRead / Write
+GoaPhotos *photosRead / Write
+GoaPrinters *printersRead / Write
+GoaReadLater *read-laterRead / Write
+GoaTicketing *ticketingRead / Write
+GoaTodo *todoRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaObject
structGoaObjectIface
structGoaObjectProxy
structGoaObjectProxyClass
structGoaObjectSkeleton
structGoaObjectSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaObject
+    GObject
+    ├── GDBusObjectProxy
+       ╰── GoaObjectProxy
+    ╰── GDBusObjectSkeleton
+        ╰── GoaObjectSkeleton
+
+
+
+

Prerequisites

+

+GoaObject requires + GDBusObject and GObject.

+
+
+

Implemented Interfaces

+

+GoaObjectProxy implements + GDBusObject and GoaObject.

+

+GoaObjectSkeleton implements + GDBusObject and GoaObject.

+
+
+

Known Implementations

+

+GoaObject is implemented by + GoaObjectProxy and GoaObjectSkeleton.

+
+
+

Description

+

This section contains the GoaObject, GoaObjectProxy, and GoaObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces.

+
+
+

Functions

+
+

goa_object_get_manager ()

+
GoaManager *
+goa_object_get_manager (GoaObject *object);
+

Gets the GoaManager instance for the D-Bus interface org.gnome.OnlineAccounts.Manager on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaManager that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_account ()

+
GoaAccount *
+goa_object_get_account (GoaObject *object);
+

Gets the GoaAccount instance for the D-Bus interface org.gnome.OnlineAccounts.Account on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaAccount that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_oauth_based ()

+
GoaOAuthBased *
+goa_object_get_oauth_based (GoaObject *object);
+

Gets the GoaOAuthBased instance for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaOAuthBased that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_oauth2_based ()

+
GoaOAuth2Based *
+goa_object_get_oauth2_based (GoaObject *object);
+

Gets the GoaOAuth2Based instance for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaOAuth2Based that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_mail ()

+
GoaMail *
+goa_object_get_mail (GoaObject *object);
+

Gets the GoaMail instance for the D-Bus interface org.gnome.OnlineAccounts.Mail on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMail that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_calendar ()

+
GoaCalendar *
+goa_object_get_calendar (GoaObject *object);
+

Gets the GoaCalendar instance for the D-Bus interface org.gnome.OnlineAccounts.Calendar on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaCalendar that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_contacts ()

+
GoaContacts *
+goa_object_get_contacts (GoaObject *object);
+

Gets the GoaContacts instance for the D-Bus interface org.gnome.OnlineAccounts.Contacts on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaContacts that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_chat ()

+
GoaChat *
+goa_object_get_chat (GoaObject *object);
+

Gets the GoaChat instance for the D-Bus interface org.gnome.OnlineAccounts.Chat on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaChat that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_documents ()

+
GoaDocuments *
+goa_object_get_documents (GoaObject *object);
+

Gets the GoaDocuments instance for the D-Bus interface org.gnome.OnlineAccounts.Documents on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaDocuments that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+
+
+
+

goa_object_get_maps ()

+
GoaMaps *
+goa_object_get_maps (GoaObject *object);
+

Gets the GoaMaps instance for the D-Bus interface org.gnome.OnlineAccounts.Maps on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMaps that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.14.0

+
+
+
+

goa_object_get_media_server ()

+
GoaMediaServer *
+goa_object_get_media_server (GoaObject *object);
+

Gets the GoaMediaServer instance for the D-Bus interface org.gnome.OnlineAccounts.MediaServer on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMediaServer that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.14

+
+
+
+

goa_object_get_music ()

+
GoaMusic *
+goa_object_get_music (GoaObject *object);
+

Gets the GoaMusic instance for the D-Bus interface org.gnome.OnlineAccounts.Music on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMusic that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.18.0

+
+
+
+

goa_object_get_photos ()

+
GoaPhotos *
+goa_object_get_photos (GoaObject *object);
+

Gets the GoaPhotos instance for the D-Bus interface org.gnome.OnlineAccounts.Photos on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaPhotos that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.8.0

+
+
+
+

goa_object_get_printers ()

+
GoaPrinters *
+goa_object_get_printers (GoaObject *object);
+

Gets the GoaPrinters instance for the D-Bus interface org.gnome.OnlineAccounts.Printers on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaPrinters that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.12.0

+
+
+
+

goa_object_get_files ()

+
GoaFiles *
+goa_object_get_files (GoaObject *object);
+

Gets the GoaFiles instance for the D-Bus interface org.gnome.OnlineAccounts.Files on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaFiles that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.8.0

+
+
+
+

goa_object_get_exchange ()

+
GoaExchange *
+goa_object_get_exchange (GoaObject *object);
+

Gets the GoaExchange instance for the D-Bus interface org.gnome.OnlineAccounts.Exchange on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaExchange that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.6.0

+
+
+
+

goa_object_get_todo ()

+
GoaTodo *
+goa_object_get_todo (GoaObject *object);
+

Gets the GoaTodo instance for the D-Bus interface org.gnome.OnlineAccounts.Todo on object +, if any.

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaTodo that must be freed with g_object_unref() or NULL if object +does not implement the interface.

+

[transfer full]

+
+

Since: 3.26.0

+
+
+
+

goa_object_peek_manager ()

+
GoaManager *
+goa_object_peek_manager (GoaObject *object);
+

Like goa_object_get_manager() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaManager or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_account ()

+
GoaAccount *
+goa_object_peek_account (GoaObject *object);
+

Like goa_object_get_account() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaAccount or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_oauth_based ()

+
GoaOAuthBased *
+goa_object_peek_oauth_based (GoaObject *object);
+

Like goa_object_get_oauth_based() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaOAuthBased or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_oauth2_based ()

+
GoaOAuth2Based *
+goa_object_peek_oauth2_based (GoaObject *object);
+

Like goa_object_get_oauth2_based() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaOAuth2Based or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_mail ()

+
GoaMail *
+goa_object_peek_mail (GoaObject *object);
+

Like goa_object_get_mail() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMail or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_calendar ()

+
GoaCalendar *
+goa_object_peek_calendar (GoaObject *object);
+

Like goa_object_get_calendar() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaCalendar or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_contacts ()

+
GoaContacts *
+goa_object_peek_contacts (GoaObject *object);
+

Like goa_object_get_contacts() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaContacts or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_chat ()

+
GoaChat *
+goa_object_peek_chat (GoaObject *object);
+

Like goa_object_get_chat() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaChat or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_documents ()

+
GoaDocuments *
+goa_object_peek_documents (GoaObject *object);
+

Like goa_object_get_documents() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaDocuments or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+
+
+
+

goa_object_peek_maps ()

+
GoaMaps *
+goa_object_peek_maps (GoaObject *object);
+

Like goa_object_get_maps() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMaps or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.14.0

+
+
+
+

goa_object_peek_media_server ()

+
GoaMediaServer *
+goa_object_peek_media_server (GoaObject *object);
+

Like goa_object_get_media_server() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMediaServer or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.14

+
+
+
+

goa_object_peek_music ()

+
GoaMusic *
+goa_object_peek_music (GoaObject *object);
+

Like goa_object_get_music() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaMusic or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.18.0

+
+
+
+

goa_object_peek_photos ()

+
GoaPhotos *
+goa_object_peek_photos (GoaObject *object);
+

Like goa_object_get_photos() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaPhotos or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_object_peek_printers ()

+
GoaPrinters *
+goa_object_peek_printers (GoaObject *object);
+

Like goa_object_get_printers() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaPrinters or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.12.0

+
+
+
+

goa_object_peek_files ()

+
GoaFiles *
+goa_object_peek_files (GoaObject *object);
+

Like goa_object_get_files() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaFiles or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_object_peek_exchange ()

+
GoaExchange *
+goa_object_peek_exchange (GoaObject *object);
+

Like goa_object_get_exchange() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaExchange or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.6.0

+
+
+
+

goa_object_peek_todo ()

+
GoaTodo *
+goa_object_peek_todo (GoaObject *object);
+

Like goa_object_get_todo() but doesn't increase the reference count on the returned object.

+
It is not safe to use the returned object if you are on another thread than the one where the GDBusObjectManagerClient or GDBusObjectManagerServer for object is running.
+

[skip]

+
+

Parameters

+
+++++ + + + + + +

object

A GoaObject.

 
+
+
+

Returns

+

A GoaTodo or NULL if object +does not implement the interface. Do not free the returned object, it is owned by object +.

+

[transfer none]

+
+

Since: 3.26.0

+
+
+
+

goa_object_proxy_new ()

+
GoaObjectProxy *
+goa_object_proxy_new (GDBusConnection *connection,
+                      const gchar *object_path);
+

Creates a new proxy object.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

connection

A GDBusConnection.

 

object_path

An object path.

 
+
+
+

Returns

+

The proxy object.

+

[transfer full]

+
+
+
+
+

goa_object_skeleton_new ()

+
GoaObjectSkeleton *
+goa_object_skeleton_new (const gchar *object_path);
+

Creates a new skeleton object.

+
+

Parameters

+
+++++ + + + + + +

object_path

An object path.

 
+
+
+

Returns

+

The skeleton object.

+

[transfer full]

+
+
+
+
+

goa_object_skeleton_set_manager ()

+
void
+goa_object_skeleton_set_manager (GoaObjectSkeleton *object,
+                                 GoaManager *interface_);
+

Sets the GoaManager instance for the D-Bus interface org.gnome.OnlineAccounts.Manager on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaManager or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_account ()

+
void
+goa_object_skeleton_set_account (GoaObjectSkeleton *object,
+                                 GoaAccount *interface_);
+

Sets the GoaAccount instance for the D-Bus interface org.gnome.OnlineAccounts.Account on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaAccount or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_oauth_based ()

+
void
+goa_object_skeleton_set_oauth_based (GoaObjectSkeleton *object,
+                                     GoaOAuthBased *interface_);
+

Sets the GoaOAuthBased instance for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaOAuthBased or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_oauth2_based ()

+
void
+goa_object_skeleton_set_oauth2_based (GoaObjectSkeleton *object,
+                                      GoaOAuth2Based *interface_);
+

Sets the GoaOAuth2Based instance for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaOAuth2Based or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_mail ()

+
void
+goa_object_skeleton_set_mail (GoaObjectSkeleton *object,
+                              GoaMail *interface_);
+

Sets the GoaMail instance for the D-Bus interface org.gnome.OnlineAccounts.Mail on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaMail or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_calendar ()

+
void
+goa_object_skeleton_set_calendar (GoaObjectSkeleton *object,
+                                  GoaCalendar *interface_);
+

Sets the GoaCalendar instance for the D-Bus interface org.gnome.OnlineAccounts.Calendar on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaCalendar or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_contacts ()

+
void
+goa_object_skeleton_set_contacts (GoaObjectSkeleton *object,
+                                  GoaContacts *interface_);
+

Sets the GoaContacts instance for the D-Bus interface org.gnome.OnlineAccounts.Contacts on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaContacts or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_chat ()

+
void
+goa_object_skeleton_set_chat (GoaObjectSkeleton *object,
+                              GoaChat *interface_);
+

Sets the GoaChat instance for the D-Bus interface org.gnome.OnlineAccounts.Chat on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaChat or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_documents ()

+
void
+goa_object_skeleton_set_documents (GoaObjectSkeleton *object,
+                                   GoaDocuments *interface_);
+

Sets the GoaDocuments instance for the D-Bus interface org.gnome.OnlineAccounts.Documents on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaDocuments or NULL to clear the interface.

[nullable]
+
+
+
+
+

goa_object_skeleton_set_maps ()

+
void
+goa_object_skeleton_set_maps (GoaObjectSkeleton *object,
+                              GoaMaps *interface_);
+

Sets the GoaMaps instance for the D-Bus interface org.gnome.OnlineAccounts.Maps on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaMaps or NULL to clear the interface.

[nullable]
+
+

Since: 3.14.0

+
+
+
+

goa_object_skeleton_set_music ()

+
void
+goa_object_skeleton_set_music (GoaObjectSkeleton *object,
+                               GoaMusic *interface_);
+

Sets the GoaMusic instance for the D-Bus interface org.gnome.OnlineAccounts.Music on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaMusic or NULL to clear the interface.

[nullable]
+
+

Since: 3.18.0

+
+
+
+

goa_object_skeleton_set_photos ()

+
void
+goa_object_skeleton_set_photos (GoaObjectSkeleton *object,
+                                GoaPhotos *interface_);
+

Sets the GoaPhotos instance for the D-Bus interface org.gnome.OnlineAccounts.Photos on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaPhotos or NULL to clear the interface.

[nullable]
+
+

Since: 3.8.0

+
+
+
+

goa_object_skeleton_set_files ()

+
void
+goa_object_skeleton_set_files (GoaObjectSkeleton *object,
+                               GoaFiles *interface_);
+

Sets the GoaFiles instance for the D-Bus interface org.gnome.OnlineAccounts.Files on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaFiles or NULL to clear the interface.

[nullable]
+
+

Since: 3.8.0

+
+
+
+

goa_object_skeleton_set_exchange ()

+
void
+goa_object_skeleton_set_exchange (GoaObjectSkeleton *object,
+                                  GoaExchange *interface_);
+

Sets the GoaExchange instance for the D-Bus interface org.gnome.OnlineAccounts.Exchange on object +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaObjectSkeleton.

 

interface_

A GoaExchange or NULL to clear the interface.

[nullable]
+
+

Since: 3.6.0

+
+
+
+

Types and Values

+
+

GoaObject

+
typedef struct _GoaObject GoaObject;
+

The GoaObject type is a specialized container of interfaces.

+
+
+
+

struct GoaObjectIface

+
struct GoaObjectIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the GoaObject interface.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+
+
+
+

struct GoaObjectProxy

+
struct GoaObjectProxy;
+

The GoaObjectProxy structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaObjectProxyClass

+
struct GoaObjectProxyClass {
+  GDBusObjectProxyClass parent_class;
+};
+
+

Class structure for GoaObjectProxy.

+
+

Members

+
+++++ + +
+
+
+
+
+

struct GoaObjectSkeleton

+
struct GoaObjectSkeleton;
+

The GoaObjectSkeleton structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaObjectSkeletonClass

+
struct GoaObjectSkeletonClass {
+  GDBusObjectSkeletonClass parent_class;
+};
+
+

Class structure for GoaObjectSkeleton.

+
+

Members

+
+++++ + +
+
+
+
+
+

Property Details

+
+

The “account” property

+
  “account”                  GoaAccount *
+

The GoaAccount instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Account, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “calendar” property

+
  “calendar”                 GoaCalendar *
+

The GoaCalendar instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Calendar, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “chat” property

+
  “chat”                     GoaChat *
+

The GoaChat instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Chat, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “contacts” property

+
  “contacts”                 GoaContacts *
+

The GoaContacts instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Contacts, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “documents” property

+
  “documents”                GoaDocuments *
+

The GoaDocuments instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Documents, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “exchange” property

+
  “exchange”                 GoaExchange *
+

The GoaExchange instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Exchange, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.6.0

+
+
+
+

The “files” property

+
  “files”                    GoaFiles *
+

The GoaFiles instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Files, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.8.0

+
+
+
+

The “mail” property

+
  “mail”                     GoaMail *
+

The GoaMail instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Mail, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “manager” property

+
  “manager”                  GoaManager *
+

The GoaManager instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Manager, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “maps” property

+
  “maps”                     GoaMaps *
+

The GoaMaps instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Maps, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.14.0

+
+
+
+

The “media-server” property

+
  “media-server”             GoaMediaServer *
+

The GoaMediaServer instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.MediaServer, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.14

+
+
+
+

The “music” property

+
  “music”                    GoaMusic *
+

The GoaMusic instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Music, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.18.0

+
+
+
+

The “oauth-based” property

+
  “oauth-based”              GoaOAuthBased *
+

The GoaOAuthBased instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.OAuthBased, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “oauth2-based” property

+
  “oauth2-based”             GoaOAuth2Based *
+

The GoaOAuth2Based instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+
+
+
+

The “password-based” property

+
  “password-based”           GoaPasswordBased *
+

The GoaPasswordBased instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.PasswordBased, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.6.0

+
+
+
+

The “photos” property

+
  “photos”                   GoaPhotos *
+

The GoaPhotos instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Photos, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.8.0

+
+
+
+

The “printers” property

+
  “printers”                 GoaPrinters *
+

The GoaPrinters instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Printers, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.12.0

+
+
+
+

The “read-later” property

+
  “read-later”               GoaReadLater *
+

The GoaReadLater instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.ReadLater, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.12.0

+
+
+
+

The “ticketing” property

+
  “ticketing”                GoaTicketing *
+

The GoaTicketing instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Ticketing, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.6.0

+
+
+
+

The “todo” property

+
  “todo”                     GoaTodo *
+

The GoaTodo instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Todo, if any.

+

Connect to the “notify” signal to get informed of property changes.

+

Flags: Read / Write

+

Since: 3.26.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaObjectManagerClient.html b/doc/html/GoaObjectManagerClient.html new file mode 100644 index 0000000..346ea67 --- /dev/null +++ b/doc/html/GoaObjectManagerClient.html @@ -0,0 +1,552 @@ + + + + +GoaObjectManagerClient: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaObjectManagerClient

+

GoaObjectManagerClient — Generated GDBusObjectManagerClient type

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
structGoaObjectManagerClient
structGoaObjectManagerClientClass
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GDBusObjectManagerClient
+        ╰── GoaObjectManagerClient
+
+
+
+

Implemented Interfaces

+

+GoaObjectManagerClient implements + GInitable, GAsyncInitable and GDBusObjectManager.

+
+
+

Description

+

This section contains a GDBusObjectManagerClient that uses goa_object_manager_client_get_proxy_type() as the GDBusProxyTypeFunc.

+
+
+

Functions

+
+

goa_object_manager_client_get_proxy_type ()

+
GType
+goa_object_manager_client_get_proxy_type
+                               (GDBusObjectManagerClient *manager,
+                                const gchar *object_path,
+                                const gchar *interface_name,
+                                gpointer user_data);
+

A GDBusProxyTypeFunc that maps interface_name + to the generated GDBusObjectProxy derived and GDBusProxy derived types.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

manager

A GDBusObjectManagerClient.

 

object_path

The object path of the remote object (unused).

 

interface_name

Interface name of the remote object or NULL to get the object proxy GType.

[nullable]

user_data

User data (unused).

 
+
+
+

Returns

+

A GDBusProxy derived GType if interface_name +is not NULL, otherwise the GType for GoaObjectProxy.

+
+
+
+
+

goa_object_manager_client_new ()

+
void
+goa_object_manager_client_new (GDBusConnection *connection,
+                               GDBusObjectManagerClientFlags flags,
+                               const gchar *name,
+                               const gchar *object_path,
+                               GCancellable *cancellable,
+                               GAsyncReadyCallback callback,
+                               gpointer user_data);
+

Asynchronously creates GDBusObjectManagerClient using goa_object_manager_client_get_proxy_type() as the GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_object_manager_client_new_finish() to get the result of the operation.

+

See goa_object_manager_client_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusObjectManagerClientFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_object_manager_client_new_finish ()

+
GDBusObjectManager *
+goa_object_manager_client_new_finish (GAsyncResult *res,
+                                      GError **error);
+

Finishes an operation started with goa_object_manager_client_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_object_manager_client_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed object manager client or NULL if error +is set.

+

[transfer full][type GoaObjectManagerClient]

+
+
+
+
+

goa_object_manager_client_new_for_bus ()

+
void
+goa_object_manager_client_new_for_bus (GBusType bus_type,
+                                       GDBusObjectManagerClientFlags flags,
+                                       const gchar *name,
+                                       const gchar *object_path,
+                                       GCancellable *cancellable,
+                                       GAsyncReadyCallback callback,
+                                       gpointer user_data);
+

Like goa_object_manager_client_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_object_manager_client_new_for_bus_finish() to get the result of the operation.

+

See goa_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusObjectManagerClientFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+
+
+
+

goa_object_manager_client_new_for_bus_finish ()

+
GDBusObjectManager *
+goa_object_manager_client_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_object_manager_client_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_object_manager_client_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed object manager client or NULL if error +is set.

+

[transfer full][type GoaObjectManagerClient]

+
+
+
+
+

goa_object_manager_client_new_for_bus_sync ()

+
GDBusObjectManager *
+goa_object_manager_client_new_for_bus_sync
+                               (GBusType bus_type,
+                                GDBusObjectManagerClientFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GError **error);
+

Like goa_object_manager_client_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_object_manager_client_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusObjectManagerClientFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed object manager client or NULL if error +is set.

+

[transfer full][type GoaObjectManagerClient]

+
+
+
+
+

goa_object_manager_client_new_sync ()

+
GDBusObjectManager *
+goa_object_manager_client_new_sync (GDBusConnection *connection,
+                                    GDBusObjectManagerClientFlags flags,
+                                    const gchar *name,
+                                    const gchar *object_path,
+                                    GCancellable *cancellable,
+                                    GError **error);
+

Synchronously creates GDBusObjectManagerClient using goa_object_manager_client_get_proxy_type() as the GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_object_manager_client_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusObjectManagerClientFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed object manager client or NULL if error +is set.

+

[transfer full][type GoaObjectManagerClient]

+
+
+
+
+

Types and Values

+
+

struct GoaObjectManagerClient

+
struct GoaObjectManagerClient;
+

The GoaObjectManagerClient structure contains only private data and should only be accessed using the provided API.

+
+
+
+

struct GoaObjectManagerClientClass

+
struct GoaObjectManagerClientClass {
+  GDBusObjectManagerClientClass parent_class;
+};
+
+

Class structure for GoaObjectManagerClient.

+
+

Members

+
+++++ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaPasswordBased.html b/doc/html/GoaPasswordBased.html new file mode 100644 index 0000000..bd13b26 --- /dev/null +++ b/doc/html/GoaPasswordBased.html @@ -0,0 +1,1002 @@ + + + + +GoaPasswordBased: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaPasswordBased

+

GoaPasswordBased — Generated C code for the org.gnome.OnlineAccounts.PasswordBased D-Bus interface

+
+ +
+

Signals

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaPasswordBased
structGoaPasswordBasedIface
structGoaPasswordBasedProxy
structGoaPasswordBasedProxyClass
structGoaPasswordBasedSkeleton
structGoaPasswordBasedSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaPasswordBased
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaPasswordBasedSkeleton
+    ╰── GDBusProxy
+        ╰── GoaPasswordBasedProxy
+
+
+
+

Prerequisites

+

+GoaPasswordBased requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaPasswordBasedProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaPasswordBased.

+

+GoaPasswordBasedSkeleton implements + GDBusInterface and GoaPasswordBased.

+
+
+

Known Implementations

+

+GoaPasswordBased is implemented by + GoaPasswordBasedProxy and GoaPasswordBasedSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.PasswordBased D-Bus interface in C.

+
+
+

Functions

+
+

goa_password_based_interface_info ()

+
GDBusInterfaceInfo *
+goa_password_based_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.PasswordBased D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_override_properties ()

+
guint
+goa_password_based_override_properties
+                               (GObjectClass *klass,
+                                guint property_id_begin);
+

Overrides all GObject properties in the GoaPasswordBased interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_call_get_password ()

+
void
+goa_password_based_call_get_password (GoaPasswordBased *proxy,
+                                      const gchar *arg_id,
+                                      GCancellable *cancellable,
+                                      GAsyncReadyCallback callback,
+                                      gpointer user_data);
+

Asynchronously invokes the GetPassword() D-Bus method on proxy +. +When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_password_based_call_get_password_finish() to get the result of the operation.

+

See goa_password_based_call_get_password_sync() for the synchronous, blocking version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaPasswordBasedProxy.

 

arg_id

Argument to pass with the method invocation.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied or NULL.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_password_based_call_get_password_finish ()

+
gboolean
+goa_password_based_call_get_password_finish
+                               (GoaPasswordBased *proxy,
+                                gchar **out_password,
+                                GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_password_based_call_get_password().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaPasswordBasedProxy.

 

out_password

Return location for return parameter or NULL to ignore.

[out]

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_password_based_call_get_password().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_call_get_password_sync ()

+
gboolean
+goa_password_based_call_get_password_sync
+                               (GoaPasswordBased *proxy,
+                                const gchar *arg_id,
+                                gchar **out_password,
+                                GCancellable *cancellable,
+                                GError **error);
+

Synchronously invokes the GetPassword() D-Bus method on proxy +. The calling thread is blocked until a reply is received.

+

See goa_password_based_call_get_password() for the asynchronous version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaPasswordBasedProxy.

 

arg_id

Argument to pass with the method invocation.

 

out_password

Return location for return parameter or NULL to ignore.

[out]

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_complete_get_password ()

+
void
+goa_password_based_complete_get_password
+                               (GoaPasswordBased *object,
+                                GDBusMethodInvocation *invocation,
+                                const gchar *password);
+

Helper function used in service implementations to finish handling invocations of the GetPassword() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

+

This method will free invocation +, you cannot use it afterwards.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaPasswordBased.

 

invocation

A GDBusMethodInvocation.

[transfer full]

password

Parameter to return.

 
+
+

Since: 3.6.0

+
+
+
+

goa_password_based_proxy_new ()

+
void
+goa_password_based_proxy_new (GDBusConnection *connection,
+                              GDBusProxyFlags flags,
+                              const gchar *name,
+                              const gchar *object_path,
+                              GCancellable *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_password_based_proxy_new_finish() to get the result of the operation.

+

See goa_password_based_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_password_based_proxy_new_finish ()

+
GoaPasswordBased *
+goa_password_based_proxy_new_finish (GAsyncResult *res,
+                                     GError **error);
+

Finishes an operation started with goa_password_based_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_password_based_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPasswordBasedProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_proxy_new_sync ()

+
GoaPasswordBased *
+goa_password_based_proxy_new_sync (GDBusConnection *connection,
+                                   GDBusProxyFlags flags,
+                                   const gchar *name,
+                                   const gchar *object_path,
+                                   GCancellable *cancellable,
+                                   GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_password_based_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPasswordBasedProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_proxy_new_for_bus ()

+
void
+goa_password_based_proxy_new_for_bus (GBusType bus_type,
+                                      GDBusProxyFlags flags,
+                                      const gchar *name,
+                                      const gchar *object_path,
+                                      GCancellable *cancellable,
+                                      GAsyncReadyCallback callback,
+                                      gpointer user_data);
+

Like goa_password_based_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_password_based_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_password_based_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_password_based_proxy_new_for_bus_finish ()

+
GoaPasswordBased *
+goa_password_based_proxy_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_password_based_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_password_based_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPasswordBasedProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_proxy_new_for_bus_sync ()

+
GoaPasswordBased *
+goa_password_based_proxy_new_for_bus_sync
+                               (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GError **error);
+

Like goa_password_based_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_password_based_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPasswordBasedProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_password_based_skeleton_new ()

+
GoaPasswordBased *
+goa_password_based_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaPasswordBasedSkeleton]

+
+

Since: 3.6.0

+
+
+
+

Types and Values

+
+

GoaPasswordBased

+
typedef struct _GoaPasswordBased GoaPasswordBased;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased.

+

Since: 3.6.0

+
+
+
+

struct GoaPasswordBasedIface

+
struct GoaPasswordBasedIface {
+  GTypeInterface parent_iface;
+
+  gboolean (*handle_get_password) (
+    GoaPasswordBased *object,
+    GDBusMethodInvocation *invocation,
+    const gchar *arg_id);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased.

+
+

Members

+
+++++ + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

handle_get_password ()

Handler for the “handle-get-password” signal.

 
+
+

Since: 3.6.0

+
+
+
+

struct GoaPasswordBasedProxy

+
struct GoaPasswordBasedProxy;
+

The GoaPasswordBasedProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.6.0

+
+
+
+

struct GoaPasswordBasedProxyClass

+
struct GoaPasswordBasedProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaPasswordBasedProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.6.0

+
+
+
+

struct GoaPasswordBasedSkeleton

+
struct GoaPasswordBasedSkeleton;
+

The GoaPasswordBasedSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.6.0

+
+
+
+

struct GoaPasswordBasedSkeletonClass

+
struct GoaPasswordBasedSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaPasswordBasedSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.6.0

+
+
+
+

Signal Details

+
+

The “handle-get-password” signal

+
gboolean
+user_function (GoaPasswordBased      *object,
+               GDBusMethodInvocation *invocation,
+               gchar                 *arg_id,
+               gpointer               user_data)
+

Signal emitted when a remote caller is invoking the GetPassword() D-Bus method.

+

If a signal handler returns TRUE, it means the signal handler will handle the invocation (e.g. take a reference to invocation + and eventually call goa_password_based_complete_get_password() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the G_DBUS_ERROR_UNKNOWN_METHOD error is returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

object

A GoaPasswordBased.

 

invocation

A GDBusMethodInvocation.

 

arg_id

Argument passed by remote caller.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the invocation was handled, FALSE to let other signal handlers run.

+
+

Flags: Run Last

+

Since: 3.6.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaPhotos.html b/doc/html/GoaPhotos.html new file mode 100644 index 0000000..2d6a9cd --- /dev/null +++ b/doc/html/GoaPhotos.html @@ -0,0 +1,684 @@ + + + + +GoaPhotos: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaPhotos

+

GoaPhotos — Generated C code for the org.gnome.OnlineAccounts.Photos D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_photos_interface_info () +
+guint + +goa_photos_override_properties () +
+void + +goa_photos_proxy_new () +
+GoaPhotos * + +goa_photos_proxy_new_finish () +
+GoaPhotos * + +goa_photos_proxy_new_sync () +
+void + +goa_photos_proxy_new_for_bus () +
+GoaPhotos * + +goa_photos_proxy_new_for_bus_finish () +
+GoaPhotos * + +goa_photos_proxy_new_for_bus_sync () +
+GoaPhotos * + +goa_photos_skeleton_new () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaPhotos
structGoaPhotosIface
structGoaPhotosProxy
structGoaPhotosProxyClass
structGoaPhotosSkeleton
structGoaPhotosSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaPhotos
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaPhotosSkeleton
+    ╰── GDBusProxy
+        ╰── GoaPhotosProxy
+
+
+
+

Prerequisites

+

+GoaPhotos requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaPhotosProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaPhotos.

+

+GoaPhotosSkeleton implements + GDBusInterface and GoaPhotos.

+
+
+

Known Implementations

+

+GoaPhotos is implemented by + GoaPhotosProxy and GoaPhotosSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Photos D-Bus interface in C.

+
+
+

Functions

+
+

goa_photos_interface_info ()

+
GDBusInterfaceInfo *
+goa_photos_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Photos D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.8.0

+
+
+
+

goa_photos_override_properties ()

+
guint
+goa_photos_override_properties (GObjectClass *klass,
+                                guint property_id_begin);
+

Overrides all GObject properties in the GoaPhotos interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.8.0

+
+
+
+

goa_photos_proxy_new ()

+
void
+goa_photos_proxy_new (GDBusConnection *connection,
+                      GDBusProxyFlags flags,
+                      const gchar *name,
+                      const gchar *object_path,
+                      GCancellable *cancellable,
+                      GAsyncReadyCallback callback,
+                      gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Photos. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_photos_proxy_new_finish() to get the result of the operation.

+

See goa_photos_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.8.0

+
+
+
+

goa_photos_proxy_new_finish ()

+
GoaPhotos *
+goa_photos_proxy_new_finish (GAsyncResult *res,
+                             GError **error);
+

Finishes an operation started with goa_photos_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_photos_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPhotosProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_photos_proxy_new_sync ()

+
GoaPhotos *
+goa_photos_proxy_new_sync (GDBusConnection *connection,
+                           GDBusProxyFlags flags,
+                           const gchar *name,
+                           const gchar *object_path,
+                           GCancellable *cancellable,
+                           GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Photos. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_photos_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPhotosProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_photos_proxy_new_for_bus ()

+
void
+goa_photos_proxy_new_for_bus (GBusType bus_type,
+                              GDBusProxyFlags flags,
+                              const gchar *name,
+                              const gchar *object_path,
+                              GCancellable *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer user_data);
+

Like goa_photos_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_photos_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_photos_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.8.0

+
+
+
+

goa_photos_proxy_new_for_bus_finish ()

+
GoaPhotos *
+goa_photos_proxy_new_for_bus_finish (GAsyncResult *res,
+                                     GError **error);
+

Finishes an operation started with goa_photos_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_photos_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPhotosProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_photos_proxy_new_for_bus_sync ()

+
GoaPhotos *
+goa_photos_proxy_new_for_bus_sync (GBusType bus_type,
+                                   GDBusProxyFlags flags,
+                                   const gchar *name,
+                                   const gchar *object_path,
+                                   GCancellable *cancellable,
+                                   GError **error);
+

Like goa_photos_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_photos_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPhotosProxy]

+
+

Since: 3.8.0

+
+
+
+

goa_photos_skeleton_new ()

+
GoaPhotos *
+goa_photos_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Photos.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaPhotosSkeleton]

+
+

Since: 3.8.0

+
+
+
+

Types and Values

+
+

GoaPhotos

+
typedef struct _GoaPhotos GoaPhotos;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Photos.

+

Since: 3.8.0

+
+
+
+

struct GoaPhotosIface

+
struct GoaPhotosIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Photos.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+

Since: 3.8.0

+
+
+
+

struct GoaPhotosProxy

+
struct GoaPhotosProxy;
+

The GoaPhotosProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.8.0

+
+
+
+

struct GoaPhotosProxyClass

+
struct GoaPhotosProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaPhotosProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.8.0

+
+
+
+

struct GoaPhotosSkeleton

+
struct GoaPhotosSkeleton;
+

The GoaPhotosSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.8.0

+
+
+
+

struct GoaPhotosSkeletonClass

+
struct GoaPhotosSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaPhotosSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.8.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaPrinters.html b/doc/html/GoaPrinters.html new file mode 100644 index 0000000..b74b208 --- /dev/null +++ b/doc/html/GoaPrinters.html @@ -0,0 +1,684 @@ + + + + +GoaPrinters: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaPrinters

+

GoaPrinters — Generated C code for the org.gnome.OnlineAccounts.Printers D-Bus interface

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaPrinters
structGoaPrintersIface
structGoaPrintersProxy
structGoaPrintersProxyClass
structGoaPrintersSkeleton
structGoaPrintersSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaPrinters
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaPrintersSkeleton
+    ╰── GDBusProxy
+        ╰── GoaPrintersProxy
+
+
+
+

Prerequisites

+

+GoaPrinters requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaPrintersProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaPrinters.

+

+GoaPrintersSkeleton implements + GDBusInterface and GoaPrinters.

+
+
+

Known Implementations

+

+GoaPrinters is implemented by + GoaPrintersProxy and GoaPrintersSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Printers D-Bus interface in C.

+
+
+

Functions

+
+

goa_printers_interface_info ()

+
GDBusInterfaceInfo *
+goa_printers_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Printers D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.12.0

+
+
+
+

goa_printers_override_properties ()

+
guint
+goa_printers_override_properties (GObjectClass *klass,
+                                  guint property_id_begin);
+

Overrides all GObject properties in the GoaPrinters interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.12.0

+
+
+
+

goa_printers_proxy_new ()

+
void
+goa_printers_proxy_new (GDBusConnection *connection,
+                        GDBusProxyFlags flags,
+                        const gchar *name,
+                        const gchar *object_path,
+                        GCancellable *cancellable,
+                        GAsyncReadyCallback callback,
+                        gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Printers. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_printers_proxy_new_finish() to get the result of the operation.

+

See goa_printers_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.12.0

+
+
+
+

goa_printers_proxy_new_finish ()

+
GoaPrinters *
+goa_printers_proxy_new_finish (GAsyncResult *res,
+                               GError **error);
+

Finishes an operation started with goa_printers_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_printers_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPrintersProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_printers_proxy_new_sync ()

+
GoaPrinters *
+goa_printers_proxy_new_sync (GDBusConnection *connection,
+                             GDBusProxyFlags flags,
+                             const gchar *name,
+                             const gchar *object_path,
+                             GCancellable *cancellable,
+                             GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Printers. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_printers_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPrintersProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_printers_proxy_new_for_bus ()

+
void
+goa_printers_proxy_new_for_bus (GBusType bus_type,
+                                GDBusProxyFlags flags,
+                                const gchar *name,
+                                const gchar *object_path,
+                                GCancellable *cancellable,
+                                GAsyncReadyCallback callback,
+                                gpointer user_data);
+

Like goa_printers_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_printers_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_printers_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.12.0

+
+
+
+

goa_printers_proxy_new_for_bus_finish ()

+
GoaPrinters *
+goa_printers_proxy_new_for_bus_finish (GAsyncResult *res,
+                                       GError **error);
+

Finishes an operation started with goa_printers_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_printers_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPrintersProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_printers_proxy_new_for_bus_sync ()

+
GoaPrinters *
+goa_printers_proxy_new_for_bus_sync (GBusType bus_type,
+                                     GDBusProxyFlags flags,
+                                     const gchar *name,
+                                     const gchar *object_path,
+                                     GCancellable *cancellable,
+                                     GError **error);
+

Like goa_printers_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_printers_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaPrintersProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_printers_skeleton_new ()

+
GoaPrinters *
+goa_printers_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Printers.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaPrintersSkeleton]

+
+

Since: 3.12.0

+
+
+
+

Types and Values

+
+

GoaPrinters

+
typedef struct _GoaPrinters GoaPrinters;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Printers.

+

Since: 3.12.0

+
+
+
+

struct GoaPrintersIface

+
struct GoaPrintersIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Printers.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+

Since: 3.12.0

+
+
+
+

struct GoaPrintersProxy

+
struct GoaPrintersProxy;
+

The GoaPrintersProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.12.0

+
+
+
+

struct GoaPrintersProxyClass

+
struct GoaPrintersProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaPrintersProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.12.0

+
+
+
+

struct GoaPrintersSkeleton

+
struct GoaPrintersSkeleton;
+

The GoaPrintersSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.12.0

+
+
+
+

struct GoaPrintersSkeletonClass

+
struct GoaPrintersSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaPrintersSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.12.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaProvider.html b/doc/html/GoaProvider.html new file mode 100644 index 0000000..8e94ff9 --- /dev/null +++ b/doc/html/GoaProvider.html @@ -0,0 +1,1462 @@ + + + + +GoaProvider: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaProvider

+

GoaProvider — Abstract base class for providers

+
+ +
+

Properties

+
+++++ + + + + + +
+GVariant *preseed-dataRead / Write
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
 GoaProvider
 GoaProviderClass
enumGoaProviderGroup
enumGoaProviderFeatures
#defineGOA_PROVIDER_EXTENSION_POINT_NAME
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GoaProvider
+        ├── GoaOAuthProvider
+        ╰── GoaOAuth2Provider
+
+
+
+

Description

+

GoaProvider is the base type for all providers.

+
+
+

Functions

+
+

goa_provider_get_provider_type ()

+
const gchar *
+goa_provider_get_provider_type (GoaProvider *self);
+

Gets the type of self +.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaProvider.

 
+
+
+

Returns

+

A string owned by self +, do not free.

+

[transfer none]

+
+
+
+
+

goa_provider_get_provider_name ()

+
gchar *
+goa_provider_get_provider_name (GoaProvider *self,
+                                GoaObject *object);
+

Gets a name for self + and object + that is suitable for display +in an user interface. The returned value may depend on object + (if +it's not NULL) - for example, hosted accounts might return a +different name.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

A GoaProvider.

 

object

A GoaObject for an account.

[allow-none]
+
+
+

Returns

+

A string that should be freed with g_free().

+

[transfer full]

+
+
+
+
+

goa_provider_get_provider_icon ()

+
GIcon *
+goa_provider_get_provider_icon (GoaProvider *self,
+                                GoaObject *object);
+

Gets an icon for self + and object + that is suitable for display +in an user interface. The returned value may depend on object + - +for example, hosted accounts might return a different icon.

+

This is a virtual method with a default implementation that returns +a GThemedIcon with fallbacks constructed from the name +goa-account-TYPE where TYPE +is the return value of goa_provider_get_provider_type().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

A GoaProvider.

 

object

A GoaObject for an account.

 
+
+
+

Returns

+

An icon that should be freed with g_object_unref().

+

[transfer full]

+
+
+
+
+

goa_provider_get_provider_group ()

+
GoaProviderGroup
+goa_provider_get_provider_group (GoaProvider *self);
+
+

goa_provider_get_provider_group has been deprecated since version 3.10 and should not be used in newly-written code.

+

Use goa_provider_get_provider_features() instead.

+
+

Gets the group to which self + belongs that is suitable for +organizing the providers while displaying them in an user +interface.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaProvider.

 
+
+
+

Returns

+

A GoaProviderGroup.

+
+

Since: 3.8

+
+
+
+

goa_provider_get_provider_features ()

+
GoaProviderFeatures
+goa_provider_get_provider_features (GoaProvider *self);
+

Get the features bitmask (eg. GOA_PROVIDER_FEATURE_CHAT|GOA_PROVIDER_FEATURE_CONTACTS) +supported by the provider.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaProvider.

 
+
+
+

Returns

+

The GoaProviderFeatures bitmask with the provided features.

+
+

Since: 3.10

+
+
+
+

goa_provider_build_object ()

+
gboolean
+goa_provider_build_object (GoaProvider *self,
+                           GoaObjectSkeleton *object,
+                           GKeyFile *key_file,
+                           const gchar *group,
+                           GDBusConnection *connection,
+                           gboolean just_added,
+                           GError **error);
+

This method is called when construction account GoaObject +from configuration data - it basically provides a way to add +provider-specific information.

+

The passed in object + will have a GoaAccount interface +set. Implementations should validate and use data from key_file + to +add more interfaces to object +.

+

Note that this may be called on already exported objects - for +example on configuration files reload.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaProvider.

 

object

The GoaObjectSkeleton that is being built.

 

key_file

The GKeyFile with configuation data.

 

group

The group in key_file +to get data from.

 

connection

The GDBusConnection used by the daemon to connect to the message bus.

 

just_added

Whether the account was newly created or being updated.

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if data was valid, FALSE if error +is set.

+
+
+
+
+

goa_provider_add_account ()

+
GoaObject *
+goa_provider_add_account (GoaProvider *self,
+                          GoaClient *client,
+                          GtkDialog *dialog,
+                          GtkBox *vbox,
+                          GError **error);
+

This method brings up the user interface necessary to create a new +account on client + of the type for self +, interacts with the +user to get all information needed and creates the account.

+

The passed in dialog + widget is guaranteed to be visible with vbox + +being empty and the only visible widget in dialog +'s content +area. The dialog has exactly one action widget, a cancel button +with response id GTK_RESPONSE_CANCEL. Implementations are free to +add additional action widgets, as needed.

+

If an account was successfully created, a GoaObject for the +created account is returned. If dialog + is dismissed, NULL is +returned and error + is set to GOA_ERROR_DIALOG_DISMISSED. If an +account couldn't be created then error + is set. In some cases, +for example, when the credentials could not be stored in the +keyring, a GoaObject can be returned even if error + is set.

+

The caller will always show an error dialog if error + is set unless +the error is GOA_ERROR_DIALOG_DISMISSED.

+

Implementations should run the default main loop while +interacting with the user and may do so using e.g. gtk_dialog_run() +on dialog +.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaProvider.

 

client

A GoaClient.

 

dialog

A GtkDialog.

 

vbox

A vertically oriented GtkBox to put content in.

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

The GoaObject for the created account (must be relased +with g_object_unref()) or NULL if error +is set.

+
+
+
+
+

goa_provider_set_preseed_data ()

+
void
+goa_provider_set_preseed_data (GoaProvider *self,
+                               GVariant *preseed_data);
+
+

goa_provider_set_preseed_data has been deprecated since version 3.28 and should not be used in newly-written code.

+

This function does nothing.

+
+

Sets the “preseed-data” property to feed any information already +collected that can be useful when creating a new account.

+

If the preseed_data + GVariant is floating, it is consumed to allow +'inline' use of the g_variant_new() family of functions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

self

The GoaProvider

 

preseed_data

A GVariant of type a{sv}

 
+
+
+
+
+

goa_provider_get_preseed_data ()

+
GVariant *
+goa_provider_get_preseed_data (GoaProvider *self);
+
+

goa_provider_get_preseed_data has been deprecated since version 3.28 and should not be used in newly-written code.

+

This function does nothing.

+
+

Gets the GVariant set through the “preseed-data” property.

+
+

Parameters

+
+++++ + + + + + +

self

The GoaProvider

 
+
+
+

Returns

+

A GVariant that is known to be valid until +the property is overridden or the provider freed.

+

[transfer none]

+
+
+
+
+

goa_provider_refresh_account ()

+
gboolean
+goa_provider_refresh_account (GoaProvider *self,
+                              GoaClient *client,
+                              GoaObject *object,
+                              GtkWindow *parent,
+                              GError **error);
+

This method brings up the user interface necessary for refreshing +the credentials for the account specified by object +. This +typically involves having the user log in to the account again.

+

Implementations should use parent + (unless NULL) as the transient +parent of any created windows/dialogs.

+

Implementations should run the default main loop while +interacting with the user.

+

This is a pure virtual method - a subclass must provide an +implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaProvider.

 

client

A GoaClient.

 

object

A GoaObject with a GoaAccount interface.

 

parent

Transient parent of dialogs or NULL.

[allow-none]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the account has been refreshed, FALSE if error +is set.

+
+
+
+
+

goa_provider_show_account ()

+
void
+goa_provider_show_account (GoaProvider *self,
+                           GoaClient *client,
+                           GoaObject *object,
+                           GtkBox *vbox,
+                           GtkGrid *dummy1,
+                           GtkGrid *dummy2);
+

Method used to add widgets in the control panel for the account +represented by object +.

+

This is a virtual method where the default implementation adds +one GtkSwitch per service supported by the provider (as reported +by goa_provider_get_provider_features()).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaProvider.

 

client

A GoaClient.

 

object

A GoaObject with a GoaAccount interface.

 

vbox

A vertically oriented GtkBox to put content in.

 

grid

A GtkGrid to put content in.

 

dummy

Unused.

 
+
+
+
+
+

goa_provider_ensure_credentials ()

+
void
+goa_provider_ensure_credentials (GoaProvider *self,
+                                 GoaObject *object,
+                                 GCancellable *cancellable,
+                                 GAsyncReadyCallback callback,
+                                 gpointer user_data);
+

Ensures that credentials for object + are still valid.

+

When the result is ready, callback + will be called in the the thread-default main +loop this function was called from. You can then call +goa_provider_ensure_credentials_finish() to get the result +of the operation.

+

This is a virtual method where the default implementation simply +throws the GOA_ERROR_NOT_SUPPORTED error. A subclass may provide +another implementation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaProvider.

 

object

A GoaObject with a GoaAccount interface.

 

cancellable

A GCancellable or NULL.

[allow-none]

callback

The function to call when the request is satisfied.

 

user_data

Pointer to pass to callback +.

 
+
+
+
+
+

goa_provider_ensure_credentials_finish ()

+
gboolean
+goa_provider_ensure_credentials_finish
+                               (GoaProvider *self,
+                                gint *out_expires_in,
+                                GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_provider_ensure_credentials().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaProvider.

 

out_expires_in

Return location for how long the expired credentials are good for (0 if unknown) or NULL.

[out]

res

A GAsyncResult obtained from the GAsyncReadyCallback passed to goa_provider_ensure_credentials().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the credentials for the passed GoaObject are valid, FALSE if error +is set.

+
+
+
+
+

goa_provider_ensure_credentials_sync ()

+
gboolean
+goa_provider_ensure_credentials_sync (GoaProvider *self,
+                                      GoaObject *object,
+                                      gint *out_expires_in,
+                                      GCancellable *cancellable,
+                                      GError **error);
+

Like goa_provider_ensure_credentials() but blocks the +calling thread until an answer is received.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

self

A GoaProvider.

 

object

A GoaObject with a GoaAccount interface.

 

out_expires_in

Return location for how long the expired credentials are good for (0 if unknown) or NULL.

[out]

cancellable

A GCancellable or NULL.

[allow-none]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the credentials for the passed GoaObject are valid, FALSE if error +is set.

+
+
+
+
+

goa_provider_get_credentials_generation ()

+
guint
+goa_provider_get_credentials_generation
+                               (GoaProvider *self);
+

Gets the generation of credentials being used for the provider.

+

Implementations should bump this number when changes are introduced +that may render existing credentials unusable.

+

For example, if an additional scope is requested (e.g. access to +contacts data) while obtaining credentials, then this number needs +to be bumped since existing credentials are not good for the added +scope.

+

This is a virtual method where the default implementation returns +0.

+
+

Parameters

+
+++++ + + + + + +

self

A GoaProvider.

 
+
+
+

Returns

+

The current generation of credentials.

+
+
+
+
+

goa_provider_get_all ()

+
void
+goa_provider_get_all (GAsyncReadyCallback callback,
+                      gpointer user_data);
+

Creates a list of all the available GoaProvider instances.

+

When the result is ready, callback + will be called in the the thread-default main +loop this function was called from. You can then call +goa_provider_get_all_finish() to get the result of the operation.

+

See goa_provider_get_for_provider_type() for details on how the providers +are found.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

callback

The function to call when the request is satisfied.

 

user_data

Pointer to pass to callback +.

 
+
+
+
+
+

goa_provider_get_for_provider_type ()

+
GoaProvider *
+goa_provider_get_for_provider_type (const gchar *provider_type);
+

Returns a GoaProvider for provider_type + (if available).

+

If provider_type + doesn't contain any "/", a +GOA_PROVIDER_EXTENSION_POINT_NAME extension for provider_type + is looked up +and the newly created GoaProvider, if any, is returned.

+

If provider_type + contains a "/", a +GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME extension for the first part of +provider_type + is looked up. If found, the GoaProviderFactory is used +to create a dynamic GoaProvider matching the second part of provider_type +.

+
+

Parameters

+
+++++ + + + + + +

provider_type

A provider type.

 
+
+
+

Returns

+

A GoaProvider (that must be freed +with g_object_unref()) or NULL if not found.

+

[transfer full]

+
+
+
+
+

Types and Values

+
+

GoaProvider

+
typedef struct _GoaProvider GoaProvider;
+

The GoaProvider structure contains only private data and should +only be accessed using the provided API.

+
+
+
+

GoaProviderClass

+
typedef struct {
+  GObjectClass parent_class;
+
+  /* pure virtual */
+  GoaObject              *(*add_account)                  (GoaProvider            *self,
+                                                           GoaClient              *client,
+                                                           GtkDialog              *dialog,
+                                                           GtkBox                 *vbox,
+                                                           GError                **error);
+  GoaProviderFeatures     (*get_provider_features)        (GoaProvider            *self);
+  GoaProviderGroup        (*get_provider_group)           (GoaProvider            *self);
+  gchar                  *(*get_provider_name)            (GoaProvider            *self,
+                                                           GoaObject              *object);
+  const gchar            *(*get_provider_type)            (GoaProvider            *self);
+  gboolean                (*refresh_account)              (GoaProvider            *self,
+                                                           GoaClient              *client,
+                                                           GoaObject              *object,
+                                                           GtkWindow              *parent,
+                                                           GError                **error);
+
+  /* virtual but with default implementation */
+  gboolean                (*build_object)                 (GoaProvider            *self,
+                                                           GoaObjectSkeleton      *object,
+                                                           GKeyFile               *key_file,
+                                                           const gchar            *group,
+                                                           GDBusConnection        *connection,
+                                                           gboolean                just_added,
+                                                           GError                **error);
+  gboolean                (*ensure_credentials_sync)      (GoaProvider            *self,
+                                                           GoaObject              *object,
+                                                           gint                   *out_expires_in,
+                                                           GCancellable           *cancellable,
+                                                           GError                **error);
+  guint                   (*get_credentials_generation)   (GoaProvider            *self);
+  GIcon                  *(*get_provider_icon)            (GoaProvider            *self,
+                                                           GoaObject              *object);
+  void                    (*initialize)                   (GoaProvider            *self);
+  void                    (*remove_account)               (GoaProvider            *self,
+                                                           GoaObject              *object,
+                                                           GCancellable           *cancellable,
+                                                           GAsyncReadyCallback     callback,
+                                                           gpointer                user_data);
+  gboolean                (*remove_account_finish)        (GoaProvider            *self,
+                                                           GAsyncResult           *res,
+                                                           GError                **error);
+  void                    (*show_account)                 (GoaProvider            *self,
+                                                           GoaClient              *client,
+                                                           GoaObject              *object,
+                                                           GtkBox                 *vbox,
+                                                           GtkGrid                *dummy1,
+                                                           GtkGrid                *dummy2);
+} GoaProviderClass;
+
+

Class structure for GoaProvider.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

add_account ()

Virtual function for goa_provider_add_account().

 

get_provider_features ()

Virtual function for goa_provider_get_provider_features().

 

get_provider_group ()

Virtual function for goa_provider_get_provider_group().

 

get_provider_name ()

Virtual function for goa_provider_get_provider_name().

 

get_provider_type ()

Virtual function for goa_provider_get_provider_type().

 

refresh_account ()

Virtual function for goa_provider_refresh_account().

 

build_object ()

Virtual function for goa_provider_build_object().

 

ensure_credentials_sync ()

Virtual function for goa_provider_ensure_credentials_sync().

 

get_credentials_generation ()

Virtual function for goa_provider_get_credentials_generation().

 

get_provider_icon ()

Virtual function for goa_provider_get_provider_icon().

 

initialize ()

Virtual function for goa_provider_initialize().

 

remove_account ()

  

remove_account_finish ()

  

show_account ()

Virtual function for goa_provider_show_account().

 
+
+
+
+
+

enum GoaProviderGroup

+

An enum for specifying which group a provider belongs to. This is +can be used to organize the providers while displaying them in an +user interface.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GOA_PROVIDER_GROUP_BRANDED

+

Providers with a well-known brand. For + example, Google and Facebook.

+
 

GOA_PROVIDER_GROUP_CONTACTS

+

Providers that offer address book services. + For example, CardDAV.

+
 

GOA_PROVIDER_GROUP_MAIL

+

Providers that offer email-like messaging + services. For example, IMAP and SMTP.

+
 

GOA_PROVIDER_GROUP_TICKETING

+

Providers with ticketing + capabilities. For example, Kerberos.

+
 

GOA_PROVIDER_GROUP_CHAT

+

Providers that offer chat-like messaging + capabilities. For example, XMPP, IRC.

+
 

GOA_PROVIDER_GROUP_INVALID

+

Used for error handling. No provider + should belong to this group.

+
 
+
+
+
+
+

enum GoaProviderFeatures

+

These flags specify the features exported by each provider. They can be +expecially useful to restrict the list of available providers when +requesting the creation of an account for a specific purpose (eg. from a +chat program).

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GOA_PROVIDER_FEATURE_BRANDED

+

Common providers to be highlighted (ie. Google, OwnCloud).

+
 

GOA_PROVIDER_FEATURE_MAIL

+

Mail services (ie. SMTP, IMAP).

+
 

GOA_PROVIDER_FEATURE_CALENDAR

+

Calendaring services (ie. CalDAV).

+
 

GOA_PROVIDER_FEATURE_CONTACTS

+

Addressbook services (ie. CardDAV).

+
 

GOA_PROVIDER_FEATURE_CHAT

+

Instant messaging services (ie. XMPP, IRC).

+
 

GOA_PROVIDER_FEATURE_DOCUMENTS

+

Documents storage services (ie. Google Documents).

+
 

GOA_PROVIDER_FEATURE_PHOTOS

+

Photos storage services (ie. Flickr).

+
 

GOA_PROVIDER_FEATURE_FILES

+

Files storage services (ie. WebDAV).

+
 

GOA_PROVIDER_FEATURE_TICKETING

+

Ticketing services (ie. Kerberos).

+
 

GOA_PROVIDER_FEATURE_READ_LATER

+

Read later services (eg. Pocket).

+
 

GOA_PROVIDER_FEATURE_PRINTERS

+

Network printing services (e.g. Google Cloud Print).

+
 

GOA_PROVIDER_FEATURE_MAPS

+

Maps related services (e.g. Foursquare, Facebook).

+
 

GOA_PROVIDER_FEATURE_MUSIC

+

Music related services (e.g. Vkontakte).

+
 

GOA_PROVIDER_FEATURE_TODO

  

GOA_PROVIDER_FEATURE_INVALID

+

Used for error handling. No provider + should provide this feature.

+
 
+
+

Since: 3.10

+
+
+
+

GOA_PROVIDER_EXTENSION_POINT_NAME

+
#define GOA_PROVIDER_EXTENSION_POINT_NAME "goa-backend-provider"
+
+

Extension point for GoaProvider implementations.

+
+
+
+

Property Details

+
+

The “preseed-data” property

+
  “preseed-data”             GVariant *
+

An GVariant of type a{sv} storing any information already collected that +can be useful when creating a new account. For instance, this can be useful +to reuse the HTTP cookies from an existing browser session to skip the +prompt for username and password in the OAuth2-based providers by passing +a GVariant with the following contents:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
{
+  "cookies": [
+    {
+      "domain": "example.com",
+      "name": "LSID",
+      "value": "asdfasdfasdf"
+    },
+    {
+      "domain": "accounts.example.com",
+      "name": "SSID",
+      "value": "asdfasdfasdf"
+    }
+  ]
+}
+
+ +

Unknown or unsupported keys will be ignored by providers.

+
+

GoaProvider:preseed-data has been deprecated since version 3.28 and should not be used in newly-written code.

+

This property does nothing.

+
+

Flags: Read / Write

+

Allowed values: GVariant<a{sv}>

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaReadLater.html b/doc/html/GoaReadLater.html new file mode 100644 index 0000000..4d6a504 --- /dev/null +++ b/doc/html/GoaReadLater.html @@ -0,0 +1,685 @@ + + + + +GoaReadLater: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaReadLater

+

GoaReadLater — Generated C code for the org.gnome.OnlineAccounts.ReadLater D-Bus interface

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaReadLater
structGoaReadLaterIface
structGoaReadLaterProxy
structGoaReadLaterProxyClass
structGoaReadLaterSkeleton
structGoaReadLaterSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaReadLater
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaReadLaterSkeleton
+    ╰── GDBusProxy
+        ╰── GoaReadLaterProxy
+
+
+
+

Prerequisites

+

+GoaReadLater requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaReadLaterProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaReadLater.

+

+GoaReadLaterSkeleton implements + GDBusInterface and GoaReadLater.

+
+
+

Known Implementations

+

+GoaReadLater is implemented by + GoaReadLaterProxy and GoaReadLaterSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.ReadLater D-Bus interface in C.

+
+
+

Functions

+
+

goa_read_later_interface_info ()

+
GDBusInterfaceInfo *
+goa_read_later_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.ReadLater D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.12.0

+
+
+
+

goa_read_later_override_properties ()

+
guint
+goa_read_later_override_properties (GObjectClass *klass,
+                                    guint property_id_begin);
+

Overrides all GObject properties in the GoaReadLater interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.12.0

+
+
+
+

goa_read_later_proxy_new ()

+
void
+goa_read_later_proxy_new (GDBusConnection *connection,
+                          GDBusProxyFlags flags,
+                          const gchar *name,
+                          const gchar *object_path,
+                          GCancellable *cancellable,
+                          GAsyncReadyCallback callback,
+                          gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.ReadLater. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_read_later_proxy_new_finish() to get the result of the operation.

+

See goa_read_later_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.12.0

+
+
+
+

goa_read_later_proxy_new_finish ()

+
GoaReadLater *
+goa_read_later_proxy_new_finish (GAsyncResult *res,
+                                 GError **error);
+

Finishes an operation started with goa_read_later_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_read_later_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaReadLaterProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_read_later_proxy_new_sync ()

+
GoaReadLater *
+goa_read_later_proxy_new_sync (GDBusConnection *connection,
+                               GDBusProxyFlags flags,
+                               const gchar *name,
+                               const gchar *object_path,
+                               GCancellable *cancellable,
+                               GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.ReadLater. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_read_later_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaReadLaterProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_read_later_proxy_new_for_bus ()

+
void
+goa_read_later_proxy_new_for_bus (GBusType bus_type,
+                                  GDBusProxyFlags flags,
+                                  const gchar *name,
+                                  const gchar *object_path,
+                                  GCancellable *cancellable,
+                                  GAsyncReadyCallback callback,
+                                  gpointer user_data);
+

Like goa_read_later_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_read_later_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_read_later_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.12.0

+
+
+
+

goa_read_later_proxy_new_for_bus_finish ()

+
GoaReadLater *
+goa_read_later_proxy_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_read_later_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_read_later_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaReadLaterProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_read_later_proxy_new_for_bus_sync ()

+
GoaReadLater *
+goa_read_later_proxy_new_for_bus_sync (GBusType bus_type,
+                                       GDBusProxyFlags flags,
+                                       const gchar *name,
+                                       const gchar *object_path,
+                                       GCancellable *cancellable,
+                                       GError **error);
+

Like goa_read_later_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_read_later_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaReadLaterProxy]

+
+

Since: 3.12.0

+
+
+
+

goa_read_later_skeleton_new ()

+
GoaReadLater *
+goa_read_later_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.ReadLater.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaReadLaterSkeleton]

+
+

Since: 3.12.0

+
+
+
+

Types and Values

+
+

GoaReadLater

+
typedef struct _GoaReadLater GoaReadLater;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.ReadLater.

+

Since: 3.12.0

+
+
+
+

struct GoaReadLaterIface

+
struct GoaReadLaterIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.ReadLater.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+

Since: 3.12.0

+
+
+
+

struct GoaReadLaterProxy

+
struct GoaReadLaterProxy;
+

The GoaReadLaterProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.12.0

+
+
+
+

struct GoaReadLaterProxyClass

+
struct GoaReadLaterProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaReadLaterProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.12.0

+
+
+
+

struct GoaReadLaterSkeleton

+
struct GoaReadLaterSkeleton;
+

The GoaReadLaterSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.12.0

+
+
+
+

struct GoaReadLaterSkeletonClass

+
struct GoaReadLaterSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaReadLaterSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.12.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaTicketing.html b/doc/html/GoaTicketing.html new file mode 100644 index 0000000..d9df77f --- /dev/null +++ b/doc/html/GoaTicketing.html @@ -0,0 +1,998 @@ + + + + +GoaTicketing: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaTicketing

+

GoaTicketing — Generated C code for the org.gnome.OnlineAccounts.Ticketing D-Bus interface

+
+ +
+

Properties

+
+++++ + + + + + +
+GVariant *detailsRead / Write
+
+
+

Signals

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaTicketing
structGoaTicketingIface
structGoaTicketingProxy
structGoaTicketingProxyClass
structGoaTicketingSkeleton
structGoaTicketingSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaTicketing
+    GObject
+    ├── GDBusInterfaceSkeleton
+       ╰── GoaTicketingSkeleton
+    ╰── GDBusProxy
+        ╰── GoaTicketingProxy
+
+
+
+

Prerequisites

+

+GoaTicketing requires + GObject.

+
+
+

Implemented Interfaces

+

+GoaTicketingProxy implements + GDBusInterface, GInitable, GAsyncInitable and GoaTicketing.

+

+GoaTicketingSkeleton implements + GDBusInterface and GoaTicketing.

+
+
+

Known Implementations

+

+GoaTicketing is implemented by + GoaTicketingProxy and GoaTicketingSkeleton.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Ticketing D-Bus interface in C.

+
+
+

Functions

+
+

goa_ticketing_interface_info ()

+
GDBusInterfaceInfo *
+goa_ticketing_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Ticketing D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_override_properties ()

+
guint
+goa_ticketing_override_properties (GObjectClass *klass,
+                                   guint property_id_begin);
+

Overrides all GObject properties in the GoaTicketing interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_call_get_ticket ()

+
void
+goa_ticketing_call_get_ticket (GoaTicketing *proxy,
+                               GCancellable *cancellable,
+                               GAsyncReadyCallback callback,
+                               gpointer user_data);
+

Asynchronously invokes the GetTicket() D-Bus method on proxy +. +When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_ticketing_call_get_ticket_finish() to get the result of the operation.

+

See goa_ticketing_call_get_ticket_sync() for the synchronous, blocking version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

proxy

A GoaTicketingProxy.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied or NULL.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_call_get_ticket_finish ()

+
gboolean
+goa_ticketing_call_get_ticket_finish (GoaTicketing *proxy,
+                                      GAsyncResult *res,
+                                      GError **error);
+

Finishes an operation started with goa_ticketing_call_get_ticket().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

proxy

A GoaTicketingProxy.

 

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_ticketing_call_get_ticket().

 

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_call_get_ticket_sync ()

+
gboolean
+goa_ticketing_call_get_ticket_sync (GoaTicketing *proxy,
+                                    GCancellable *cancellable,
+                                    GError **error);
+

Synchronously invokes the GetTicket() D-Bus method on proxy +. The calling thread is blocked until a reply is received.

+

See goa_ticketing_call_get_ticket() for the asynchronous version of this method.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

proxy

A GoaTicketingProxy.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL.

 
+
+
+

Returns

+

TRUE if the call succeded, FALSE if error +is set.

+

[skip]

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_complete_get_ticket ()

+
void
+goa_ticketing_complete_get_ticket (GoaTicketing *object,
+                                   GDBusMethodInvocation *invocation);
+

Helper function used in service implementations to finish handling invocations of the GetTicket() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.

+

This method will free invocation +, you cannot use it afterwards.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

object

A GoaTicketing.

 

invocation

A GDBusMethodInvocation.

[transfer full]
+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_proxy_new ()

+
void
+goa_ticketing_proxy_new (GDBusConnection *connection,
+                         GDBusProxyFlags flags,
+                         const gchar *name,
+                         const gchar *object_path,
+                         GCancellable *cancellable,
+                         GAsyncReadyCallback callback,
+                         gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Ticketing. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_ticketing_proxy_new_finish() to get the result of the operation.

+

See goa_ticketing_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_proxy_new_finish ()

+
GoaTicketing *
+goa_ticketing_proxy_new_finish (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_ticketing_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_ticketing_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTicketingProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_proxy_new_sync ()

+
GoaTicketing *
+goa_ticketing_proxy_new_sync (GDBusConnection *connection,
+                              GDBusProxyFlags flags,
+                              const gchar *name,
+                              const gchar *object_path,
+                              GCancellable *cancellable,
+                              GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Ticketing. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_ticketing_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTicketingProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_proxy_new_for_bus ()

+
void
+goa_ticketing_proxy_new_for_bus (GBusType bus_type,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GAsyncReadyCallback callback,
+                                 gpointer user_data);
+

Like goa_ticketing_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_ticketing_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_ticketing_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_proxy_new_for_bus_finish ()

+
GoaTicketing *
+goa_ticketing_proxy_new_for_bus_finish
+                               (GAsyncResult *res,
+                                GError **error);
+

Finishes an operation started with goa_ticketing_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_ticketing_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTicketingProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_proxy_new_for_bus_sync ()

+
GoaTicketing *
+goa_ticketing_proxy_new_for_bus_sync (GBusType bus_type,
+                                      GDBusProxyFlags flags,
+                                      const gchar *name,
+                                      const gchar *object_path,
+                                      GCancellable *cancellable,
+                                      GError **error);
+

Like goa_ticketing_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_ticketing_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTicketingProxy]

+
+

Since: 3.6.0

+
+
+
+

goa_ticketing_skeleton_new ()

+
GoaTicketing *
+goa_ticketing_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Ticketing.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaTicketingSkeleton]

+
+

Since: 3.6.0

+
+
+
+

Types and Values

+
+

GoaTicketing

+
typedef struct _GoaTicketing GoaTicketing;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Ticketing.

+

Since: 3.6.0

+
+
+
+

struct GoaTicketingIface

+
struct GoaTicketingIface {
+  GTypeInterface parent_iface;
+
+
+  gboolean (*handle_get_ticket) (
+    GoaTicketing *object,
+    GDBusMethodInvocation *invocation);
+
+  GVariant * (*get_details) (GoaTicketing *object);
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Ticketing.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

GTypeInterface parent_iface;

The parent interface.

 

handle_get_ticket ()

Handler for the “handle-get-ticket” signal.

 

get_details ()

Getter for the “details” property.

 
+
+

Since: 3.6.0

+
+
+
+

struct GoaTicketingProxy

+
struct GoaTicketingProxy;
+

The GoaTicketingProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.6.0

+
+
+
+

struct GoaTicketingProxyClass

+
struct GoaTicketingProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaTicketingProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.6.0

+
+
+
+

struct GoaTicketingSkeleton

+
struct GoaTicketingSkeleton;
+

The GoaTicketingSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.6.0

+
+
+
+

struct GoaTicketingSkeletonClass

+
struct GoaTicketingSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaTicketingSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.6.0

+
+
+
+

Property Details

+
+

The “details” property

+
  “details”                  GVariant *
+

Represents the D-Bus property "Details".

+

Since the D-Bus property for this GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.

+

Flags: Read / Write

+

Allowed values: GVariant<a{ss}>

+

Default value: NULL

+

Since: 3.18

+
+
+
+

Signal Details

+
+

The “handle-get-ticket” signal

+
gboolean
+user_function (GoaTicketing          *object,
+               GDBusMethodInvocation *invocation,
+               gpointer               user_data)
+

Signal emitted when a remote caller is invoking the GetTicket() D-Bus method.

+

If a signal handler returns TRUE, it means the signal handler will handle the invocation (e.g. take a reference to invocation + and eventually call goa_ticketing_complete_get_ticket() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the G_DBUS_ERROR_UNKNOWN_METHOD error is returned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

object

A GoaTicketing.

 

invocation

A GDBusMethodInvocation.

 

user_data

user data set when the signal handler was connected.

 
+
+
+

Returns

+

TRUE if the invocation was handled, FALSE to let other signal handlers run.

+
+

Flags: Run Last

+

Since: 3.6.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/GoaTodo.html b/doc/html/GoaTodo.html new file mode 100644 index 0000000..50bf813 --- /dev/null +++ b/doc/html/GoaTodo.html @@ -0,0 +1,666 @@ + + + + +GoaTodo: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaTodo

+

GoaTodo — Generated C code for the org.gnome.OnlineAccounts.Todo D-Bus interface

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GDBusInterfaceInfo * + +goa_todo_interface_info () +
+guint + +goa_todo_override_properties () +
+void + +goa_todo_proxy_new () +
+GoaTodo * + +goa_todo_proxy_new_finish () +
+GoaTodo * + +goa_todo_proxy_new_sync () +
+void + +goa_todo_proxy_new_for_bus () +
+GoaTodo * + +goa_todo_proxy_new_for_bus_finish () +
+GoaTodo * + +goa_todo_proxy_new_for_bus_sync () +
+GoaTodo * + +goa_todo_skeleton_new () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 GoaTodo
structGoaTodoIface
structGoaTodoProxy
structGoaTodoProxyClass
structGoaTodoSkeleton
structGoaTodoSkeletonClass
+
+
+

Object Hierarchy

+
    GInterface
+    ╰── GoaTodo
+
+
+
+

Prerequisites

+

+GoaTodo requires + GObject.

+
+
+

Description

+

This section contains code for working with the org.gnome.OnlineAccounts.Todo D-Bus interface in C.

+
+
+

Functions

+
+

goa_todo_interface_info ()

+
GDBusInterfaceInfo *
+goa_todo_interface_info (void);
+

Gets a machine-readable description of the org.gnome.OnlineAccounts.Todo D-Bus interface.

+
+

Returns

+

A GDBusInterfaceInfo. Do not free.

+

[transfer none]

+
+

Since: 3.26.0

+
+
+
+

goa_todo_override_properties ()

+
guint
+goa_todo_override_properties (GObjectClass *klass,
+                              guint property_id_begin);
+

Overrides all GObject properties in the GoaTodo interface for a concrete class. +The properties are overridden in the order they are defined.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

klass

The class structure for a GObject derived class.

 

property_id_begin

The property id to assign to the first overridden property.

 
+
+
+

Returns

+

The last property id.

+
+

Since: 3.26.0

+
+
+
+

goa_todo_proxy_new ()

+
void
+goa_todo_proxy_new (GDBusConnection *connection,
+                    GDBusProxyFlags flags,
+                    const gchar *name,
+                    const gchar *object_path,
+                    GCancellable *cancellable,
+                    GAsyncReadyCallback callback,
+                    gpointer user_data);
+

Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Todo. See g_dbus_proxy_new() for more details.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_todo_proxy_new_finish() to get the result of the operation.

+

See goa_todo_proxy_new_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.26.0

+
+
+
+

goa_todo_proxy_new_finish ()

+
GoaTodo *
+goa_todo_proxy_new_finish (GAsyncResult *res,
+                           GError **error);
+

Finishes an operation started with goa_todo_proxy_new().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_todo_proxy_new().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTodoProxy]

+
+

Since: 3.26.0

+
+
+
+

goa_todo_proxy_new_sync ()

+
GoaTodo *
+goa_todo_proxy_new_sync (GDBusConnection *connection,
+                         GDBusProxyFlags flags,
+                         const gchar *name,
+                         const gchar *object_path,
+                         GCancellable *cancellable,
+                         GError **error);
+

Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Todo. See g_dbus_proxy_new_sync() for more details.

+

The calling thread is blocked until a reply is received.

+

See goa_todo_proxy_new() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

A GDBusConnection.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique) or NULL if connection +is not a message bus connection.

[nullable]

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTodoProxy]

+
+

Since: 3.26.0

+
+
+
+

goa_todo_proxy_new_for_bus ()

+
void
+goa_todo_proxy_new_for_bus (GBusType bus_type,
+                            GDBusProxyFlags flags,
+                            const gchar *name,
+                            const gchar *object_path,
+                            GCancellable *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer user_data);
+

Like goa_todo_proxy_new() but takes a GBusType instead of a GDBusConnection.

+

When the operation is finished, callback + will be invoked in the thread-default main loop of the thread you are calling this method from. +You can then call goa_todo_proxy_new_for_bus_finish() to get the result of the operation.

+

See goa_todo_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

callback

A GAsyncReadyCallback to call when the request is satisfied.

 

user_data

User data to pass to callback +.

 
+
+

Since: 3.26.0

+
+
+
+

goa_todo_proxy_new_for_bus_finish ()

+
GoaTodo *
+goa_todo_proxy_new_for_bus_finish (GAsyncResult *res,
+                                   GError **error);
+

Finishes an operation started with goa_todo_proxy_new_for_bus().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

res

The GAsyncResult obtained from the GAsyncReadyCallback passed to goa_todo_proxy_new_for_bus().

 

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTodoProxy]

+
+

Since: 3.26.0

+
+
+
+

goa_todo_proxy_new_for_bus_sync ()

+
GoaTodo *
+goa_todo_proxy_new_for_bus_sync (GBusType bus_type,
+                                 GDBusProxyFlags flags,
+                                 const gchar *name,
+                                 const gchar *object_path,
+                                 GCancellable *cancellable,
+                                 GError **error);
+

Like goa_todo_proxy_new_sync() but takes a GBusType instead of a GDBusConnection.

+

The calling thread is blocked until a reply is received.

+

See goa_todo_proxy_new_for_bus() for the asynchronous version of this constructor.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bus_type

A GBusType.

 

flags

Flags from the GDBusProxyFlags enumeration.

 

name

A bus name (well-known or unique).

 

object_path

An object path.

 

cancellable

A GCancellable or NULL.

[nullable]

error

Return location for error or NULL

 
+
+
+

Returns

+

The constructed proxy object or NULL if error +is set.

+

[transfer full][type GoaTodoProxy]

+
+

Since: 3.26.0

+
+
+
+

goa_todo_skeleton_new ()

+
GoaTodo *
+goa_todo_skeleton_new (void);
+

Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Todo.

+
+

Returns

+

The skeleton object.

+

[transfer full][type GoaTodoSkeleton]

+
+

Since: 3.26.0

+
+
+
+

Types and Values

+
+

GoaTodo

+
typedef struct _GoaTodo GoaTodo;
+

Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Todo.

+

Since: 3.26.0

+
+
+
+

struct GoaTodoIface

+
struct GoaTodoIface {
+  GTypeInterface parent_iface;
+};
+
+

Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Todo.

+
+

Members

+
+++++ + + + + + +

GTypeInterface parent_iface;

The parent interface.

 
+
+

Since: 3.26.0

+
+
+
+

struct GoaTodoProxy

+
struct GoaTodoProxy {
+};
+
+

The GoaTodoProxy structure contains only private data and should only be accessed using the provided API.

+

Since: 3.26.0

+
+
+
+

struct GoaTodoProxyClass

+
struct GoaTodoProxyClass {
+  GDBusProxyClass parent_class;
+};
+
+

Class structure for GoaTodoProxy.

+
+

Members

+
+++++ + +
+
+

Since: 3.26.0

+
+
+
+

struct GoaTodoSkeleton

+
struct GoaTodoSkeleton {
+};
+
+

The GoaTodoSkeleton structure contains only private data and should only be accessed using the provided API.

+

Since: 3.26.0

+
+
+
+

struct GoaTodoSkeletonClass

+
struct GoaTodoSkeletonClass {
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+

Class structure for GoaTodoSkeleton.

+
+

Members

+
+++++ + +
+
+

Since: 3.26.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/annotation-glossary.html b/doc/html/annotation-glossary.html new file mode 100644 index 0000000..7c6ad9b --- /dev/null +++ b/doc/html/annotation-glossary.html @@ -0,0 +1,60 @@ + + + + +Annotation Glossary: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

A

+
allow-none
+

NULL is OK, both for passing and for returning.

+

E

+
element-type
+

Generics and defining elements of containers and arrays.

+

N

+
nullable
+

NULL may be passed as the value in, out, in-out; or as a return value.

+

O

+
out
+

Parameter for returning results. Default is transfer full.

+

S

+
skip
+

Exposed in C code, not necessarily available in other languages.

+

T

+
transfer full
+

Free data after the code is done.

+
transfer none
+

Don't free data after the code is done.

+
type
+

Override the parsed C type with given type.

+
+ + + \ No newline at end of file diff --git a/doc/html/ch01s02.html b/doc/html/ch01s02.html new file mode 100644 index 0000000..35817db --- /dev/null +++ b/doc/html/ch01s02.html @@ -0,0 +1,38 @@ + + + + +Accessing Services: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Accessing Services

+

+ A GOA application needs to handle service-specific protocols + and quirks itself. Some service-types, such as mail, may + use standard protocols such as IMAP or + SMTP + but they also may not. GOA applications should always look at + the Account.ProviderType + property to infer what kind of protocol and endpoint to use. +

+
+ + + \ No newline at end of file diff --git a/doc/html/ch01s03.html b/doc/html/ch01s03.html new file mode 100644 index 0000000..abd053f --- /dev/null +++ b/doc/html/ch01s03.html @@ -0,0 +1,57 @@ + + + + +Credentials Handling: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Credentials Handling

+

+ For accessing a service, the application typically needs to + present credentials. The application can request the + credentials via GOA. First the application should invoke the + Account.EnsureCredentials() + method on the account object. If this succeeds, the + application can request the credentials using e.g. OAuthBased.GetAccessToken() + or OAuth2Based.GetAccessToken() + depending on what kind of credentials the account is using. + If the service returns an authorization error (say, the access + token expired), the application should call Account.EnsureCredentials() + again to e.g. renew the credentials. +

+

+ On the other hand, if Account.EnsureCredentials() + ever fails, then the user will get notified that there is a + problem with the account so he can take actions to fix it. + Applications can listen to changes on the Account.AttentionNeeded + property to get notified when it's time to try accessing the + account again. +

+

+ Note that the implementation for a provider may switch from + e.g. OAuth to OAuth2 in a newer release of GNOME Online + Accounts. Therefore, applications must never assume that the + GoaObject for an account implements a fixed set of + interfaces. +

+
+ + + \ No newline at end of file diff --git a/doc/html/ch03.html b/doc/html/ch03.html new file mode 100644 index 0000000..2da89f6 --- /dev/null +++ b/doc/html/ch03.html @@ -0,0 +1,37 @@ + + + + +Core Interfaces: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/html/ch04.html b/doc/html/ch04.html new file mode 100644 index 0000000..2ec48d5 --- /dev/null +++ b/doc/html/ch04.html @@ -0,0 +1,40 @@ + + + + +Credentials Interfaces: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/html/ch05.html b/doc/html/ch05.html new file mode 100644 index 0000000..24ad1b6 --- /dev/null +++ b/doc/html/ch05.html @@ -0,0 +1,73 @@ + + + + +Service-specific Interfaces: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/html/ch07.html b/doc/html/ch07.html new file mode 100644 index 0000000..10cdc04 --- /dev/null +++ b/doc/html/ch07.html @@ -0,0 +1,43 @@ + + + + +Core: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Core

+
+
+goautil +
+
+GoaProvider — Abstract base class for providers +
+
+GoaOAuthProvider — Abstract base class for OAuth 1.0a providers +
+
+GoaOAuth2Provider — Abstract base class for OAuth 2.0 providers +
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Account.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Account.html new file mode 100644 index 0000000..9860928 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Account.html @@ -0,0 +1,434 @@ + + + + +org.gnome.OnlineAccounts.Account: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Account

+

org.gnome.OnlineAccounts.Account

+
+
+

Methods

+
+Remove            ();
+EnsureCredentials (OUT i expires_in);
+
+
+
+

Properties

+
+ProviderType          readable   s
+ProviderName          readable   s
+ProviderIcon          readable   s
+Id                    readable   s
+IsLocked              readable   b
+IsTemporary           readwrite  b
+AttentionNeeded       readable   b
+Identity              readable   s
+PresentationIdentity  readable   s
+MailDisabled          readwrite  b
+CalendarDisabled      readwrite  b
+ContactsDisabled      readwrite  b
+ChatDisabled          readwrite  b
+DocumentsDisabled     readwrite  b
+MapsDisabled          readwrite  b
+MusicDisabled         readwrite  b
+PrintersDisabled      readwrite  b
+PhotosDisabled        readwrite  b
+FilesDisabled         readwrite  b
+TicketingDisabled     readwrite  b
+TodoDisabled          readwrite  b
+ReadLaterDisabled     readwrite  b
+
+
+
+

Description

+

The base account interface. +

+
+
+

Method Details

+
+

The Remove() method

+
+Remove ();
+
+

Removes the account. Note that this does not removes the + account at the remote service. +

+
+
+
+

The EnsureCredentials() method

+
+EnsureCredentials (OUT i expires_in);
+
+

Ensures that valid credentials exist for the account and + returns how long they are still valid for, if known. Returns + an error if the cached credentials are not valid or + non-existant. +

+

If this method fails because the token service indicates that + authorization has expired, the + "AttentionNeeded" property + will be set to TRUE. On the other hand, if this property was + already TRUE and this method succeeds, it is set to FALSE. +

+
++++ + + + + +

OUT i expires_in:

The duration that the cached credentials are valid for, in seconds, or 0 if unknown.

+
+
+
+

Property Details

+
+

The "ProviderType" property

+
+ProviderType  readable   s
+
+

The type of provider of the account. +

+

This value describes how data is accessed, e.g. what API + applications should use. Use + "ProviderName" for the name of + the provider (which might differ from the provider name in + hosted scenarios) to display in the user interface. +

+
+
+
+

The "ProviderName" property

+
+ProviderName  readable   s
+
+

The name of the provider to display in the user interface. +

+
+
+
+

The "ProviderIcon" property

+
+ProviderIcon  readable   s
+
+

The icon/logo of the provider. +

+

This is a serialized GIcon + - use e.g. g_icon_new_for_string() + to create an instance. +

+
+
+
+

The "Id" property

+
+Id  readable   s
+
+

An identifier for this account.

+

This identifier cannot be changed and should never be + displayed in any user interface. +

+
+
+
+

The "IsLocked" property

+
+IsLocked  readable   b
+
+

Whether or not the user is discouraged from removing this account. +

+

Locked accounts can be those that there added by the administrator to + pre-configure systems in an enterprise deployment. If TRUE, the UI + should prevent, or atleast discourage, removal of these accounts. +

+

Since 3.16.0

+
+
+
+

The "IsTemporary" property

+
+IsTemporary  readwrite  b
+
+

Whether or not the account is remembered from session to session. +

+

Temporary accounts are added implicitly when the user is granted + credentials from some mechanism other than Online Accounts, but that + Online Accounts still knows how to deal with. +

+

They are specific to the machine/session and are silently disregarded + after logout. +

+

Accounts are permanant by default unless created with "IsTemporary" + "true" detail. +

+
+
+
+

The "AttentionNeeded" property

+
+AttentionNeeded  readable   b
+
+

Set to TRUE if the account is in need of attention.

+

This is used when a human operator is needed to service the + account (e.g. for authentication and/or authorization). +

+
+
+
+

The "Identity" property

+
+Identity  readable   s
+
+

A string that uniquely identifies the account at the + provider. +

+

Note that this may be the same string for different kinds of + providers (for example, if the user is using the same + email-address for several providers) - use + "Id" to uniquely identify the + account. +

+

This string might not be suitable for presentation in an user + interface - use + "PresentationIdentity" instead. +

+
+
+
+

The "PresentationIdentity" property

+
+PresentationIdentity  readable   s
+
+

Like the "Identity" property but + suitable for presentation in an user interface. +

+
+
+
+

The "MailDisabled" property

+
+MailDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Mail interface. If the account does not + provide email-like messaging capabilities, this property does + nothing. +

+

Note that the #org.gnomeOnlineAccounts.Mail interface is added or + removed from the account asynchronously. +

+
+
+
+

The "CalendarDisabled" property

+
+CalendarDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Calendar interface. If the account does not + provide calendar-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Calendar interface is added or + removed from the account asynchronously. +

+
+
+
+

The "ContactsDisabled" property

+
+ContactsDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Contacts interface. If the account does not + provide contacts-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Contacts interface is added or + removed from the account asynchronously. +

+
+
+
+

The "ChatDisabled" property

+
+ChatDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Chat interface. If the account does not + provide chat-like messaging capabilities, this property does + nothing. +

+

Note that the #org.gnomeOnlineAccounts.Chat interface is added or + removed from the account asynchronously. +

+
+
+
+

The "DocumentsDisabled" property

+
+DocumentsDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Documents interface. If the account does not + provide documents-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Documents interface is added or + removed from the account asynchronously. +

+
+
+
+

The "MapsDisabled" property

+
+MapsDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Maps interface. If the account does not + provide maps-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Maps interface is added or + removed from the account asynchronously. +

+

Since 3.14.0

+
+
+
+

The "MusicDisabled" property

+
+MusicDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Music interface. If the account does not + provide music-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Music interface is added or + removed from the account asynchronously. +

+

Since 3.18.0

+
+
+
+

The "PrintersDisabled" property

+
+PrintersDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Printers interface. If the account does not + provide printers-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Printers interface is added or + removed from the account asynchronously. +

+

Since 3.12.0

+
+
+
+

The "PhotosDisabled" property

+
+PhotosDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Photos interface. If the account does not + provide photos-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Photos interface is added or + removed from the account asynchronously. +

+

Since 3.8.0

+
+
+
+

The "FilesDisabled" property

+
+FilesDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Files interface. If the account does not + provide files-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Files interface is added or + removed from the account asynchronously. +

+

Since 3.8.0

+
+
+
+

The "TicketingDisabled" property

+
+TicketingDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Ticketing interface. If the account does not + provide ticketing-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Ticketing interface is added or + removed from the account asynchronously. +

+

Since 3.6.0

+
+
+
+

The "TodoDisabled" property

+
+TodoDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.Todo interface. If the account does not + provide todo-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.Todo interface is added or + removed from the account asynchronously. +

+

Since 3.26.0

+
+
+
+

The "ReadLaterDisabled" property

+
+ReadLaterDisabled  readwrite  b
+
+

If TRUE, the account will not expose any + org.gnome.OnlineAccounts.ReadLater interface. If the account does not + provide read-later-like capabilities, this property does nothing. +

+

Note that the #org.gnomeOnlineAccounts.ReadLater interface is added or + removed from the account asynchronously. +

+

Since 3.12.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Calendar.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Calendar.html new file mode 100644 index 0000000..abb1825 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Calendar.html @@ -0,0 +1,76 @@ + + + + +org.gnome.OnlineAccounts.Calendar: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Calendar

+

org.gnome.OnlineAccounts.Calendar

+
+
+

Properties

+
+AcceptSslErrors  readable   b
+Uri              readable   s
+
+
+
+

Description

+

An account object implements this interface if it provides + calendar-like capabilities. For example, it can represent a + CalDAV + server. +

+
+
+

Property Details

+
+

The "AcceptSslErrors" property

+
+AcceptSslErrors  readable   b
+
+

Accept SSL/TLS errors caused by invalid certificates. +

+

Since 3.8.0

+
+
+
+

The "Uri" property

+
+Uri  readable   s
+
+

The top-level location of the calendars. +

+

Since 3.8.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Chat.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Chat.html new file mode 100644 index 0000000..adfa0a0 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Chat.html @@ -0,0 +1,44 @@ + + + + +org.gnome.OnlineAccounts.Chat: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Chat

+

org.gnome.OnlineAccounts.Chat

+
+
+

Description

+

An account object implements this interface if it provides + chat-like capabilities. +

+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Contacts.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Contacts.html new file mode 100644 index 0000000..e3e76c6 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Contacts.html @@ -0,0 +1,76 @@ + + + + +org.gnome.OnlineAccounts.Contacts: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Contacts

+

org.gnome.OnlineAccounts.Contacts

+
+
+

Properties

+
+AcceptSslErrors  readable   b
+Uri              readable   s
+
+
+
+

Description

+

An account object implements this interface if it provides + contacts-like capabilities. For example, it can represent a + CardDAV + server. +

+
+
+

Property Details

+
+

The "AcceptSslErrors" property

+
+AcceptSslErrors  readable   b
+
+

Accept SSL/TLS errors caused by invalid certificates. +

+

Since 3.8.0

+
+
+
+

The "Uri" property

+
+Uri  readable   s
+
+

The top-level location of the contacts. +

+

Since 3.8.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Documents.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Documents.html new file mode 100644 index 0000000..02b16e9 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Documents.html @@ -0,0 +1,44 @@ + + + + +org.gnome.OnlineAccounts.Documents: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Documents

+

org.gnome.OnlineAccounts.Documents

+
+
+

Description

+

An account object implements this interface if it provides + documents-like capabilities. +

+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Exchange.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Exchange.html new file mode 100644 index 0000000..d6b761a --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Exchange.html @@ -0,0 +1,84 @@ + + + + +org.gnome.OnlineAccounts.Exchange: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Exchange

+

org.gnome.OnlineAccounts.Exchange

+
+
+

Properties

+
+AcceptSslErrors  readable   b
+Host             readable   s
+
+
+
+

Description

+

An account object implements this interface if it represents + a Microsoft Exchange server. +

+

Since 3.6.0

+
+
+

Property Details

+
+

The "AcceptSslErrors" property

+
+AcceptSslErrors  readable   b
+
+

Accept SSL/TLS errors caused by invalid certificates. +

+

Since 3.8.0

+
+
+
+

The "Host" property

+
+Host  readable   s
+
+

The Exchange server to use. This is always a domain name. +

+

Use this to determine the + Autodiscover service endpoints. eg. if + "Host" is + bar.com, then the possible endpoints are + https://bar.com/autodiscover/autodiscover.xml + and + https://autodiscover.bar.com/autodiscover/autodiscover.xml + . +

+

Since 3.6.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Files.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Files.html new file mode 100644 index 0000000..1c478d9 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Files.html @@ -0,0 +1,83 @@ + + + + +org.gnome.OnlineAccounts.Files: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Files

+

org.gnome.OnlineAccounts.Files

+
+
+

Properties

+
+AcceptSslErrors  readable   b
+Uri              readable   s
+
+
+
+

Description

+

An account object implements this interface if it provides + files-like capabilities. For example, it can represent a + WebDAV + server. +

+

Since 3.8.0

+
+
+

Property Details

+
+

The "AcceptSslErrors" property

+
+AcceptSslErrors  readable   b
+
+

Accept SSL/TLS errors caused by invalid certificates. +

+

Since 3.8.0

+
+
+
+

The "Uri" property

+
+Uri  readable   s
+
+

The top-level location of the files. +

+

This is a + + Gvfs-specific URI meant to be used with + + GIO. It may not work with anything else. +

+

Since 3.8.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Mail.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Mail.html new file mode 100644 index 0000000..2d5843c --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Mail.html @@ -0,0 +1,306 @@ + + + + +org.gnome.OnlineAccounts.Mail: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Mail

+

org.gnome.OnlineAccounts.Mail

+
+
+

Properties

+
+EmailAddress         readable   s
+Name                 readable   s
+ImapSupported        readable   b
+ImapAcceptSslErrors  readable   b
+ImapHost             readable   s
+ImapUseSsl           readable   b
+ImapUseTls           readable   b
+ImapUserName         readable   s
+SmtpSupported        readable   b
+SmtpAcceptSslErrors  readable   b
+SmtpHost             readable   s
+SmtpUseAuth          readable   b
+SmtpAuthLogin        readable   b
+SmtpAuthPlain        readable   b
+SmtpAuthXoauth2      readable   b
+SmtpUseSsl           readable   b
+SmtpUseTls           readable   b
+SmtpUserName         readable   s
+
+
+
+

Description

+

An account object implements this interface if it provides + email-like messaging capabilities. +

+
+
+

Property Details

+
+

The "EmailAddress" property

+
+EmailAddress  readable   s
+
+

The email address for the account or blank if there is no + such address or if it isnt' known or isn't in a standard + format. +

+
+
+
+

The "Name" property

+
+Name  readable   s
+
+

The full name of the user associated with + "EmailAddress". +

+

Since 3.8.0

+
+
+
+

The "ImapSupported" property

+
+ImapSupported  readable   b
+
+

Set to TRUE if the messages for the account can be accessed + and manipulated using the + IMAP + protocol. +

+
+
+
+

The "ImapAcceptSslErrors" property

+
+ImapAcceptSslErrors  readable   b
+
+

Accept SSL/TLS errors caused by invalid certificates. +

+

Since 3.8.0

+
+
+
+

The "ImapHost" property

+
+ImapHost  readable   s
+
+

The IMAP server to use. +

+

This may be in any of a number of recognized formats; an IPv6 + address, an IPv4 address, or a domain name. A port override + may be specified in the usual way with a colon. Ports may be + given as decimal numbers or symbolic names + (cf. the /etc/services file). +

+

If a port override is not given, then applications should try + to connect to port 993 if + "ImapUseSsl" is TRUE and port + 143 if not. +

+
+
+
+

The "ImapUseSsl" property

+
+ImapUseSsl  readable   b
+
+

Whether SSL should be used. +

+

This indicates that SSL should be used on a dedicated port. +

+

Since 3.8.0

+
+
+
+

The "ImapUseTls" property

+
+ImapUseTls  readable   b
+
+

Whether TLS should be used. +

+

This indicates that STARTTLS should be used on a standard port + after the connection has been established to obtain a secure + channel. +

+
+
+
+

The "ImapUserName" property

+
+ImapUserName  readable   s
+
+

The user name to use for logging in. +

+

This may be blank if username/password authentication isn't + used or if the user name of the current user should be used. +

+
+
+
+

The "SmtpSupported" property

+
+SmtpSupported  readable   b
+
+

Set to TRUE if the + SMTP + protocol can be used to send messages for the account. +

+
+
+
+

The "SmtpAcceptSslErrors" property

+
+SmtpAcceptSslErrors  readable   b
+
+

Accept SSL/TLS errors caused by invalid certificates. +

+

Since 3.8.0

+
+
+
+

The "SmtpHost" property

+
+SmtpHost  readable   s
+
+

The SMTP server to use. +

+

This may be in any of a number of recognized formats; an IPv6 + address, an IPv4 address, or a domain name. A port override + may be specified in the usual way with a colon. Ports may be + given as decimal numbers or symbolic names + (cf. the /etc/services file). +

+

If a port override is not given, then applications should try + to connect to port 465 if + "SmtpUseSsl" is TRUE and port + 587 (or 25) if not. +

+
+
+
+

The "SmtpUseAuth" property

+
+SmtpUseAuth  readable   b
+
+

Whether authentication is needed +

+

This indicates whether the server uses authentication. +

+

Since 3.8.0

+
+
+
+

The "SmtpAuthLogin" property

+
+SmtpAuthLogin  readable   b
+
+

Whether LOGIN authentication should be used. +

+

This indicates whether the server uses the + + LOGIN SASL mechanism for SMTP. +

+

Since 3.12.0

+
+
+
+

The "SmtpAuthPlain" property

+
+SmtpAuthPlain  readable   b
+
+

Whether PLAIN authentication should be used. +

+

This indicates whether the server uses the + PLAIN + SASL mechanism for SMTP. +

+

Since 3.12.0

+
+
+
+

The "SmtpAuthXoauth2" property

+
+SmtpAuthXoauth2  readable   b
+
+

Whether XOAUTH2 authentication should be used. +

+

This indicates whether the server uses the non-standard XOAUTH2 + SASL mechanism for SMTP. This is implemented by + + GMail and + + Outlook.com. +

+

Since 3.12.0

+
+
+
+

The "SmtpUseSsl" property

+
+SmtpUseSsl  readable   b
+
+

Whether SSL should be used. +

+

This indicates that SSL should be used on a dedicated port. +

+

Since 3.8.0

+
+
+
+

The "SmtpUseTls" property

+
+SmtpUseTls  readable   b
+
+

Whether TLS should be used. +

+

This indicates that STARTTLS should be used on a standard port + after the connection has been established to obtain a secure + channel. +

+
+
+
+

The "SmtpUserName" property

+
+SmtpUserName  readable   s
+
+

The user name to use for logging in. +

+

This may be blank if username/password authentication isn't + used or if the user name of the current user should be used. +

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Manager.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Manager.html new file mode 100644 index 0000000..2f1c389 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Manager.html @@ -0,0 +1,103 @@ + + + + +org.gnome.OnlineAccounts.Manager: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Manager

+

org.gnome.OnlineAccounts.Manager

+
+
+

Methods

+
+AddAccount (IN  s     provider,
+            IN  s     identity,
+            IN  s     presentation_identity,
+            IN  a{sv} credentials,
+            IN  a{ss} details,
+            OUT o     account_object_path);
+
+
+
+

Description

+

An interface used for managing accounts. +

+
+
+

Method Details

+
+

The AddAccount() method

+
+AddAccount (IN  s     provider,
+            IN  s     identity,
+            IN  s     presentation_identity,
+            IN  a{sv} credentials,
+            IN  a{ss} details,
+            OUT o     account_object_path);
+
+

Creates a new account. Note that this does not create an + account at the remote service. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +

IN s provider:

The account provider. See the "ProviderType" property for known providers.

IN s identity:

The identity of the account (cf. the "Identity" property).

IN s presentation_identity:

The identity of the account that is suitable for display in an user interface (cf. the "PresentationIdentity" property).

IN a{sv} credentials:

The credentials to store.

IN a{ss} details:

Extra key/value pairs to set.

OUT o account_object_path:

The object path of the created account.

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Maps.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Maps.html new file mode 100644 index 0000000..2730533 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Maps.html @@ -0,0 +1,45 @@ + + + + +org.gnome.OnlineAccounts.Maps: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Maps

+

org.gnome.OnlineAccounts.Maps

+
+
+

Description

+

An account object implements this interface if it provides + maps-like capabilities. +

+

Since 3.14.0

+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.MediaServer.html b/doc/html/gdbus-org.gnome.OnlineAccounts.MediaServer.html new file mode 100644 index 0000000..714e208 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.MediaServer.html @@ -0,0 +1,75 @@ + + + + +org.gnome.OnlineAccounts.MediaServer: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.MediaServer

+

org.gnome.OnlineAccounts.MediaServer

+
+
+

Properties

+
+DlnaSupported  readable   b
+Udn            readable   s
+
+
+
+

Description

+

An account object implements this interface if it provides + media server like capabilities. +

+

Since 3.14

+
+
+

Property Details

+
+

The "DlnaSupported" property

+
+DlnaSupported  readable   b
+
+

True if media server device is DLNA supported. +

+

Since 3.14

+
+
+
+

The "Udn" property

+
+Udn  readable   s
+
+

Unique Device Name. Used to uniquely identify the device. +

+

Since 3.14

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Music.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Music.html new file mode 100644 index 0000000..7640de0 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Music.html @@ -0,0 +1,45 @@ + + + + +org.gnome.OnlineAccounts.Music: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Music

+

org.gnome.OnlineAccounts.Music

+
+
+

Description

+

An account object implements this interface if it provides + music-like capabilities. +

+

Since 3.18.0

+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.OAuth2Based.html b/doc/html/gdbus-org.gnome.OnlineAccounts.OAuth2Based.html new file mode 100644 index 0000000..5267adc --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.OAuth2Based.html @@ -0,0 +1,109 @@ + + + + +org.gnome.OnlineAccounts.OAuth2Based: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.OAuth2Based

+

org.gnome.OnlineAccounts.OAuth2Based

+
+
+

Methods

+
+GetAccessToken (OUT s access_token,
+                OUT i expires_in);
+
+
+
+

Properties

+
+ClientId      readable   s
+ClientSecret  readable   s
+
+
+
+

Description

+

An account object implements this interface if OAuth 2.0 tokens are used for + accessing it. +

+
+
+

Method Details

+
+

The GetAccessToken() method

+
+GetAccessToken (OUT s access_token,
+                OUT i expires_in);
+
+

Use this method to obtain an access token that can be used to + access services for the account. Because networking is involved, + this method may take a very long time to complete. +

+

Note that calls to this method are logged. +

+
++++ + + + + + + + + + + +

OUT s access_token:

The access token.

OUT i expires_in:

The duration that the returned token is valid for, in seconds, or 0 if unknown.

+
+
+
+

Property Details

+
+

The "ClientId" property

+
+ClientId  readable   s
+
+

The client id.

+
+
+
+

The "ClientSecret" property

+
+ClientSecret  readable   s
+
+

The client secret.

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.OAuthBased.html b/doc/html/gdbus-org.gnome.OnlineAccounts.OAuthBased.html new file mode 100644 index 0000000..2f31cd0 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.OAuthBased.html @@ -0,0 +1,115 @@ + + + + +org.gnome.OnlineAccounts.OAuthBased: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.OAuthBased

+

org.gnome.OnlineAccounts.OAuthBased

+
+
+

Methods

+
+GetAccessToken (OUT s access_token,
+                OUT s access_token_secret,
+                OUT i expires_in);
+
+
+
+

Properties

+
+ConsumerKey     readable   s
+ConsumerSecret  readable   s
+
+
+
+

Description

+

An account object implements this interface if OAuth 1.0 tokens are used for + accessing it. +

+
+
+

Method Details

+
+

The GetAccessToken() method

+
+GetAccessToken (OUT s access_token,
+                OUT s access_token_secret,
+                OUT i expires_in);
+
+

Use this method to obtain an access token that can be used to to + access services for the account. Because networking is involved, + this method may take a very long time to complete. +

+

Note that calls to this method are logged. +

+
++++ + + + + + + + + + + + + + + +

OUT s access_token:

The access token.

OUT s access_token_secret:

The access token secret.

OUT i expires_in:

The duration that the returned token is valid for, in seconds, or 0 if unknown.

+
+
+
+

Property Details

+
+

The "ConsumerKey" property

+
+ConsumerKey  readable   s
+
+

The consumer key.

+
+
+
+

The "ConsumerSecret" property

+
+ConsumerSecret  readable   s
+
+

The consumer secret.

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.PasswordBased.html b/doc/html/gdbus-org.gnome.OnlineAccounts.PasswordBased.html new file mode 100644 index 0000000..6d86556 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.PasswordBased.html @@ -0,0 +1,89 @@ + + + + +org.gnome.OnlineAccounts.PasswordBased: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.PasswordBased

+

org.gnome.OnlineAccounts.PasswordBased

+
+
+

Methods

+
+GetPassword (IN  s id,
+             OUT s password);
+
+
+
+

Description

+

An account object implements this interface if one or more + passwords are used for accessing it. +

+

Since 3.6.0

+
+
+

Method Details

+
+

The GetPassword() method

+
+GetPassword (IN  s id,
+             OUT s password);
+
+

Use this method to obtain the passwords used to access the + account. +

+

If the account is for a mail account (see + org.gnome.OnlineAccounts.Mail), known values for id includes + imap-password and + smtp-password. +

+

Note that calls to this method are logged. +

+
++++ + + + + + + + + + + +

IN s id:

An identifier describing what password to get.

OUT s password:

The password.

+

Since 3.6.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Photos.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Photos.html new file mode 100644 index 0000000..8940352 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Photos.html @@ -0,0 +1,45 @@ + + + + +org.gnome.OnlineAccounts.Photos: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Photos

+

org.gnome.OnlineAccounts.Photos

+
+
+

Description

+

An account object implements this interface if it provides + photos-like capabilities. +

+

Since 3.8.0

+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Printers.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Printers.html new file mode 100644 index 0000000..dcfd6d9 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Printers.html @@ -0,0 +1,45 @@ + + + + +org.gnome.OnlineAccounts.Printers: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Printers

+

org.gnome.OnlineAccounts.Printers

+
+
+

Description

+

An account object implements this interface if it provides + network printing capabilities. +

+

Since 3.12.0

+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Ticketing.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Ticketing.html new file mode 100644 index 0000000..6b0773a --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Ticketing.html @@ -0,0 +1,86 @@ + + + + +org.gnome.OnlineAccounts.Ticketing: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Ticketing

+

org.gnome.OnlineAccounts.Ticketing

+
+
+

Methods

+
+GetTicket ();
+
+
+
+

Properties

+
+Details  readable   a{ss}
+
+
+
+

Description

+

An account object implements this interface if it provides + ticketing capabilities. +

+

Since 3.6.0

+
+
+

Method Details

+
+

The GetTicket() method

+
+GetTicket ();
+
+

Use this method to obtain an ticket that can be used to + access resources for the account. +

+

Since 3.6.0

+
+
+
+

Property Details

+
+

The "Details" property

+
+Details  readable   a{ss}
+
+

Metadata about the tickets getting fetched. + For kerberos tickets, this may contain a + preauthentication source used by pkinit + (such as PKCS11:libcoolkeypk11.so) +

+

Since 3.18

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/gdbus-org.gnome.OnlineAccounts.Todo.html b/doc/html/gdbus-org.gnome.OnlineAccounts.Todo.html new file mode 100644 index 0000000..de79ab4 --- /dev/null +++ b/doc/html/gdbus-org.gnome.OnlineAccounts.Todo.html @@ -0,0 +1,45 @@ + + + + +org.gnome.OnlineAccounts.Todo: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

org.gnome.OnlineAccounts.Todo

+

org.gnome.OnlineAccounts.Todo

+
+
+

Description

+

An account object implements this interface if it provides + todo-like capabilities. +

+

Since 3.26.0

+
+
+ + + \ No newline at end of file diff --git a/doc/html/gio-hierarchy.html b/doc/html/gio-hierarchy.html new file mode 100644 index 0000000..72cbd38 --- /dev/null +++ b/doc/html/gio-hierarchy.html @@ -0,0 +1,104 @@ + + + + +Object Hierarchy: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Object Hierarchy

+
+    GObject
+    ├── GoaClient
+    ├── GDBusProxy
+       ├── GoaAccountProxy
+       ├── GoaManagerProxy
+       ├── GoaOAuthBasedProxy
+       ├── GoaOAuth2BasedProxy
+       ├── GoaPasswordBasedProxy
+       ├── GoaMailProxy
+       ├── GoaCalendarProxy
+       ├── GoaContactsProxy
+       ├── GoaChatProxy
+       ├── GoaDocumentsProxy
+       ├── GoaMapsProxy
+       ├── GoaMusicProxy
+       ├── GoaPhotosProxy
+       ├── GoaFilesProxy
+       ├── GoaExchangeProxy
+       ├── GoaMediaServerProxy
+       ├── GoaTicketingProxy
+       ├── GoaReadLaterProxy
+       ╰── GoaPrintersProxy
+    ├── GDBusInterfaceSkeleton
+       ├── GoaAccountSkeleton
+       ├── GoaManagerSkeleton
+       ├── GoaOAuthBasedSkeleton
+       ├── GoaOAuth2BasedSkeleton
+       ├── GoaPasswordBasedSkeleton
+       ├── GoaMailSkeleton
+       ├── GoaCalendarSkeleton
+       ├── GoaContactsSkeleton
+       ├── GoaChatSkeleton
+       ├── GoaDocumentsSkeleton
+       ├── GoaMapsSkeleton
+       ├── GoaMusicSkeleton
+       ├── GoaPhotosSkeleton
+       ├── GoaFilesSkeleton
+       ├── GoaExchangeSkeleton
+       ├── GoaMediaServerSkeleton
+       ├── GoaTicketingSkeleton
+       ├── GoaReadLaterSkeleton
+       ╰── GoaPrintersSkeleton
+    ├── GDBusObjectManagerClient
+       ╰── GoaObjectManagerClient
+    ├── GDBusObjectProxy
+       ╰── GoaObjectProxy
+    ├── GDBusObjectSkeleton
+       ╰── GoaObjectSkeleton
+    ╰── GoaProvider
+        ├── GoaOAuthProvider
+        ╰── GoaOAuth2Provider
+    GInterface
+    ├── GoaAccount
+    ├── GoaManager
+    ├── GoaObject
+    ├── GoaOAuthBased
+    ├── GoaOAuth2Based
+    ├── GoaPasswordBased
+    ├── GoaMail
+    ├── GoaCalendar
+    ├── GoaContacts
+    ├── GoaChat
+    ├── GoaDocuments
+    ├── GoaMaps
+    ├── GoaMusic
+    ├── GoaPhotos
+    ├── GoaFiles
+    ├── GoaExchange
+    ├── GoaMediaServer
+    ├── GoaTicketing
+    ├── GoaReadLater
+    ├── GoaPrinters
+    ╰── GoaTodo
+
+
+ + + \ No newline at end of file diff --git a/doc/html/goa-GoaError.html b/doc/html/goa-GoaError.html new file mode 100644 index 0000000..55d6045 --- /dev/null +++ b/doc/html/goa-GoaError.html @@ -0,0 +1,136 @@ + + + + +GoaError: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GoaError

+

GoaError — Error codes

+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineGOA_ERROR
enumGoaError
+
+
+

Description

+

Error codes and D-Bus errors.

+
+
+

Functions

+

+
+
+

Types and Values

+
+

GOA_ERROR

+
#define GOA_ERROR (goa_error_quark ())
+
+

Error domain for Goa. Errors in this domain will be form the +GoaError enumeration. See GError for more information on error +domains.

+
+
+
+

enum GoaError

+

Error codes for the GOA_ERROR error domain and the +corresponding D-Bus error names.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GOA_ERROR_FAILED

+

The operation failed.

+
 

GOA_ERROR_NOT_SUPPORTED

+

The operation is not supported.

+
 

GOA_ERROR_DIALOG_DISMISSED

+

The dialog was dismissed.

+
 

GOA_ERROR_ACCOUNT_EXISTS

+

Account already exists.

+
 

GOA_ERROR_NOT_AUTHORIZED

+

Not authorized to perform operation.

+
 

GOA_ERROR_SSL

+

Invalid SSL certificate.

+
 
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/goa-Version-Information.html b/doc/html/goa-Version-Information.html new file mode 100644 index 0000000..c9038d5 --- /dev/null +++ b/doc/html/goa-Version-Information.html @@ -0,0 +1,277 @@ + + + + +Version Information: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Version Information

+

Version Information — variables and functions to check the GOA version

+
+
+

Functions

+
++++ + + + + + + + + + + +
const gchar * + +goa_check_version () +
#define +GOA_CHECK_VERSION() +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
extern const guint goa_major_version
extern const guint goa_minor_version
extern const guint goa_micro_version
#defineGOA_MAJOR_VERSION
#defineGOA_MINOR_VERSION
#defineGOA_MICRO_VERSION
+
+
+

Description

+

GOA provides version information, primarily useful in configure +checks for builds that have a configure script. Applications will +not typically use the features described here.

+
+
+

Functions

+
+

goa_check_version ()

+
const gchar *
+goa_check_version (guint required_major,
+                   guint required_minor,
+                   guint required_micro);
+

Checks that the GOA library in use is compatible with the +given version. Generally you would pass in the constants +GOA_MAJOR_VERSION, GOA_MINOR_VERSION, GOA_MICRO_VERSION +as the three arguments to this function; that produces +a check that the library in use is compatible with +the version of GOA the application or module was compiled +against.

+

Compatibility is defined by two things: first the version +of the running library is newer than the version +required_major +.required_minor +.required_micro +. Second +the running library must be binary compatible with the +version required_major +.required_minor +.required_micro + +(same major and minor version).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

required_major

the required major version.

 

required_minor

the required minor version.

 

required_micro

the required micro version.

 
+
+
+

Returns

+

NULL if the GOA library is compatible with the +given version, or a string describing the version mismatch. +The returned string is owned by GOA and must not be modified +or freed.

+
+

Since: 3.8

+
+
+
+

GOA_CHECK_VERSION()

+
#define             GOA_CHECK_VERSION(major,minor,micro)
+

Checks the version of the GOA library that is being compiled +against.

+
+

Example 1. Checking the version of the GOA library

+
+ + + + + + + +
1
+2
if (!GOA_CHECK_VERSION (3, 8, 0))
+  g_error ("GOA version 3.8.0 or above is needed");
+
+ +
+

See goa_check_version() for a runtime check.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

major

the major version to check for

 

minor

the minor version to check for

 

micro

the micro version to check for

 
+
+
+

Returns

+

TRUE if the version of the GOA header files +is the same as or newer than the passed-in version.

+
+

Since: 3.8

+
+
+
+

Types and Values

+
+

goa_major_version

+
extern const guint goa_major_version;
+
+
+
+
+

goa_minor_version

+
extern const guint goa_minor_version;
+
+
+
+
+

goa_micro_version

+
extern const guint goa_micro_version;
+
+
+
+
+

GOA_MAJOR_VERSION

+
#define GOA_MAJOR_VERSION 3
+
+

The major version number of the GOA daemon and library.

+

Like goa_major_version, but from the headers used at +application compile time, rather than from the library +linked against at application run time.

+

Since: 3.8

+
+
+
+

GOA_MINOR_VERSION

+
#define GOA_MINOR_VERSION 28
+
+

The minor version number of the GOA daemon and library.

+

Like goa_minor_version, but from the headers used at +application compile time, rather than from the library +linked against at application run time.

+

Since: 3.8

+
+
+
+

GOA_MICRO_VERSION

+
#define GOA_MICRO_VERSION 2
+
+

The micro version number of the GOA daemon and library.

+

Like goa_micro_version, but from the headers used at +application compile time, rather than from the library +linked against at application run time.

+

Since: 3.8

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/goa-daemon.8.html b/doc/html/goa-daemon.8.html new file mode 100644 index 0000000..668b451 --- /dev/null +++ b/doc/html/goa-daemon.8.html @@ -0,0 +1,124 @@ + + + + +goa-daemon: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

goa-daemon

+

goa-daemon — GNOME Online Accounts Daemon

+
+
+

Synopsis

+

goa-daemon [--help] [--replace]

+
+
+

DESCRIPTION

+

+ The goa-daemon program provides the + org.gnome.OnlineAccounts name on the + session message bus. Users or administrators should never need + to start this daemon as it will be automatically started by + dbus-daemon(1) + whenever an application sends a D-Bus message to the + org.gnome.OnlineAccounts name on the + session bus. +

+
+
+

CONFIGURATION FILE

+

+ The goa-daemon program stores configuration + in the + $XDG_CONFIG_HOME/goa-1.0/accounts.conf + (typically + ~/.config/goa-1.0/accounts.conf) + file. The format of this file is private and 3rd party programs + or libraries should never read it. This file does not contain + any passwords or secrets. +

+

+ See the XDG + Base Directory Specification for more information about + $XDG_CONFIG_HOME. +

+
+
+

SECRETS

+

+ The goa-daemon program stores secrets (such as + OAuth tokens) in + GNOME Keyring. + The format of the stored secrets is private and 3rd party + programs or libraries should never read, modify or delete these secrets. +

+
+
+

OPTIONS

+
++++ + + + + + + + + + + +

--replace

+ Replace existing instance. +

--help

+ Show help options. +

+
+
+

AUTHOR

+

+ Written by David Zeuthen with + a lot of help from many others. +

+
+
+

BUGS

+

+ Please send bug reports to either the distribution bug tracker + or the upstream bug tracker at + https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts. +

+
+
+

SEE ALSO

+

+ dbus-daemon(1) +

+
+
+ + + \ No newline at end of file diff --git a/doc/html/goa-goautil.html b/doc/html/goa-goautil.html new file mode 100644 index 0000000..eba689c --- /dev/null +++ b/doc/html/goa-goautil.html @@ -0,0 +1,104 @@ + + + + +goautil: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

goautil

+

goautil

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + +
+GtkWidget * + +goa_util_add_row_widget () +
+gboolean + +goa_util_lookup_keyfile_boolean () +
+gchar * + +goa_util_lookup_keyfile_string () +
+
+
+

Description

+
+
+

Functions

+
+

goa_util_add_row_widget ()

+
GtkWidget *
+goa_util_add_row_widget (GtkGrid *grid,
+                         gint row,
+                         const gchar *label_text,
+                         GtkWidget *widget);
+
+
+
+

goa_util_lookup_keyfile_boolean ()

+
gboolean
+goa_util_lookup_keyfile_boolean (GoaObject *object,
+                                 const gchar *key);
+
+
+
+

goa_util_lookup_keyfile_string ()

+
gchar *
+goa_util_lookup_keyfile_string (GoaObject *object,
+                                const gchar *key);
+
+
+
+

Types and Values

+
+
+ + + \ No newline at end of file diff --git a/doc/html/goa.devhelp2 b/doc/html/goa.devhelp2 new file mode 100644 index 0000000..814e34d --- /dev/null +++ b/doc/html/goa.devhelp2 @@ -0,0 +1,989 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/html/home.png b/doc/html/home.png new file mode 100644 index 0000000..9346b33 Binary files /dev/null and b/doc/html/home.png differ diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..f8d4f09 --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,263 @@ + + + + +GNOME Online Accounts Reference Manual: GNOME Online Accounts Reference Manual + + + + + + + +
+
+
+
+
+
+

+David Zeuthen +

+


+     
+   

+
+
+

+Debarshi Ray +

+


+     
+   

+
+
+

Version 3.28.2 +

+
+
+

+ Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free + Documentation License, Version 1.1 or any later + version published by the Free Software Foundation with no + Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. You may obtain a copy of the GNU Free + Documentation License from the Free Software + Foundation by visiting their Web site or by writing + to: +

+


+          51 Franklin Street, Suite 500
+          BostonMA 02110-1335
+          USA
+

+

+

+

+ Many of the names used by companies to distinguish their + products and services are claimed as trademarks. Where those + names appear in any GNOME documentation, and those trademarks + are made aware to the members of the GNOME project, the names + have been printed in caps or initial caps. +

+
+
+
+
+
+
I. GNOME Online Accounts Overview
+
+
Writing GOA applications
+
+
Account Objects
+
Accessing Services
+
Credentials Handling
+
+
+
II. D-Bus API Reference
+
+
Objects & Names
+
+
The org.gnome.OnlineAccounts bus name
+
The /org/gnome/OnlineAccounts and /org/gnome/OnlineAccounts/Manager objects
+
+
Core Interfaces
+
+
+org.gnome.OnlineAccounts.Account +
+
+org.gnome.OnlineAccounts.Manager +
+
+
Credentials Interfaces
+
+
+org.gnome.OnlineAccounts.OAuthBased +
+
+org.gnome.OnlineAccounts.OAuth2Based +
+
+org.gnome.OnlineAccounts.PasswordBased +
+
+
Service-specific Interfaces
+
+
+org.gnome.OnlineAccounts.Mail +
+
+org.gnome.OnlineAccounts.Calendar +
+
+org.gnome.OnlineAccounts.Contacts +
+
+org.gnome.OnlineAccounts.Chat +
+
+org.gnome.OnlineAccounts.Documents +
+
+org.gnome.OnlineAccounts.Maps +
+
+org.gnome.OnlineAccounts.Music +
+
+org.gnome.OnlineAccounts.Photos +
+
+org.gnome.OnlineAccounts.Printers +
+
+org.gnome.OnlineAccounts.Files +
+
+org.gnome.OnlineAccounts.Exchange +
+
+org.gnome.OnlineAccounts.MediaServer +
+
+org.gnome.OnlineAccounts.Ticketing +
+
+org.gnome.OnlineAccounts.Todo +
+
+
+
III. Client Library API Reference
+
+
+GoaClient — Object for accessing account information +
+
+GoaError — Error codes +
+
+Version Information — variables and functions to check the GOA version +
+
Generated Code
+
+
+GoaObject — Specialized GDBusObject types +
+
+GoaObjectManagerClient — Generated GDBusObjectManagerClient type +
+
+GoaManager — Generated C code for the org.gnome.OnlineAccounts.Manager D-Bus interface +
+
+GoaAccount — Generated C code for the org.gnome.OnlineAccounts.Account D-Bus interface +
+
+GoaOAuthBased — Generated C code for the org.gnome.OnlineAccounts.OAuthBased D-Bus interface +
+
+GoaOAuth2Based — Generated C code for the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface +
+
+GoaPasswordBased — Generated C code for the org.gnome.OnlineAccounts.PasswordBased D-Bus interface +
+
+GoaMail — Generated C code for the org.gnome.OnlineAccounts.Mail D-Bus interface +
+
+GoaCalendar — Generated C code for the org.gnome.OnlineAccounts.Calendar D-Bus interface +
+
+GoaContacts — Generated C code for the org.gnome.OnlineAccounts.Contacts D-Bus interface +
+
+GoaChat — Generated C code for the org.gnome.OnlineAccounts.Chat D-Bus interface +
+
+GoaDocuments — Generated C code for the org.gnome.OnlineAccounts.Documents D-Bus interface +
+
+GoaMaps — Generated C code for the org.gnome.OnlineAccounts.Maps D-Bus interface +
+
+GoaMusic — Generated C code for the org.gnome.OnlineAccounts.Music D-Bus interface +
+
+GoaPhotos — Generated C code for the org.gnome.OnlineAccounts.Photos D-Bus interface +
+
+GoaFiles — Generated C code for the org.gnome.OnlineAccounts.Files D-Bus interface +
+
+GoaExchange — Generated C code for the org.gnome.OnlineAccounts.Exchange D-Bus interface +
+
+GoaMediaServer — Generated C code for the org.gnome.OnlineAccounts.MediaServer D-Bus interface +
+
+GoaTicketing — Generated C code for the org.gnome.OnlineAccounts.Ticketing D-Bus interface +
+
+GoaTodo — Generated C code for the org.gnome.OnlineAccounts.Todo D-Bus interface +
+
+GoaReadLater — Generated C code for the org.gnome.OnlineAccounts.ReadLater D-Bus interface +
+
+GoaPrinters — Generated C code for the org.gnome.OnlineAccounts.Printers D-Bus interface +
+
+
+
IV. Backend Library API Reference
+
+
Core
+
+
+goautil +
+
+GoaProvider — Abstract base class for providers +
+
+GoaOAuthProvider — Abstract base class for OAuth 1.0a providers +
+
+GoaOAuth2Provider — Abstract base class for OAuth 2.0 providers +
+
+
+
V. Tools, File Formats and Manual Pages
+
+goa-daemon — GNOME Online Accounts Daemon +
+
Index
+
Object Hierarchy
+
Annotation Glossary
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix01.html b/doc/html/ix01.html new file mode 100644 index 0000000..96fbd75 --- /dev/null +++ b/doc/html/ix01.html @@ -0,0 +1,1618 @@ + + + + +Index: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Index

+
+
+

A

+
+
GoaAccount, GoaAccount +
+
org.gnome.OnlineAccounts.Account, org.gnome.OnlineAccounts.Account +
+
org.gnome.OnlineAccounts.Account.EnsureCredentials(), The EnsureCredentials() method +
+
org.gnome.OnlineAccounts.Account.Remove(), The Remove() method +
+
GoaAccount::handle-ensure-credentials, The “handle-ensure-credentials” signal +
+
GoaAccount::handle-remove, The “handle-remove” signal +
+
GoaAccount:attention-needed, The “attention-needed” property +
+
org.gnome.OnlineAccounts.Account:AttentionNeeded, The "AttentionNeeded" property +
+
GoaAccount:calendar-disabled, The “calendar-disabled” property +
+
org.gnome.OnlineAccounts.Account:CalendarDisabled, The "CalendarDisabled" property +
+
GoaAccount:chat-disabled, The “chat-disabled” property +
+
org.gnome.OnlineAccounts.Account:ChatDisabled, The "ChatDisabled" property +
+
GoaAccount:contacts-disabled, The “contacts-disabled” property +
+
org.gnome.OnlineAccounts.Account:ContactsDisabled, The "ContactsDisabled" property +
+
GoaAccount:documents-disabled, The “documents-disabled” property +
+
org.gnome.OnlineAccounts.Account:DocumentsDisabled, The "DocumentsDisabled" property +
+
GoaAccount:files-disabled, The “files-disabled” property +
+
org.gnome.OnlineAccounts.Account:FilesDisabled, The "FilesDisabled" property +
+
GoaAccount:id, The “id” property +
+
org.gnome.OnlineAccounts.Account:Id, The "Id" property +
+
GoaAccount:identity, The “identity” property +
+
org.gnome.OnlineAccounts.Account:Identity, The "Identity" property +
+
GoaAccount:is-locked, The “is-locked” property +
+
GoaAccount:is-temporary, The “is-temporary” property +
+
org.gnome.OnlineAccounts.Account:IsLocked, The "IsLocked" property +
+
org.gnome.OnlineAccounts.Account:IsTemporary, The "IsTemporary" property +
+
GoaAccount:mail-disabled, The “mail-disabled” property +
+
org.gnome.OnlineAccounts.Account:MailDisabled, The "MailDisabled" property +
+
GoaAccount:maps-disabled, The “maps-disabled” property +
+
org.gnome.OnlineAccounts.Account:MapsDisabled, The "MapsDisabled" property +
+
GoaAccount:music-disabled, The “music-disabled” property +
+
org.gnome.OnlineAccounts.Account:MusicDisabled, The "MusicDisabled" property +
+
GoaAccount:photos-disabled, The “photos-disabled” property +
+
org.gnome.OnlineAccounts.Account:PhotosDisabled, The "PhotosDisabled" property +
+
GoaAccount:presentation-identity, The “presentation-identity” property +
+
org.gnome.OnlineAccounts.Account:PresentationIdentity, The "PresentationIdentity" property +
+
GoaAccount:printers-disabled, The “printers-disabled” property +
+
org.gnome.OnlineAccounts.Account:PrintersDisabled, The "PrintersDisabled" property +
+
GoaAccount:provider-icon, The “provider-icon” property +
+
GoaAccount:provider-name, The “provider-name” property +
+
GoaAccount:provider-type, The “provider-type” property +
+
org.gnome.OnlineAccounts.Account:ProviderIcon, The "ProviderIcon" property +
+
org.gnome.OnlineAccounts.Account:ProviderName, The "ProviderName" property +
+
org.gnome.OnlineAccounts.Account:ProviderType, The "ProviderType" property +
+
GoaAccount:read-later-disabled, The “read-later-disabled” property +
+
org.gnome.OnlineAccounts.Account:ReadLaterDisabled, The "ReadLaterDisabled" property +
+
GoaAccount:ticketing-disabled, The “ticketing-disabled” property +
+
org.gnome.OnlineAccounts.Account:TicketingDisabled, The "TicketingDisabled" property +
+
GoaAccount:todo-disabled, The “todo-disabled” property +
+
org.gnome.OnlineAccounts.Account:TodoDisabled, The "TodoDisabled" property +
+
GoaAccountIface, struct GoaAccountIface +
+
GoaAccountProxy, struct GoaAccountProxy +
+
GoaAccountProxyClass, struct GoaAccountProxyClass +
+
GoaAccountSkeleton, struct GoaAccountSkeleton +
+
GoaAccountSkeletonClass, struct GoaAccountSkeletonClass +
+
goa_account_call_ensure_credentials, goa_account_call_ensure_credentials () +
+
goa_account_call_ensure_credentials_finish, goa_account_call_ensure_credentials_finish () +
+
goa_account_call_ensure_credentials_sync, goa_account_call_ensure_credentials_sync () +
+
goa_account_call_remove, goa_account_call_remove () +
+
goa_account_call_remove_finish, goa_account_call_remove_finish () +
+
goa_account_call_remove_sync, goa_account_call_remove_sync () +
+
goa_account_complete_ensure_credentials, goa_account_complete_ensure_credentials () +
+
goa_account_complete_remove, goa_account_complete_remove () +
+
goa_account_dup_id, goa_account_dup_id () +
+
goa_account_dup_identity, goa_account_dup_identity () +
+
goa_account_dup_presentation_identity, goa_account_dup_presentation_identity () +
+
goa_account_dup_provider_icon, goa_account_dup_provider_icon () +
+
goa_account_dup_provider_name, goa_account_dup_provider_name () +
+
goa_account_dup_provider_type, goa_account_dup_provider_type () +
+
goa_account_get_attention_needed, goa_account_get_attention_needed () +
+
goa_account_get_calendar_disabled, goa_account_get_calendar_disabled () +
+
goa_account_get_chat_disabled, goa_account_get_chat_disabled () +
+
goa_account_get_contacts_disabled, goa_account_get_contacts_disabled () +
+
goa_account_get_documents_disabled, goa_account_get_documents_disabled () +
+
goa_account_get_files_disabled, goa_account_get_files_disabled () +
+
goa_account_get_id, goa_account_get_id () +
+
goa_account_get_identity, goa_account_get_identity () +
+
goa_account_get_is_locked, goa_account_get_is_locked () +
+
goa_account_get_is_temporary, goa_account_get_is_temporary () +
+
goa_account_get_mail_disabled, goa_account_get_mail_disabled () +
+
goa_account_get_maps_disabled, goa_account_get_maps_disabled () +
+
goa_account_get_music_disabled, goa_account_get_music_disabled () +
+
goa_account_get_photos_disabled, goa_account_get_photos_disabled () +
+
goa_account_get_presentation_identity, goa_account_get_presentation_identity () +
+
goa_account_get_printers_disabled, goa_account_get_printers_disabled () +
+
goa_account_get_provider_icon, goa_account_get_provider_icon () +
+
goa_account_get_provider_name, goa_account_get_provider_name () +
+
goa_account_get_provider_type, goa_account_get_provider_type () +
+
goa_account_get_ticketing_disabled, goa_account_get_ticketing_disabled () +
+
goa_account_get_todo_disabled, goa_account_get_todo_disabled () +
+
goa_account_interface_info, goa_account_interface_info () +
+
goa_account_override_properties, goa_account_override_properties () +
+
goa_account_proxy_new, goa_account_proxy_new () +
+
goa_account_proxy_new_finish, goa_account_proxy_new_finish () +
+
goa_account_proxy_new_for_bus, goa_account_proxy_new_for_bus () +
+
goa_account_proxy_new_for_bus_finish, goa_account_proxy_new_for_bus_finish () +
+
goa_account_proxy_new_for_bus_sync, goa_account_proxy_new_for_bus_sync () +
+
goa_account_proxy_new_sync, goa_account_proxy_new_sync () +
+
goa_account_set_attention_needed, goa_account_set_attention_needed () +
+
goa_account_set_calendar_disabled, goa_account_set_calendar_disabled () +
+
goa_account_set_chat_disabled, goa_account_set_chat_disabled () +
+
goa_account_set_contacts_disabled, goa_account_set_contacts_disabled () +
+
goa_account_set_documents_disabled, goa_account_set_documents_disabled () +
+
goa_account_set_files_disabled, goa_account_set_files_disabled () +
+
goa_account_set_id, goa_account_set_id () +
+
goa_account_set_identity, goa_account_set_identity () +
+
goa_account_set_is_locked, goa_account_set_is_locked () +
+
goa_account_set_is_temporary, goa_account_set_is_temporary () +
+
goa_account_set_mail_disabled, goa_account_set_mail_disabled () +
+
goa_account_set_maps_disabled, goa_account_set_maps_disabled () +
+
goa_account_set_music_disabled, goa_account_set_music_disabled () +
+
goa_account_set_photos_disabled, goa_account_set_photos_disabled () +
+
goa_account_set_presentation_identity, goa_account_set_presentation_identity () +
+
goa_account_set_printers_disabled, goa_account_set_printers_disabled () +
+
goa_account_set_provider_icon, goa_account_set_provider_icon () +
+
goa_account_set_provider_name, goa_account_set_provider_name () +
+
goa_account_set_provider_type, goa_account_set_provider_type () +
+
goa_account_set_ticketing_disabled, goa_account_set_ticketing_disabled () +
+
goa_account_set_todo_disabled, goa_account_set_todo_disabled () +
+
goa_account_skeleton_new, goa_account_skeleton_new () +
+
+
+
+

C

+
+
GoaCalendar, GoaCalendar +
+
org.gnome.OnlineAccounts.Calendar, org.gnome.OnlineAccounts.Calendar +
+
GoaCalendar:accept-ssl-errors, The “accept-ssl-errors” property +
+
org.gnome.OnlineAccounts.Calendar:AcceptSslErrors, The "AcceptSslErrors" property +
+
GoaCalendar:uri, The “uri” property +
+
org.gnome.OnlineAccounts.Calendar:Uri, The "Uri" property +
+
GoaCalendarIface, struct GoaCalendarIface +
+
GoaCalendarProxy, struct GoaCalendarProxy +
+
GoaCalendarProxyClass, struct GoaCalendarProxyClass +
+
GoaCalendarSkeleton, struct GoaCalendarSkeleton +
+
GoaCalendarSkeletonClass, struct GoaCalendarSkeletonClass +
+
goa_calendar_dup_uri, goa_calendar_dup_uri () +
+
goa_calendar_get_accept_ssl_errors, goa_calendar_get_accept_ssl_errors () +
+
goa_calendar_get_uri, goa_calendar_get_uri () +
+
goa_calendar_interface_info, goa_calendar_interface_info () +
+
goa_calendar_override_properties, goa_calendar_override_properties () +
+
goa_calendar_proxy_new, goa_calendar_proxy_new () +
+
goa_calendar_proxy_new_finish, goa_calendar_proxy_new_finish () +
+
goa_calendar_proxy_new_for_bus, goa_calendar_proxy_new_for_bus () +
+
goa_calendar_proxy_new_for_bus_finish, goa_calendar_proxy_new_for_bus_finish () +
+
goa_calendar_proxy_new_for_bus_sync, goa_calendar_proxy_new_for_bus_sync () +
+
goa_calendar_proxy_new_sync, goa_calendar_proxy_new_sync () +
+
goa_calendar_set_accept_ssl_errors, goa_calendar_set_accept_ssl_errors () +
+
goa_calendar_set_uri, goa_calendar_set_uri () +
+
goa_calendar_skeleton_new, goa_calendar_skeleton_new () +
+
GoaChat, GoaChat +
+
org.gnome.OnlineAccounts.Chat, org.gnome.OnlineAccounts.Chat +
+
GoaChatIface, struct GoaChatIface +
+
GoaChatProxy, struct GoaChatProxy +
+
GoaChatProxyClass, struct GoaChatProxyClass +
+
GoaChatSkeleton, struct GoaChatSkeleton +
+
GoaChatSkeletonClass, struct GoaChatSkeletonClass +
+
goa_chat_interface_info, goa_chat_interface_info () +
+
goa_chat_override_properties, goa_chat_override_properties () +
+
goa_chat_proxy_new, goa_chat_proxy_new () +
+
goa_chat_proxy_new_finish, goa_chat_proxy_new_finish () +
+
goa_chat_proxy_new_for_bus, goa_chat_proxy_new_for_bus () +
+
goa_chat_proxy_new_for_bus_finish, goa_chat_proxy_new_for_bus_finish () +
+
goa_chat_proxy_new_for_bus_sync, goa_chat_proxy_new_for_bus_sync () +
+
goa_chat_proxy_new_sync, goa_chat_proxy_new_sync () +
+
goa_chat_skeleton_new, goa_chat_skeleton_new () +
+
goa_check_version, goa_check_version () +
+
GOA_CHECK_VERSION, GOA_CHECK_VERSION() +
+
GoaClient, GoaClient +
+
GoaClient::account-added, The “account-added” signal +
+
GoaClient::account-changed, The “account-changed” signal +
+
GoaClient::account-removed, The “account-removed” signal +
+
GoaClient:object-manager, The “object-manager” property +
+
goa_client_get_accounts, goa_client_get_accounts () +
+
goa_client_get_manager, goa_client_get_manager () +
+
goa_client_get_object_manager, goa_client_get_object_manager () +
+
goa_client_lookup_by_id, goa_client_lookup_by_id () +
+
goa_client_new, goa_client_new () +
+
goa_client_new_finish, goa_client_new_finish () +
+
goa_client_new_sync, goa_client_new_sync () +
+
GoaContacts, GoaContacts +
+
org.gnome.OnlineAccounts.Contacts, org.gnome.OnlineAccounts.Contacts +
+
GoaContacts:accept-ssl-errors, The “accept-ssl-errors” property +
+
org.gnome.OnlineAccounts.Contacts:AcceptSslErrors, The "AcceptSslErrors" property +
+
GoaContacts:uri, The “uri” property +
+
org.gnome.OnlineAccounts.Contacts:Uri, The "Uri" property +
+
GoaContactsIface, struct GoaContactsIface +
+
GoaContactsProxy, struct GoaContactsProxy +
+
GoaContactsProxyClass, struct GoaContactsProxyClass +
+
GoaContactsSkeleton, struct GoaContactsSkeleton +
+
GoaContactsSkeletonClass, struct GoaContactsSkeletonClass +
+
goa_contacts_dup_uri, goa_contacts_dup_uri () +
+
goa_contacts_get_accept_ssl_errors, goa_contacts_get_accept_ssl_errors () +
+
goa_contacts_get_uri, goa_contacts_get_uri () +
+
goa_contacts_interface_info, goa_contacts_interface_info () +
+
goa_contacts_override_properties, goa_contacts_override_properties () +
+
goa_contacts_proxy_new, goa_contacts_proxy_new () +
+
goa_contacts_proxy_new_finish, goa_contacts_proxy_new_finish () +
+
goa_contacts_proxy_new_for_bus, goa_contacts_proxy_new_for_bus () +
+
goa_contacts_proxy_new_for_bus_finish, goa_contacts_proxy_new_for_bus_finish () +
+
goa_contacts_proxy_new_for_bus_sync, goa_contacts_proxy_new_for_bus_sync () +
+
goa_contacts_proxy_new_sync, goa_contacts_proxy_new_sync () +
+
goa_contacts_set_accept_ssl_errors, goa_contacts_set_accept_ssl_errors () +
+
goa_contacts_set_uri, goa_contacts_set_uri () +
+
goa_contacts_skeleton_new, goa_contacts_skeleton_new () +
+
+
+
+

D

+
+
GoaDocuments, GoaDocuments +
+
org.gnome.OnlineAccounts.Documents, org.gnome.OnlineAccounts.Documents +
+
GoaDocumentsIface, struct GoaDocumentsIface +
+
GoaDocumentsProxy, struct GoaDocumentsProxy +
+
GoaDocumentsProxyClass, struct GoaDocumentsProxyClass +
+
GoaDocumentsSkeleton, struct GoaDocumentsSkeleton +
+
GoaDocumentsSkeletonClass, struct GoaDocumentsSkeletonClass +
+
goa_documents_interface_info, goa_documents_interface_info () +
+
goa_documents_override_properties, goa_documents_override_properties () +
+
goa_documents_proxy_new, goa_documents_proxy_new () +
+
goa_documents_proxy_new_finish, goa_documents_proxy_new_finish () +
+
goa_documents_proxy_new_for_bus, goa_documents_proxy_new_for_bus () +
+
goa_documents_proxy_new_for_bus_finish, goa_documents_proxy_new_for_bus_finish () +
+
goa_documents_proxy_new_for_bus_sync, goa_documents_proxy_new_for_bus_sync () +
+
goa_documents_proxy_new_sync, goa_documents_proxy_new_sync () +
+
goa_documents_skeleton_new, goa_documents_skeleton_new () +
+
+
+
+

E

+
+
GoaError, enum GoaError +
+
GOA_ERROR, GOA_ERROR +
+
GoaExchange, GoaExchange +
+
org.gnome.OnlineAccounts.Exchange, org.gnome.OnlineAccounts.Exchange +
+
GoaExchange:accept-ssl-errors, The “accept-ssl-errors” property +
+
org.gnome.OnlineAccounts.Exchange:AcceptSslErrors, The "AcceptSslErrors" property +
+
GoaExchange:host, The “host” property +
+
org.gnome.OnlineAccounts.Exchange:Host, The "Host" property +
+
GoaExchangeIface, struct GoaExchangeIface +
+
GoaExchangeProxy, struct GoaExchangeProxy +
+
GoaExchangeProxyClass, struct GoaExchangeProxyClass +
+
GoaExchangeSkeleton, struct GoaExchangeSkeleton +
+
GoaExchangeSkeletonClass, struct GoaExchangeSkeletonClass +
+
goa_exchange_dup_host, goa_exchange_dup_host () +
+
goa_exchange_get_accept_ssl_errors, goa_exchange_get_accept_ssl_errors () +
+
goa_exchange_get_host, goa_exchange_get_host () +
+
goa_exchange_interface_info, goa_exchange_interface_info () +
+
goa_exchange_override_properties, goa_exchange_override_properties () +
+
goa_exchange_proxy_new, goa_exchange_proxy_new () +
+
goa_exchange_proxy_new_finish, goa_exchange_proxy_new_finish () +
+
goa_exchange_proxy_new_for_bus, goa_exchange_proxy_new_for_bus () +
+
goa_exchange_proxy_new_for_bus_finish, goa_exchange_proxy_new_for_bus_finish () +
+
goa_exchange_proxy_new_for_bus_sync, goa_exchange_proxy_new_for_bus_sync () +
+
goa_exchange_proxy_new_sync, goa_exchange_proxy_new_sync () +
+
goa_exchange_set_accept_ssl_errors, goa_exchange_set_accept_ssl_errors () +
+
goa_exchange_set_host, goa_exchange_set_host () +
+
goa_exchange_skeleton_new, goa_exchange_skeleton_new () +
+
+
+
+

F

+
+
GoaFiles, GoaFiles +
+
org.gnome.OnlineAccounts.Files, org.gnome.OnlineAccounts.Files +
+
GoaFiles:accept-ssl-errors, The “accept-ssl-errors” property +
+
org.gnome.OnlineAccounts.Files:AcceptSslErrors, The "AcceptSslErrors" property +
+
GoaFiles:uri, The “uri” property +
+
org.gnome.OnlineAccounts.Files:Uri, The "Uri" property +
+
GoaFilesIface, struct GoaFilesIface +
+
GoaFilesProxy, struct GoaFilesProxy +
+
GoaFilesProxyClass, struct GoaFilesProxyClass +
+
GoaFilesSkeleton, struct GoaFilesSkeleton +
+
GoaFilesSkeletonClass, struct GoaFilesSkeletonClass +
+
goa_files_dup_uri, goa_files_dup_uri () +
+
goa_files_get_accept_ssl_errors, goa_files_get_accept_ssl_errors () +
+
goa_files_get_uri, goa_files_get_uri () +
+
goa_files_interface_info, goa_files_interface_info () +
+
goa_files_override_properties, goa_files_override_properties () +
+
goa_files_proxy_new, goa_files_proxy_new () +
+
goa_files_proxy_new_finish, goa_files_proxy_new_finish () +
+
goa_files_proxy_new_for_bus, goa_files_proxy_new_for_bus () +
+
goa_files_proxy_new_for_bus_finish, goa_files_proxy_new_for_bus_finish () +
+
goa_files_proxy_new_for_bus_sync, goa_files_proxy_new_for_bus_sync () +
+
goa_files_proxy_new_sync, goa_files_proxy_new_sync () +
+
goa_files_set_accept_ssl_errors, goa_files_set_accept_ssl_errors () +
+
goa_files_set_uri, goa_files_set_uri () +
+
goa_files_skeleton_new, goa_files_skeleton_new () +
+
+
+
+

M

+
+
GoaMail, GoaMail +
+
org.gnome.OnlineAccounts.Mail, org.gnome.OnlineAccounts.Mail +
+
GoaMail:email-address, The “email-address” property +
+
org.gnome.OnlineAccounts.Mail:EmailAddress, The "EmailAddress" property +
+
GoaMail:imap-accept-ssl-errors, The “imap-accept-ssl-errors” property +
+
GoaMail:imap-host, The “imap-host” property +
+
GoaMail:imap-supported, The “imap-supported” property +
+
GoaMail:imap-use-ssl, The “imap-use-ssl” property +
+
GoaMail:imap-use-tls, The “imap-use-tls” property +
+
GoaMail:imap-user-name, The “imap-user-name” property +
+
org.gnome.OnlineAccounts.Mail:ImapAcceptSslErrors, The "ImapAcceptSslErrors" property +
+
org.gnome.OnlineAccounts.Mail:ImapHost, The "ImapHost" property +
+
org.gnome.OnlineAccounts.Mail:ImapSupported, The "ImapSupported" property +
+
org.gnome.OnlineAccounts.Mail:ImapUserName, The "ImapUserName" property +
+
org.gnome.OnlineAccounts.Mail:ImapUseSsl, The "ImapUseSsl" property +
+
org.gnome.OnlineAccounts.Mail:ImapUseTls, The "ImapUseTls" property +
+
GoaMail:name, The “name” property +
+
org.gnome.OnlineAccounts.Mail:Name, The "Name" property +
+
GoaMail:smtp-accept-ssl-errors, The “smtp-accept-ssl-errors” property +
+
GoaMail:smtp-auth-login, The “smtp-auth-login” property +
+
GoaMail:smtp-auth-plain, The “smtp-auth-plain” property +
+
GoaMail:smtp-auth-xoauth2, The “smtp-auth-xoauth2” property +
+
GoaMail:smtp-host, The “smtp-host” property +
+
GoaMail:smtp-supported, The “smtp-supported” property +
+
GoaMail:smtp-use-auth, The “smtp-use-auth” property +
+
GoaMail:smtp-use-ssl, The “smtp-use-ssl” property +
+
GoaMail:smtp-use-tls, The “smtp-use-tls” property +
+
GoaMail:smtp-user-name, The “smtp-user-name” property +
+
org.gnome.OnlineAccounts.Mail:SmtpAcceptSslErrors, The "SmtpAcceptSslErrors" property +
+
org.gnome.OnlineAccounts.Mail:SmtpAuthLogin, The "SmtpAuthLogin" property +
+
org.gnome.OnlineAccounts.Mail:SmtpAuthPlain, The "SmtpAuthPlain" property +
+
org.gnome.OnlineAccounts.Mail:SmtpAuthXoauth2, The "SmtpAuthXoauth2" property +
+
org.gnome.OnlineAccounts.Mail:SmtpHost, The "SmtpHost" property +
+
org.gnome.OnlineAccounts.Mail:SmtpSupported, The "SmtpSupported" property +
+
org.gnome.OnlineAccounts.Mail:SmtpUseAuth, The "SmtpUseAuth" property +
+
org.gnome.OnlineAccounts.Mail:SmtpUserName, The "SmtpUserName" property +
+
org.gnome.OnlineAccounts.Mail:SmtpUseSsl, The "SmtpUseSsl" property +
+
org.gnome.OnlineAccounts.Mail:SmtpUseTls, The "SmtpUseTls" property +
+
GoaMailIface, struct GoaMailIface +
+
GoaMailProxy, struct GoaMailProxy +
+
GoaMailProxyClass, struct GoaMailProxyClass +
+
GoaMailSkeleton, struct GoaMailSkeleton +
+
GoaMailSkeletonClass, struct GoaMailSkeletonClass +
+
goa_mail_dup_email_address, goa_mail_dup_email_address () +
+
goa_mail_dup_imap_host, goa_mail_dup_imap_host () +
+
goa_mail_dup_imap_user_name, goa_mail_dup_imap_user_name () +
+
goa_mail_dup_name, goa_mail_dup_name () +
+
goa_mail_dup_smtp_host, goa_mail_dup_smtp_host () +
+
goa_mail_dup_smtp_user_name, goa_mail_dup_smtp_user_name () +
+
goa_mail_get_email_address, goa_mail_get_email_address () +
+
goa_mail_get_imap_accept_ssl_errors, goa_mail_get_imap_accept_ssl_errors () +
+
goa_mail_get_imap_host, goa_mail_get_imap_host () +
+
goa_mail_get_imap_supported, goa_mail_get_imap_supported () +
+
goa_mail_get_imap_user_name, goa_mail_get_imap_user_name () +
+
goa_mail_get_imap_use_ssl, goa_mail_get_imap_use_ssl () +
+
goa_mail_get_imap_use_tls, goa_mail_get_imap_use_tls () +
+
goa_mail_get_name, goa_mail_get_name () +
+
goa_mail_get_smtp_accept_ssl_errors, goa_mail_get_smtp_accept_ssl_errors () +
+
goa_mail_get_smtp_auth_login, goa_mail_get_smtp_auth_login () +
+
goa_mail_get_smtp_auth_plain, goa_mail_get_smtp_auth_plain () +
+
goa_mail_get_smtp_auth_xoauth2, goa_mail_get_smtp_auth_xoauth2 () +
+
goa_mail_get_smtp_host, goa_mail_get_smtp_host () +
+
goa_mail_get_smtp_supported, goa_mail_get_smtp_supported () +
+
goa_mail_get_smtp_user_name, goa_mail_get_smtp_user_name () +
+
goa_mail_get_smtp_use_auth, goa_mail_get_smtp_use_auth () +
+
goa_mail_get_smtp_use_ssl, goa_mail_get_smtp_use_ssl () +
+
goa_mail_get_smtp_use_tls, goa_mail_get_smtp_use_tls () +
+
goa_mail_interface_info, goa_mail_interface_info () +
+
goa_mail_override_properties, goa_mail_override_properties () +
+
goa_mail_proxy_new, goa_mail_proxy_new () +
+
goa_mail_proxy_new_finish, goa_mail_proxy_new_finish () +
+
goa_mail_proxy_new_for_bus, goa_mail_proxy_new_for_bus () +
+
goa_mail_proxy_new_for_bus_finish, goa_mail_proxy_new_for_bus_finish () +
+
goa_mail_proxy_new_for_bus_sync, goa_mail_proxy_new_for_bus_sync () +
+
goa_mail_proxy_new_sync, goa_mail_proxy_new_sync () +
+
goa_mail_set_email_address, goa_mail_set_email_address () +
+
goa_mail_set_imap_accept_ssl_errors, goa_mail_set_imap_accept_ssl_errors () +
+
goa_mail_set_imap_host, goa_mail_set_imap_host () +
+
goa_mail_set_imap_supported, goa_mail_set_imap_supported () +
+
goa_mail_set_imap_user_name, goa_mail_set_imap_user_name () +
+
goa_mail_set_imap_use_ssl, goa_mail_set_imap_use_ssl () +
+
goa_mail_set_imap_use_tls, goa_mail_set_imap_use_tls () +
+
goa_mail_set_name, goa_mail_set_name () +
+
goa_mail_set_smtp_accept_ssl_errors, goa_mail_set_smtp_accept_ssl_errors () +
+
goa_mail_set_smtp_auth_login, goa_mail_set_smtp_auth_login () +
+
goa_mail_set_smtp_auth_plain, goa_mail_set_smtp_auth_plain () +
+
goa_mail_set_smtp_auth_xoauth2, goa_mail_set_smtp_auth_xoauth2 () +
+
goa_mail_set_smtp_host, goa_mail_set_smtp_host () +
+
goa_mail_set_smtp_supported, goa_mail_set_smtp_supported () +
+
goa_mail_set_smtp_user_name, goa_mail_set_smtp_user_name () +
+
goa_mail_set_smtp_use_auth, goa_mail_set_smtp_use_auth () +
+
goa_mail_set_smtp_use_ssl, goa_mail_set_smtp_use_ssl () +
+
goa_mail_set_smtp_use_tls, goa_mail_set_smtp_use_tls () +
+
goa_mail_skeleton_new, goa_mail_skeleton_new () +
+
goa_major_version, goa_major_version +
+
GOA_MAJOR_VERSION, GOA_MAJOR_VERSION +
+
GoaManager, GoaManager +
+
org.gnome.OnlineAccounts.Manager, org.gnome.OnlineAccounts.Manager +
+
org.gnome.OnlineAccounts.Manager.AddAccount(), The AddAccount() method +
+
GoaManager::handle-add-account, The “handle-add-account” signal +
+
GoaManagerIface, struct GoaManagerIface +
+
GoaManagerProxy, struct GoaManagerProxy +
+
GoaManagerProxyClass, struct GoaManagerProxyClass +
+
GoaManagerSkeleton, struct GoaManagerSkeleton +
+
GoaManagerSkeletonClass, struct GoaManagerSkeletonClass +
+
goa_manager_call_add_account, goa_manager_call_add_account () +
+
goa_manager_call_add_account_finish, goa_manager_call_add_account_finish () +
+
goa_manager_call_add_account_sync, goa_manager_call_add_account_sync () +
+
goa_manager_complete_add_account, goa_manager_complete_add_account () +
+
goa_manager_interface_info, goa_manager_interface_info () +
+
goa_manager_override_properties, goa_manager_override_properties () +
+
goa_manager_proxy_new, goa_manager_proxy_new () +
+
goa_manager_proxy_new_finish, goa_manager_proxy_new_finish () +
+
goa_manager_proxy_new_for_bus, goa_manager_proxy_new_for_bus () +
+
goa_manager_proxy_new_for_bus_finish, goa_manager_proxy_new_for_bus_finish () +
+
goa_manager_proxy_new_for_bus_sync, goa_manager_proxy_new_for_bus_sync () +
+
goa_manager_proxy_new_sync, goa_manager_proxy_new_sync () +
+
goa_manager_skeleton_new, goa_manager_skeleton_new () +
+
GoaMaps, GoaMaps +
+
org.gnome.OnlineAccounts.Maps, org.gnome.OnlineAccounts.Maps +
+
GoaMapsIface, struct GoaMapsIface +
+
GoaMapsProxy, struct GoaMapsProxy +
+
GoaMapsProxyClass, struct GoaMapsProxyClass +
+
GoaMapsSkeleton, struct GoaMapsSkeleton +
+
GoaMapsSkeletonClass, struct GoaMapsSkeletonClass +
+
goa_maps_interface_info, goa_maps_interface_info () +
+
goa_maps_override_properties, goa_maps_override_properties () +
+
goa_maps_proxy_new, goa_maps_proxy_new () +
+
goa_maps_proxy_new_finish, goa_maps_proxy_new_finish () +
+
goa_maps_proxy_new_for_bus, goa_maps_proxy_new_for_bus () +
+
goa_maps_proxy_new_for_bus_finish, goa_maps_proxy_new_for_bus_finish () +
+
goa_maps_proxy_new_for_bus_sync, goa_maps_proxy_new_for_bus_sync () +
+
goa_maps_proxy_new_sync, goa_maps_proxy_new_sync () +
+
goa_maps_skeleton_new, goa_maps_skeleton_new () +
+
GoaMediaServer, GoaMediaServer +
+
org.gnome.OnlineAccounts.MediaServer, org.gnome.OnlineAccounts.MediaServer +
+
GoaMediaServer:dlna-supported, The “dlna-supported” property +
+
org.gnome.OnlineAccounts.MediaServer:DlnaSupported, The "DlnaSupported" property +
+
GoaMediaServer:udn, The “udn” property +
+
org.gnome.OnlineAccounts.MediaServer:Udn, The "Udn" property +
+
GoaMediaServerIface, struct GoaMediaServerIface +
+
GoaMediaServerProxy, struct GoaMediaServerProxy +
+
GoaMediaServerProxyClass, struct GoaMediaServerProxyClass +
+
GoaMediaServerSkeleton, struct GoaMediaServerSkeleton +
+
GoaMediaServerSkeletonClass, struct GoaMediaServerSkeletonClass +
+
goa_media_server_dup_udn, goa_media_server_dup_udn () +
+
goa_media_server_get_dlna_supported, goa_media_server_get_dlna_supported () +
+
goa_media_server_get_udn, goa_media_server_get_udn () +
+
goa_media_server_interface_info, goa_media_server_interface_info () +
+
goa_media_server_override_properties, goa_media_server_override_properties () +
+
goa_media_server_proxy_new, goa_media_server_proxy_new () +
+
goa_media_server_proxy_new_finish, goa_media_server_proxy_new_finish () +
+
goa_media_server_proxy_new_for_bus, goa_media_server_proxy_new_for_bus () +
+
goa_media_server_proxy_new_for_bus_finish, goa_media_server_proxy_new_for_bus_finish () +
+
goa_media_server_proxy_new_for_bus_sync, goa_media_server_proxy_new_for_bus_sync () +
+
goa_media_server_proxy_new_sync, goa_media_server_proxy_new_sync () +
+
goa_media_server_set_dlna_supported, goa_media_server_set_dlna_supported () +
+
goa_media_server_set_udn, goa_media_server_set_udn () +
+
goa_media_server_skeleton_new, goa_media_server_skeleton_new () +
+
goa_micro_version, goa_micro_version +
+
GOA_MICRO_VERSION, GOA_MICRO_VERSION +
+
goa_minor_version, goa_minor_version +
+
GOA_MINOR_VERSION, GOA_MINOR_VERSION +
+
GoaMusic, GoaMusic +
+
org.gnome.OnlineAccounts.Music, org.gnome.OnlineAccounts.Music +
+
GoaMusicIface, struct GoaMusicIface +
+
GoaMusicProxy, struct GoaMusicProxy +
+
GoaMusicProxyClass, struct GoaMusicProxyClass +
+
GoaMusicSkeleton, struct GoaMusicSkeleton +
+
GoaMusicSkeletonClass, struct GoaMusicSkeletonClass +
+
goa_music_interface_info, goa_music_interface_info () +
+
goa_music_override_properties, goa_music_override_properties () +
+
goa_music_proxy_new, goa_music_proxy_new () +
+
goa_music_proxy_new_finish, goa_music_proxy_new_finish () +
+
goa_music_proxy_new_for_bus, goa_music_proxy_new_for_bus () +
+
goa_music_proxy_new_for_bus_finish, goa_music_proxy_new_for_bus_finish () +
+
goa_music_proxy_new_for_bus_sync, goa_music_proxy_new_for_bus_sync () +
+
goa_music_proxy_new_sync, goa_music_proxy_new_sync () +
+
goa_music_skeleton_new, goa_music_skeleton_new () +
+
+
+
+

O

+
+
GoaOAuth2Based, GoaOAuth2Based +
+
org.gnome.OnlineAccounts.OAuth2Based, org.gnome.OnlineAccounts.OAuth2Based +
+
org.gnome.OnlineAccounts.OAuth2Based.GetAccessToken(), The GetAccessToken() method +
+
GoaOAuth2Based::handle-get-access-token, The “handle-get-access-token” signal +
+
GoaOAuth2Based:client-id, The “client-id” property +
+
GoaOAuth2Based:client-secret, The “client-secret” property +
+
org.gnome.OnlineAccounts.OAuth2Based:ClientId, The "ClientId" property +
+
org.gnome.OnlineAccounts.OAuth2Based:ClientSecret, The "ClientSecret" property +
+
GoaOAuth2BasedIface, struct GoaOAuth2BasedIface +
+
GoaOAuth2BasedProxy, struct GoaOAuth2BasedProxy +
+
GoaOAuth2BasedProxyClass, struct GoaOAuth2BasedProxyClass +
+
GoaOAuth2BasedSkeleton, struct GoaOAuth2BasedSkeleton +
+
GoaOAuth2BasedSkeletonClass, struct GoaOAuth2BasedSkeletonClass +
+
GoaOAuth2Provider, GoaOAuth2Provider +
+
GoaOAuth2ProviderClass, GoaOAuth2ProviderClass +
+
goa_oauth2_based_call_get_access_token, goa_oauth2_based_call_get_access_token () +
+
goa_oauth2_based_call_get_access_token_finish, goa_oauth2_based_call_get_access_token_finish () +
+
goa_oauth2_based_call_get_access_token_sync, goa_oauth2_based_call_get_access_token_sync () +
+
goa_oauth2_based_complete_get_access_token, goa_oauth2_based_complete_get_access_token () +
+
goa_oauth2_based_dup_client_id, goa_oauth2_based_dup_client_id () +
+
goa_oauth2_based_dup_client_secret, goa_oauth2_based_dup_client_secret () +
+
goa_oauth2_based_get_client_id, goa_oauth2_based_get_client_id () +
+
goa_oauth2_based_get_client_secret, goa_oauth2_based_get_client_secret () +
+
goa_oauth2_based_interface_info, goa_oauth2_based_interface_info () +
+
goa_oauth2_based_override_properties, goa_oauth2_based_override_properties () +
+
goa_oauth2_based_proxy_new, goa_oauth2_based_proxy_new () +
+
goa_oauth2_based_proxy_new_finish, goa_oauth2_based_proxy_new_finish () +
+
goa_oauth2_based_proxy_new_for_bus, goa_oauth2_based_proxy_new_for_bus () +
+
goa_oauth2_based_proxy_new_for_bus_finish, goa_oauth2_based_proxy_new_for_bus_finish () +
+
goa_oauth2_based_proxy_new_for_bus_sync, goa_oauth2_based_proxy_new_for_bus_sync () +
+
goa_oauth2_based_proxy_new_sync, goa_oauth2_based_proxy_new_sync () +
+
goa_oauth2_based_set_client_id, goa_oauth2_based_set_client_id () +
+
goa_oauth2_based_set_client_secret, goa_oauth2_based_set_client_secret () +
+
goa_oauth2_based_skeleton_new, goa_oauth2_based_skeleton_new () +
+
goa_oauth2_provider_add_account_key_values, goa_oauth2_provider_add_account_key_values () +
+
goa_oauth2_provider_build_authorization_uri, goa_oauth2_provider_build_authorization_uri () +
+
goa_oauth2_provider_get_access_token_sync, goa_oauth2_provider_get_access_token_sync () +
+
goa_oauth2_provider_get_authorization_uri, goa_oauth2_provider_get_authorization_uri () +
+
goa_oauth2_provider_get_client_id, goa_oauth2_provider_get_client_id () +
+
goa_oauth2_provider_get_client_secret, goa_oauth2_provider_get_client_secret () +
+
goa_oauth2_provider_get_identity_sync, goa_oauth2_provider_get_identity_sync () +
+
goa_oauth2_provider_get_redirect_uri, goa_oauth2_provider_get_redirect_uri () +
+
goa_oauth2_provider_get_scope, goa_oauth2_provider_get_scope () +
+
goa_oauth2_provider_get_token_uri, goa_oauth2_provider_get_token_uri () +
+
goa_oauth2_provider_get_use_mobile_browser, goa_oauth2_provider_get_use_mobile_browser () +
+
goa_oauth2_provider_is_deny_node, goa_oauth2_provider_is_deny_node () +
+
goa_oauth2_provider_is_identity_node, goa_oauth2_provider_is_identity_node () +
+
goa_oauth2_provider_is_password_node, goa_oauth2_provider_is_password_node () +
+
goa_oauth2_provider_process_redirect_url, goa_oauth2_provider_process_redirect_url () +
+
GoaOAuthBased, GoaOAuthBased +
+
org.gnome.OnlineAccounts.OAuthBased, org.gnome.OnlineAccounts.OAuthBased +
+
org.gnome.OnlineAccounts.OAuthBased.GetAccessToken(), The GetAccessToken() method +
+
GoaOAuthBased::handle-get-access-token, The “handle-get-access-token” signal +
+
GoaOAuthBased:consumer-key, The “consumer-key” property +
+
GoaOAuthBased:consumer-secret, The “consumer-secret” property +
+
org.gnome.OnlineAccounts.OAuthBased:ConsumerKey, The "ConsumerKey" property +
+
org.gnome.OnlineAccounts.OAuthBased:ConsumerSecret, The "ConsumerSecret" property +
+
GoaOAuthBasedIface, struct GoaOAuthBasedIface +
+
GoaOAuthBasedProxy, struct GoaOAuthBasedProxy +
+
GoaOAuthBasedProxyClass, struct GoaOAuthBasedProxyClass +
+
GoaOAuthBasedSkeleton, struct GoaOAuthBasedSkeleton +
+
GoaOAuthBasedSkeletonClass, struct GoaOAuthBasedSkeletonClass +
+
GoaOAuthProvider, GoaOAuthProvider +
+
GoaOAuthProviderClass, struct GoaOAuthProviderClass +
+
goa_oauth_based_call_get_access_token, goa_oauth_based_call_get_access_token () +
+
goa_oauth_based_call_get_access_token_finish, goa_oauth_based_call_get_access_token_finish () +
+
goa_oauth_based_call_get_access_token_sync, goa_oauth_based_call_get_access_token_sync () +
+
goa_oauth_based_complete_get_access_token, goa_oauth_based_complete_get_access_token () +
+
goa_oauth_based_dup_consumer_key, goa_oauth_based_dup_consumer_key () +
+
goa_oauth_based_dup_consumer_secret, goa_oauth_based_dup_consumer_secret () +
+
goa_oauth_based_get_consumer_key, goa_oauth_based_get_consumer_key () +
+
goa_oauth_based_get_consumer_secret, goa_oauth_based_get_consumer_secret () +
+
goa_oauth_based_interface_info, goa_oauth_based_interface_info () +
+
goa_oauth_based_override_properties, goa_oauth_based_override_properties () +
+
goa_oauth_based_proxy_new, goa_oauth_based_proxy_new () +
+
goa_oauth_based_proxy_new_finish, goa_oauth_based_proxy_new_finish () +
+
goa_oauth_based_proxy_new_for_bus, goa_oauth_based_proxy_new_for_bus () +
+
goa_oauth_based_proxy_new_for_bus_finish, goa_oauth_based_proxy_new_for_bus_finish () +
+
goa_oauth_based_proxy_new_for_bus_sync, goa_oauth_based_proxy_new_for_bus_sync () +
+
goa_oauth_based_proxy_new_sync, goa_oauth_based_proxy_new_sync () +
+
goa_oauth_based_set_consumer_key, goa_oauth_based_set_consumer_key () +
+
goa_oauth_based_set_consumer_secret, goa_oauth_based_set_consumer_secret () +
+
goa_oauth_based_skeleton_new, goa_oauth_based_skeleton_new () +
+
goa_oauth_provider_add_account_key_values, goa_oauth_provider_add_account_key_values () +
+
goa_oauth_provider_build_authorization_uri, goa_oauth_provider_build_authorization_uri () +
+
goa_oauth_provider_get_access_token_sync, goa_oauth_provider_get_access_token_sync () +
+
goa_oauth_provider_get_authorization_uri, goa_oauth_provider_get_authorization_uri () +
+
goa_oauth_provider_get_callback_uri, goa_oauth_provider_get_callback_uri () +
+
goa_oauth_provider_get_consumer_key, goa_oauth_provider_get_consumer_key () +
+
goa_oauth_provider_get_consumer_secret, goa_oauth_provider_get_consumer_secret () +
+
goa_oauth_provider_get_identity_sync, goa_oauth_provider_get_identity_sync () +
+
goa_oauth_provider_get_request_uri, goa_oauth_provider_get_request_uri () +
+
goa_oauth_provider_get_request_uri_params, goa_oauth_provider_get_request_uri_params () +
+
goa_oauth_provider_get_token_uri, goa_oauth_provider_get_token_uri () +
+
goa_oauth_provider_get_use_mobile_browser, goa_oauth_provider_get_use_mobile_browser () +
+
goa_oauth_provider_is_deny_node, goa_oauth_provider_is_deny_node () +
+
goa_oauth_provider_is_identity_node, goa_oauth_provider_is_identity_node () +
+
goa_oauth_provider_is_password_node, goa_oauth_provider_is_password_node () +
+
goa_oauth_provider_parse_request_token_error, goa_oauth_provider_parse_request_token_error () +
+
GoaObject, GoaObject +
+
GoaObject:account, The “account” property +
+
GoaObject:calendar, The “calendar” property +
+
GoaObject:chat, The “chat” property +
+
GoaObject:contacts, The “contacts” property +
+
GoaObject:documents, The “documents” property +
+
GoaObject:exchange, The “exchange” property +
+
GoaObject:files, The “files” property +
+
GoaObject:mail, The “mail” property +
+
GoaObject:manager, The “manager” property +
+
GoaObject:maps, The “maps” property +
+
GoaObject:media-server, The “media-server” property +
+
GoaObject:music, The “music” property +
+
GoaObject:oauth-based, The “oauth-based” property +
+
GoaObject:oauth2-based, The “oauth2-based” property +
+
GoaObject:password-based, The “password-based” property +
+
GoaObject:photos, The “photos” property +
+
GoaObject:printers, The “printers” property +
+
GoaObject:read-later, The “read-later” property +
+
GoaObject:ticketing, The “ticketing” property +
+
GoaObject:todo, The “todo” property +
+
GoaObjectIface, struct GoaObjectIface +
+
GoaObjectManagerClient, struct GoaObjectManagerClient +
+
GoaObjectManagerClientClass, struct GoaObjectManagerClientClass +
+
GoaObjectProxy, struct GoaObjectProxy +
+
GoaObjectProxyClass, struct GoaObjectProxyClass +
+
GoaObjectSkeleton, struct GoaObjectSkeleton +
+
GoaObjectSkeletonClass, struct GoaObjectSkeletonClass +
+
goa_object_get_account, goa_object_get_account () +
+
goa_object_get_calendar, goa_object_get_calendar () +
+
goa_object_get_chat, goa_object_get_chat () +
+
goa_object_get_contacts, goa_object_get_contacts () +
+
goa_object_get_documents, goa_object_get_documents () +
+
goa_object_get_exchange, goa_object_get_exchange () +
+
goa_object_get_files, goa_object_get_files () +
+
goa_object_get_mail, goa_object_get_mail () +
+
goa_object_get_manager, goa_object_get_manager () +
+
goa_object_get_maps, goa_object_get_maps () +
+
goa_object_get_media_server, goa_object_get_media_server () +
+
goa_object_get_music, goa_object_get_music () +
+
goa_object_get_oauth2_based, goa_object_get_oauth2_based () +
+
goa_object_get_oauth_based, goa_object_get_oauth_based () +
+
goa_object_get_photos, goa_object_get_photos () +
+
goa_object_get_printers, goa_object_get_printers () +
+
goa_object_get_todo, goa_object_get_todo () +
+
goa_object_manager_client_get_proxy_type, goa_object_manager_client_get_proxy_type () +
+
goa_object_manager_client_new, goa_object_manager_client_new () +
+
goa_object_manager_client_new_finish, goa_object_manager_client_new_finish () +
+
goa_object_manager_client_new_for_bus, goa_object_manager_client_new_for_bus () +
+
goa_object_manager_client_new_for_bus_finish, goa_object_manager_client_new_for_bus_finish () +
+
goa_object_manager_client_new_for_bus_sync, goa_object_manager_client_new_for_bus_sync () +
+
goa_object_manager_client_new_sync, goa_object_manager_client_new_sync () +
+
goa_object_peek_account, goa_object_peek_account () +
+
goa_object_peek_calendar, goa_object_peek_calendar () +
+
goa_object_peek_chat, goa_object_peek_chat () +
+
goa_object_peek_contacts, goa_object_peek_contacts () +
+
goa_object_peek_documents, goa_object_peek_documents () +
+
goa_object_peek_exchange, goa_object_peek_exchange () +
+
goa_object_peek_files, goa_object_peek_files () +
+
goa_object_peek_mail, goa_object_peek_mail () +
+
goa_object_peek_manager, goa_object_peek_manager () +
+
goa_object_peek_maps, goa_object_peek_maps () +
+
goa_object_peek_media_server, goa_object_peek_media_server () +
+
goa_object_peek_music, goa_object_peek_music () +
+
goa_object_peek_oauth2_based, goa_object_peek_oauth2_based () +
+
goa_object_peek_oauth_based, goa_object_peek_oauth_based () +
+
goa_object_peek_photos, goa_object_peek_photos () +
+
goa_object_peek_printers, goa_object_peek_printers () +
+
goa_object_peek_todo, goa_object_peek_todo () +
+
goa_object_proxy_new, goa_object_proxy_new () +
+
goa_object_skeleton_new, goa_object_skeleton_new () +
+
goa_object_skeleton_set_account, goa_object_skeleton_set_account () +
+
goa_object_skeleton_set_calendar, goa_object_skeleton_set_calendar () +
+
goa_object_skeleton_set_chat, goa_object_skeleton_set_chat () +
+
goa_object_skeleton_set_contacts, goa_object_skeleton_set_contacts () +
+
goa_object_skeleton_set_documents, goa_object_skeleton_set_documents () +
+
goa_object_skeleton_set_exchange, goa_object_skeleton_set_exchange () +
+
goa_object_skeleton_set_files, goa_object_skeleton_set_files () +
+
goa_object_skeleton_set_mail, goa_object_skeleton_set_mail () +
+
goa_object_skeleton_set_manager, goa_object_skeleton_set_manager () +
+
goa_object_skeleton_set_maps, goa_object_skeleton_set_maps () +
+
goa_object_skeleton_set_music, goa_object_skeleton_set_music () +
+
goa_object_skeleton_set_oauth2_based, goa_object_skeleton_set_oauth2_based () +
+
goa_object_skeleton_set_oauth_based, goa_object_skeleton_set_oauth_based () +
+
goa_object_skeleton_set_photos, goa_object_skeleton_set_photos () +
+
+
+
+

P

+
+
GoaPasswordBased, GoaPasswordBased +
+
org.gnome.OnlineAccounts.PasswordBased, org.gnome.OnlineAccounts.PasswordBased +
+
org.gnome.OnlineAccounts.PasswordBased.GetPassword(), The GetPassword() method +
+
GoaPasswordBased::handle-get-password, The “handle-get-password” signal +
+
GoaPasswordBasedIface, struct GoaPasswordBasedIface +
+
GoaPasswordBasedProxy, struct GoaPasswordBasedProxy +
+
GoaPasswordBasedProxyClass, struct GoaPasswordBasedProxyClass +
+
GoaPasswordBasedSkeleton, struct GoaPasswordBasedSkeleton +
+
GoaPasswordBasedSkeletonClass, struct GoaPasswordBasedSkeletonClass +
+
goa_password_based_call_get_password, goa_password_based_call_get_password () +
+
goa_password_based_call_get_password_finish, goa_password_based_call_get_password_finish () +
+
goa_password_based_call_get_password_sync, goa_password_based_call_get_password_sync () +
+
goa_password_based_complete_get_password, goa_password_based_complete_get_password () +
+
goa_password_based_interface_info, goa_password_based_interface_info () +
+
goa_password_based_override_properties, goa_password_based_override_properties () +
+
goa_password_based_proxy_new, goa_password_based_proxy_new () +
+
goa_password_based_proxy_new_finish, goa_password_based_proxy_new_finish () +
+
goa_password_based_proxy_new_for_bus, goa_password_based_proxy_new_for_bus () +
+
goa_password_based_proxy_new_for_bus_finish, goa_password_based_proxy_new_for_bus_finish () +
+
goa_password_based_proxy_new_for_bus_sync, goa_password_based_proxy_new_for_bus_sync () +
+
goa_password_based_proxy_new_sync, goa_password_based_proxy_new_sync () +
+
goa_password_based_skeleton_new, goa_password_based_skeleton_new () +
+
GoaPhotos, GoaPhotos +
+
org.gnome.OnlineAccounts.Photos, org.gnome.OnlineAccounts.Photos +
+
GoaPhotosIface, struct GoaPhotosIface +
+
GoaPhotosProxy, struct GoaPhotosProxy +
+
GoaPhotosProxyClass, struct GoaPhotosProxyClass +
+
GoaPhotosSkeleton, struct GoaPhotosSkeleton +
+
GoaPhotosSkeletonClass, struct GoaPhotosSkeletonClass +
+
goa_photos_interface_info, goa_photos_interface_info () +
+
goa_photos_override_properties, goa_photos_override_properties () +
+
goa_photos_proxy_new, goa_photos_proxy_new () +
+
goa_photos_proxy_new_finish, goa_photos_proxy_new_finish () +
+
goa_photos_proxy_new_for_bus, goa_photos_proxy_new_for_bus () +
+
goa_photos_proxy_new_for_bus_finish, goa_photos_proxy_new_for_bus_finish () +
+
goa_photos_proxy_new_for_bus_sync, goa_photos_proxy_new_for_bus_sync () +
+
goa_photos_proxy_new_sync, goa_photos_proxy_new_sync () +
+
goa_photos_skeleton_new, goa_photos_skeleton_new () +
+
GoaPrinters, GoaPrinters +
+
org.gnome.OnlineAccounts.Printers, org.gnome.OnlineAccounts.Printers +
+
GoaPrintersIface, struct GoaPrintersIface +
+
GoaPrintersProxy, struct GoaPrintersProxy +
+
GoaPrintersProxyClass, struct GoaPrintersProxyClass +
+
GoaPrintersSkeleton, struct GoaPrintersSkeleton +
+
GoaPrintersSkeletonClass, struct GoaPrintersSkeletonClass +
+
goa_printers_interface_info, goa_printers_interface_info () +
+
goa_printers_override_properties, goa_printers_override_properties () +
+
goa_printers_proxy_new, goa_printers_proxy_new () +
+
goa_printers_proxy_new_finish, goa_printers_proxy_new_finish () +
+
goa_printers_proxy_new_for_bus, goa_printers_proxy_new_for_bus () +
+
goa_printers_proxy_new_for_bus_finish, goa_printers_proxy_new_for_bus_finish () +
+
goa_printers_proxy_new_for_bus_sync, goa_printers_proxy_new_for_bus_sync () +
+
goa_printers_proxy_new_sync, goa_printers_proxy_new_sync () +
+
goa_printers_skeleton_new, goa_printers_skeleton_new () +
+
GoaProvider, GoaProvider +
+
GoaProvider:preseed-data, The “preseed-data” property +
+
GoaProviderClass, GoaProviderClass +
+
GoaProviderFeatures, enum GoaProviderFeatures +
+
GoaProviderGroup, enum GoaProviderGroup +
+
goa_provider_add_account, goa_provider_add_account () +
+
goa_provider_build_object, goa_provider_build_object () +
+
goa_provider_ensure_credentials, goa_provider_ensure_credentials () +
+
goa_provider_ensure_credentials_finish, goa_provider_ensure_credentials_finish () +
+
goa_provider_ensure_credentials_sync, goa_provider_ensure_credentials_sync () +
+
GOA_PROVIDER_EXTENSION_POINT_NAME, GOA_PROVIDER_EXTENSION_POINT_NAME +
+
goa_provider_get_all, goa_provider_get_all () +
+
goa_provider_get_credentials_generation, goa_provider_get_credentials_generation () +
+
goa_provider_get_for_provider_type, goa_provider_get_for_provider_type () +
+
goa_provider_get_preseed_data, goa_provider_get_preseed_data () +
+
goa_provider_get_provider_features, goa_provider_get_provider_features () +
+
goa_provider_get_provider_group, goa_provider_get_provider_group (), goa_provider_get_provider_group () +
+
goa_provider_get_provider_icon, goa_provider_get_provider_icon () +
+
goa_provider_get_provider_name, goa_provider_get_provider_name () +
+
goa_provider_get_provider_type, goa_provider_get_provider_type () +
+
goa_provider_refresh_account, goa_provider_refresh_account () +
+
goa_provider_set_preseed_data, goa_provider_set_preseed_data () +
+
goa_provider_show_account, goa_provider_show_account () +
+
+
+
+

R

+
+
GoaReadLater, GoaReadLater +
+
GoaReadLaterIface, struct GoaReadLaterIface +
+
GoaReadLaterProxy, struct GoaReadLaterProxy +
+
GoaReadLaterProxyClass, struct GoaReadLaterProxyClass +
+
GoaReadLaterSkeleton, struct GoaReadLaterSkeleton +
+
GoaReadLaterSkeletonClass, struct GoaReadLaterSkeletonClass +
+
goa_read_later_interface_info, goa_read_later_interface_info () +
+
goa_read_later_override_properties, goa_read_later_override_properties () +
+
goa_read_later_proxy_new, goa_read_later_proxy_new () +
+
goa_read_later_proxy_new_finish, goa_read_later_proxy_new_finish () +
+
goa_read_later_proxy_new_for_bus, goa_read_later_proxy_new_for_bus () +
+
goa_read_later_proxy_new_for_bus_finish, goa_read_later_proxy_new_for_bus_finish () +
+
goa_read_later_proxy_new_for_bus_sync, goa_read_later_proxy_new_for_bus_sync () +
+
goa_read_later_proxy_new_sync, goa_read_later_proxy_new_sync () +
+
goa_read_later_skeleton_new, goa_read_later_skeleton_new () +
+
+
+
+

T

+
+
GoaTicketing, GoaTicketing +
+
org.gnome.OnlineAccounts.Ticketing, org.gnome.OnlineAccounts.Ticketing +
+
org.gnome.OnlineAccounts.Ticketing.GetTicket(), The GetTicket() method +
+
GoaTicketing::handle-get-ticket, The “handle-get-ticket” signal +
+
GoaTicketing:details, The “details” property +
+
org.gnome.OnlineAccounts.Ticketing:Details, The "Details" property +
+
GoaTicketingIface, struct GoaTicketingIface +
+
GoaTicketingProxy, struct GoaTicketingProxy +
+
GoaTicketingProxyClass, struct GoaTicketingProxyClass +
+
GoaTicketingSkeleton, struct GoaTicketingSkeleton +
+
GoaTicketingSkeletonClass, struct GoaTicketingSkeletonClass +
+
goa_ticketing_call_get_ticket, goa_ticketing_call_get_ticket () +
+
goa_ticketing_call_get_ticket_finish, goa_ticketing_call_get_ticket_finish () +
+
goa_ticketing_call_get_ticket_sync, goa_ticketing_call_get_ticket_sync () +
+
goa_ticketing_complete_get_ticket, goa_ticketing_complete_get_ticket () +
+
goa_ticketing_interface_info, goa_ticketing_interface_info () +
+
goa_ticketing_override_properties, goa_ticketing_override_properties () +
+
goa_ticketing_proxy_new, goa_ticketing_proxy_new () +
+
goa_ticketing_proxy_new_finish, goa_ticketing_proxy_new_finish () +
+
goa_ticketing_proxy_new_for_bus, goa_ticketing_proxy_new_for_bus () +
+
goa_ticketing_proxy_new_for_bus_finish, goa_ticketing_proxy_new_for_bus_finish () +
+
goa_ticketing_proxy_new_for_bus_sync, goa_ticketing_proxy_new_for_bus_sync () +
+
goa_ticketing_proxy_new_sync, goa_ticketing_proxy_new_sync () +
+
goa_ticketing_skeleton_new, goa_ticketing_skeleton_new () +
+
GoaTodo, GoaTodo +
+
org.gnome.OnlineAccounts.Todo, org.gnome.OnlineAccounts.Todo +
+
GoaTodoIface, struct GoaTodoIface +
+
GoaTodoProxy, struct GoaTodoProxy +
+
GoaTodoProxyClass, struct GoaTodoProxyClass +
+
GoaTodoSkeleton, struct GoaTodoSkeleton +
+
GoaTodoSkeletonClass, struct GoaTodoSkeletonClass +
+
goa_todo_interface_info, goa_todo_interface_info () +
+
goa_todo_override_properties, goa_todo_override_properties () +
+
goa_todo_proxy_new, goa_todo_proxy_new () +
+
goa_todo_proxy_new_finish, goa_todo_proxy_new_finish () +
+
goa_todo_proxy_new_for_bus, goa_todo_proxy_new_for_bus () +
+
goa_todo_proxy_new_for_bus_finish, goa_todo_proxy_new_for_bus_finish () +
+
goa_todo_proxy_new_for_bus_sync, goa_todo_proxy_new_for_bus_sync () +
+
goa_todo_proxy_new_sync, goa_todo_proxy_new_sync () +
+
goa_todo_skeleton_new, goa_todo_skeleton_new () +
+
+
+
+

U

+
+
goa_util_add_row_widget, goa_util_add_row_widget () +
+
goa_util_lookup_keyfile_boolean, goa_util_lookup_keyfile_boolean () +
+
goa_util_lookup_keyfile_string, goa_util_lookup_keyfile_string () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/left-insensitive.png b/doc/html/left-insensitive.png new file mode 100644 index 0000000..3269393 Binary files /dev/null and b/doc/html/left-insensitive.png differ diff --git a/doc/html/left.png b/doc/html/left.png new file mode 100644 index 0000000..2abde03 Binary files /dev/null and b/doc/html/left.png differ diff --git a/doc/html/overview-writing.html b/doc/html/overview-writing.html new file mode 100644 index 0000000..cd5b5a4 --- /dev/null +++ b/doc/html/overview-writing.html @@ -0,0 +1,86 @@ + + + + +Writing GOA applications: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Writing GOA applications

+ +

+ The term GOA application is used to + describe applications or libraries that are using the GNOME Online Accounts D-Bus APIs + either directly or through the supplied client library. +

+
+

+Account Objects

+

+ A GOA application typically creates GoaClient object to get a + list of accounts and listen for changes. Each account provide + one or more specific services (such as mail, + calendaring + or contacts) + so the application will need to set up a filter for the + services it is interested in. For example, a mail application + would only be interested in GOA accounts with mail- and + contacts-services, not accounts with + calendaring-services. Applications can use methods on the + GoaObject type (such as goa_object_peek_mail()) to check what + kind of services an account provides. Note that this list can + change at run-time if e.g. the user toggles a Use + account for Mail check-button. +

+

+ Applications may use the Account.Id + property as a unique key to store information obtained from + an account. +

+

+ Applications must not destroy data if an account object is + removed (e.g. when the “account-removed” signal is + emitted) - for example, if the goa-daemon + program crashes or is restarted on software upgrade, account + objects will be removed only to be added back the next time + goa-daemon is started. +

+

+ Applications should use the + Account.ProviderIcon, + Account.ProviderName + and + Account.PresentationIdentity + properties when presenting an account in an user interface. + For example, for a hypothetical online services provider Acme, + this would be the Acme Logo, the word "Acme" and the identity + could be either an email address such as + or an user + handle such as davidz25 or + chunkylover53. +

+
+
+ + + \ No newline at end of file diff --git a/doc/html/overview.html b/doc/html/overview.html new file mode 100644 index 0000000..79162dd --- /dev/null +++ b/doc/html/overview.html @@ -0,0 +1,40 @@ + + + + +Part I. GNOME Online Accounts Overview: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Part I. GNOME Online Accounts Overview

+ +
+ + + \ No newline at end of file diff --git a/doc/html/ref-backend-library.html b/doc/html/ref-backend-library.html new file mode 100644 index 0000000..196d9f8 --- /dev/null +++ b/doc/html/ref-backend-library.html @@ -0,0 +1,49 @@ + + + + +Part IV. Backend Library API Reference: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Part IV. Backend Library API Reference

+
+

Table of Contents

+
+
Core
+
+
+goautil +
+
+GoaProvider — Abstract base class for providers +
+
+GoaOAuthProvider — Abstract base class for OAuth 1.0a providers +
+
+GoaOAuth2Provider — Abstract base class for OAuth 2.0 providers +
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ref-dbus-overview.html b/doc/html/ref-dbus-overview.html new file mode 100644 index 0000000..026da6c --- /dev/null +++ b/doc/html/ref-dbus-overview.html @@ -0,0 +1,43 @@ + + + + +Objects & Names: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Objects & Names

+ +
+

+The org.gnome.OnlineAccounts bus name

+

+ The D-Bus name org.gnome.OnlineAccounts + on the session bus is used by the GOA daemon, goa-daemon. If this daemon + isn't running, it will be started if D-Bus messages are sent + to the name. +

+
+
+ + + \ No newline at end of file diff --git a/doc/html/ref-dbus-well-known-object.html b/doc/html/ref-dbus-well-known-object.html new file mode 100644 index 0000000..7ae782e --- /dev/null +++ b/doc/html/ref-dbus-well-known-object.html @@ -0,0 +1,46 @@ + + + + +The /org/gnome/OnlineAccounts and /org/gnome/OnlineAccounts/Manager objects: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+The /org/gnome/OnlineAccounts and /org/gnome/OnlineAccounts/Manager objects

+

+ The process that owns the well-known D-Bus name org.gnome.OnlineAccounts + on the session bus (typically goa-daemon) exports an object + at the well-known path + /org/gnome/OnlineAccounts. This object + implements the org.freedesktop.DBus.ObjectManager + interface and should be used by clients to discover other + objects. +

+

+ One of the objects in the + /org/gnome/OnlineAccounts hierarchy + is an object at the path + /org/gnome/OnlineAccounts/Manager which + implements the org.gnome.OnlineAccounts.Manager + interface. +

+
+ + + \ No newline at end of file diff --git a/doc/html/ref-dbus.html b/doc/html/ref-dbus.html new file mode 100644 index 0000000..12f098a --- /dev/null +++ b/doc/html/ref-dbus.html @@ -0,0 +1,105 @@ + + + + +Part II. D-Bus API Reference: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/html/ref-library-generated.html b/doc/html/ref-library-generated.html new file mode 100644 index 0000000..0baa285 --- /dev/null +++ b/doc/html/ref-library-generated.html @@ -0,0 +1,97 @@ + + + + +Generated Code: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Generated Code

+
+
+GoaObject — Specialized GDBusObject types +
+
+GoaObjectManagerClient — Generated GDBusObjectManagerClient type +
+
+GoaManager — Generated C code for the org.gnome.OnlineAccounts.Manager D-Bus interface +
+
+GoaAccount — Generated C code for the org.gnome.OnlineAccounts.Account D-Bus interface +
+
+GoaOAuthBased — Generated C code for the org.gnome.OnlineAccounts.OAuthBased D-Bus interface +
+
+GoaOAuth2Based — Generated C code for the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface +
+
+GoaPasswordBased — Generated C code for the org.gnome.OnlineAccounts.PasswordBased D-Bus interface +
+
+GoaMail — Generated C code for the org.gnome.OnlineAccounts.Mail D-Bus interface +
+
+GoaCalendar — Generated C code for the org.gnome.OnlineAccounts.Calendar D-Bus interface +
+
+GoaContacts — Generated C code for the org.gnome.OnlineAccounts.Contacts D-Bus interface +
+
+GoaChat — Generated C code for the org.gnome.OnlineAccounts.Chat D-Bus interface +
+
+GoaDocuments — Generated C code for the org.gnome.OnlineAccounts.Documents D-Bus interface +
+
+GoaMaps — Generated C code for the org.gnome.OnlineAccounts.Maps D-Bus interface +
+
+GoaMusic — Generated C code for the org.gnome.OnlineAccounts.Music D-Bus interface +
+
+GoaPhotos — Generated C code for the org.gnome.OnlineAccounts.Photos D-Bus interface +
+
+GoaFiles — Generated C code for the org.gnome.OnlineAccounts.Files D-Bus interface +
+
+GoaExchange — Generated C code for the org.gnome.OnlineAccounts.Exchange D-Bus interface +
+
+GoaMediaServer — Generated C code for the org.gnome.OnlineAccounts.MediaServer D-Bus interface +
+
+GoaTicketing — Generated C code for the org.gnome.OnlineAccounts.Ticketing D-Bus interface +
+
+GoaTodo — Generated C code for the org.gnome.OnlineAccounts.Todo D-Bus interface +
+
+GoaReadLater — Generated C code for the org.gnome.OnlineAccounts.ReadLater D-Bus interface +
+
+GoaPrinters — Generated C code for the org.gnome.OnlineAccounts.Printers D-Bus interface +
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ref-library.html b/doc/html/ref-library.html new file mode 100644 index 0000000..d254342 --- /dev/null +++ b/doc/html/ref-library.html @@ -0,0 +1,112 @@ + + + + +Part III. Client Library API Reference: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Part III. Client Library API Reference

+
+

Table of Contents

+
+
+GoaClient — Object for accessing account information +
+
+GoaError — Error codes +
+
+Version Information — variables and functions to check the GOA version +
+
Generated Code
+
+
+GoaObject — Specialized GDBusObject types +
+
+GoaObjectManagerClient — Generated GDBusObjectManagerClient type +
+
+GoaManager — Generated C code for the org.gnome.OnlineAccounts.Manager D-Bus interface +
+
+GoaAccount — Generated C code for the org.gnome.OnlineAccounts.Account D-Bus interface +
+
+GoaOAuthBased — Generated C code for the org.gnome.OnlineAccounts.OAuthBased D-Bus interface +
+
+GoaOAuth2Based — Generated C code for the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface +
+
+GoaPasswordBased — Generated C code for the org.gnome.OnlineAccounts.PasswordBased D-Bus interface +
+
+GoaMail — Generated C code for the org.gnome.OnlineAccounts.Mail D-Bus interface +
+
+GoaCalendar — Generated C code for the org.gnome.OnlineAccounts.Calendar D-Bus interface +
+
+GoaContacts — Generated C code for the org.gnome.OnlineAccounts.Contacts D-Bus interface +
+
+GoaChat — Generated C code for the org.gnome.OnlineAccounts.Chat D-Bus interface +
+
+GoaDocuments — Generated C code for the org.gnome.OnlineAccounts.Documents D-Bus interface +
+
+GoaMaps — Generated C code for the org.gnome.OnlineAccounts.Maps D-Bus interface +
+
+GoaMusic — Generated C code for the org.gnome.OnlineAccounts.Music D-Bus interface +
+
+GoaPhotos — Generated C code for the org.gnome.OnlineAccounts.Photos D-Bus interface +
+
+GoaFiles — Generated C code for the org.gnome.OnlineAccounts.Files D-Bus interface +
+
+GoaExchange — Generated C code for the org.gnome.OnlineAccounts.Exchange D-Bus interface +
+
+GoaMediaServer — Generated C code for the org.gnome.OnlineAccounts.MediaServer D-Bus interface +
+
+GoaTicketing — Generated C code for the org.gnome.OnlineAccounts.Ticketing D-Bus interface +
+
+GoaTodo — Generated C code for the org.gnome.OnlineAccounts.Todo D-Bus interface +
+
+GoaReadLater — Generated C code for the org.gnome.OnlineAccounts.ReadLater D-Bus interface +
+
+GoaPrinters — Generated C code for the org.gnome.OnlineAccounts.Printers D-Bus interface +
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/right-insensitive.png b/doc/html/right-insensitive.png new file mode 100644 index 0000000..4c95785 Binary files /dev/null and b/doc/html/right-insensitive.png differ diff --git a/doc/html/right.png b/doc/html/right.png new file mode 100644 index 0000000..76260ec Binary files /dev/null and b/doc/html/right.png differ diff --git a/doc/html/style.css b/doc/html/style.css new file mode 100644 index 0000000..4be4ede --- /dev/null +++ b/doc/html/style.css @@ -0,0 +1,483 @@ +body +{ + font-family: cantarell, sans-serif; +} +.synopsis, .classsynopsis +{ + /* tango:aluminium 1/2 */ + background: #eeeeec; + background: rgba(238, 238, 236, 0.5); + border: solid 1px rgb(238, 238, 236); + padding: 0.5em; +} +.programlisting +{ + /* tango:sky blue 0/1 */ + /* fallback for no rgba support */ + background: #e6f3ff; + border: solid 1px #729fcf; + background: rgba(114, 159, 207, 0.1); + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0.5em; +} +.variablelist +{ + padding: 4px; + margin-left: 3em; +} +.variablelist td:first-child +{ + vertical-align: top; +} + +span.nowrap { + white-space: nowrap; +} + +div.gallery-float +{ + float: left; + padding: 10px; +} +div.gallery-float img +{ + border-style: none; +} +div.gallery-spacer +{ + clear: both; +} + +a, a:visited +{ + text-decoration: none; + /* tango:sky blue 2 */ + color: #3465a4; +} +a:hover +{ + text-decoration: underline; + /* tango:sky blue 1 */ + color: #729fcf; +} + +div.informaltable table +{ + border-collapse: separate; + border-spacing: 1em 0.3em; + border: none; +} + +div.informaltable table td, div.informaltable table th +{ + vertical-align: top; +} + +.function_type, +.variable_type, +.property_type, +.signal_type, +.parameter_name, +.struct_member_name, +.union_member_name, +.define_keyword, +.datatype_keyword, +.typedef_keyword +{ + text-align: right; +} + +/* dim non-primary columns */ +.c_punctuation, +.function_type, +.variable_type, +.property_type, +.signal_type, +.define_keyword, +.datatype_keyword, +.typedef_keyword, +.property_flags, +.signal_flags, +.parameter_annotations, +.enum_member_annotations, +.struct_member_annotations, +.union_member_annotations +{ + color: #888a85; +} + +.function_type a, +.function_type a:visited, +.function_type a:hover, +.property_type a, +.property_type a:visited, +.property_type a:hover, +.signal_type a, +.signal_type a:visited, +.signal_type a:hover, +.signal_flags a, +.signal_flags a:visited, +.signal_flags a:hover +{ + color: #729fcf; +} + +td p +{ + margin: 0.25em; +} + +div.table table +{ + border-collapse: collapse; + border-spacing: 0px; + /* tango:aluminium 3 */ + border: solid 1px #babdb6; +} + +div.table table td, div.table table th +{ + /* tango:aluminium 3 */ + border: solid 1px #babdb6; + padding: 3px; + vertical-align: top; +} + +div.table table th +{ + /* tango:aluminium 2 */ + background-color: #d3d7cf; +} + +h4 +{ + color: #555753; + margin-top: 1em; + margin-bottom: 1em; +} + +hr +{ + /* tango:aluminium 1 */ + color: #d3d7cf; + background: #d3d7cf; + border: none 0px; + height: 1px; + clear: both; + margin: 2.0em 0em 2.0em 0em; +} + +dl.toc dt +{ + padding-bottom: 0.25em; +} + +dl.toc > dt +{ + padding-top: 0.25em; + padding-bottom: 0.25em; + font-weight: bold; +} + +dl.toc > dl +{ + padding-bottom: 0.5em; +} + +.parameter +{ + font-style: normal; +} + +.footer +{ + padding-top: 3.5em; + /* tango:aluminium 3 */ + color: #babdb6; + text-align: center; + font-size: 80%; +} + +.informalfigure, +.figure +{ + margin: 1em; +} + +.informalexample, +.example +{ + margin-top: 1em; + margin-bottom: 1em; +} + +.warning +{ + /* tango:orange 0/1 */ + background: #ffeed9; + background: rgba(252, 175, 62, 0.1); + border-color: #ffb04f; + border-color: rgba(252, 175, 62, 0.2); +} +.note +{ + /* tango:chameleon 0/0.5 */ + background: #d8ffb2; + background: rgba(138, 226, 52, 0.1); + border-color: #abf562; + border-color: rgba(138, 226, 52, 0.2); +} +div.blockquote +{ + border-color: #eeeeec; +} +.note, .warning, div.blockquote +{ + padding: 0.5em; + border-width: 1px; + border-style: solid; + margin: 2em; +} +.note p, .warning p +{ + margin: 0; +} + +div.warning h3.title, +div.note h3.title +{ + display: none; +} + +p + div.section +{ + margin-top: 1em; +} + +div.refnamediv, +div.refsynopsisdiv, +div.refsect1, +div.refsect2, +div.toc, +div.section +{ + margin-bottom: 1em; +} + +/* blob links */ +h2 .extralinks, h3 .extralinks +{ + float: right; + /* tango:aluminium 3 */ + color: #babdb6; + font-size: 80%; + font-weight: normal; +} + +.lineart +{ + color: #d3d7cf; + font-weight: normal; +} + +.annotation +{ + /* tango:aluminium 5 */ + color: #555753; + font-weight: normal; +} + +.structfield +{ + font-style: normal; + font-weight: normal; +} + +acronym,abbr +{ + border-bottom: 1px dotted gray; +} + +/* code listings */ + +.listing_code .programlisting .normal, +.listing_code .programlisting .normal a, +.listing_code .programlisting .number, +.listing_code .programlisting .cbracket, +.listing_code .programlisting .symbol { color: #555753; } +.listing_code .programlisting .comment, +.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ +.listing_code .programlisting .function, +.listing_code .programlisting .function a, +.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ +.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ +.listing_code .programlisting .keyword, +.listing_code .programlisting .usertype, +.listing_code .programlisting .type, +.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ + +.listing_frame { + /* tango:sky blue 1 */ + border: solid 1px #729fcf; + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0px; +} + +.listing_lines, .listing_code { + margin-top: 0px; + margin-bottom: 0px; + padding: 0.5em; +} +.listing_lines { + /* tango:sky blue 0.5 */ + background: #a6c5e3; + background: rgba(114, 159, 207, 0.2); + /* tango:aluminium 6 */ + color: #2e3436; +} +.listing_code { + /* tango:sky blue 0 */ + background: #e6f3ff; + background: rgba(114, 159, 207, 0.1); +} +.listing_code .programlisting { + /* override from previous */ + border: none 0px; + padding: 0px; + background: none; +} +.listing_lines pre, .listing_code pre { + margin: 0px; +} + +@media screen { + /* these have a as a first child, but since there are no parent selectors + * we can't use that. */ + a.footnote + { + position: relative; + top: 0em ! important; + } + /* this is needed so that the local anchors are displayed below the naviagtion */ + div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] + { + display: inline-block; + position: relative; + top:-5em; + } + /* this seems to be a bug in the xsl style sheets when generating indexes */ + div.index div.index + { + top: 0em; + } + /* make space for the fixed navigation bar and add space at the bottom so that + * link targets appear somewhat close to top + */ + body + { + padding-top: 2.5em; + padding-bottom: 500px; + max-width: 60em; + } + p + { + max-width: 60em; + } + /* style and size the navigation bar */ + table.navigation#top + { + position: fixed; + background: #e2e2e2; + border-bottom: solid 1px #babdb6; + border-spacing: 5px; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + z-index: 10; + } + table.navigation#top td + { + padding-left: 6px; + padding-right: 6px; + } + .navigation a, .navigation a:visited + { + /* tango:sky blue 3 */ + color: #204a87; + } + .navigation a:hover + { + /* tango:sky blue 2 */ + color: #3465a4; + } + td.shortcuts + { + /* tango:sky blue 2 */ + color: #3465a4; + font-size: 80%; + white-space: nowrap; + } + td.shortcuts .dim + { + color: #babdb6; + } + .navigation .title + { + font-size: 80%; + max-width: none; + margin: 0px; + font-weight: normal; + } +} +@media screen and (min-width: 60em) { + /* screen larger than 60em */ + body { margin: auto; } +} +@media screen and (max-width: 60em) { + /* screen less than 60em */ + #nav_hierarchy { display: none; } + #nav_interfaces { display: none; } + #nav_prerequisites { display: none; } + #nav_derived_interfaces { display: none; } + #nav_implementations { display: none; } + #nav_child_properties { display: none; } + #nav_style_properties { display: none; } + #nav_index { display: none; } + #nav_glossary { display: none; } + .gallery_image { display: none; } + .property_flags { display: none; } + .signal_flags { display: none; } + .parameter_annotations { display: none; } + .enum_member_annotations { display: none; } + .struct_member_annotations { display: none; } + .union_member_annotations { display: none; } + /* now that a column is hidden, optimize space */ + col.parameters_name { width: auto; } + col.parameters_description { width: auto; } + col.struct_members_name { width: auto; } + col.struct_members_description { width: auto; } + col.enum_members_name { width: auto; } + col.enum_members_description { width: auto; } + col.union_members_name { width: auto; } + col.union_members_description { width: auto; } + .listing_lines { display: none; } +} +@media print { + table.navigation { + visibility: collapse; + display: none; + } + div.titlepage table.navigation { + visibility: visible; + display: table; + background: #e2e2e2; + border: solid 1px #babdb6; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + height: 3em; + } +} + diff --git a/doc/html/tools-fileformats.html b/doc/html/tools-fileformats.html new file mode 100644 index 0000000..6b3dc0d --- /dev/null +++ b/doc/html/tools-fileformats.html @@ -0,0 +1,35 @@ + + + + +Part V. Tools, File Formats and Manual Pages: GNOME Online Accounts Reference Manual + + + + + + + + + + + + + + + + +
+

+Part V. Tools, File Formats and Manual Pages

+
+

Table of Contents

+
+goa-daemon — GNOME Online Accounts Daemon +
+
+
+ + + \ No newline at end of file diff --git a/doc/html/up-insensitive.png b/doc/html/up-insensitive.png new file mode 100644 index 0000000..f404986 Binary files /dev/null and b/doc/html/up-insensitive.png differ diff --git a/doc/html/up.png b/doc/html/up.png new file mode 100644 index 0000000..80b4b37 Binary files /dev/null and b/doc/html/up.png differ diff --git a/doc/version.xml.in b/doc/version.xml.in new file mode 100644 index 0000000..d78bda9 --- /dev/null +++ b/doc/version.xml.in @@ -0,0 +1 @@ +@VERSION@ diff --git a/gtk-doc.make b/gtk-doc.make new file mode 100644 index 0000000..f87eaab --- /dev/null +++ b/gtk-doc.make @@ -0,0 +1,320 @@ +# -*- mode: makefile -*- +# +# gtk-doc.make - make rules for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2004-2007 Damon Chaplin +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +SETUP_FILES = \ + $(content_files) \ + $(expand_content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST = \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test + +if GTK_DOC_BUILD_HTML +HTML_BUILD_STAMP=html-build.stamp +else +HTML_BUILD_STAMP= +endif +if GTK_DOC_BUILD_PDF +PDF_BUILD_STAMP=pdf-build.stamp +else +PDF_BUILD_STAMP= +endif + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +if ENABLE_GTK_DOC +all-local: all-gtk-doc +endif + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +#### setup #### + +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) +GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + $(AM_V_at)touch setup-build.stamp + +#### scan #### + +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) +GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; + +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) +GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@) +GTK_DOC_V_XML_0=@echo " DOC Building XML"; + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + $(GTK_DOC_V_XML)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@) +GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; + +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@) +GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$$?" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +#### pdf #### + +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@) +GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ + rm -f $(DOC_MODULE)-sections.txt; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if HAVE_GTK_DOC +dist-check-gtkdoc: docs +else +dist-check-gtkdoc: + @echo "*** gtk-doc is needed to run 'make dist'. ***" + @echo "*** gtk-doc was not found when 'configure' ran. ***" + @echo "*** please install gtk-doc and rerun 'configure'. ***" + @false +endif + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/html + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/install-sh b/install-sh new file mode 100755 index 0000000..0360b79 --- /dev/null +++ b/install-sh @@ -0,0 +1,501 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2016-01-11.22; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/ltmain.sh b/ltmain.sh new file mode 100644 index 0000000..30be9c8 --- /dev/null +++ b/ltmain.sh @@ -0,0 +1,11149 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.6 +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/m4/ax_append_compile_flags.m4 b/m4/ax_append_compile_flags.m4 new file mode 100644 index 0000000..5b6f1af --- /dev/null +++ b/m4/ax_append_compile_flags.m4 @@ -0,0 +1,67 @@ +# ============================================================================ +# https://www.gnu.org/software/autoconf-archive/ax_append_compile_flags.html +# ============================================================================ +# +# SYNOPSIS +# +# AX_APPEND_COMPILE_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# For every FLAG1, FLAG2 it is checked whether the compiler works with the +# flag. If it does, the flag is added FLAGS-VARIABLE +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. During the check the flag is always added to the +# current language's flags. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: This macro depends on the AX_APPEND_FLAG and +# AX_CHECK_COMPILE_FLAG. Please keep this macro in sync with +# AX_APPEND_LINK_FLAGS. +# +# LICENSE +# +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AC_DEFUN([AX_APPEND_COMPILE_FLAGS], +[AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) +AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) +for flag in $1; do + AX_CHECK_COMPILE_FLAG([$flag], [AX_APPEND_FLAG([$flag], [$2])], [], [$3], [$4]) +done +])dnl AX_APPEND_COMPILE_FLAGS diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4 new file mode 100644 index 0000000..e8c5312 --- /dev/null +++ b/m4/ax_append_flag.m4 @@ -0,0 +1,71 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE]) +# +# DESCRIPTION +# +# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space +# added in between. +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains +# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly +# FLAG. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 7 + +AC_DEFUN([AX_APPEND_FLAG], +[dnl +AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF +AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])]) +AS_VAR_SET_IF(FLAGS,[ + AS_CASE([" AS_VAR_GET(FLAGS) "], + [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])], + [ + AS_VAR_APPEND(FLAGS,[" $1"]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) + ], + [ + AS_VAR_SET(FLAGS,[$1]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) +AS_VAR_POPDEF([FLAGS])dnl +])dnl AX_APPEND_FLAG diff --git a/m4/ax_append_link_flags.m4 b/m4/ax_append_link_flags.m4 new file mode 100644 index 0000000..6f7f174 --- /dev/null +++ b/m4/ax_append_link_flags.m4 @@ -0,0 +1,65 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_append_link_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_APPEND_LINK_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# For every FLAG1, FLAG2 it is checked whether the linker works with the +# flag. If it does, the flag is added FLAGS-VARIABLE +# +# If FLAGS-VARIABLE is not specified, the linker's flags (LDFLAGS) is +# used. During the check the flag is always added to the linker's flags. +# +# If EXTRA-FLAGS is defined, it is added to the linker's default flags +# when the check is done. The check is thus made with the flags: "LDFLAGS +# EXTRA-FLAGS FLAG". This can for example be used to force the linker to +# issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: This macro depends on the AX_APPEND_FLAG and AX_CHECK_LINK_FLAG. +# Please keep this macro in sync with AX_APPEND_COMPILE_FLAGS. +# +# LICENSE +# +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AC_DEFUN([AX_APPEND_LINK_FLAGS], +[AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) +AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) +for flag in $1; do + AX_CHECK_LINK_FLAG([$flag], [AX_APPEND_FLAG([$flag], [m4_default([$2], [LDFLAGS])])], [], [$3], [$4]) +done +])dnl AX_APPEND_LINK_FLAGS diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 new file mode 100644 index 0000000..dcabb92 --- /dev/null +++ b/m4/ax_check_compile_flag.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 5 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS diff --git a/m4/ax_check_enable_debug.m4 b/m4/ax_check_enable_debug.m4 new file mode 100644 index 0000000..d36bcdf --- /dev/null +++ b/m4/ax_check_enable_debug.m4 @@ -0,0 +1,124 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_enable_debug.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_ENABLE_DEBUG([enable by default=yes/info/profile/no], [ENABLE DEBUG VARIABLES ...], [DISABLE DEBUG VARIABLES NDEBUG ...], [IS-RELEASE]) +# +# DESCRIPTION +# +# Check for the presence of an --enable-debug option to configure, with +# the specified default value used when the option is not present. Return +# the value in the variable $ax_enable_debug. +# +# Specifying 'yes' adds '-g -O0' to the compilation flags for all +# languages. Specifying 'info' adds '-g' to the compilation flags. +# Specifying 'profile' adds '-g -pg' to the compilation flags and '-pg' to +# the linking flags. Otherwise, nothing is added. +# +# Define the variables listed in the second argument if debug is enabled, +# defaulting to no variables. Defines the variables listed in the third +# argument if debug is disabled, defaulting to NDEBUG. All lists of +# variables should be space-separated. +# +# If debug is not enabled, ensure AC_PROG_* will not add debugging flags. +# Should be invoked prior to any AC_PROG_* compiler checks. +# +# IS-RELEASE can be used to change the default to 'no' when making a +# release. Set IS-RELEASE to 'yes' or 'no' as appropriate. By default, it +# uses the value of $ax_is_release, so if you are using the AX_IS_RELEASE +# macro, there is no need to pass this parameter. +# +# AX_IS_RELEASE([git-directory]) +# AX_CHECK_ENABLE_DEBUG() +# +# LICENSE +# +# Copyright (c) 2011 Rhys Ulerich +# Copyright (c) 2014, 2015 Philip Withnall +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +#serial 8 + +AC_DEFUN([AX_CHECK_ENABLE_DEBUG],[ + AC_BEFORE([$0],[AC_PROG_CC])dnl + AC_BEFORE([$0],[AC_PROG_CXX])dnl + AC_BEFORE([$0],[AC_PROG_F77])dnl + AC_BEFORE([$0],[AC_PROG_FC])dnl + + AC_MSG_CHECKING(whether to enable debugging) + + ax_enable_debug_default=m4_tolower(m4_normalize(ifelse([$1],,[no],[$1]))) + ax_enable_debug_is_release=m4_tolower(m4_normalize(ifelse([$4],, + [$ax_is_release], + [$4]))) + + # If this is a release, override the default. + AS_IF([test "$ax_enable_debug_is_release" = "yes"], + [ax_enable_debug_default="no"]) + + m4_define(ax_enable_debug_vars,[m4_normalize(ifelse([$2],,,[$2]))]) + m4_define(ax_disable_debug_vars,[m4_normalize(ifelse([$3],,[NDEBUG],[$3]))]) + + AC_ARG_ENABLE(debug, + [AS_HELP_STRING([--enable-debug=]@<:@yes/info/profile/no@:>@,[compile with debugging])], + [],enable_debug=$ax_enable_debug_default) + + # empty mean debug yes + AS_IF([test "x$enable_debug" = "x"], + [enable_debug="yes"]) + + # case of debug + AS_CASE([$enable_debug], + [yes],[ + AC_MSG_RESULT(yes) + CFLAGS="${CFLAGS} -g -O0" + CXXFLAGS="${CXXFLAGS} -g -O0" + FFLAGS="${FFLAGS} -g -O0" + FCFLAGS="${FCFLAGS} -g -O0" + OBJCFLAGS="${OBJCFLAGS} -g -O0" + ], + [info],[ + AC_MSG_RESULT(info) + CFLAGS="${CFLAGS} -g" + CXXFLAGS="${CXXFLAGS} -g" + FFLAGS="${FFLAGS} -g" + FCFLAGS="${FCFLAGS} -g" + OBJCFLAGS="${OBJCFLAGS} -g" + ], + [profile],[ + AC_MSG_RESULT(profile) + CFLAGS="${CFLAGS} -g -pg" + CXXFLAGS="${CXXFLAGS} -g -pg" + FFLAGS="${FFLAGS} -g -pg" + FCFLAGS="${FCFLAGS} -g -pg" + OBJCFLAGS="${OBJCFLAGS} -g -pg" + LDFLAGS="${LDFLAGS} -pg" + ], + [ + AC_MSG_RESULT(no) + dnl Ensure AC_PROG_CC/CXX/F77/FC/OBJC will not enable debug flags + dnl by setting any unset environment flag variables + AS_IF([test "x${CFLAGS+set}" != "xset"], + [CFLAGS=""]) + AS_IF([test "x${CXXFLAGS+set}" != "xset"], + [CXXFLAGS=""]) + AS_IF([test "x${FFLAGS+set}" != "xset"], + [FFLAGS=""]) + AS_IF([test "x${FCFLAGS+set}" != "xset"], + [FCFLAGS=""]) + AS_IF([test "x${OBJCFLAGS+set}" != "xset"], + [OBJCFLAGS=""]) + ]) + + dnl Define various variables if debugging is disabled. + dnl assert.h is a NOP if NDEBUG is defined, so define it by default. + AS_IF([test "x$enable_debug" = "xyes"], + [m4_map_args_w(ax_enable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is enabled])])], + [m4_map_args_w(ax_disable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is disabled])])]) + ax_enable_debug=$enable_debug +]) diff --git a/m4/ax_check_link_flag.m4 b/m4/ax_check_link_flag.m4 new file mode 100644 index 0000000..819409a --- /dev/null +++ b/m4/ax_check_link_flag.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the linker or gives an error. +# (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the linker's default flags +# when the check is done. The check is thus made with the flags: "LDFLAGS +# EXTRA-FLAGS FLAG". This can for example be used to force the linker to +# issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_LINK_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 5 + +AC_DEFUN([AX_CHECK_LINK_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl +AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $4 $1" + AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + LDFLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_LINK_FLAGS diff --git a/m4/ax_compiler_flags.m4 b/m4/ax_compiler_flags.m4 new file mode 100644 index 0000000..ddb0456 --- /dev/null +++ b/m4/ax_compiler_flags.m4 @@ -0,0 +1,158 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS([CFLAGS-VARIABLE], [LDFLAGS-VARIABLE], [IS-RELEASE], [EXTRA-BASE-CFLAGS], [EXTRA-YES-CFLAGS], [UNUSED], [UNUSED], [UNUSED], [EXTRA-BASE-LDFLAGS], [EXTRA-YES-LDFLAGS], [UNUSED], [UNUSED], [UNUSED]) +# +# DESCRIPTION +# +# Check for the presence of an --enable-compile-warnings option to +# configure, defaulting to "error" in normal operation, or "yes" if +# IS-RELEASE is equal to "yes". Return the value in the variable +# $ax_enable_compile_warnings. +# +# Depending on the value of --enable-compile-warnings, different compiler +# warnings are checked to see if they work with the current compiler and, +# if so, are appended to CFLAGS-VARIABLE and LDFLAGS-VARIABLE. This +# allows a consistent set of baseline compiler warnings to be used across +# a code base, irrespective of any warnings enabled locally by individual +# developers. By standardising the warnings used by all developers of a +# project, the project can commit to a zero-warnings policy, using -Werror +# to prevent compilation if new warnings are introduced. This makes +# catching bugs which are flagged by warnings a lot easier. +# +# By providing a consistent --enable-compile-warnings argument across all +# projects using this macro, continuous integration systems can easily be +# configured the same for all projects. Automated systems or build +# systems aimed at beginners may want to pass the --disable-Werror +# argument to unconditionally prevent warnings being fatal. +# +# --enable-compile-warnings can take the values: +# +# * no: Base compiler warnings only; not even -Wall. +# * yes: The above, plus a broad range of useful warnings. +# * error: The above, plus -Werror so that all warnings are fatal. +# Use --disable-Werror to override this and disable fatal +# warnings. +# +# The set of base and enabled flags can be augmented using the +# EXTRA-*-CFLAGS and EXTRA-*-LDFLAGS variables, which are tested and +# appended to the output variable if --enable-compile-warnings is not +# "no". Flags should not be disabled using these arguments, as the entire +# point of AX_COMPILER_FLAGS is to enforce a consistent set of useful +# compiler warnings on code, using warnings which have been chosen for low +# false positive rates. If a compiler emits false positives for a +# warning, a #pragma should be used in the code to disable the warning +# locally. See: +# +# https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas +# +# The EXTRA-* variables should only be used to supply extra warning flags, +# and not general purpose compiler flags, as they are controlled by +# configure options such as --disable-Werror. +# +# IS-RELEASE can be used to disable -Werror when making a release, which +# is useful for those hairy moments when you just want to get the release +# done as quickly as possible. Set it to "yes" to disable -Werror. By +# default, it uses the value of $ax_is_release, so if you are using the +# AX_IS_RELEASE macro, there is no need to pass this parameter. For +# example: +# +# AX_IS_RELEASE([git-directory]) +# AX_COMPILER_FLAGS() +# +# CFLAGS-VARIABLE defaults to WARN_CFLAGS, and LDFLAGS-VARIABLE defaults +# to WARN_LDFLAGS. Both variables are AC_SUBST-ed by this macro, but must +# be manually added to the CFLAGS and LDFLAGS variables for each target in +# the code base. +# +# If C++ language support is enabled with AC_PROG_CXX, which must occur +# before this macro in configure.ac, warning flags for the C++ compiler +# are AC_SUBST-ed as WARN_CXXFLAGS, and must be manually added to the +# CXXFLAGS variables for each target in the code base. EXTRA-*-CFLAGS can +# be used to augment the base and enabled flags. +# +# Warning flags for g-ir-scanner (from GObject Introspection) are +# AC_SUBST-ed as WARN_SCANNERFLAGS. This variable must be manually added +# to the SCANNERFLAGS variable for each GIR target in the code base. If +# extra g-ir-scanner flags need to be enabled, the AX_COMPILER_FLAGS_GIR +# macro must be invoked manually. +# +# AX_COMPILER_FLAGS may add support for other tools in future, in addition +# to the compiler and linker. No extra EXTRA-* variables will be added +# for those tools, and all extra support will still use the single +# --enable-compile-warnings configure option. For finer grained control +# over the flags for individual tools, use AX_COMPILER_FLAGS_CFLAGS, +# AX_COMPILER_FLAGS_LDFLAGS and AX_COMPILER_FLAGS_* for new tools. +# +# The UNUSED variables date from a previous version of this macro, and are +# automatically appended to the preceding non-UNUSED variable. They should +# be left empty in new uses of the macro. +# +# LICENSE +# +# Copyright (c) 2014, 2015 Philip Withnall +# Copyright (c) 2015 David King +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 14 + +# _AX_COMPILER_FLAGS_LANG([LANGNAME]) +m4_defun([_AX_COMPILER_FLAGS_LANG], +[m4_ifdef([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [], + [m4_define([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [])dnl + AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_]$1[FLAGS])])dnl +]) + +AC_DEFUN([AX_COMPILER_FLAGS],[ + # C support is enabled by default. + _AX_COMPILER_FLAGS_LANG([C]) + # Only enable C++ support if AC_PROG_CXX is called. The redefinition of + # AC_PROG_CXX is so that a fatal error is emitted if this macro is called + # before AC_PROG_CXX, which would otherwise cause no C++ warnings to be + # checked. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AX_COMPILER_FLAGS_LANG([CXX])], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AX_COMPILER_FLAGS_LANG([CXX])])]) + AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_LDFLAGS]) + + # Default value for IS-RELEASE is $ax_is_release + ax_compiler_flags_is_release=m4_tolower(m4_normalize(ifelse([$3],, + [$ax_is_release], + [$3]))) + + AC_ARG_ENABLE([compile-warnings], + AS_HELP_STRING([--enable-compile-warnings=@<:@no/yes/error@:>@], + [Enable compiler warnings and errors]),, + [AS_IF([test "$ax_compiler_flags_is_release" = "yes"], + [enable_compile_warnings="yes"], + [enable_compile_warnings="error"])]) + AC_ARG_ENABLE([Werror], + AS_HELP_STRING([--disable-Werror], + [Unconditionally make all compiler warnings non-fatal]),, + [enable_Werror=maybe]) + + # Return the user's chosen warning level + AS_IF([test "$enable_Werror" = "no" -a \ + "$enable_compile_warnings" = "error"],[ + enable_compile_warnings="yes" + ]) + + ax_enable_compile_warnings=$enable_compile_warnings + + AX_COMPILER_FLAGS_CFLAGS([$1],[$ax_compiler_flags_is_release], + [$4],[$5 $6 $7 $8]) + m4_ifdef([_AX_COMPILER_FLAGS_LANG_CXX_enabled], + [AX_COMPILER_FLAGS_CXXFLAGS([WARN_CXXFLAGS], + [$ax_compiler_flags_is_release], + [$4],[$5 $6 $7 $8])]) + AX_COMPILER_FLAGS_LDFLAGS([$2],[$ax_compiler_flags_is_release], + [$9],[$10 $11 $12 $13]) + AX_COMPILER_FLAGS_GIR([WARN_SCANNERFLAGS],[$ax_compiler_flags_is_release]) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_cflags.m4 b/m4/ax_compiler_flags_cflags.m4 new file mode 100644 index 0000000..44d2882 --- /dev/null +++ b/m4/ax_compiler_flags_cflags.m4 @@ -0,0 +1,160 @@ +# ============================================================================= +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_cflags.html +# ============================================================================= +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS_CFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) +# +# DESCRIPTION +# +# Add warning flags for the C compiler to VARIABLE, which defaults to +# WARN_CFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be +# manually added to the CFLAGS variable for each target in the code base. +# +# This macro depends on the environment set up by AX_COMPILER_FLAGS. +# Specifically, it uses the value of $ax_enable_compile_warnings to decide +# which flags to enable. +# +# LICENSE +# +# Copyright (c) 2014, 2015 Philip Withnall +# Copyright (c) 2017, 2018 Reini Urban +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 16 + +AC_DEFUN([AX_COMPILER_FLAGS_CFLAGS],[ + AC_REQUIRE([AC_PROG_SED]) + AX_REQUIRE_DEFINED([AX_APPEND_COMPILE_FLAGS]) + AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) + AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) + + # Variable names + m4_define([ax_warn_cflags_variable], + [m4_normalize(ifelse([$1],,[WARN_CFLAGS],[$1]))]) + + AC_LANG_PUSH([C]) + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + [#ifndef __cplusplus + #error "no C++" + #endif]])], + [ax_compiler_cxx=yes;], + [ax_compiler_cxx=no;]) + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_cflags variable, and + # Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[ + ax_compiler_flags_test="-Werror=unknown-warning-option" + ],[ + ax_compiler_flags_test="" + ]) + + # Check that -Wno-suggest-attribute=format is supported + AX_CHECK_COMPILE_FLAG([-Wno-suggest-attribute=format],[ + ax_compiler_no_suggest_attribute_flags="-Wno-suggest-attribute=format" + ],[ + ax_compiler_no_suggest_attribute_flags="" + ]) + + # Base flags + AX_APPEND_COMPILE_FLAGS([ dnl + -fno-strict-aliasing dnl + $3 dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + + AS_IF([test "$ax_enable_compile_warnings" != "no"],[ + # "yes" flags + AX_APPEND_COMPILE_FLAGS([ dnl + -Wall dnl + -Wextra dnl + -Wundef dnl + -Wwrite-strings dnl + -Wpointer-arith dnl + -Wmissing-declarations dnl + -Wredundant-decls dnl + -Wno-unused-parameter dnl + -Wno-missing-field-initializers dnl + -Wformat=2 dnl + -Wcast-align dnl + -Wformat-nonliteral dnl + -Wformat-security dnl + -Wsign-compare dnl + -Wstrict-aliasing dnl + -Wshadow dnl + -Winline dnl + -Wpacked dnl + -Wmissing-format-attribute dnl + -Wmissing-noreturn dnl + -Winit-self dnl + -Wredundant-decls dnl + -Wmissing-include-dirs dnl + -Wunused-but-set-variable dnl + -Warray-bounds dnl + -Wreturn-type dnl + -Wswitch-enum dnl + -Wswitch-default dnl + -Wduplicated-cond dnl + -Wduplicated-branches dnl + -Wlogical-op dnl + -Wrestrict dnl + -Wnull-dereference dnl + -Wdouble-promotion dnl + $4 dnl + $5 dnl + $6 dnl + $7 dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + if test "$ax_compiler_cxx" = "no" ; then + # C-only flags. Warn in C++ + AX_APPEND_COMPILE_FLAGS([ dnl + -Wnested-externs dnl + -Wmissing-prototypes dnl + -Wstrict-prototypes dnl + -Wdeclaration-after-statement dnl + -Wimplicit-function-declaration dnl + -Wold-style-definition dnl + -Wjump-misses-init dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + fi + ]) + AS_IF([test "$ax_enable_compile_warnings" = "error"],[ + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + AX_APPEND_FLAG([-Werror],ax_warn_cflags_variable) + + AX_APPEND_COMPILE_FLAGS([ dnl + [$ax_compiler_no_suggest_attribute_flags] dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + ]) + + # In the flags below, when disabling specific flags, always add *both* + # -Wno-foo and -Wno-error=foo. This fixes the situation where (for example) + # we enable -Werror, disable a flag, and a build bot passes CFLAGS=-Wall, + # which effectively turns that flag back on again as an error. + for flag in $ax_warn_cflags_variable; do + AS_CASE([$flag], + [-Wno-*=*],[], + [-Wno-*],[ + AX_APPEND_COMPILE_FLAGS([-Wno-error=$(AS_ECHO([$flag]) | $SED 's/^-Wno-//')], + ax_warn_cflags_variable, + [$ax_compiler_flags_test]) + ]) + done + + AC_LANG_POP([C]) + + # Substitute the variables + AC_SUBST(ax_warn_cflags_variable) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_gir.m4 b/m4/ax_compiler_flags_gir.m4 new file mode 100644 index 0000000..5b4924a --- /dev/null +++ b/m4/ax_compiler_flags_gir.m4 @@ -0,0 +1,60 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_gir.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS_GIR([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) +# +# DESCRIPTION +# +# Add warning flags for the g-ir-scanner (from GObject Introspection) to +# VARIABLE, which defaults to WARN_SCANNERFLAGS. VARIABLE is AC_SUBST-ed +# by this macro, but must be manually added to the SCANNERFLAGS variable +# for each GIR target in the code base. +# +# This macro depends on the environment set up by AX_COMPILER_FLAGS. +# Specifically, it uses the value of $ax_enable_compile_warnings to decide +# which flags to enable. +# +# LICENSE +# +# Copyright (c) 2015 Philip Withnall +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +AC_DEFUN([AX_COMPILER_FLAGS_GIR],[ + AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) + + # Variable names + m4_define([ax_warn_scannerflags_variable], + [m4_normalize(ifelse([$1],,[WARN_SCANNERFLAGS],[$1]))]) + + # Base flags + AX_APPEND_FLAG([$3],ax_warn_scannerflags_variable) + + AS_IF([test "$ax_enable_compile_warnings" != "no"],[ + # "yes" flags + AX_APPEND_FLAG([ dnl + --warn-all dnl + $4 dnl + $5 dnl + $6 dnl + $7 dnl + ],ax_warn_scannerflags_variable) + ]) + AS_IF([test "$ax_enable_compile_warnings" = "error"],[ + # "error" flags + AX_APPEND_FLAG([ dnl + --warn-error dnl + ],ax_warn_scannerflags_variable) + ]) + + # Substitute the variables + AC_SUBST(ax_warn_scannerflags_variable) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_ldflags.m4 b/m4/ax_compiler_flags_ldflags.m4 new file mode 100644 index 0000000..976d119 --- /dev/null +++ b/m4/ax_compiler_flags_ldflags.m4 @@ -0,0 +1,111 @@ +# ============================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_ldflags.html +# ============================================================================== +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS_LDFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) +# +# DESCRIPTION +# +# Add warning flags for the linker to VARIABLE, which defaults to +# WARN_LDFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be +# manually added to the LDFLAGS variable for each target in the code base. +# +# This macro depends on the environment set up by AX_COMPILER_FLAGS. +# Specifically, it uses the value of $ax_enable_compile_warnings to decide +# which flags to enable. +# +# LICENSE +# +# Copyright (c) 2014, 2015 Philip Withnall +# Copyright (c) 2017, 2018 Reini Urban +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 9 + +AC_DEFUN([AX_COMPILER_FLAGS_LDFLAGS],[ + AX_REQUIRE_DEFINED([AX_APPEND_LINK_FLAGS]) + AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) + AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) + AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) + + # Variable names + m4_define([ax_warn_ldflags_variable], + [m4_normalize(ifelse([$1],,[WARN_LDFLAGS],[$1]))]) + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_ldflags variable, + # and Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[ + ax_compiler_flags_test="-Werror=unknown-warning-option" + ],[ + ax_compiler_flags_test="" + ]) + + AX_CHECK_LINK_FLAG([-Wl,--as-needed], [ + AX_APPEND_LINK_FLAGS([-Wl,--as-needed], + [AM_LDFLAGS],[$ax_compiler_flags_test]) + ]) + AX_CHECK_LINK_FLAG([-Wl,-z,relro], [ + AX_APPEND_LINK_FLAGS([-Wl,-z,relro], + [AM_LDFLAGS],[$ax_compiler_flags_test]) + ]) + AX_CHECK_LINK_FLAG([-Wl,-z,now], [ + AX_APPEND_LINK_FLAGS([-Wl,-z,now], + [AM_LDFLAGS],[$ax_compiler_flags_test]) + ]) + AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [ + AX_APPEND_LINK_FLAGS([-Wl,-z,noexecstack], + [AM_LDFLAGS],[$ax_compiler_flags_test]) + ]) + # textonly, retpolineplt not yet + + # macOS and cygwin linker do not have --as-needed + AX_CHECK_LINK_FLAG([-Wl,--no-as-needed], [ + ax_compiler_flags_as_needed_option="-Wl,--no-as-needed" + ], [ + ax_compiler_flags_as_needed_option="" + ]) + + # macOS linker speaks with a different accent + ax_compiler_flags_fatal_warnings_option="" + AX_CHECK_LINK_FLAG([-Wl,--fatal-warnings], [ + ax_compiler_flags_fatal_warnings_option="-Wl,--fatal-warnings" + ]) + AX_CHECK_LINK_FLAG([-Wl,-fatal_warnings], [ + ax_compiler_flags_fatal_warnings_option="-Wl,-fatal_warnings" + ]) + + # Base flags + AX_APPEND_LINK_FLAGS([ dnl + $ax_compiler_flags_as_needed_option dnl + $3 dnl + ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) + + AS_IF([test "$ax_enable_compile_warnings" != "no"],[ + # "yes" flags + AX_APPEND_LINK_FLAGS([$4 $5 $6 $7], + ax_warn_ldflags_variable, + [$ax_compiler_flags_test]) + ]) + AS_IF([test "$ax_enable_compile_warnings" = "error"],[ + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + AX_APPEND_LINK_FLAGS([ dnl + $ax_compiler_flags_fatal_warnings_option dnl + ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) + ]) + + # Substitute the variables + AC_SUBST(ax_warn_ldflags_variable) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_config_dir.m4 b/m4/ax_config_dir.m4 new file mode 100644 index 0000000..0ba313f --- /dev/null +++ b/m4/ax_config_dir.m4 @@ -0,0 +1,109 @@ +dnl Copied from Audacity 1.3.10 which itself is licensed under the GPL v2 or +dnl any later version + +dnl Function to configure a sub-library now, because we need to know the result +dnl of the configuration now in order to take decisions. +dnl We don't worry about whether the configuration worked or not - it is +dnl assumed that the next thing after this will be a package-specific check to +dnl see if the package is actually available. (Hint: use pkg-config and +dnl -uninstalled.pc files if available). +dnl code based on a simplification of _AC_OUTPUT_SUBDIRS in +dnl /usr/share/autoconf/autoconf/status.m4 which implements part of +dnl AC_CONFIG_SUBDIRS + +AC_DEFUN([AX_CONFIG_DIR], +[AC_REQUIRE([AC_DISABLE_OPTION_CHECKING])] +[m4_append([_AC_LIST_SUBDIRS], [$1], [])] +[ + # Remove --cache-file and --srcdir arguments so they do not pile up. + ax_sub_configure_args= + ax_prev= + eval "set x $ac_configure_args" + shift + for ax_arg + do + if test -n "$ax_prev"; then + ax_prev= + continue + fi + case $ax_arg in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ax_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ + | --c=*) + ;; + --config-cache | -C) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ax_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ax_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + ;; + *) + case $ax_arg in + *\'*) ax_arg=`echo "$ax_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ax_sub_configure_args="$ax_sub_configure_args '$ax_arg'" ;; + esac + done + + # Always prepend --prefix to ensure using the same prefix + # in subdir configurations. + ax_arg="--prefix=$prefix" + case $ax_arg in + *\'*) ax_arg=`echo "$ax_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ax_sub_configure_args="'$ax_arg' $ax_sub_configure_args" + + # Pass --silent + if test "$silent" = yes; then + ax_sub_configure_args="--silent $ax_sub_configure_args" + fi + + ax_popdir=`pwd` + AC_MSG_NOTICE([Configuring sources in $1]) + dnl for out-of-place builds srcdir and builddir will be different, and + dnl builddir may not exist, so we must create it + AS_MKDIR_P(["$1"]) + dnl and also set the variables. As this isn't autoconf, the following may be + dnl risky: + _AC_SRCDIRS(["$1"]) + cd "$1" + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f "configure.gnu"; then + ax_sub_configure=$ac_srcdir/configure.gnu + elif test -f "$ac_srcdir/configure"; then + ax_sub_configure=$ac_srcdir/configure + elif test -f "$ac_srcdir/configure.in"; then + # This should be Cygnus configure. + ax_sub_configure=$ac_aux_dir/configure + else + AC_MSG_WARN([no configuration information is in $1]) + ax_sub_configure= + fi + + # The recursion is here. + if test -n "$ax_sub_configure"; then + # Make the cache file name correct relative to the subdirectory. + case $cache_file in + [[\\/]]* | ?:[[\\/]]* ) ax_sub_cache_file=$cache_file ;; + *) # Relative name. + ax_sub_cache_file=$ac_top_build_prefix$cache_file ;; + esac + + AC_MSG_NOTICE([running $SHELL $ax_sub_configure $ax_sub_configure_args --cache-file=$ax_sub_cache_file --srcdir=$ac_srcdir]) + # The eval makes quoting arguments work. + eval "\$SHELL \"\$ax_sub_configure\" $ax_sub_configure_args \ + --cache-file=\"\$ax_sub_cache_file\" --srcdir=\"\$ax_srcdir\"" + fi + + cd "$ax_popdir" + AC_MSG_NOTICE([Done configuring in $1]) +]) + diff --git a/m4/ax_is_release.m4 b/m4/ax_is_release.m4 new file mode 100644 index 0000000..9097ddb --- /dev/null +++ b/m4/ax_is_release.m4 @@ -0,0 +1,80 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_is_release.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_IS_RELEASE(POLICY) +# +# DESCRIPTION +# +# Determine whether the code is being configured as a release, or from +# git. Set the ax_is_release variable to 'yes' or 'no'. +# +# If building a release version, it is recommended that the configure +# script disable compiler errors and debug features, by conditionalising +# them on the ax_is_release variable. If building from git, these +# features should be enabled. +# +# The POLICY parameter specifies how ax_is_release is determined. It can +# take the following values: +# +# * git-directory: ax_is_release will be 'no' if a '.git' directory exists +# * minor-version: ax_is_release will be 'no' if the minor version number +# in $PACKAGE_VERSION is odd; this assumes +# $PACKAGE_VERSION follows the 'major.minor.micro' scheme +# * micro-version: ax_is_release will be 'no' if the micro version number +# in $PACKAGE_VERSION is odd; this assumes +# $PACKAGE_VERSION follows the 'major.minor.micro' scheme +# * dash-version: ax_is_release will be 'no' if there is a dash '-' +# in $PACKAGE_VERSION, for example 1.2-pre3, 1.2.42-a8b9 +# or 2.0-dirty (in particular this is suitable for use +# with git-version-gen) +# * always: ax_is_release will always be 'yes' +# * never: ax_is_release will always be 'no' +# +# Other policies may be added in future. +# +# LICENSE +# +# Copyright (c) 2015 Philip Withnall +# Copyright (c) 2016 Collabora Ltd. +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +#serial 7 + +AC_DEFUN([AX_IS_RELEASE],[ + AC_BEFORE([AC_INIT],[$0]) + + m4_case([$1], + [git-directory],[ + # $is_release = (.git directory does not exist) + AS_IF([test -d ${srcdir}/.git],[ax_is_release=no],[ax_is_release=yes]) + ], + [minor-version],[ + # $is_release = ($minor_version is even) + minor_version=`echo "$PACKAGE_VERSION" | sed 's/[[^.]][[^.]]*.\([[^.]][[^.]]*\).*/\1/'` + AS_IF([test "$(( $minor_version % 2 ))" -ne 0], + [ax_is_release=no],[ax_is_release=yes]) + ], + [micro-version],[ + # $is_release = ($micro_version is even) + micro_version=`echo "$PACKAGE_VERSION" | sed 's/[[^.]]*\.[[^.]]*\.\([[^.]]*\).*/\1/'` + AS_IF([test "$(( $micro_version % 2 ))" -ne 0], + [ax_is_release=no],[ax_is_release=yes]) + ], + [dash-version],[ + # $is_release = ($PACKAGE_VERSION has a dash) + AS_CASE([$PACKAGE_VERSION], + [*-*], [ax_is_release=no], + [*], [ax_is_release=yes]) + ], + [always],[ax_is_release=yes], + [never],[ax_is_release=no], + [ + AC_MSG_ERROR([Invalid policy. Valid policies: git-directory, minor-version, micro-version, dash-version, always, never.]) + ]) +]) diff --git a/m4/ax_require_defined.m4 b/m4/ax_require_defined.m4 new file mode 100644 index 0000000..17c3eab --- /dev/null +++ b/m4/ax_require_defined.m4 @@ -0,0 +1,37 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_require_defined.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_REQUIRE_DEFINED(MACRO) +# +# DESCRIPTION +# +# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have +# been defined and thus are available for use. This avoids random issues +# where a macro isn't expanded. Instead the configure script emits a +# non-fatal: +# +# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found +# +# It's like AC_REQUIRE except it doesn't expand the required macro. +# +# Here's an example: +# +# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) +# +# LICENSE +# +# Copyright (c) 2014 Mike Frysinger +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 2 + +AC_DEFUN([AX_REQUIRE_DEFINED], [dnl + m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) +])dnl AX_REQUIRE_DEFINED diff --git a/m4/gettext.m4 b/m4/gettext.m4 new file mode 100644 index 0000000..eef5073 --- /dev/null +++ b/m4/gettext.m4 @@ -0,0 +1,420 @@ +# gettext.m4 serial 68 (gettext-0.19.8) +dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], + [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST([BUILD_INCLUDED_LIBINTL]) + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST([DATADIRNAME]) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST([INSTOBJEXT]) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST([GENCAT]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST([INTLOBJS]) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + + +dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) diff --git a/m4/gsettings.m4 b/m4/gsettings.m4 new file mode 100644 index 0000000..03c16fb --- /dev/null +++ b/m4/gsettings.m4 @@ -0,0 +1,86 @@ +# Increment this whenever this file is changed. +#serial 1 + +dnl GLIB_GSETTINGS +dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether +dnl the schema should be compiled +dnl + +AC_DEFUN([GLIB_GSETTINGS], +[ + m4_pattern_allow([AM_V_GEN]) + AC_ARG_ENABLE(schemas-compile, + AS_HELP_STRING([--disable-schemas-compile], + [Disable regeneration of gschemas.compiled on install]), + [case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;; + esac]) + AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE]) + PKG_PROG_PKG_CONFIG([0.16]) + AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas]) + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas) + fi + AC_SUBST(GLIB_COMPILE_SCHEMAS) + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2]) + else + ifelse([$1],,[:],[$1]) + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p [$](@D) && touch [$]@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@ +endif +' + _GSETTINGS_SUBST(GSETTINGS_RULES) +]) + +dnl _GSETTINGS_SUBST(VARIABLE) +dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +AC_DEFUN([_GSETTINGS_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4 new file mode 100644 index 0000000..2d12f01 --- /dev/null +++ b/m4/gtk-doc.m4 @@ -0,0 +1,113 @@ +# -*- mode: autoconf -*- +# +# gtk-doc.m4 - configure macro to check for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# As a special exception, the above copyright owner gives unlimited +# permission to copy, distribute and modify the configure scripts that +# are the output of Autoconf when processing the Macro. You need not +# follow the terms of the GNU General Public License when using or +# distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. + +# serial 2 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) + AC_MSG_CHECKING([for gtk-doc]) + PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) + AC_MSG_RESULT($have_gtk_doc) + + if test "$have_gtk_doc" = "no"; then + AC_MSG_WARN([ + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found.]) + fi + + dnl check for tools we added during development + dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that + dnl may not be writable by the user. Currently, automake requires that the + dnl test name must end in '.test'. + dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 + AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) + AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then + AC_MSG_ERROR([ + You must have $gtk_doc_requires installed to build documentation for + $PACKAGE_NAME. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to '[$]0'.]) + fi + + dnl don't check for glib if we build glib + if test "x$PACKAGE_NAME" != "xglib"; then + dnl don't fail if someone does not have glib + PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) + fi + + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 + fi + AC_SUBST([AM_DEFAULT_VERBOSITY]) + + AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) diff --git a/m4/iconv.m4 b/m4/iconv.m4 new file mode 100644 index 0000000..aa159c5 --- /dev/null +++ b/m4/iconv.m4 @@ -0,0 +1,271 @@ +# iconv.m4 serial 19 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + ]], + [[int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +]])], + [am_cv_func_iconv_works=yes], , + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +m4_define([gl_iconv_AC_DEFUN], + m4_version_prereq([2.64], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [m4_ifdef([gl_00GNULIB], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [[AC_DEFUN( + [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + ]], + [[]])], + [am_cv_proto_iconv_arg1=""], + [am_cv_proto_iconv_arg1="const"]) + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) + fi +]) diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 new file mode 100644 index 0000000..aca924c --- /dev/null +++ b/m4/intlmacosx.m4 @@ -0,0 +1,56 @@ +# intlmacosx.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2004-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in Mac OS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyCurrent();]])], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/m4/introspection.m4 b/m4/introspection.m4 new file mode 100644 index 0000000..d89c3d9 --- /dev/null +++ b/m4/introspection.m4 @@ -0,0 +1,96 @@ +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl + +# serial 1 + +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first + + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl + + AC_MSG_CHECKING([for gobject-introspection]) + + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + dnl Canonicalize enable_introspection + enable_introspection=$found_introspection + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AC_MSG_RESULT([$found_introspection]) + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 new file mode 100644 index 0000000..6209de6 --- /dev/null +++ b/m4/lib-ld.m4 @@ -0,0 +1,119 @@ +# lib-ld.m4 serial 6 +dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 /dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 new file mode 100644 index 0000000..6851031 --- /dev/null +++ b/m4/lib-prefix.m4 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 0000000..a644432 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,8372 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 0000000..94b0829 --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 0000000..48bc934 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 0000000..fa04b52 --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 0000000..c6b26f8 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/nls.m4 b/m4/nls.m4 new file mode 100644 index 0000000..afdb9ca --- /dev/null +++ b/m4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software +dnl Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/m4/pkg.m4 b/m4/pkg.m4 new file mode 100644 index 0000000..d8549a4 --- /dev/null +++ b/m4/pkg.m4 @@ -0,0 +1,343 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 11 (pkg-config-0.29.1) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES diff --git a/m4/po.m4 b/m4/po.m4 new file mode 100644 index 0000000..c5a2f6b --- /dev/null +++ b/m4/po.m4 @@ -0,0 +1,453 @@ +# po.m4 serial 24 (gettext-0.19) +dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.60]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.19]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ([2.50]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/m4/vapigen.m4 b/m4/vapigen.m4 new file mode 100644 index 0000000..2c435e7 --- /dev/null +++ b/m4/vapigen.m4 @@ -0,0 +1,101 @@ +dnl vapigen.m4 +dnl +dnl Copyright 2012 Evan Nemerson +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License, or (at your option) any later version. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND_INTROSPECTION], [DEFAULT]) +# -------------------------------------- +# Check vapigen existence and version +# +# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation +AC_DEFUN([VAPIGEN_CHECK], +[ + AS_IF([test "x$3" != "xyes"], [ + m4_provide_if([GOBJECT_INTROSPECTION_CHECK], [], [ + m4_provide_if([GOBJECT_INTROSPECTION_REQUIRE], [], [ + AC_MSG_ERROR([[You must call GOBJECT_INTROSPECTION_CHECK or GOBJECT_INTROSPECTION_REQUIRE before using VAPIGEN_CHECK unless using the FOUND_INTROSPECTION argument is "yes"]]) + ]) + ]) + ]) + + AC_ARG_ENABLE([vala], + [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[ + AS_IF([test "x$4" = "x"], [ + enable_vala=auto + ], [ + enable_vala=$4 + ]) + ]) + + AS_CASE([$enable_vala], [no], [enable_vala=no], + [yes], [ + AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [ + AC_MSG_ERROR([Vala bindings require GObject Introspection]) + ]) + ], [auto], [ + AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [ + enable_vala=no + ]) + ], [ + AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@]) + ]) + + AS_IF([test "x$2" = "x"], [ + vapigen_pkg_name=vapigen + ], [ + vapigen_pkg_name=vapigen-$2 + ]) + AS_IF([test "x$1" = "x"], [ + vapigen_pkg="$vapigen_pkg_name" + ], [ + vapigen_pkg="$vapigen_pkg_name >= $1" + ]) + + PKG_PROG_PKG_CONFIG + + PKG_CHECK_EXISTS([$vapigen_pkg], [ + AS_IF([test "$enable_vala" = "auto"], [ + enable_vala=yes + ]) + ], [ + AS_CASE([$enable_vala], [yes], [ + AC_MSG_ERROR([$vapigen_pkg not found]) + ], [auto], [ + enable_vala=no + ]) + ]) + + AC_MSG_CHECKING([for vapigen]) + + AS_CASE([$enable_vala], + [yes], [ + VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name` + VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen + AS_IF([test "x$2" = "x"], [ + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name` + ], [ + VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name` + ]) + ]) + + AC_MSG_RESULT([$enable_vala]) + + AC_SUBST([VAPIGEN]) + AC_SUBST([VAPIGEN_VAPIDIR]) + AC_SUBST([VAPIGEN_MAKEFILE]) + + AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes") +]) diff --git a/missing b/missing new file mode 100755 index 0000000..b7e571e --- /dev/null +++ b/missing @@ -0,0 +1,215 @@ +#!/bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..dec0c71 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,73 @@ +af +an +ar +as +ast +be +bg +bn_IN +bs +ca +ca@valencia +cs +da +de +el +en_GB +eo +es +et +eu +fa +fi +fr +fur +ga +gd +gl +gu +he +hi +hr +hu +id +is +it +ja +kk +km +kn +ko +lt +lv +mk +ml +mr +ms +nb +ne +nl +oc +or +pa +pl +pt +pt_BR +ro +ru +sk +sl +sr +sr@latin +sv +ta +te +tg +th +tr +ug +uk +vi +zh_CN +zh_HK +zh_TW diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..38c293d --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,483 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. +# +# Origin: gettext-0.19.8 +GETTEXT_MACRO_VERSION = 0.19 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SED = @SED@ +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +# When building gettext-tools, we prefer to use the built programs +# rather than installed programs. However, we can't do that when we +# are cross compiling. +CROSS_COMPILING = @CROSS_COMPILING@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot +POFILESDEPS_yes = $(POFILESDEPS_) +POFILESDEPS_no = +POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) + +DISTFILESDEPS_ = update-po +DISTFILESDEPS_yes = $(DISTFILESDEPS_) +DISTFILESDEPS_no = +DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +CHECK_MACRO_VERSION = \ + test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + @$(CHECK_MACRO_VERSION) + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \ + -size -10000000c -exec grep 'GNU @PACKAGE@' \ + /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po; \ + rm -f $(DOMAIN).1po; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(POFILESDEPS) + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 0000000..7c058b3 --- /dev/null +++ b/po/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = GNOME Online Accounts Authors + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts&keywords=I18N+L10N&component=general + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..b65650c --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,29 @@ +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. +data/org.gnome.online-accounts.gschema.xml +src/daemon/goadaemon.c +src/goabackend/goaewsclient.c +src/goabackend/goaexchangeprovider.c +src/goabackend/goafacebookprovider.c +src/goabackend/goaflickrprovider.c +src/goabackend/goafoursquareprovider.c +src/goabackend/goagoogleprovider.c +src/goabackend/goaimapauthlogin.c +src/goabackend/goaimapsmtpprovider.c +src/goabackend/goakerberosprovider.c +src/goabackend/goalastfmprovider.c +src/goabackend/goamediaserverprovider.c +src/goabackend/goaoauth2provider.c +src/goabackend/goaoauthprovider.c +src/goabackend/goaowncloudprovider.c +src/goabackend/goapocketprovider.c +src/goabackend/goaprovider.c +src/goabackend/goasmtpauth.c +src/goabackend/goatelepathyprovider.c +src/goabackend/goatodoistprovider.c +src/goabackend/goautils.c +src/goabackend/goawebview.c +src/goabackend/goawindowsliveprovider.c +src/goaidentity/goaidentityservice.c +src/goaidentity/goakerberosidentity.c +src/goaidentity/goakerberosidentitymanager.c diff --git a/po/Rules-quot b/po/Rules-quot new file mode 100644 index 0000000..baf6528 --- /dev/null +++ b/po/Rules-quot @@ -0,0 +1,58 @@ +# This file, Rules-quot, can be copied and used freely without restrictions. +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ + | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ + { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ + $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ + ;; \ + *) \ + $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ + ;; \ + esac } 2>/dev/null > $$tmpdir/$$lang.new.po \ + ; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/po/af.gmo b/po/af.gmo new file mode 100644 index 0000000..d91301b Binary files /dev/null and b/po/af.gmo differ diff --git a/po/af.po b/po/af.po new file mode 100644 index 0000000..ec615ee --- /dev/null +++ b/po/af.po @@ -0,0 +1,810 @@ +# Afrikaans translation for gnome-online-accounts. +# This file is distributed under the same license as the gnome-online-accounts package. +# F Wolff , 2013. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts gnome-3-10\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-09-27 13:14+0000\n" +"PO-Revision-Date: 2013-09-27 15:56+0200\n" +"Last-Translator: F Wolff \n" +"Language-Team: translate-discuss-af@lists.sourceforge.net\n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:788 ../src/daemon/goadaemon.c:1034 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Kon nie 'n verskaffer vind vir %s nie" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1022 +msgid "ProviderType property is not set for account" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:234 ../src/goabackend/goahttpclient.c:175 +#, c-format +msgid "Code: %u - Unexpected response from server" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:260 +#, c-format +msgid "Failed to find Autodiscover element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:274 +#, c-format +msgid "Failed to find Response element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:288 +#, c-format +msgid "Failed to find Account element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:305 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:79 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:317 +#: ../src/goabackend/goaexchangeprovider.c:1026 +#: ../src/goabackend/goaowncloudprovider.c:403 +#: ../src/goabackend/goaowncloudprovider.c:1188 +#, c-format +msgid "Did not find password with identity `%s' in credentials" +msgstr "" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:345 +#: ../src/goabackend/goaowncloudprovider.c:426 +#, c-format +msgid "Invalid password with username `%s' (%s, %d): " +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:499 +#: ../src/goabackend/goaimapsmtpprovider.c:697 +msgid "_E-mail" +msgstr "_E-pos" + +#: ../src/goabackend/goaexchangeprovider.c:500 +#: ../src/goabackend/goaimapsmtpprovider.c:717 +#: ../src/goabackend/goaimapsmtpprovider.c:737 +#: ../src/goabackend/goaowncloudprovider.c:655 +msgid "_Password" +msgstr "_Wagwoord" + +#: ../src/goabackend/goaexchangeprovider.c:503 +msgid "_Custom" +msgstr "_Pasgemaak" + +#: ../src/goabackend/goaexchangeprovider.c:514 +#: ../src/goabackend/goaimapsmtpprovider.c:716 +#: ../src/goabackend/goaimapsmtpprovider.c:736 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:654 +msgid "User_name" +msgstr "Gebruiker_naam" + +#: ../src/goabackend/goaexchangeprovider.c:515 +#: ../src/goabackend/goaowncloudprovider.c:653 +msgid "_Server" +msgstr "_Bediener" + +#: ../src/goabackend/goaexchangeprovider.c:545 +#: ../src/goabackend/goaimapsmtpprovider.c:769 +#: ../src/goabackend/goakerberosprovider.c:1154 +#: ../src/goabackend/goaowncloudprovider.c:684 +msgid "Connecting…" +msgstr "Koppel tans…" + +#: ../src/goabackend/goaexchangeprovider.c:650 +#: ../src/goabackend/goaexchangeprovider.c:845 +#: ../src/goabackend/goaimapsmtpprovider.c:929 +#: ../src/goabackend/goaimapsmtpprovider.c:964 +#: ../src/goabackend/goaimapsmtpprovider.c:1052 +#: ../src/goabackend/goaimapsmtpprovider.c:1308 +#: ../src/goabackend/goaimapsmtpprovider.c:1381 +#: ../src/goabackend/goakerberosprovider.c:1545 +#: ../src/goabackend/goaoauth2provider.c:1133 +#: ../src/goabackend/goaoauthprovider.c:1041 +#: ../src/goabackend/goaowncloudprovider.c:795 +#: ../src/goabackend/goaowncloudprovider.c:1008 +#: ../src/goabackend/goatelepathyprovider.c:467 +#: ../src/goabackend/goatelepathyprovider.c:516 +#: ../src/goabackend/goatelepathyprovider.c:690 +#, c-format +msgid "Dialog was dismissed" +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:688 +#: ../src/goabackend/goaexchangeprovider.c:873 +#: ../src/goabackend/goaimapsmtpprovider.c:994 +#: ../src/goabackend/goaimapsmtpprovider.c:1085 +#: ../src/goabackend/goaimapsmtpprovider.c:1332 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goaowncloudprovider.c:837 +#: ../src/goabackend/goaowncloudprovider.c:1029 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1098 +#: ../src/goabackend/goaowncloudprovider.c:850 +msgid "_Ignore" +msgstr "_Ignoreer" + +#: ../src/goabackend/goaexchangeprovider.c:706 +#: ../src/goabackend/goaexchangeprovider.c:892 +#: ../src/goabackend/goaimapsmtpprovider.c:1012 +#: ../src/goabackend/goaimapsmtpprovider.c:1103 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +#: ../src/goabackend/goaimapsmtpprovider.c:1425 +#: ../src/goabackend/goakerberosprovider.c:1655 +#: ../src/goabackend/goaowncloudprovider.c:855 +#: ../src/goabackend/goaowncloudprovider.c:1048 +msgid "_Try Again" +msgstr "_Probeer weer" + +#: ../src/goabackend/goaexchangeprovider.c:711 +#: ../src/goabackend/goaexchangeprovider.c:885 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Kon nie koppel aan die Microsoft Exchange-bediener nie" + +#: ../src/goabackend/goaexchangeprovider.c:945 +#: ../src/goabackend/goafacebookprovider.c:415 +#: ../src/goabackend/goaflickrprovider.c:425 +#: ../src/goabackend/goagoogleprovider.c:547 +#: ../src/goabackend/goakerberosprovider.c:1726 +#: ../src/goabackend/goaowncloudprovider.c:1102 +#: ../src/goabackend/goatelepathyprovider.c:895 +#: ../src/goabackend/goawindowsliveprovider.c:430 +msgid "Use for" +msgstr "Gebruik vir" + +#: ../src/goabackend/goaexchangeprovider.c:947 +#: ../src/goabackend/goagoogleprovider.c:549 +msgid "_Mail" +msgstr "_Pos" + +#: ../src/goabackend/goaexchangeprovider.c:952 +#: ../src/goabackend/goagoogleprovider.c:554 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "Cale_ndar" +msgstr "Kale_nder" + +#: ../src/goabackend/goaexchangeprovider.c:957 +#: ../src/goabackend/goagoogleprovider.c:559 +#: ../src/goabackend/goaowncloudprovider.c:1109 +msgid "_Contacts" +msgstr "_Kontakte" + +#: ../src/goabackend/goafacebookprovider.c:82 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:211 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goatwitterprovider.c:166 +#: ../src/goabackend/goawindowsliveprovider.c:195 +#: ../src/goabackend/goayahooprovider.c:187 +#, c-format +msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goafacebookprovider.c:230 +#: ../src/goabackend/goafacebookprovider.c:242 +#: ../src/goabackend/goafacebookprovider.c:252 +#: ../src/goabackend/goaflickrprovider.c:208 +#: ../src/goabackend/goaflickrprovider.c:220 +#: ../src/goabackend/goaflickrprovider.c:230 +#: ../src/goabackend/goaflickrprovider.c:240 +#: ../src/goabackend/goaflickrprovider.c:250 +#: ../src/goabackend/goagoogleprovider.c:229 +#: ../src/goabackend/goagoogleprovider.c:241 +#: ../src/goabackend/goaoauth2provider.c:682 +#: ../src/goabackend/goaoauth2provider.c:712 +#: ../src/goabackend/goaoauth2provider.c:724 +#: ../src/goabackend/goatwitterprovider.c:185 +#: ../src/goabackend/goatwitterprovider.c:197 +#: ../src/goabackend/goatwitterprovider.c:207 +#: ../src/goabackend/goawindowsliveprovider.c:214 +#: ../src/goabackend/goawindowsliveprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:238 +#: ../src/goabackend/goayahooprovider.c:206 +#: ../src/goabackend/goayahooprovider.c:218 +#: ../src/goabackend/goayahooprovider.c:229 +#: ../src/goabackend/goayahooprovider.c:275 +#: ../src/goabackend/goayahooprovider.c:287 +#: ../src/goabackend/goayahooprovider.c:298 +#, c-format +msgid "Could not parse response" +msgstr "Kon nie antwoord ontleed nie" + +#: ../src/goabackend/goafacebookprovider.c:417 +#: ../src/goabackend/goagoogleprovider.c:564 +#: ../src/goabackend/goatelepathyprovider.c:897 +#: ../src/goabackend/goawindowsliveprovider.c:432 +msgid "C_hat" +msgstr "_Gesels" + +#: ../src/goabackend/goaflickrprovider.c:83 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:189 +#, c-format +msgid "Expected status 200 when requesting user id, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaflickrprovider.c:328 +#: ../src/goabackend/goayahooprovider.c:350 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Die stelsel se tyd is ongeldig. Kontroleer die instellings vir datum en tyd." + +#: ../src/goabackend/goaflickrprovider.c:427 +msgid "_Photos" +msgstr "_Foto's" + +#: ../src/goabackend/goagoogleprovider.c:82 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:569 +#: ../src/goabackend/goaowncloudprovider.c:1114 +#: ../src/goabackend/goawindowsliveprovider.c:437 +msgid "_Documents" +msgstr "_Dokumente" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:99 +#: ../src/goabackend/goasmtpauthplain.c:146 +#, c-format +msgid "Service not available" +msgstr "Diens nie beskikbaar nie" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:120 +#: ../src/goabackend/goasmtpauthplain.c:115 +#, c-format +msgid "Authentication failed" +msgstr "" + +#: ../src/goabackend/goaimapauthlogin.c:145 +#: ../src/goabackend/goasmtpauthplain.c:646 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Bediener ondersteun nie PLAIN nie" + +#: ../src/goabackend/goaimapauthlogin.c:199 +#: ../src/goabackend/goasmtpauthplain.c:751 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Bediener ondersteun nie STARTTLS nie" + +#: ../src/goabackend/goaimapsmtpprovider.c:82 +msgid "IMAP and SMTP" +msgstr "IMAP en SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:362 +#, c-format +msgid "Did not find imap-password with identity `%s' in credentials" +msgstr "" + +#. Translators: the first %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:391 +#, c-format +msgid "Invalid imap-password with username `%s' (%s, %d): " +msgstr "" + +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Did not find smtp-password with identity `%s' in credentials" +msgstr "" + +#. Translators: the first %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:446 +#, c-format +msgid "Invalid smtp-password with username `%s' (%s, %d): " +msgstr "" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:632 +msgid "_Encryption" +msgstr "_Enkripsie" + +#: ../src/goabackend/goaimapsmtpprovider.c:635 +msgid "None" +msgstr "Geen" + +#: ../src/goabackend/goaimapsmtpprovider.c:638 +msgid "STARTTLS after connecting" +msgstr "" + +#: ../src/goabackend/goaimapsmtpprovider.c:641 +msgid "SSL on a dedicated port" +msgstr "SSL op toegewyde poort" + +#: ../src/goabackend/goaimapsmtpprovider.c:698 +msgid "_Name" +msgstr "_Naam" + +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "IMAP _Server" +msgstr "IMAP-_bediener" + +#: ../src/goabackend/goaimapsmtpprovider.c:735 +msgid "SMTP _Server" +msgstr "SMTP-_bediener" + +#: ../src/goabackend/goaimapsmtpprovider.c:1017 +#: ../src/goabackend/goaimapsmtpprovider.c:1344 +msgid "Error connecting to IMAP server" +msgstr "Fout met die koppeling aan die IMAP-bediener" + +#: ../src/goabackend/goaimapsmtpprovider.c:1108 +#: ../src/goabackend/goaimapsmtpprovider.c:1418 +msgid "Error connecting to SMTP server" +msgstr "Fout met die koppeling aan die SMTP-bediener" + +#: ../src/goabackend/goaimapsmtpprovider.c:1517 +msgid "E-mail" +msgstr "E-pos" + +#: ../src/goabackend/goaimapsmtpprovider.c:1521 +msgid "Name" +msgstr "Naam" + +#: ../src/goabackend/goaimapsmtpprovider.c:1531 +#: ../src/goabackend/goaimapsmtpprovider.c:1534 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +#: ../src/goabackend/goaimapsmtpprovider.c:1548 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:87 +msgid "Enterprise Login (Kerberos)" +msgstr "Ondernemingaanmelding (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:455 +msgid "Identity service returned invalid key" +msgstr "Identiteitsdiens het net ongeldige sleutel geantwoord" + +#: ../src/goabackend/goakerberosprovider.c:728 +#, c-format +msgid "Could not find saved credentials for principal `%s' in keyring" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:738 +#, c-format +msgid "Did not find password for principal `%s' in credentials" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:1121 +msgid "_Domain" +msgstr "_Domein" + +#: ../src/goabackend/goakerberosprovider.c:1122 +msgid "Enterprise domain or realm name" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:1354 +#: ../src/goaidentity/goaidentityservice.c:1085 +msgid "Log In to Realm" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:1355 +msgid "Please enter your password below." +msgstr "Tik u wagwoord onder in." + +#: ../src/goabackend/goakerberosprovider.c:1356 +msgid "Remember this password" +msgstr "Onthou dié wagwoord" + +#: ../src/goabackend/goakerberosprovider.c:1495 +#, c-format +msgid "The domain is not valid" +msgstr "Die domein is nie geldig nie" + +#: ../src/goabackend/goakerberosprovider.c:1650 +msgid "Error connecting to enterprise identity server" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:1728 +msgid "Network _Resources" +msgstr "Netwe_rkhulpbronne" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:658 +#: ../src/goabackend/goaoauthprovider.c:586 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:916 +#: ../src/goabackend/goaoauth2provider.c:956 +#, c-format +msgid "Authorization response was \"%s\"" +msgstr "" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:1059 +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1159 +#: ../src/goabackend/goaoauthprovider.c:1072 +msgid "Error getting an Access Token: " +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1174 +#: ../src/goabackend/goaoauthprovider.c:1085 +msgid "Error getting identity: " +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1386 +#: ../src/goabackend/goaoauthprovider.c:1391 +#, c-format +msgid "Was asked to login as %s, but logged in as %s" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1545 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1584 +#: ../src/goabackend/goaoauthprovider.c:1619 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:609 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:911 +msgid "Error getting a Request Token: " +msgstr "" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:944 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:961 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:978 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:1575 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" + +#: ../src/goabackend/goaowncloudprovider.c:87 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:860 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "Error connecting to ownCloud server" +msgstr "Fout met die koppeling aan die ownCloud-bediener" + +#: ../src/goabackend/goaowncloudprovider.c:1119 +msgid "_Files" +msgstr "_Lêers" + +#: ../src/goabackend/goaprovider.c:688 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:161 +#, c-format +msgid "TLS not available" +msgstr "TLS nie beskikbaar nie" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:227 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:237 +#, c-format +msgid "Failed to parse email address" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:249 +#, c-format +msgid "Cannot do SMTP PLAIN without a domain" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:287 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:298 +#, c-format +msgid "Cannot do SMTP PLAIN without a password" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:184 +#, c-format +msgid "Telepathy chat account not found" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:373 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:416 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:543 +msgid "Connection Settings" +msgstr "Verbindinginstellings" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "Personal Details" +msgstr "Persoonlike besonderhede" + +#: ../src/goabackend/goatelepathyprovider.c:861 +msgid "Cannot save the connection parameters" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:873 +msgid "Cannot save your personal information on the server" +msgstr "" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:902 +msgid "_Connection Settings" +msgstr "_Verbindinginstellings" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:906 +msgid "_Personal Details" +msgstr "_Persoonlike besonderhede" + +#: ../src/goabackend/goatwitterprovider.c:81 +msgid "Twitter" +msgstr "Twitter" + +#: ../src/goabackend/goautils.c:120 +#, c-format +msgid "A %s account already exists for %s" +msgstr "'n %s-rekening bestaan reeds vir %s" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:142 +#, c-format +msgid "%s account" +msgstr "%s-rekening" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:186 +msgid "Failed to delete credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:238 +msgid "Failed to retrieve credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:248 +msgid "No credentials found in the keyring" +msgstr "" + +#: ../src/goabackend/goautils.c:261 +msgid "Error parsing result obtained from the keyring: " +msgstr "" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:304 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:321 +msgid "Failed to store credentials in the keyring" +msgstr "" + +#: ../src/goabackend/goautils.c:542 +msgid "The signing certificate authority is not known." +msgstr "" + +#: ../src/goabackend/goautils.c:546 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" + +#: ../src/goabackend/goautils.c:551 +msgid "The certificate's activation time is still in the future." +msgstr "" + +#: ../src/goabackend/goautils.c:555 +msgid "The certificate has expired." +msgstr "" + +#: ../src/goabackend/goautils.c:559 +msgid "The certificate has been revoked." +msgstr "" + +#: ../src/goabackend/goautils.c:563 +msgid "The certificate's algorithm is considered insecure." +msgstr "" + +#: ../src/goabackend/goautils.c:567 +msgid "Invalid certificate." +msgstr "" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:74 +#, c-format +msgid "Loading “%s”…" +msgstr "Laai tans “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:84 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goayahooprovider.c:81 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:255 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" + +#: ../src/goaidentity/goaalarm.c:245 +msgid "Time" +msgstr "Tyd" + +#: ../src/goaidentity/goaalarm.c:246 +msgid "Time to fire" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:378 +msgid "initial secret passed before secret key exchange" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:570 +msgid "Initial secret key is invalid" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:1090 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:269 +#: ../src/goaidentity/goakerberosidentity.c:278 +#: ../src/goaidentity/goakerberosidentity.c:606 +msgid "Could not find identity in credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:619 +msgid "Could not find identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:657 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:674 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1012 +#, c-format +msgid "No associated identification found" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1093 +msgid "Could not create credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1127 +msgid "Could not initialize credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1146 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1423 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1435 +msgid "Could not renew identity: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1452 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1492 +msgid "Could not erase identity: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentitymanager.c:747 +msgid "Could not find identity" +msgstr "" + +#: ../src/goaidentity/goakerberosidentitymanager.c:824 +msgid "Could not create credential cache for identity" +msgstr "" diff --git a/po/an.gmo b/po/an.gmo new file mode 100644 index 0000000..147126a Binary files /dev/null and b/po/an.gmo differ diff --git a/po/an.po b/po/an.po new file mode 100644 index 0000000..fa9aa36 --- /dev/null +++ b/po/an.po @@ -0,0 +1,1025 @@ +# Aragonese translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# jorgtum , 2012. +# Daniel Martinez , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2015-12-27 11:44+0000\n" +"PO-Revision-Date: 2015-12-27 18:11+0200\n" +"Last-Translator: Daniel \n" +"Language-Team: Aragonés \n" +"Language: an\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Pootle 2.5.1.1\n" +"X-POOTLE-MTIME: 1451236299.000000\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:838 ../src/daemon/goadaemon.c:1098 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Ha fallau en mirar un furnidor para: %s" + +#: ../src/daemon/goadaemon.c:1026 +msgid "IsLocked property is set for account" +msgstr "A propiedat \"IsLocked\" ye establida t'a cuenta" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1086 +msgid "ProviderType property is not set for account" +msgstr "A propiedat \"ProviderType\" no ye establida t'a cuenta" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Ha fallau en analisar a respuesta XML d'a detección automatica" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:261 ../src/goabackend/goaewsclient.c:276 +#: ../src/goabackend/goaewsclient.c:291 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "S'ha produciu una error en mirar l'elemento '%s'" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:312 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Ha fallau en mirar ASUrl y OABUrl en a respuesta d'a detección automatica" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:994 +#: ../src/goabackend/goalastfmprovider.c:286 +#: ../src/goabackend/goaowncloudprovider.c:391 +#: ../src/goabackend/goaowncloudprovider.c:1145 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "No s'ha trobau a clau con a identidat «%s» en as credencials" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goalastfmprovider.c:302 +#: ../src/goabackend/goaowncloudprovider.c:414 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "Clau incorrecta t'o nombre d'usuario '%s' (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:700 +msgid "_E-mail" +msgstr "Correu _electronico" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:720 +#: ../src/goabackend/goaimapsmtpprovider.c:740 +#: ../src/goabackend/goalastfmprovider.c:443 +#: ../src/goabackend/goaowncloudprovider.c:642 +msgid "_Password" +msgstr "_Clau" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "_Personalizau" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:719 +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goakerberosprovider.c:727 +#: ../src/goabackend/goalastfmprovider.c:442 +#: ../src/goabackend/goaowncloudprovider.c:641 +msgid "User_name" +msgstr "_Nombre d'usuario" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:640 +msgid "_Server" +msgstr "_Servidor" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:752 +#: ../src/goabackend/goakerberosprovider.c:732 +#: ../src/goabackend/goalastfmprovider.c:451 +#: ../src/goabackend/goaowncloudprovider.c:651 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "_Cancelar" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:733 +#: ../src/goabackend/goalastfmprovider.c:452 +#: ../src/goabackend/goaowncloudprovider.c:652 +msgid "C_onnect" +msgstr "C_onnectar" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:769 +#: ../src/goabackend/goakerberosprovider.c:749 +#: ../src/goabackend/goalastfmprovider.c:468 +#: ../src/goabackend/goaowncloudprovider.c:668 +msgid "Connecting…" +msgstr "Se'n ye connectando…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:931 +#: ../src/goabackend/goaimapsmtpprovider.c:966 +#: ../src/goabackend/goaimapsmtpprovider.c:1054 +#: ../src/goabackend/goaimapsmtpprovider.c:1318 +#: ../src/goabackend/goaimapsmtpprovider.c:1391 +#: ../src/goabackend/goakerberosprovider.c:1150 +#: ../src/goabackend/goalastfmprovider.c:663 +#: ../src/goabackend/goalastfmprovider.c:830 +#: ../src/goabackend/goamediaserverprovider.c:475 +#: ../src/goabackend/goaoauth2provider.c:1034 +#: ../src/goabackend/goaoauthprovider.c:863 +#: ../src/goabackend/goaowncloudprovider.c:779 +#: ../src/goabackend/goaowncloudprovider.c:994 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "S'ha descartau lo dialogo" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:996 +#: ../src/goabackend/goaimapsmtpprovider.c:1089 +#: ../src/goabackend/goaimapsmtpprovider.c:1342 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:697 +#: ../src/goabackend/goalastfmprovider.c:849 +#: ../src/goabackend/goaowncloudprovider.c:821 +#: ../src/goabackend/goaowncloudprovider.c:1015 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "S'ha descartau lo dialogo (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1009 +#: ../src/goabackend/goaimapsmtpprovider.c:1102 +#: ../src/goabackend/goaowncloudprovider.c:834 +msgid "_Ignore" +msgstr "_Ignorar" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1014 +#: ../src/goabackend/goaimapsmtpprovider.c:1107 +#: ../src/goabackend/goaimapsmtpprovider.c:1361 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1260 +#: ../src/goabackend/goalastfmprovider.c:709 +#: ../src/goabackend/goalastfmprovider.c:866 +#: ../src/goabackend/goaowncloudprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "_Try Again" +msgstr "_Prebar atra vez" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "" +"S'ha produciu una error en connectar ta lo servidor de Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goafoursquareprovider.c:189 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goawindowsliveprovider.c:195 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"S'asperaba un estau 200 quan s'ha solicitau a tuya identidat, en cuenta s'ha " +"obteniu o estau %d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:234 +#: ../src/goabackend/goafacebookprovider.c:246 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goafoursquareprovider.c:208 +#: ../src/goabackend/goafoursquareprovider.c:220 +#: ../src/goabackend/goafoursquareprovider.c:231 +#: ../src/goabackend/goafoursquareprovider.c:242 +#: ../src/goabackend/goafoursquareprovider.c:253 +#: ../src/goabackend/goafoursquareprovider.c:264 +#: ../src/goabackend/goagoogleprovider.c:240 +#: ../src/goabackend/goagoogleprovider.c:252 +#: ../src/goabackend/goalastfmprovider.c:211 +#: ../src/goabackend/goalastfmprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:237 +#: ../src/goabackend/goalastfmprovider.c:526 +#: ../src/goabackend/goalastfmprovider.c:535 +#: ../src/goabackend/goalastfmprovider.c:550 +#: ../src/goabackend/goalastfmprovider.c:557 +#: ../src/goabackend/goaoauth2provider.c:699 +#: ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 ../src/goabackend/goautils.c:148 +#: ../src/goabackend/goawindowsliveprovider.c:214 +#: ../src/goabackend/goawindowsliveprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:238 +#, c-format +msgid "Could not parse response" +msgstr "No s'ha puesto analisar a respuesta" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:321 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"a hora d'o suyo sistema no ye valida. Compreba la suya configuración de " +"calendata y hora." + +#: ../src/goabackend/goafoursquareprovider.c:77 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "Servicio no disponible" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goalastfmprovider.c:543 +#: ../src/goabackend/goasmtpauth.c:113 ../src/goabackend/goautils.c:579 +#, c-format +msgid "Authentication failed" +msgstr "Falló l'autenticación" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "O servidor no suporta PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:194 ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Oservidor no suporta STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP y SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:358 +#: ../src/goabackend/goaimapsmtpprovider.c:416 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "No s'ha trobau %s con a identidat '%s' en as credencials" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:389 +#: ../src/goabackend/goaimapsmtpprovider.c:449 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s no valida ta lo nombre d'usuario '%s' (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:636 +msgid "_Encryption" +msgstr "_Zifrau" + +#: ../src/goabackend/goaimapsmtpprovider.c:639 +msgid "None" +msgstr "Garra" + +#: ../src/goabackend/goaimapsmtpprovider.c:642 +msgid "STARTTLS after connecting" +msgstr "STARTTLS después de connectar" + +#: ../src/goabackend/goaimapsmtpprovider.c:645 +msgid "SSL on a dedicated port" +msgstr "SSL en un puerto dedicau" + +#: ../src/goabackend/goaimapsmtpprovider.c:701 +msgid "_Name" +msgstr "_Nombre" + +#: ../src/goabackend/goaimapsmtpprovider.c:718 +msgid "IMAP _Server" +msgstr "_Servidor IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:738 +msgid "SMTP _Server" +msgstr "_Servidor SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +#: ../src/goabackend/goaimapsmtpprovider.c:1035 +#: ../src/goabackend/goaimapsmtpprovider.c:1371 +msgid "_Forward" +msgstr "Renin_viar" + +#: ../src/goabackend/goaimapsmtpprovider.c:1019 +#: ../src/goabackend/goaimapsmtpprovider.c:1354 +msgid "Error connecting to IMAP server" +msgstr "Error en connectar a o servidor IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1112 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Error en connectar a o servidor SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1527 +msgid "E-mail" +msgstr "Correu electronico" + +#: ../src/goabackend/goaimapsmtpprovider.c:1531 +msgid "Name" +msgstr "Nombre" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1560 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:99 +msgid "Enterprise Login (Kerberos)" +msgstr "Encieto de sesión empresarial (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:309 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"No s'han puesto trobar as credencials alzadas ta '%s' en l'aniello de claus" + +#: ../src/goabackend/goakerberosprovider.c:322 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "No s'ha trobau a clau ta '%s' en as credencials" + +#: ../src/goabackend/goakerberosprovider.c:719 +msgid "_Domain" +msgstr "_Dominio" + +#: ../src/goabackend/goakerberosprovider.c:720 +msgid "Enterprise domain or realm name" +msgstr "Dominio empresarial u nombre d'o dominio" + +#: ../src/goabackend/goakerberosprovider.c:956 +#: ../src/goaidentity/goaidentityservice.c:1132 +msgid "Log In to Realm" +msgstr "Encetar sesión en o dominio" + +#: ../src/goabackend/goakerberosprovider.c:957 +msgid "Please enter your password below." +msgstr "Mete a tuya clau contino." + +#: ../src/goabackend/goakerberosprovider.c:958 +msgid "Remember this password" +msgstr "Remerar ista clau" + +#: ../src/goabackend/goakerberosprovider.c:1100 +#, c-format +msgid "The domain is not valid" +msgstr "O dominio no ye valido" + +#: ../src/goabackend/goakerberosprovider.c:1255 +msgid "Error connecting to enterprise identity server" +msgstr "" +"S'ha produciu una error en connectar ta lo servidor empresarial d'identidat" + +#: ../src/goabackend/goakerberosprovider.c:1521 +#, c-format +msgid "Identity service returned invalid key" +msgstr "O servicio d'identidat ha retornau una clau no valida" + +#: ../src/goabackend/goalastfmprovider.c:64 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:711 +#: ../src/goabackend/goalastfmprovider.c:860 +#| msgid "Error connecting to IMAP server" +msgid "Error connecting to Last.fm" +msgstr "Error en connectar a Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:76 +msgid "Media Server" +msgstr "Servidor media" + +#: ../src/goabackend/goamediaserverprovider.c:371 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"No se puet adhibir conteniu Personal a las tuyas aplicacions a traviés d'un " +"servidor media." + +#: ../src/goabackend/goamediaserverprovider.c:385 +msgid "Available Media Servers" +msgstr "Servidors de media disponibles" + +#: ../src/goabackend/goamediaserverprovider.c:415 +msgid "No media servers found" +msgstr "No s'han trobau servidors de media" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"S'asperaba un estau 200 quan se solicitó acceso a lo token, en o suyo puesto " +"s'obtenió l'estau %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:843 +msgid "Authorization response: " +msgstr "Respuesta a l'autorización" + +#: ../src/goabackend/goaoauth2provider.c:913 +#, c-format +msgid "Authorization response: %s" +msgstr "Respuesta a l'autorización: %s" + +#: ../src/goabackend/goaoauth2provider.c:1060 +#: ../src/goabackend/goaoauthprovider.c:894 +msgid "Error getting an Access Token: " +msgstr "S'ha produciu una error en obtener o teste d'acceso: " + +#: ../src/goabackend/goaoauth2provider.c:1075 +#: ../src/goabackend/goaoauthprovider.c:907 +msgid "Error getting identity: " +msgstr "S'ha produciu una error en obtener a identidat: " + +#: ../src/goabackend/goaoauth2provider.c:1292 +#: ../src/goabackend/goaoauthprovider.c:1215 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "S'ha solicitau encetar a sesión como %s, pero se'n ha encetau como %s" + +#: ../src/goabackend/goaoauth2provider.c:1454 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "As credencials no contienen o \"access_token\"" + +#: ../src/goabackend/goaoauth2provider.c:1493 +#: ../src/goabackend/goaoauthprovider.c:1443 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Ha fallau en esviellar l'acceso a lo teste (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Faltan as capiteras d'o \"access_token\" u d'o \"access_token_secret\" en a " +"respuesta" + +#: ../src/goabackend/goaoauthprovider.c:776 +msgid "Error getting a Request Token: " +msgstr "S'ha produciu una error en obtener o teste solicitau: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:809 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"S'asperaba un estau 200 en solicitar o teste, en o suyo puesto s'obtenió " +"l'estau %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:826 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Faltan as capiteras \"request_token\" u \"request_token_secret\" en a " +"respuesta" + +#: ../src/goabackend/goaoauthprovider.c:1399 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "As credencials no contienen \"access_token\" u \"access_token_secret\"" + +#: ../src/goabackend/goaowncloudprovider.c:67 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:844 +#: ../src/goabackend/goaowncloudprovider.c:1027 +msgid "Error connecting to ownCloud server" +msgstr "S'ha produciu una error en connectar a lo servidor d'ownCloud" + +#: ../src/goabackend/goapocketprovider.c:69 +msgid "Pocket" +msgstr "Pocha" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:218 +#, c-format +msgid "No username or access_token" +msgstr "No bi ha nombre d'usuario u _teste d'acceso" + +#: ../src/goabackend/goaprovider.c:479 +msgid "_Mail" +msgstr "_Correu" + +#: ../src/goabackend/goaprovider.c:484 +msgid "Cale_ndar" +msgstr "Cala_ndario" + +#: ../src/goabackend/goaprovider.c:489 +msgid "_Contacts" +msgstr "_Contactos" + +#: ../src/goabackend/goaprovider.c:494 +msgid "C_hat" +msgstr "C_hat" + +#: ../src/goabackend/goaprovider.c:499 +msgid "_Documents" +msgstr "_Documentos" + +#: ../src/goabackend/goaprovider.c:504 +msgid "M_usic" +msgstr "_Mosica" + +#: ../src/goabackend/goaprovider.c:509 +msgid "_Photos" +msgstr "_Fotos" + +#: ../src/goabackend/goaprovider.c:514 +msgid "_Files" +msgstr "_Fichers" + +#: ../src/goabackend/goaprovider.c:519 +msgid "Network _Resources" +msgstr "_Recursos de ret" + +#: ../src/goabackend/goaprovider.c:524 +msgid "_Read Later" +msgstr "Leye_r-lo dimpués" + +#: ../src/goabackend/goaprovider.c:529 +msgid "Prin_ters" +msgstr "Imp_resoras" + +#: ../src/goabackend/goaprovider.c:534 +msgid "_Maps" +msgstr "_Mapas" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:563 +msgid "Use for" +msgstr "Emplegar ta" + +#: ../src/goabackend/goaprovider.c:802 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "\"ensure_credentials_sync\" no ye implementau en a mena %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "O TLS no ye disponible" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:242 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail no ye disponible" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:252 +#, c-format +msgid "Failed to parse email address" +msgstr "Falló en analisar l'adreza de correu" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:261 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "No se puet fer l'autenticación SMTP sin un dominio" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "No se trobó a clau de SMTP en as credenciales" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "No se puet fer l'autenticación SMTP sin una clau" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Mecanismo d'autenticación desconoixiu" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "No s'ha trobau a cuenta d'o Telepathy" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "S'ha produciu una error a l'inicializar o cliente GOA" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "S'ha produciu una error en creyar a interficie d'usuario ta %s" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "" +"Opcions d'a connexiónCompreba la configuración d'a tuya connexión y intenta-" +"lo de nuevo." + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "Detalles presonals" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "_Acceptar" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "No se puet alzar os parametros d'a connexión" + +#: ../src/goabackend/goatelepathyprovider.c:867 +msgid "Cannot save your personal information on the server" +msgstr "No se puet alzar a tuya información presonal en o servidor" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:893 +msgid "_Connection Settings" +msgstr "" +"Opcions d'a _connexiónCompreba la configuración d'a tuya connexión y intenta-" +"lo de nuevo." + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Personal Details" +msgstr "Detalles _presonals" + +#: ../src/goabackend/goautils.c:115 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Ya existe una cuenta %s ta %s" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:165 +#, c-format +msgid "%s account" +msgstr "Cuenta de %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:209 +msgid "Failed to delete credentials from the keyring" +msgstr "Ha fallau en borrar as credencials d'o aniello de claus" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:261 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Ha fallau en obtener as credencials d'o aniello de claus" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:271 +msgid "No credentials found in the keyring" +msgstr "Ha s'han trobau credencials en o aniello de claus" + +#: ../src/goabackend/goautils.c:284 +msgid "Error parsing result obtained from the keyring: " +msgstr "" +"S'ha produciu una error en analisar o resultau obteniu d'o aniello de claus:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:327 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credencials GOA de %s t'a identidat %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:344 +msgid "Failed to store credentials in the keyring" +msgstr "Ha fallau en almacenar as credencials en o aniello de claus" + +#: ../src/goabackend/goautils.c:566 +#| msgid "Cannot save the connection parameters" +msgid "Cannot resolve hostname" +msgstr "No se puede resolver o nombre de l'equipo" + +#: ../src/goabackend/goautils.c:570 +msgid "Cannot resolve proxy hostname" +msgstr "No se puede resolver o nombre d'equipo d'o proxy" + +#: ../src/goabackend/goautils.c:575 +msgid "Cannot find WebDAV endpoint" +msgstr "No se puede trobar o punto final WebDAV" + +#: ../src/goabackend/goautils.c:584 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Codigo: %un: respuesta inasperada d'o servidor" + +#: ../src/goabackend/goautils.c:600 +msgid "The signing certificate authority is not known." +msgstr "L'autoridat de sinyatura d'o certificau ye desconoixida." + +#: ../src/goabackend/goautils.c:604 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"O certificau no coincide con a identidat d'o puesto asperada d'o que " +"s'obtenió." + +#: ../src/goabackend/goautils.c:609 +msgid "The certificate’s activation time is still in the future." +msgstr "A hora d'activación d'o certificau encara ye en o futuro." + +#: ../src/goabackend/goautils.c:613 +msgid "The certificate has expired." +msgstr "O certificau ha caducado." + +#: ../src/goabackend/goautils.c:617 +msgid "The certificate has been revoked." +msgstr "O certificau s'ha revocado." + +#: ../src/goabackend/goautils.c:621 +msgid "The certificate’s algorithm is considered insecure." +msgstr "L'algorismo d'o certificau se considera no seguro." + +#: ../src/goabackend/goautils.c:625 +msgid "Invalid certificate." +msgstr "Certificau no válido." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Se ye cargando \"%s\"…" + +#: ../src/goabackend/goawindowsliveprovider.c:77 +msgid "Microsoft Account" +msgstr "Cuenta de Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:381 +msgid "initial secret passed before secret key exchange" +msgstr "secreto inicial pasau antis de l'intercambio d'a clau secreta" + +#: ../src/goaidentity/goaidentityservice.c:577 +msgid "Initial secret key is invalid" +msgstr "A clau secreta inicial no ye valida" + +#: ../src/goaidentity/goaidentityservice.c:1137 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "O dominio de ret %s ameneste bella información ta verificar-te." + +#: ../src/goaidentity/goakerberosidentity.c:254 +#: ../src/goaidentity/goakerberosidentity.c:263 +#: ../src/goaidentity/goakerberosidentity.c:642 +msgid "Could not find identity in credential cache: %k" +msgstr "No se pudo trobar a identidat en a caché de credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:656 +msgid "Could not find identity credentials in cache: %k" +msgstr "No se pudo trobar a identidat d'as credencials en a caché: %k" + +#: ../src/goaidentity/goakerberosidentity.c:700 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" +"No se pudo filtrar a traviés d'as credencials d'identidat en a caché: %k" + +#: ../src/goaidentity/goakerberosidentity.c:718 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"No se pudo rematar de filtrar a traviés de credencials d'identidat en a " +"caché: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1013 +#, c-format +msgid "No associated identification found" +msgstr "No se trobó garra identificación asociada" + +#: ../src/goaidentity/goakerberosidentity.c:1096 +msgid "Could not create credential cache: %k" +msgstr "No se pudo creyar a caché de credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1130 +msgid "Could not initialize credentials cache: %k" +msgstr "No se pudo inicializar a caché de credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1147 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" +"No se podieron almacenar as nuevas credencials en a caché de credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1436 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "No se pudo renovar a identidat: no ye sinyada" + +#: ../src/goaidentity/goakerberosidentity.c:1448 +msgid "Could not renew identity: %k" +msgstr "No se pudo renovar a identidat: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1465 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"No se podieron obtener credencials nuevas ta renovar a identidat %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1507 +msgid "Could not erase identity: %k" +msgstr "No se pudo borrar a identidat: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "No se pudo trobar a identidat" + +#: ../src/goaidentity/goakerberosidentitymanager.c:840 +msgid "Could not create credential cache for identity" +msgstr "No se pudo creyar a caché de credencials t'a identidat" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "S'asperaba un estau 200 en solicitar o nombre, en o suyo puesto s'obtenió " +#~ "l'estau %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Apega o codigo d'autorización obteniu en a pachina de " +#~ "autorización:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Apega lo teste obteniu en a pachina d'autorización:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Tiempo" + +#~ msgid "Time to fire" +#~ msgstr "Tiempo t'a execución" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Ha fallau en mirar l'elemento \"Autodiscover\"" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "S'asperaba un estau 200 quan se solicitó o \"guid\", en o suyo puesto se " +#~ "obtenió l'estau %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "No se trobó a clau d'IMAP con a identidat \"%s\" en as credenciales" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Clau d'IMAP incorrecta ta o nombre d'usuario \"%s\" (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "No se trobó a clau de SMTP con a identidat \"%s\" en as credenciales" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Clau de SMTP incorrecta ta o nombre d'usuario \"%s\" (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "Cuentas en linia" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "Proporciona o nombre org.gnome.OnlinesAccounts en o bus d'a sesión" + +#~ msgid "An online account needs attention" +#~ msgstr "Una cuenta en linia ameneste o suyo ficacio" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Ubrir cuentas en linia?" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "S'ha produciu una error en analisar a respuesta como JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "No se trobó lo miembro \"id\" en os datos JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "No se trobó lo correu electronico d'o miembro en os datos JSON" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "No se trobó l'usuario miembro en os datos JSON" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "No se trobó o miembro user.id d'o miembro en os datos JSON" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "No se trobó l'usuario.Nombre d'usuario miembro en os datos JSON" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "" +#~ "No se trobó l'usuario.Nombre d'usuario miembro._content en os datos JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "No se trobó lo \"access_token\" en os datos que no yeran JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "No se trobó lo \"access_token\" en os datos JSON" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "No se trobó lo miembro \"id_str\" en os datos JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "No se trobó lo miembro \"screen_name\" en os datos JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "" +#~ "No se trobó la cuenta de correu electronico d'o miembro en os datos JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "No se trobó lo miembro \"guid\" en os datos JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "No se trobó lo miembro de valor en os datos JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "" +#~ "S'ha produciu una error en analisar a respuesta d'a tarcheta d'usuario " +#~ "como JSON:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "No se trobó lo miembro de perfil en os datos JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "No se trobó a embotada d'o miembro en os datos JSON" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "No se trobaron as credencials en l'aniello de claus (%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "" +#~ "S'ha produciu una error en almacenar as credencials en o aniello de claus " +#~ "(%s, %d): " diff --git a/po/ar.gmo b/po/ar.gmo new file mode 100644 index 0000000..32e0b5b Binary files /dev/null and b/po/ar.gmo differ diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..eb6aac4 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,995 @@ +# Arabic translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Abdalrahim G. Fakhouri , 2011. +# Anass Ahmed , 2011. +# Khaled Hosny , 2012, 2013, 2015. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-25 00:03+0200\n" +"PO-Revision-Date: 2015-03-25 00:11+0200\n" +"Last-Translator: Khaled Hosny \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:787 ../src/daemon/goadaemon.c:1048 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "فشل العثور على مُزوّد: %s" + +#: ../src/daemon/goadaemon.c:976 +msgid "IsLocked property is set for account" +msgstr "" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1036 +msgid "ProviderType property is not set for account" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:230 ../src/goabackend/goahttpclient.c:174 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:246 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:257 ../src/goabackend/goaewsclient.c:272 +#: ../src/goabackend/goaewsclient.c:287 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:308 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "ميكروسوفت إكستشينج" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:383 +#: ../src/goabackend/goaowncloudprovider.c:1168 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:406 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "كلمة سر غير صحيحة لاسم المستخدم ’%s‘ ‏(%s،‏ %d):" + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:700 +msgid "_E-mail" +msgstr "بريد إل_كتروني" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:720 +#: ../src/goabackend/goaimapsmtpprovider.c:740 +#: ../src/goabackend/goaowncloudprovider.c:634 +msgid "_Password" +msgstr "كلمة ال_سر" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "_مُخصَّص" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:719 +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goakerberosprovider.c:1108 +#: ../src/goabackend/goaowncloudprovider.c:633 +msgid "User_name" +msgstr "اسم ال_مستخدم" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:632 +msgid "_Server" +msgstr "ال_خادوم" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:752 +#: ../src/goabackend/goakerberosprovider.c:1113 +#: ../src/goabackend/goaowncloudprovider.c:643 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "أ_لغِ" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1114 +#: ../src/goabackend/goaowncloudprovider.c:644 +msgid "C_onnect" +msgstr "ا_تّصل" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:769 +#: ../src/goabackend/goakerberosprovider.c:1130 +#: ../src/goabackend/goaowncloudprovider.c:660 +msgid "Connecting…" +msgstr "يتّصل…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:931 +#: ../src/goabackend/goaimapsmtpprovider.c:966 +#: ../src/goabackend/goaimapsmtpprovider.c:1054 +#: ../src/goabackend/goaimapsmtpprovider.c:1318 +#: ../src/goabackend/goaimapsmtpprovider.c:1391 +#: ../src/goabackend/goakerberosprovider.c:1521 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1033 +#: ../src/goabackend/goaoauthprovider.c:863 +#: ../src/goabackend/goaowncloudprovider.c:771 +#: ../src/goabackend/goaowncloudprovider.c:986 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "أُغلقت نافذة الحوار" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:996 +#: ../src/goabackend/goaimapsmtpprovider.c:1089 +#: ../src/goabackend/goaimapsmtpprovider.c:1342 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goaowncloudprovider.c:813 +#: ../src/goabackend/goaowncloudprovider.c:1007 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "أُغلقت نافذة الحوار (%s،‏ %d):" + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1009 +#: ../src/goabackend/goaimapsmtpprovider.c:1102 +#: ../src/goabackend/goaowncloudprovider.c:826 +msgid "_Ignore" +msgstr "_تجاهل" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1014 +#: ../src/goabackend/goaimapsmtpprovider.c:1107 +#: ../src/goabackend/goaimapsmtpprovider.c:1361 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1631 +#: ../src/goabackend/goaowncloudprovider.c:831 +#: ../src/goabackend/goaowncloudprovider.c:1026 +msgid "_Try Again" +msgstr "أ_عد المحاولة" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "عطل أثناء الاتصال بخادوم ميكروسوفت إكستشينج" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goaflickrprovider.c:412 +#: ../src/goabackend/goafoursquareprovider.c:404 +#: ../src/goabackend/goagoogleprovider.c:620 +#: ../src/goabackend/goakerberosprovider.c:1704 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1082 +#: ../src/goabackend/goapocketprovider.c:406 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:414 +msgid "Use for" +msgstr "استخدم ل‍" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:622 +#: ../src/goabackend/goawindowsliveprovider.c:416 +msgid "_Mail" +msgstr "ال_بريد" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:627 +#: ../src/goabackend/goaowncloudprovider.c:1084 +msgid "Cale_ndar" +msgstr "الت_قويم" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:632 +#: ../src/goabackend/goaowncloudprovider.c:1089 +msgid "_Contacts" +msgstr "المترا_سلون" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "فيسبوك" + +#: ../src/goabackend/goafacebookprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goafoursquareprovider.c:188 +#: ../src/goabackend/goagoogleprovider.c:219 +#: ../src/goabackend/goawindowsliveprovider.c:188 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"النتيجة المتوقعة عند طلب المعرّف هي 200؛ عوضاً عن هذا، تم الحصول على النتيجة " +"%d ‏(%s)" + +#: ../src/goabackend/goafacebookprovider.c:234 +#: ../src/goabackend/goafacebookprovider.c:246 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goafoursquareprovider.c:207 +#: ../src/goabackend/goafoursquareprovider.c:219 +#: ../src/goabackend/goafoursquareprovider.c:230 +#: ../src/goabackend/goafoursquareprovider.c:241 +#: ../src/goabackend/goafoursquareprovider.c:252 +#: ../src/goabackend/goafoursquareprovider.c:263 +#: ../src/goabackend/goagoogleprovider.c:238 +#: ../src/goabackend/goagoogleprovider.c:250 +#: ../src/goabackend/goaoauth2provider.c:699 +#: ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 +#: ../src/goabackend/goawindowsliveprovider.c:207 +#: ../src/goabackend/goawindowsliveprovider.c:219 +#: ../src/goabackend/goawindowsliveprovider.c:231 +#, c-format +msgid "Could not parse response" +msgstr "تعذّر تحليل الاستجابة" + +#: ../src/goabackend/goafacebookprovider.c:427 +#: ../src/goabackend/goaflickrprovider.c:414 +#: ../src/goabackend/goagoogleprovider.c:647 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "ال_صور" + +#: ../src/goabackend/goafacebookprovider.c:432 +#: ../src/goabackend/goafoursquareprovider.c:406 +msgid "_Maps" +msgstr "ال_خرائط" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "فلِكَر" + +#: ../src/goabackend/goaflickrprovider.c:320 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "وقت النظام غير صحيح. راجع إعدادات الوقت والتاريخ." + +#: ../src/goabackend/goafoursquareprovider.c:76 +msgid "Foursquare" +msgstr "" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "جوجل" + +#: ../src/goabackend/goagoogleprovider.c:637 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "الدر_دشة" + +#: ../src/goabackend/goagoogleprovider.c:642 +#: ../src/goabackend/goaowncloudprovider.c:1094 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "_Documents" +msgstr "المست_ندات" + +#: ../src/goabackend/goagoogleprovider.c:652 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "_Files" +msgstr "الم_لفات" + +#: ../src/goabackend/goagoogleprovider.c:657 +msgid "Prin_ters" +msgstr "ال_طابعات" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "الخدمة غير متوفرة" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "فشل الاستيثاق" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:358 +#: ../src/goabackend/goaimapsmtpprovider.c:416 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:389 +#: ../src/goabackend/goaimapsmtpprovider.c:449 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "‏%s غير صحيح لاسم المستخدم ’%s‘ ‏(%s،‏ %d):" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:636 +msgid "_Encryption" +msgstr "الت_عمية" + +#: ../src/goabackend/goaimapsmtpprovider.c:639 +msgid "None" +msgstr "لا شيء" + +#: ../src/goabackend/goaimapsmtpprovider.c:642 +msgid "STARTTLS after connecting" +msgstr "" + +#: ../src/goabackend/goaimapsmtpprovider.c:645 +msgid "SSL on a dedicated port" +msgstr "" + +#: ../src/goabackend/goaimapsmtpprovider.c:701 +msgid "_Name" +msgstr "الا_سم" + +#: ../src/goabackend/goaimapsmtpprovider.c:718 +msgid "IMAP _Server" +msgstr "_خادوم IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:738 +msgid "SMTP _Server" +msgstr "_خادوم SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +#: ../src/goabackend/goaimapsmtpprovider.c:1035 +#: ../src/goabackend/goaimapsmtpprovider.c:1371 +msgid "_Forward" +msgstr "" + +#: ../src/goabackend/goaimapsmtpprovider.c:1019 +#: ../src/goabackend/goaimapsmtpprovider.c:1354 +msgid "Error connecting to IMAP server" +msgstr "عطل أثناء الاتصال بخادوم IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1112 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "عطل أثناء الاتصال بخادوم SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1527 +msgid "E-mail" +msgstr "البريد الإلكتروني" + +#: ../src/goabackend/goaimapsmtpprovider.c:1531 +msgid "Name" +msgstr "الاسم" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1560 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:64 +msgid "Enterprise Login (Kerberos)" +msgstr "ولوج المؤسسات" + +#: ../src/goabackend/goakerberosprovider.c:432 +msgid "Identity service returned invalid key" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:704 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:717 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:1100 +msgid "_Domain" +msgstr "الن_طاق" + +#: ../src/goabackend/goakerberosprovider.c:1101 +msgid "Enterprise domain or realm name" +msgstr "نطاق مؤسسة أو اسم حقيقي" + +#: ../src/goabackend/goakerberosprovider.c:1330 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "لِج إلى النطاق" + +#: ../src/goabackend/goakerberosprovider.c:1331 +msgid "Please enter your password below." +msgstr "رجاء أدخل كلمة السرّ." + +#: ../src/goabackend/goakerberosprovider.c:1332 +msgid "Remember this password" +msgstr "تذكّر كلمة السرّ هذه" + +#: ../src/goabackend/goakerberosprovider.c:1471 +#, c-format +msgid "The domain is not valid" +msgstr "النطاق غير صحيح" + +#: ../src/goabackend/goakerberosprovider.c:1626 +msgid "Error connecting to enterprise identity server" +msgstr "عطل أثناء الاتصال بخادوم هوية المؤسسات" + +#: ../src/goabackend/goakerberosprovider.c:1706 +msgid "Network _Resources" +msgstr "موارد ال_شبكة" + +#: ../src/goabackend/goamediaserverprovider.c:76 +msgid "Media Server" +msgstr "خادوم الوسائط" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "خواديم الوسائط المتاحة" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "لم يعثر على أي خواديم وسائط" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"النتيجة المتوقعة عند طلب رمز الوصول هي 200؛ عوضاً عن هذا، تم الحصول على " +"النتيجة %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:842 +msgid "Authorization response: " +msgstr "ردّ التخويل:" + +#: ../src/goabackend/goaoauth2provider.c:912 +#, c-format +msgid "Authorization response: %s" +msgstr "ردّ التخويل: %s" + +#: ../src/goabackend/goaoauth2provider.c:1059 +#: ../src/goabackend/goaoauthprovider.c:894 +msgid "Error getting an Access Token: " +msgstr "خطأ في الحصول على رمز الوصول" + +#: ../src/goabackend/goaoauth2provider.c:1074 +#: ../src/goabackend/goaoauthprovider.c:907 +msgid "Error getting identity: " +msgstr "خطأ في الحصول على هويّة" + +#: ../src/goabackend/goaoauth2provider.c:1291 +#: ../src/goabackend/goaoauthprovider.c:1215 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "طُلب الولوج كـ%s، لكن تم الولوج كـ%s" + +#: ../src/goabackend/goaoauth2provider.c:1453 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "لا تحوي الشهادات رمز وصول" + +#: ../src/goabackend/goaoauth2provider.c:1492 +#: ../src/goabackend/goaoauthprovider.c:1443 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "فشل تحديث رمز الوصول (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "رمز الوصول أو ترويسة \"رمز الوصول السرّي\" في الردّ مفقودة" + +#: ../src/goabackend/goaoauthprovider.c:776 +msgid "Error getting a Request Token: " +msgstr "خطأ في الحصول على رمز الطلب" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:809 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"النتيجة المتوقعة للحصول على رمز الطلب هي 200؛ عوضاً عن هذا، تم الحصول على " +"النتيجة %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:826 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"رمز الطلب request_token أو ترويسة رمز الطلب السرّي request_token_secret في " +"الردّ مفقودة" + +#: ../src/goabackend/goaoauthprovider.c:1399 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "لا تحوي الشهادات رمز وصول أو رمز وصول سرّيّ" + +#: ../src/goabackend/goaowncloudprovider.c:67 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:836 +#: ../src/goabackend/goaowncloudprovider.c:1019 +msgid "Error connecting to ownCloud server" +msgstr "عطل أثناء الاتصال بخادوم ownCloud" + +#: ../src/goabackend/goapocketprovider.c:69 +msgid "Pocket" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:218 +#, c-format +msgid "No username or access_token" +msgstr "" + +#: ../src/goabackend/goapocketprovider.c:408 +msgid "_Read Later" +msgstr "" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync غير منطبق على النوع %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "" + +#: ../src/goabackend/goasmtpauth.c:674 +#, fuzzy, c-format +msgid "Unknown authentication mechanism" +msgstr "فشل الاستيثاق" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, fuzzy, c-format +msgid "Failed to create a user interface for %s" +msgstr "فشل العثور على مُزوّد: %s" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "إعدادات الاتصال" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "البيانات الشخصية" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "_موافق" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "إ_عدادات الاتصال" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "البيانات ال_شخصية" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "يوجد حساب %s للمستخدم %s من قبل" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "حساب %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "فشل حذف الشهادات من حلقة المفاتيح" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "فشل جلب الشهادات من حلقة المفاتيح" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +#, fuzzy +msgid "No credentials found in the keyring" +msgstr "فشل حفظ الشهادات في حلقة المفاتيح" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "خطأ في إعراب النتائج التي تم الحصول عليها من حلقة المفاتيح: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "أوراق اعتماد GOA %s للهوية %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "فشل حفظ الشهادات في حلقة المفاتيح" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "سلطة الشهادات المُوقِّعة غير معروفة." + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "وقت تفعيل الشهادة في المستقبل." + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "انتهت صلاحية الشهادة." + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "نُقِضت الشهادة." + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "" + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:92 +#, c-format +msgid "Loading “%s”…" +msgstr "يُحمل ”%s“…" + +#: ../src/goabackend/goawindowsliveprovider.c:77 +msgid "Windows Live" +msgstr "وندوز لايف" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:250 +#: ../src/goaidentity/goakerberosidentity.c:259 +#: ../src/goaidentity/goakerberosidentity.c:593 +msgid "Could not find identity in credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:607 +msgid "Could not find identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:647 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:665 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:960 +#, c-format +msgid "No associated identification found" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1043 +msgid "Could not create credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1077 +msgid "Could not initialize credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1094 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1369 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1381 +msgid "Could not renew identity: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1398 +#, fuzzy +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "أوراق اعتماد GOA %s للهوية %s" + +#: ../src/goaidentity/goakerberosidentity.c:1440 +msgid "Could not erase identity: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +#, fuzzy +msgid "Could not create credential cache for identity" +msgstr "أوراق اعتماد GOA %s للهوية %s" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "ألصق كود التخويل الذي تحصل عليه من صفحة التخويل:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "ألصق الرمز الذي تحصل عليه من صفحة التخويل:" + +#~ msgid "Twitter" +#~ msgstr "تويتر" + +#~ msgid "Yahoo" +#~ msgstr "ياهو" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "النتيجة المتوقعة عند طلب الاسم هي 200؛ عوضاً عن هذا، تم الحصول على النتيجة " +#~ "%d ‏(%s)" + +#~ msgid "Time" +#~ msgstr "الوقت" + +#~ msgid "Time to fire" +#~ msgstr "وقت الاشتعال" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "النتيجة المتوقعة عند طلب المعرّف العالمي الفريد GUID هي 200؛ عوضاً عن هذا، " +#~ "تم الحصول على النتيجة %d (%s)" + +#~ msgid "Online Accounts" +#~ msgstr "حسابات الإنترنت" + +#~ msgid "An online account needs attention" +#~ msgstr "حساب إنرنت بحاجة إلى اهتمام" + +#~ msgid "Open Online Accounts..." +#~ msgstr "افتح حسابات الإنترنت..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "لم يُعثر على الشهادات في حلقة المفاتيح (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "خطأ في إعراب الردّ على أنّه JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "لم يُعثر على رقم المعرّف في بيانات JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "لم يُعثر على البريد الإلكتروني في بيانات JSON" + +#, fuzzy +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "لم يتمّ العثور على اسم مستخدم في بيانات JSON" + +#, fuzzy +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "لم يتمّ العثور على المعرف العالمي الفريد GUID في بيانات JSON" + +#, fuzzy +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "لم يتمّ العثور على اسم مستخدم في بيانات JSON" + +#, fuzzy +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "لم يتمّ العثور على اسم مستخدم في بيانات JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "لم يُعثر على رمز تحقّق access_token في بيانات غير JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "لم يُعثر على رمز تحقّق access_token في بيانات JSON" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "خطأ في حفظ الشهادات في حلقة المفاتيح (%s, %d): " + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "لم يتمّ العثور على id_str في بيانات JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "لم يتمّ العثور على اسم الشاشة screen_name في بيانات JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "لم يُعثر على رقم البريد الإلكتروني في بيانات JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "لم يتمّ العثور على المعرف العالمي الفريد GUID في بيانات JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "لم يتمّ العثور على قيمة value في بيانات JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "خطأ في تحليل بطاقة مستخدم على أنّها JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "لم يتمّ العثور على ملف شخصي في بيانات JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "لم يتمّ العثور على اسم مستعار في بيانات JSON" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "لم يُعثر على البيانات في بيانات JSON" + +#~ msgid "Chat" +#~ msgstr "الدردشة" + +#~ msgid "Domain Administrator Login" +#~ msgstr "ولوج مدير النطاق" + +#~ msgid "No such domain or realm found" +#~ msgstr "لم يعثر على هذا النطاق أو المجال" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "تعذّر الولوج باسم %s في النطاق %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "كلمة سر خطأ؛ من فضلك أعد المحاولة" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "تعذّر الاتصال بالنطاق %s:‏ %s" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "حساب ميكروسوفت إكستشينج جديد" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "حساب ميكروسوفت إكستشينج" + +#~ msgid "Add %s" +#~ msgstr "أضف %s" + +#~ msgid "Refresh %s" +#~ msgstr "حدّث %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "لم يُعثر على رقم الاسم في بيانات JSON" + +#~ msgid "Email Address" +#~ msgstr "عنوان البريد الإلكتروني" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "هناك حساب موجود مسبقاً للهوية %s" diff --git a/po/as.gmo b/po/as.gmo new file mode 100644 index 0000000..57e6643 Binary files /dev/null and b/po/as.gmo differ diff --git a/po/as.po b/po/as.po new file mode 100644 index 0000000..10e0bbd --- /dev/null +++ b/po/as.po @@ -0,0 +1,1021 @@ +# Assamese translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Nilamdyuti Goswami , 2011, 2012, 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-08-13 07:03+0000\n" +"PO-Revision-Date: 2014-08-13 16:58+0530\n" +"Last-Translator: Nilamdyuti Goswami \n" +"Language-Team: Assamese \n" +"Language: as\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "এটা প্ৰদানকাৰী পাবলে ব্যৰ্থ: %s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "একাওন্টৰ বাবে ProviderType বৈশিষ্ট সংহতি কৰা হোৱা নাই" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "ক'ড: %u — চাৰ্ভাৰৰ পৰা অপ্ৰত্যাশিত প্ৰতিক্ৰিয়া" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "স্বখোজ প্ৰতিক্ৰিয়া XML বিশ্লেষণ কৰিবলে ব্যৰ্থ" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ উপাদান সন্ধান কৰিবলৈ ব্যৰ্থ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "স্বখোজ প্ৰতিক্ৰিয়াত ASUrl আৰু OABUrl সন্ধান কৰিবলে ব্যৰ্থ" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "Microsoft এক্সচেইঞ্জ" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "তথ্যসমূহত পৰিচয় ‘%s’ ৰ সৈতে পাছৱৰ্ড পোৱা নগল" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "ব্যৱহাৰকাৰীনাম ‘%s’ (%s, %d) ৰ সৈতে অবৈধ পাছৱৰ্ড:" + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "ই-মেইল (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "পাছৱৰ্ড (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "স্বনিৰ্বাচিত (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "ব্যৱহাৰকাৰী নাম (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "চাৰ্ভাৰ (_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "বাতিল কৰক (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +msgid "C_onnect" +msgstr "সংযোগ স্থাপন কৰক (_o):" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "সংযোগ কৰা হৈছে…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "ডাইলগ নাকচ কৰা হৈছিল" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "ডাইলগ বাতিল কৰা হৈছিল (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "উপেক্ষা কৰক (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "পুনৰ চেষ্টা কৰক (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft এক্সচেইঞ্জ চাৰ্ভাৰৰ সৈতে সংযোগ কৰোতে ত্ৰুটি" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "বাবে ব্যৱহাৰ কৰক" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "মেইল (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "কেলেন্ডাৰ (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "পৰিচয়সমূহ (_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"আপোনাৰ পৰিচয় অনুৰোধ কৰোতে অৱস্থা 200 ৰ আশা কৰা হৈছিল, কিন্তু %d (%s) অৱস্থা " +"পোৱা " +"গল" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "প্ৰতিক্ৰিয়া বিশ্লেষণ কৰিব পৰা নগল" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "চেট (_h)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "ফ'টোসমূহ (_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "মানচিত্ৰসমূহ (_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "আপোনাৰ চিস্টেম সময় অবৈধ। আপোনাৰ তাৰিখ আৰু সময় সংহতিসমূহ।" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "দস্তাবেজসমূহ (_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +#| msgid "_Printers" +msgid "Prin_ters" +msgstr "প্ৰিন্টাৰসমূহ (_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "সেৱা উপলব্ধ নাই" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "প্ৰমাণীকৰণ ব্যৰ্থ হল" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "চাৰ্ভাৰে PLAIN সমৰ্থন নকৰে" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "চাৰ্ভাৰে STARTTLS সমৰ্থন নকৰে" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP আৰু SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "তথ্যসমূহত পৰিচয় ‘%s’ ৰ সৈতে %s পোৱা নগল" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "অবৈধ %s ব্যৱহাৰকাৰীনাম ‘%s’ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "ইনক্ৰিপষণ (_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "কোনো নহয়" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "সংযোগৰ পিছত STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "এটা উৎসৰ্গিত পোৰ্টত SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "নাম (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "IMAP চাৰ্ভাৰ (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "SMTP চাৰ্ভাৰ (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "আগলৈ (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "IMAP চাৰ্ভাৰৰ সৈতে সংযোগ কৰোতে ত্ৰুটি" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "SMTP চাৰ্ভাৰৰ সৈতে সংযোগ কৰোতে ত্ৰুটি" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "ই-মেইল" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "নাম" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "এন্টাৰপ্ৰাইজ লগিন (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "পৰিচয় সেৱায় অবৈধ কি' ঘুৰাই দিলে" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "কি'ৰিংত প্ৰিন্সিপাল ‘%s’ ৰ বাবে সংৰক্ষিত তথ্যসমূহ পোৱা নগল" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "তথ্যসমূহত প্ৰিন্সিপাল ‘%s’ ৰ বাবে পাছৱৰ্ড পোৱা নগল" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "ডমেইন (_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "এন্টাৰপ্ৰাইজ ডমেইন অথবা ৰাজত্বৰ নাম" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "ৰাজত্বত লগিন কৰক" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "অনুগ্ৰহ কৰি আপোনাৰ পাছৱৰ্ড তলত সুমুৱাওক।" + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "এই পাছৱৰ্ড মনত ৰাখক" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "ডমেইন বৈধ নহয়" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "এন্টাৰপ্ৰাইজ পৰিচয় চাৰ্ভাৰৰ সৈতে সংযোগ কৰোতে ত্ৰুটি" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "নেটৱৰ্ক সম্পদসমূহ (_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "IMAP _Server" +msgid "Media Server" +msgstr "মাধ্যম চাৰ্ভাৰ" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"এটা মাধ্যম চাৰ্ভাৰৰ যোগেদি ব্যক্তিগত সমলসমূহক আপোনাৰ এপ্লিকেচনসমূহলৈ যোগ কৰিব " +"পাৰি।" + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "উপলব্ধ মাধ্যম চাৰ্ভাৰসমূহ" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "কোনো মাধ্যম চাৰ্ভাৰ পোৱা নগল" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"অভিগম টকেন অনুৰোধ কৰোতে অৱস্থা 200 আশা কৰা হৈছে, কিন্তু পোৱা গল অৱস্থা %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:888 +msgid "Authorization response: " +msgstr "প্ৰমাণীকৰণৰ প্ৰতিক্ৰিয়া" + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +msgid "Authorization response: %s" +msgstr "প্ৰমাণীকৰণৰ প্ৰতিক্ৰিয়া: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "এটা অভিগম টকেন প্ৰাপ্ত কৰোতে ত্ৰুটি হৈছিল: " + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "পৰিচয় প্ৰাপ্ত কৰোতে ত্ৰুটি হৈছিল: " + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s হিচাপে লগিন কৰিবলে কোৱা হৈছিল, কিন্তু %s হিচাপে লগিন কৰা হল" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "তথ্যসমূহে অভিগম টকেন অন্তৰ্ভুক্ত নকৰে (_t)" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "অভিগম টকেন (%s, %d) সতেজ কৰিবলে ব্যৰ্থ: " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"প্ৰতিক্ৰিয়াত access_token অথবা access_token_secret হেডাৰসমূহ পোৱা নাযায়" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "এটা অনুৰোধ টকেন প্ৰাপ্ত কৰোতে ত্ৰুটি: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"এটা অনুৰোধ টকেনৰ বাবে অৱস্থা 200 আশা কৰা হৈছিল, কিন্তু অৱস্থা %d (%s) পোৱা গল" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"প্ৰতিক্ৰিয়াত request_token অথবা request_token_secret হেডাৰসমূহ পোৱা নাযায়" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "তথ্যসমূহে access_token অথবা access_token_secret অন্তৰ্ভুক্ত নকৰে" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud চাৰ্ভাৰৰ সৈতে সংযোগ কৰোতে ত্ৰুটি" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "ফাইলসমূহ (_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "পকেট" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "কোনো ব্যৱহাৰকাৰীনাম অথবা অভিগম টকেন নাই (_t)" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "পিছত পঢ়ক (_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync ধৰণ %s ত প্ৰণয়ন কৰা হোৱা নাই" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS উপলব্ধ নাই" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail উপলব্ধ নাই" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "ইমেইল ঠিকনা বিশ্লেষণ কৰিবলে ব্যৰ্থ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "এটা ডমেইন নহোৱাকৈ SMTP প্ৰমাণীকৰণ কৰিব নোৱাৰি" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "তথ্যসমূহত smtp-password পোৱা নগল" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "এটা পাছৱৰ্ড নহোৱাকৈ SMTP প্ৰমাণীকৰণ কৰিব নোৱাৰি" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "অজ্ঞাত প্ৰমাণীকৰণ পদ্ধতি" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "টেলিপেথী চেট একাওন্ট পোৱা নগল" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "এটা GOA ক্লাএন্ট আৰম্ভ কৰিবলৈ ব্যৰ্থ" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s ৰ বাবে এটা ব্যৱহাৰকাৰী আন্তঃপৃষ্ঠ সৃষ্টি কৰিবলৈ ব্যৰ্থ" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "সংযোগ সংহতিসমূহ" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "ব্যক্তিগত বিৱৰণ" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "ঠিক আছে (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "সংযোগ প্ৰাচলসমূহ সংৰক্ষণ কৰিব নোৱাৰি" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "আপোনাৰ ব্যক্তিগত তথ্য চাৰ্ভাৰত সংৰক্ষণ কৰিব নোৱাৰি" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "সংযোগৰ সংহতিসমূহ (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "ব্যক্তিগত বিৱৰণ (_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "এটা %s একাওন্ট ইতিমধ্যে অস্তিত্ববান, %s ৰ বাবে" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s একাওন্ট" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "keyring ৰ পৰা তথ্যসমূহ মচি পেলাবলে ব্যৰ্থ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "keyring ৰ পৰা তথ্যসমূহ উদ্ধাৰ কৰিবলে ব্যৰ্থ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "keyring ত কোনো তথ্য পোৱা নগল" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "keyring ৰ পৰা প্ৰাপ্ত ফলাফল বিশ্লেষণ কৰোতে ত্ৰুটি: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s তথ্যসমূহ, পৰিচয় %s ৰ বাবে" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "keyring ত তথ্যসমূহ সংৰক্ষণ কৰিবলে ব্যৰ্থ" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "স্বাক্ষৰ কৰা প্ৰমাণপত্ৰ কতৃপক্ষ অজ্ঞাত।" + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "প্ৰমাণপত্ৰ উদ্ধাৰ কৰা ছাইটৰ প্ৰত্যাশিত পৰিচয়ৰ সৈতে মিল নাখায়।" + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "প্ৰমাণপত্ৰৰ সক্ৰিয়কৰণ সময় এতিয়াও ভৱিষ্যতত আছে।" + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "প্ৰমাণপত্ৰৰ অৱসান ঘটিছে।" + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে।" + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "প্ৰমাণপত্ৰৰ এলগৰিথমক অসুৰক্ষিত ধৰা হৈছে।" + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "অবৈধ প্ৰমাণপত্ৰ।" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” ল'ড কৰা হৈছে…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"নাম অনুৰোধ কৰোতে অৱস্থা 200 ৰ আশা কৰা হৈছিল, কিন্তু অৱস্থা %d (%s) পোৱা গল" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "গোপন কি' অদল বদলৰ আগৰ আৰম্ভণি গোপন পাচ্ড" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "আৰম্ভণি গোপন কি' অবৈধ" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "নেটৱৰ্ক ৰাজত্ব %s ৰ আপোনাক ছাইন ইন কৰিবলে কিছুমান তথ্যৰ প্ৰয়োজন।" + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "তথ্য ক্যাশত পৰিচয় পোৱা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "ক্যাশত পৰিচয় তথ্য পোৱা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "ক্যাশত পৰিচয় তথ্যৰে স্থানান্তৰ কৰিব পৰা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "ক্যাশত পৰিচয় তথ্যসমূহৰে স্থানান্তৰ কৰিব পৰা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "কোনো সংযুক্ত পৰিচয় পোৱা নগল" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "তথ্যৰ ক্যাশ সৃষ্টি কৰিব পৰা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "তথ্যৰ ক্যাশ আৰম্ভ কৰিব পৰা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "তথ্যৰ ক্যাশত নতুন তথ্য সংৰক্ষণ কৰিব পৰা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "পৰিচয় পুনৰ সজিৱ কৰিব পৰা নগল: ছাইন ইন কৰা হোৱা নাই" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "পৰিচয় পুনৰ সজিৱ কৰিব নোৱাৰি: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "পৰিচয় %s পুনৰ সজিৱ কৰিবলে নতুন তথ্য প্ৰাপ্ত কৰিব পৰা নগল: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "পৰিচয় মচিব পৰা নগল: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "পৰিচয় পোৱা নগল" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "পৰিচয়ৰ বাবে তথ্য ক্যাশ সৃষ্টি কৰিব পৰা নগল" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "পেইস্ট অধিকাৰ ক'ড অধিকাৰ পৃষ্ঠা ৰ পৰা প্ৰাপ্ত হল:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "পেইস্ট টকেন অধিকাৰ পৃষ্ঠাৰ ৰ পৰা প্ৰাপ্ত কৰা হৈছে:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "সময়" + +#~ msgid "Time to fire" +#~ msgstr "ফায়াৰ কৰাৰ সময়" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "স্বখোজ উপাদান সন্ধান কৰিবলে ব্যৰ্থ" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "guid ৰ অনুৰোধ কৰোতে অৱস্থা 200 ৰ আশা কৰা হৈছিল, কিন্তু %d (%s) অৱস্থা পোৱা গল" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "তথ্যসমূহত পৰিচয় `%s' ৰ সৈতে imap-password পোৱা নগল" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "ব্যৱহাৰকাৰীনাম `%s' (%s, %d) ৰ সৈতে অবৈধ imap-password" + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "তথ্যসমূহত পৰিচয় `%s' ৰ সৈতে smtp-password পোৱা নগল" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "ব্যৱহাৰকাৰীনাম `%s' (%s, %d) ৰ সৈতে অবৈধ smtp-password" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "প্ৰতিক্ৰিয়াক JSON হিচাপে বিশ্লেষণ কৰোতে ত্ৰুটি: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON তথ্যত আইডি সদস্য পোৱা নগল" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON তথ্যত ই-মেইল সদস্য পোৱা নগল" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "JSON তথ্যত ব্যৱহাৰকাৰী সদস্য পোৱা নগল" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "JSON তথ্যত user.id সদস্য পোৱা নগল" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "JSON তথ্যত user.username সদস্য পোৱা নগল" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "JSON তথ্যত user.username._content সদস্য পোৱা নগল" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "নন-JSON তথ্যত অভিগম টকেন পোৱা নগল (_t)" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON তথ্যত অভিগম টকেন পোৱা নগল (_t)" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON তথ্যত একাওন্ট ই-মেইল সদস্য পোৱা নগল" + +#~ msgid "Online Accounts" +#~ msgstr "অনলাইন একাওন্টসমূহ" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "অধিবেশন বাচত org.gnome.OnlinesAccounts নাম প্ৰদান কৰে" + +#~ msgid "An online account needs attention" +#~ msgstr "এটা অনলাইন একাওন্টত মনোনিবেষ কৰাৰ প্ৰয়োজন হৈছে" + +#~ msgid "Open Online Accounts..." +#~ msgstr "অনলাইন একাওন্টসমূহ খোলক..." + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON তথ্যত id_str সদস্য পোৱা নগল" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON তথ্যত screen_name সদস্য পোৱা নগল" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON তথ্যত guid সদস্য পোৱা নগল" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON তথ্যত মান সদস্য পোৱা নগল" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "ব্যৱহাৰকাৰীকাৰ্ড প্ৰতিক্ৰিয়াক JSON হিচাপে বিশ্লেষণ কৰোতে ত্ৰুটি: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON তথ্যত আলেখ্য সদস্য পোৱা নগল" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON তথ্যত উপনাম সদস্য পোৱা নগল" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "তথ্যসমূহ keyring (%s, %d) ত পোৱা নগল: " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "keyring (%s, %d) ত তথ্যসমূহ সংৰক্ষণ কৰোতে ত্ৰুটি: " + +#~ msgid "Chat" +#~ msgstr "চেট" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON তথ্যত তথ্য সদস্য পোৱা নগল" + +#~ msgid "Domain Administrator Login" +#~ msgstr "ডমেইন প্ৰশাসকৰ লগিন" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "এই এন্টাৰপ্ৰাইজ পৰিচয় ব্যৱহাৰ কৰিবলে, এই কমপিউটাৰক ডমেইনতএনৰোল কৰিব লাগিব। " +#~ "অনুগ্ৰহ কৰি আপোনাৰ নেটৱৰ্ক প্ৰশাসকসমূহকতেওলোকৰ ডমেইন পাছৱৰ্ড ইয়াত টাইপ কৰিব " +#~ "দিব।" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "এই এন্টাৰপ্ৰাইজ পৰিচয় ব্যৱহাৰ কৰিবলে, এই কমপিউটাৰক ডমেইনতএনৰোল কৰিব লাগিব। " +#~ "অনুগ্ৰহ কৰি আপোনাৰ নেটৱৰ্ক প্ৰশাসককতেওৰ ব্যৱহাৰকাৰীনাম ইয়াত টাইপ কৰিব দিব।" + +#~ msgid "No such domain or realm found" +#~ msgstr "এনেধৰণৰ কোনো ডমেইন অথবা ৰাজত্ব পোৱা নগল" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%s ডমেইনত %s হিচাপে লগিন কৰিব নোৱাৰি" + +#~ msgid "Invalid password, please try again" +#~ msgstr "অবৈধ পাছৱৰ্ড, অনুগ্ৰহ কৰি পুনৰ চেষ্টা কৰক" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "%s ডমেইনলে সংযোগ কৰিব নোৱাৰি: %s" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "নতুন Microsoft এক্সচেইঞ্জ একাওন্ট" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "Microsoft এক্সচেইঞ্জ একাওন্ট" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "নতুন এন্টাৰপ্ৰাইজ লগিন (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "%s যোগ কৰক" + +#~ msgid "Refresh %s" +#~ msgstr "%s সতেজ কৰক" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON তথ্যত নাম সদস্য পোৱা নগল" + +#~ msgid "Email Address" +#~ msgstr "ই-মেইল ঠিকনা" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "পৰিচয় %s ৰ বাবে ইতিমধ্যে এটা একাওন্ট আছে" diff --git a/po/ast.gmo b/po/ast.gmo new file mode 100644 index 0000000..f62f297 Binary files /dev/null and b/po/ast.gmo differ diff --git a/po/ast.po b/po/ast.po new file mode 100644 index 0000000..db215dd --- /dev/null +++ b/po/ast.po @@ -0,0 +1,318 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Xandru Armesto , 2011. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-12-14 21:44+0000\n" +"PO-Revision-Date: 2011-12-17 17:14+0200\n" +"Last-Translator: Xandru Armesto \n" +"Language-Team: Softastur alministradores@softastur.org\n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.0\n" +"X-Poedit-Language: Asturian\n" +"X-Project-Style: gnome\n" + +#: ../src/daemon/goadaemon.c:871 +msgid "An online account needs attention" +msgstr "Una cuenta en llinia necesita de la to atención" + +#: ../src/daemon/goadaemon.c:878 +msgid "Open Online Accounts..." +msgstr "Abrir cuentes en llinia…" + +#: ../src/goabackend/goafacebookprovider.c:78 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:162 +#: ../src/goabackend/goagoogleprovider.c:195 +#: ../src/goabackend/goatwitterprovider.c:160 +#: ../src/goabackend/goayahooprovider.c:163 +#, c-format +msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgstr "" +"Esperábase un estáu 200 cuando se solicitó'l «guid», pero obtúvose l'estáu %" +"d (%s)" + +#: ../src/goabackend/goafacebookprovider.c:174 +#: ../src/goabackend/goagoogleprovider.c:207 +#: ../src/goabackend/goaoauth2provider.c:475 +#: ../src/goabackend/goatwitterprovider.c:172 +#: ../src/goabackend/goayahooprovider.c:175 +msgid "Error parsing response as JSON: " +msgstr "Fallu al analizar la rempuesta como JSON: " + +#: ../src/goabackend/goafacebookprovider.c:185 +#, c-format +msgid "Didn't find username member in JSON data" +msgstr "Nun s'alcontró'l nombre de usuario del miembru nos datos JSON" + +#: ../src/goabackend/goafacebookprovider.c:194 +#, c-format +msgid "Didn't find name member in JSON data" +msgstr "Nun s'alcontró'l nome del miembru nos datos JSON" + +#: ../src/goabackend/goafacebookprovider.c:282 +#: ../src/goabackend/goatwitterprovider.c:260 +msgid "User Name" +msgstr "Nome d'usuariu" + +#: ../src/goabackend/goafacebookprovider.c:283 +#: ../src/goabackend/goagoogleprovider.c:430 +msgid "Chat" +msgstr "Chat" + +#: ../src/goabackend/goagoogleprovider.c:78 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:218 +#, c-format +msgid "Didn't find data member in JSON data" +msgstr "Nun s'alcontraron los datos del miembru nos datos JSON" + +#: ../src/goabackend/goagoogleprovider.c:228 +#, c-format +msgid "Didn't find email member in JSON data" +msgstr "Nun s'alcontró'l corréu-e del miembru nos datos JSON" + +#: ../src/goabackend/goagoogleprovider.c:425 +msgid "Email Address" +msgstr "Direición de corréu-e" + +#: ../src/goabackend/goagoogleprovider.c:426 +msgid "Use this account for" +msgstr "Usar esta cuenta pa" + +#: ../src/goabackend/goagoogleprovider.c:427 +msgid "Mail" +msgstr "Mail" + +#: ../src/goabackend/goagoogleprovider.c:428 +msgid "Calendar" +msgstr "Calendar" + +#: ../src/goabackend/goagoogleprovider.c:429 +msgid "Contacts" +msgstr "Contacts" + +#: ../src/goabackend/goagoogleprovider.c:431 +msgid "Documents" +msgstr "Documents" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:432 +#: ../src/goabackend/goaoauthprovider.c:440 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Esperábase un estáu 200 cuando se solicitó accesu al «token», pero en cuenta " +"d'ello obtúvose l'estáu %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:452 +#, c-format +msgid "Didn't find access_token in non-JSON data" +msgstr "Nun s'alcontró'l «access_token» nos datos que nun yeren JSON" + +#: ../src/goabackend/goaoauth2provider.c:486 +#, c-format +msgid "Didn't find access_token in JSON data" +msgstr "Nun s'alcontró'l «acces_token» nos datos JSON" + +#: ../src/goabackend/goaoauth2provider.c:570 +#, c-format +msgid "Authorization response was \"%s\"" +msgstr "«%s» foi la rempuesta a l'autorización" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:651 +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr "" +"Apega'l códigu d'autorización obteníu na páxina " +"d'autorización:" + +#: ../src/goabackend/goaoauth2provider.c:725 +#: ../src/goabackend/goaoauthprovider.c:751 +#, c-format +msgid "Dialog was dismissed" +msgstr "Descartóse'l diálogu" + +#: ../src/goabackend/goaoauth2provider.c:749 +#: ../src/goabackend/goaoauthprovider.c:782 +msgid "Error getting an Access Token: " +msgstr "Fallu al acceder el «token» d'accesu: " + +#: ../src/goabackend/goaoauth2provider.c:761 +#: ../src/goabackend/goaoauthprovider.c:795 +msgid "Error getting identity: " +msgstr "Fallu al obtener la identidá: " + +#: ../src/goabackend/goaoauth2provider.c:926 +#: ../src/goabackend/goaoauthprovider.c:972 +#, c-format +msgid "There is already an account for the identity %s" +msgstr "Yá esiste una cuenta pa la identidá %s" + +#: ../src/goabackend/goaoauth2provider.c:1051 +#: ../src/goabackend/goaoauthprovider.c:1102 +#, c-format +msgid "Was asked to login as %s, but logged in as %s" +msgstr "Solicitóse aniciar sesión como %s, pero anicióse sesión como %s" + +#: ../src/goabackend/goaoauth2provider.c:1187 +#: ../src/goabackend/goaoauthprovider.c:1250 +#, c-format +msgid "Credentials not found in keyring (%s, %d): " +msgstr "Nun s'alcontraron les credenciales nel depósitu de claves (%s, %d): " + +#: ../src/goabackend/goaoauth2provider.c:1214 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Les credenciales nun contienen el «access_token»" + +#: ../src/goabackend/goaoauth2provider.c:1253 +#: ../src/goabackend/goaoauthprovider.c:1323 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Falló al anovar l'accesu al «token» (%s, %d): " + +#: ../src/goabackend/goaoauth2provider.c:1288 +#: ../src/goabackend/goaoauthprovider.c:1353 +#, c-format +msgid "Error storing credentials in keyring (%s, %d): " +msgstr "Fallu al almacenar les credenciales nel depósitu de claves (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:463 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Falten les testeres del «access_token» o del «access_token_secret» na " +"rempuesta" + +#: ../src/goabackend/goaoauthprovider.c:636 +msgid "Error getting a Request Token: " +msgstr "Fallu al obtener el «token» solicitáu: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:645 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Esperábase un estáu 200 al solicitar el «token», pero obtúvose l'estáu %d (%" +"s)" + +#: ../src/goabackend/goaoauthprovider.c:659 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Falten les testeres «request_token» o «request_token_secret» na rempuesta" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:676 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr "Apega'l «token» obteníu na páxina d'autorización:" + +#: ../src/goabackend/goaoauthprovider.c:1279 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Les credenciales nun contienen «access_token» o «access_token_secret»" + +#: ../src/goabackend/goaprovider.c:522 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "«ensure_credentials_sync» nun ta implementáu nel tipu %s" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goaprovider.c:737 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credenciales GOA de %s pa la identidá %s" + +#. TODO: more specific +#: ../src/goabackend/goaprovider.c:751 +#, c-format +msgid "Failed to store credentials in the keyring: %s" +msgstr "Falló al almacenar les credenciales nel depósitu de claves: %s" + +#. TODO: more specific +#: ../src/goabackend/goaprovider.c:822 +#, c-format +msgid "Failed to retrieve credentials from the keyring: %s" +msgstr "Falló al obtener les credenciales del depósitu de claves: %s" + +#: ../src/goabackend/goaprovider.c:834 +msgid "Error parsing result obtained from the keyring: " +msgstr "Fallu analizando'l resultáu obteníu del depósitu de claves:" + +#: ../src/goabackend/goatwitterprovider.c:78 +msgid "Twitter" +msgstr "Twitter" + +#: ../src/goabackend/goatwitterprovider.c:183 +#, c-format +msgid "Didn't find id_str member in JSON data" +msgstr "Nun s'alcontró'l miembru «id_str» nos datos JSON" + +#: ../src/goabackend/goatwitterprovider.c:192 +#, c-format +msgid "Didn't find screen_name member in JSON data" +msgstr "Nun s'alcontró'l miembru «screen_name» nos datos JSON" + +#: ../src/goabackend/goayahooprovider.c:78 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:186 +#, c-format +msgid "Didn't find guid member in JSON data" +msgstr "Nun s'alcontró'l miembru «guid» nos datos JSON" + +#: ../src/goabackend/goayahooprovider.c:196 +#, c-format +msgid "Didn't find value member in JSON data" +msgstr "Nun s'alcontró'l miembru de valor nos datos JSON" + +#: ../src/goabackend/goayahooprovider.c:222 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"Esperábase un estáu 200 al solicitar el nome, pero obtúvose l'estáu %d (%s)" + +#: ../src/goabackend/goayahooprovider.c:235 +msgid "Error parsing usercard response as JSON: " +msgstr "Fallu al analizar la rempuesta de la tarxeta d'usuariu como JSON:" + +#: ../src/goabackend/goayahooprovider.c:246 +#, c-format +msgid "Didn't find profile member in JSON data" +msgstr "Nun s'alcontró'l miembru de perfil nos datos JSON" + +#: ../src/goabackend/goayahooprovider.c:256 +#, c-format +msgid "Didn't find nickname member in JSON data" +msgstr "Nun s'alcontró'l nomatu del miembru nos datos JSON" + +#. TODO: look up email address / screenname from GUID +#: ../src/goabackend/goayahooprovider.c:324 +msgid "Name" +msgstr "Nome" + +#~ msgid "Expected 200 for getting a Request Token, got %d (%s)" +#~ msgstr "" +#~ "Esperábase un estáu 200 pa obtener un «token» de solicitú, obtúvose " +#~ "l'estáu %d (%s)" diff --git a/po/be.gmo b/po/be.gmo new file mode 100644 index 0000000..054bca7 Binary files /dev/null and b/po/be.gmo differ diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..33c22bd --- /dev/null +++ b/po/be.po @@ -0,0 +1,938 @@ +# Ihar Hrachyshka , 2011, 2012, 2013, 2014. +# Yuras Shumovich , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts.master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-08-08 16:41+0000\n" +"PO-Revision-Date: 2017-09-01 17:42+0300\n" +"Last-Translator: Yuras Shumovich \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Не ўдалося адшукаць прайвайдара для: %s" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "Уласцівасць IsLocked не настаўлена" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "Для гэтага конта не выстаўлена ўласцівасць ProviderType" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Не ўдалося разабраць аўтаматычна адшуканы (autodiscover) XML-адказ" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Не ўдалося адшукаць элемент \"%s\"" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Не ўдалося адшукаць ASUrl і OABUrl у аўтаматычна адшуканым (autodiscover) " +"адказе" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Хібны пароль для карыстальніка \"%s\" (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_Электронная пошта" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Пароль" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Уласны" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "І_мя карыстальніка" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Сервер" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Скасаваць" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:745 +#: ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "_Злучыць" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:761 +#: ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Злучэнне..." + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "Дыялогавае акенца было праігнаравана" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Дыялогавае акенца было праігнаравана (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "Праі_гнараваць" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_Паўтарыць спробу" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Памылка злучэння з серверам Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Пры запыце ідэнтычнасці чакаўся код стану 200, але замест яго атрыманы код " +"%d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 +#: ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 +#: ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 +#: ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 +#: ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 +#: ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "Не ўдалося разабраць адказ" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Сістэмны час настаўлены няправільна. Праверце настройкі даты і часу." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "Паслуга недаступна" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:883 +#, c-format +msgid "Authentication failed" +msgstr "Няўдалая ідэнтыфікацыя" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Сервер не падтрымлівае PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Сервер не падтрымлівае STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP і SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Хібнае поле %s для карыстальніка \"%s\" (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Шыфраванне" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Нічога" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS пасля злучэння" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL на выдзеленым порце" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Назва" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP-_сервер" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "SMTP-_сервер" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "Д_алей" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Памылка злучэння з IMAP-серверам" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Памылка злучэння з SMTP-серверам" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Электронная пошта" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Назва" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "Карпаратыўны ўваход (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:300 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "Падтрымка квіткоў выключана для гэтага конта" + +#: ../src/goabackend/goakerberosprovider.c:325 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Не ўдалося адшукаць захаваныя мандатныя даныя для існасці \"%s\" у вязцы " +"ключоў" + +#: ../src/goabackend/goakerberosprovider.c:338 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Не ўдалося адшукаць пароль для існасці \"%s\" у мандатных даных" + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "_Domain" +msgstr "_Дамен" + +#: ../src/goabackend/goakerberosprovider.c:732 +msgid "Enterprise domain or realm name" +msgstr "Карпаратыўны дамен ці назва рэгіёна" + +#: ../src/goabackend/goakerberosprovider.c:974 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Увайсці ў рэгіянальны дамен" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Please enter your password below." +msgstr "Ніжэй увядзіце свой пароль." + +#: ../src/goabackend/goakerberosprovider.c:976 +msgid "Remember this password" +msgstr "Запомніць гэты пароль" + +#: ../src/goabackend/goakerberosprovider.c:1110 +#, c-format +msgid "The domain is not valid" +msgstr "Хібны дамен" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "Памылка злучэння з карпаратыўным серверам ідэнтыфікацыі" + +#: ../src/goabackend/goakerberosprovider.c:1604 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Служба ідэнтыфікацыі вярнула хібны ключ" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 +#: ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Памылка злучэння з Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Медыясервер" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Вы можаце дадаць у вашы праграмы асабістае змесціва праз конт медыясервера." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Даступныя медыясерверы" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Не знойдзена медыясервераў" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 +#: ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Пры запыце жэтона для доступу чакаўся код стану 200, але замест яго атрыманы " +"код %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "Упаўнаважвальны адказ: " + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "Упаўнаважвальны адказ: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 +#: ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Памылка атрымання жэтона для доступу: " + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Памылка атрымання ідэнтычнасці: " + +#: ../src/goabackend/goaoauth2provider.c:1321 +#: ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Прыйшоў запыт для ўваходу як %s, але ўваход ажыццёўлены як %s" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Мандатныя даныя не змяшчаюць access_token" + +#: ../src/goabackend/goaoauth2provider.c:1512 +#: ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Не ўдалося абнавіць жэтон для доступу (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"У адказе не хапае аднаго з загалоўкаў: access_token ці access_token_secret" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Памылка атрымання жэтона для запыту: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Пры атрыманні жэтона для запыту чакаўся код стану 200, але замест яго " +"атрыманы код %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"У адказе не хапае аднаго з загалоўкаў: request_token ці request_token_secret" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Мандатныя даныя не змяшчаюць access_token ці access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "Памылка злучэння з серверам ownCloud" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "Няма імені карыстальніка або access_token" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_Пошты" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "_Календара" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "К_антактаў" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Чату" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "_Дакументаў" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "М_узыка" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_Фатаграфіі" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_Файлаў" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "С_еткавых рэсурсаў" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "Пра_чытаць пазней" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "_Прынтары" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "_Мапы" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Ужыць для" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "Конт выключаны" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "Невядомая памылка" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "Тып %s не мае праграмнай рэалізацыі ensure_credentials_sync" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "TLS недаступны" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Невядомы механізм ідэнтыфікацыі" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Чат-конт Telepathy не знойдзены" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Не ўдалося стварыць інтэрфейс карыстальніка для %s" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Настройкі злучэння" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Асабістыя звесткі" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Добра" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Не ўдалося захаваць параметры злучэння" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Не ўдалося захаваць асабістыя звесткі на серверы" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Настройкі злучэння" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Асабістыя звесткі" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Памылка пры ўваходзе ў конт" + +#: ../src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Мандатныя даныя састарэлі" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Увайдзіце каб уключыць гэты кант." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Увайсці" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Конт %s ужо існуе для %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Конт %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Не ўдалося выдаліць мандатныя даныя з вязкі ключоў" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Не ўдалося атрымаць мандатныя даныя з вязкі ключоў" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Мандатныя даныя не знойдзеныя ў вязцы ключоў" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Памылка разбору выніку, атрыманага з вязкі ключоў: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Мандатныя даныя GOA %s для ідэнтычнасці %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Не ўдалося захаваць мандатныя даныя ў вязцы ключоў" + +#: ../src/goabackend/goautils.c:870 +msgid "Cannot resolve hostname" +msgstr "Не ўдалося вызначыць адрас хоста" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot resolve proxy hostname" +msgstr "Не ўдалося вызначыць адрас проксі хоста" + +#: ../src/goabackend/goautils.c:879 +msgid "Cannot find WebDAV endpoint" +msgstr "Не ўдалося знайсці пункт прызначэння WebDAV" + +#: ../src/goabackend/goautils.c:888 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Код: %u — Нечаканы адказ ад сервера" + +#: ../src/goabackend/goautils.c:904 +msgid "The signing certificate authority is not known." +msgstr "Цэнтр сертыфіката падпісання невядомы." + +#: ../src/goabackend/goautils.c:908 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Сертыфікат не адпавядае чаканай ідэнтычнасці пляцоўкі, з якой ён быў " +"атрыманы." + +#: ../src/goabackend/goautils.c:913 +msgid "The certificate’s activation time is still in the future." +msgstr "Час актывацыі сертыфіката дасюль у будучыні." + +#: ../src/goabackend/goautils.c:917 +msgid "The certificate has expired." +msgstr "Сертыфікат састарэў." + +#: ../src/goabackend/goautils.c:921 +msgid "The certificate has been revoked." +msgstr "Сертыфікат быў адкліканы." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Алгарытм сертыфіката лічыцца небяспечным." + +#: ../src/goabackend/goautils.c:929 +msgid "Invalid certificate." +msgstr "Хібны сертыфікат." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:964 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Не ўдалося адшукаць %s для ідэнтычнасці \"%s\" у мандатных даных" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Загрузка \"%s\"..." + +#: ../src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "Хібны пачатковы сакрэтны ключ" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Сеткавы рэгіянальны дамен %s патрабуе дадатковай інфармацыі для вашага " +"ўваходу ў сістэму." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "Не ўдалося адшукаць ідэнтычнасць у кэш-памяці мандатных даных: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "Не ўдалося адшукаць мандатныя даных ідэнтычнасці ў кэш-памяці: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" +"Не ўдалося прайсці праверку мандатных даных ідэнтычнасці ў кэш-памяці: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"Не ўдалося закончыць праверку мандатных даных ідэнтычнасці ў кэш-памяці: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Адпаведныя ідэнтыфікацыйныя даныя не знойдзены" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Не ўдалося стварыць кэш-памяць мандатных даных: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "Не ўдалося ініцыяваць кэш-памяць мандатных даных: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "Не ўдалося захаваць новыя мандатныя даныя ў кэш-памяці: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Не ўдалося абнавіць ідэнтычнасць: уваход не ажыццёўлены" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Не ўдалося абнавіць ідэнтычнасць: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Не ўдалося атрымаць новыя мандатныя даныя для абнаўлення ідэнтычнасці %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Не ўдалося выдаліць ідэнтычнасць: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Не ўдалося адшукаць ідэнтычнасць" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "Не ўдалося стварыць кэш-памяць мандатных даных для ідэнтычнасці" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail недаступны" + +#~ msgid "Failed to parse email address" +#~ msgstr "Не ўдалося разабраць адрас электроннай пошты" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Немагчыма правесці ідэнтыфікацыю SMTP без дамена" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Не ўдалося адшукаць SMTP-пароль у мандатных даных" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Немагчыма правесці ідэнтыфікацыю SMTP без пароля" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "" +#~ "пачатковы сакрэтны пароль, перададзены перад абменам сакрэтнымі ключамі" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "Не ўдалося адшукаць пароль для ідэнтычнасці \"%s\" у мандатных даных" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Устаўце ўпаўнаважвальны код, атрыманы на адпаведнай " +#~ "старонцы:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Устаўце ўпаўнаважвальны код, атрыманы на адпаведнай " +#~ "старонцы:" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Не ўдалося ініцыяваць GOA-кліент" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Пры запыце name чакаўся код стану 200, але замест яго атрыманы код %d (%s)" + +#~ msgid "Time" +#~ msgstr "Час" + +#~ msgid "Time to fire" +#~ msgstr "Час запуску" diff --git a/po/bg.gmo b/po/bg.gmo new file mode 100644 index 0000000..0306f20 Binary files /dev/null and b/po/bg.gmo differ diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..ccef41c --- /dev/null +++ b/po/bg.po @@ -0,0 +1,886 @@ +# Bulgarian translation of gnome-online-accounts po-file. +# Copyright (C) 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc. +# Copyright (C) 2016, 2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# Ivaylo Valkov , 2011, 2012. +# Alexander Shopov , 2012, 2013, 2014, 2016, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-09-14 22:23+0200\n" +"PO-Revision-Date: 2017-09-14 14:28+0200\n" +"Last-Translator: Alexander Shopov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Не е открит на доставчик за „%s“" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "Зададено е заключване регистрацията (атрибут „IsLocked“)" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "Не е зададен вид на регистрацията (атрибут „ProviderType“)" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" +"Неуспешен анализ на XML от отговора за автоматичното откриване на сървър" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Елементът „%s“ липсва" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Елементите „ASUrl“ и „OABUrl“ липсват в отговора за автоматичното откриване " +"на сървър" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Неправилна парола за потребителя „%s“ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_Е-поща" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Парола" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Лични настройки" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "Потребителско _име" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Сървър" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Отказ" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:745 +#: ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "_Свързване" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:761 +#: ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Свързване…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "Прозорецът беше затворен" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Прозорецът беше затворен (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "_Пренебрегване" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_Повторен опит" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Грешка при свързване към сървъра (Microsoft Exchange)" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Получен е отговор „%d (%s)“ при получаване на самоличността. Очакваше се 200." + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 +#: ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 +#: ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 +#: ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 +#: ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 +#: ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "Неуспешен анализ на отговора" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Времето на системния часовник е грешно. Проверете настройките си за дата и " +"час." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "Услугата не е налична" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:883 +#, c-format +msgid "Authentication failed" +msgstr "Неуспешна идентификация" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Сървърът не поддържа идентификация „PLAIN“" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Сървърът не поддържа командата за шифриране на връзката „STARTTLS“" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP и SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Неправилно поле за парола „%s“ за потребителя „%s“ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Шифриране" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Никакво" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS след свързване" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL по определен порт" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Име" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "Сървър с _IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "Сървър със _SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Напред" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Грешка при свързване към сървъра с IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Грешка при свързване към сървъра със SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Е-поща" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Име" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "Корпоративен вход — Kerberos " + +#: ../src/goabackend/goakerberosprovider.c:300 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "Регистрацията няма да получава билети за идентификация" + +#: ../src/goabackend/goakerberosprovider.c:325 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Липсват данни за регистрация за потребител „%s“ в ключодържателя" + +#: ../src/goabackend/goakerberosprovider.c:338 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Липсва парола за потребител „%s“ в данните за регистрация" + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "_Domain" +msgstr "_Домейн" + +#: ../src/goabackend/goakerberosprovider.c:732 +msgid "Enterprise domain or realm name" +msgstr "Корпоративен домейн или област" + +#: ../src/goabackend/goakerberosprovider.c:974 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Вход в областта" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Please enter your password below." +msgstr "Въведете паролата си по-долу." + +#: ../src/goabackend/goakerberosprovider.c:976 +msgid "Remember this password" +msgstr "Запомняне на паролата" + +#: ../src/goabackend/goakerberosprovider.c:1110 +#, c-format +msgid "The domain is not valid" +msgstr "Домейнът е неправилен" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "Грешка при свързване към корпоративния сървър за самоличности" + +#: ../src/goabackend/goakerberosprovider.c:1604 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Услугата за самоличности върна грешен ключ" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 +#: ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Грешка при свързване към Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Сървър за мултимедия" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Можете да добавите лично съдържание към програмите като използвате " +"регистрация към сървър за мултимедия." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Налични сървъри за мултимедия" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Липсват сървъри за мултимедия" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 +#: ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Беше върнат отговор „%d (%s)“ при получаване на код за достъп. Очакваше се " +"200." + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "Отговор при упълномощаване: " + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "Отговор при упълномощаване: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 +#: ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Неуспешно получаване на код за достъп: " + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Неуспешно получаване на самоличност: " + +#: ../src/goabackend/goaoauth2provider.c:1321 +#: ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Трябваше да влезете като „%s“, но вие влязохте като „%s“" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Данните за регистрацията не съдържат ключа „access_token“" + +#: ../src/goabackend/goaoauth2provider.c:1512 +#: ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Неуспешно обновяване на кода за достъп (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"В заглавните части на отговора липсва „access_token“ или " +"„access_token_secret“" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Грешка при получаване на кода за заявка: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Беше върнат отговор „%d (%s)“ при получаване на код за заявка. Очакваше се " +"200." + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"В заглавните части на отговора липсва „request_token“ или " +"„request_token_secret“" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Данните за регистрацията не съдържат ключа „access_token“ или " +"„access_token_secret“" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "Грешка при свързване към сървъра на ownClowd" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "Липсва потребителско име или код за достъп (acess_token)" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_Е-поща" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "Ка_лендар" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "_Контакти" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Разговори" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "_Документи" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "_Музика" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_Снимки" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_Файлове" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "_Мрежови ресурси" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "За _четене по-късно" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "П_ринтери" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "_Карти" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "_За вършене" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Ползва се за" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "Регистрацията е изключена" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "Непозната грешка" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "Методът „ensure_credentials_sync“ не съществува за обекти от вида „%s“" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "TLS липсва" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Непознат метод за идентификация" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Липсва регистрация за разговори към Telepathy" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Неуспешно създаване на потребителски интерфейс за „%s“" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Настройки на свързването" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Лични данни" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Добре" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Настройките на връзката не могат да бъдат запазени" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Личните ви данни не могат да бъдат запазени на сървъра" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Настройки на свързването" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Лични данни" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "За вършене" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Грешка при вписване в регистрацията" + +#: ../src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Сертификатът е с изтекъл период на валидност." + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Впишете се, за да включите регистрацията." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Вписване" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Вече съществува регистрация от вида „%s“ за самоличността „%s“." + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Регистрация в „%s“" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Неуспешно изтриване на данните за регистрацията от ключодържателя" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Неуспешно извличане на данните за регистрацията от ключодържателя" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "В ключодържателя липсват данни за регистрация" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Грешка при анализа на данните извлечени от ключодържателя: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Данни за самоличността „%2$s“, предоставени от %1$s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Неуспешно запазване на данните за регистрацията в ключодържателя" + +#: ../src/goabackend/goautils.c:870 +msgid "Cannot resolve hostname" +msgstr "Адресът на машината име не може да се открие по име" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot resolve proxy hostname" +msgstr "Адресът на сървъра-посредник не може да се открие по име" + +#: ../src/goabackend/goautils.c:879 +msgid "Cannot find WebDAV endpoint" +msgstr "Услугата за WebDAV не може да бъде открита" + +#: ../src/goabackend/goautils.c:888 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Код: %u — неочакван отговор от сървъра" + +#: ../src/goabackend/goautils.c:904 +msgid "The signing certificate authority is not known." +msgstr "Непознат удостоверител на сертификати=" + +#: ../src/goabackend/goautils.c:908 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Сертификатът не съвпада с очакваната идентичност на сайта, от който е " +"получен." + +#: ../src/goabackend/goautils.c:913 +msgid "The certificate’s activation time is still in the future." +msgstr "Времето на валидност на сертификата започва в бъдеще." + +#: ../src/goabackend/goautils.c:917 +msgid "The certificate has expired." +msgstr "Сертификатът е с изтекъл период на валидност." + +#: ../src/goabackend/goautils.c:921 +msgid "The certificate has been revoked." +msgstr "Сертификатът е изрично отхвърлен." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Алгоритъмът на сертификата е ненадежден." + +#: ../src/goabackend/goautils.c:929 +msgid "Invalid certificate." +msgstr "Невалиден сертификат." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:964 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "В данните за регистрация липсва поле „%s“ със самоличност „%s“" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Зареждане на „%s“…" + +#: ../src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "Първичният таен ключ е грешен" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Необходима е информация, за да влезете в областта „%s“ от мрежата." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "Неуспешно откриване на данни за самоличността във временната памет: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "Неуспешно откриване на данни за самоличността във временната памет: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Неуспешно извличане на данни за самоличността от временната памет: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"Неуспешно завършване на извличането на данни за самоличността от временната " +"памет: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Не бяха намерени данни за удостоверяване" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Неуспешно създаване на временна памет за данните за регистрации: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "Неуспешно стартиране на временната памет за данните за регистрации: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" +"Неуспешно запазване на данните за регистрацията във временната памет: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Неуспешно обновяване на самоличността — не сте влезли с нея" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Неуспешно обновяване на самоличността: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Неуспешно обновяване на самоличността „%s“. Не могат да бъдат извлечени нови " +"данни за регистрацията: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Неуспешно изтриване на самоличността: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Неуспешно намиране на самоличността" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "Неуспешно създаване на временна памет за данните на самоличността" diff --git a/po/bn_IN.gmo b/po/bn_IN.gmo new file mode 100644 index 0000000..b5ae0fd Binary files /dev/null and b/po/bn_IN.gmo differ diff --git a/po/bn_IN.po b/po/bn_IN.po new file mode 100644 index 0000000..bd4ba9f --- /dev/null +++ b/po/bn_IN.po @@ -0,0 +1,757 @@ +# Bengali (India) translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Sayak Sarkar , 2012. +# sray , 2013. #zanata +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts gnome-3-6\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-10-31 10:02+0000\n" +"PO-Revision-Date: 2013-10-09 07:58-0400\n" +"Last-Translator: sray \n" +"Language-Team: Bengali (India) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn_IN\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Zanata 3.1.2\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:775 +#: ../src/daemon/goadaemon.c:985 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr ":%s এর জন্য একটি প্রদানকারী খুঁজে পেতে ব্যর্থ" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:973 +msgid "ProviderType property is not set for account" +msgstr "প্রোভাইডারটাইপ বৈশিষ্ট্য অ্যাকাউন্টের জন্য সেট করা হয় নি" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:234 +#: ../src/goabackend/goahttpclient.c:175 +#, c-format +msgid "Code: %u - Unexpected response from server" +msgstr "কোড: %u - সার্ভারের থেকে অপ্রত্যাশিত প্রতিক্রিয়া" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "অটোডিসকভার এক্সএমএল প্রতিক্রিয়া পার্স করতে ব্যর্থ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:260 +#, c-format +msgid "Failed to find Autodiscover element" +msgstr "অটোডিসকভার উপাদান খুঁজে পেতে ব্যর্থ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:274 +#, c-format +msgid "Failed to find Response element" +msgstr "রেসপন্স উপাদান খুঁজে পেতে ব্যর্থ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:288 +#, c-format +msgid "Failed to find Account element" +msgstr "অ্যাকাউন্ট উপাদান খুঁজে পেতে ব্যর্থ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:305 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "অটোডিসকভার প্রতিক্রিয়ার মধ্যে ASUrl এবং OABUrl খুঁজে পেতে ব্যর্থ" + +#: ../src/goabackend/goaexchangeprovider.c:79 +msgid "Microsoft Exchange" +msgstr "মাইক্রোসফট এক্সচেঞ্জ" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:308 +#: ../src/goabackend/goaexchangeprovider.c:1037 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goagoogleprovider.c:796 +#: ../src/goabackend/goaowncloudprovider.c:367 +#: ../src/goabackend/goaowncloudprovider.c:1158 +#, c-format +msgid "Did not find password with identity `%s' in credentials" +msgstr "শংসাপত্রে `%s' পরিচয়তে পাসওয়ার্ড খুঁজে পাওয়া যায়নি" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#: ../src/goabackend/goaexchangeprovider.c:336 +#: ../src/goabackend/goagoogleprovider.c:632 +#: ../src/goabackend/goaowncloudprovider.c:390 +#, c-format +msgid "Invalid password with username `%s' (%s, %d): " +msgstr "`%s' (%s, %d) ব্যবহারকারী নামের পাসওয়ার্ড অবৈধ: " + +#: ../src/goabackend/goaexchangeprovider.c:501 +#: ../src/goabackend/goaimapsmtpprovider.c:690 +msgid "_E-mail" +msgstr "ই-মেল (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:502 +#: ../src/goabackend/goaimapsmtpprovider.c:710 +#: ../src/goabackend/goaimapsmtpprovider.c:730 +#: ../src/goabackend/goaowncloudprovider.c:630 +msgid "_Password" +msgstr "পাসওয়ার্ড (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:505 +msgid "_Custom" +msgstr "কাস্টম (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:524 +#: ../src/goabackend/goaimapsmtpprovider.c:709 +#: ../src/goabackend/goaimapsmtpprovider.c:729 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:629 +msgid "User_name" +msgstr "ব্যবহারকারীর নাম (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:525 +#: ../src/goabackend/goaowncloudprovider.c:628 +msgid "_Server" +msgstr "সার্ভার (_S)" + +#: ../src/goabackend/goaexchangeprovider.c:555 +#: ../src/goabackend/goaimapsmtpprovider.c:762 +#: ../src/goabackend/goakerberosprovider.c:1153 +#: ../src/goabackend/goaowncloudprovider.c:659 +msgid "Connecting…" +msgstr "সংযোগ করা হচ্ছে…" + +#: ../src/goabackend/goaexchangeprovider.c:660 +#: ../src/goabackend/goaexchangeprovider.c:855 +#: ../src/goabackend/goaimapsmtpprovider.c:922 +#: ../src/goabackend/goaimapsmtpprovider.c:957 +#: ../src/goabackend/goaimapsmtpprovider.c:1045 +#: ../src/goabackend/goaimapsmtpprovider.c:1301 +#: ../src/goabackend/goaimapsmtpprovider.c:1374 +#: ../src/goabackend/goakerberosprovider.c:1544 +#: ../src/goabackend/goaoauth2provider.c:1064 +#: ../src/goabackend/goaoauthprovider.c:1041 +#: ../src/goabackend/goaowncloudprovider.c:770 +#: ../src/goabackend/goaowncloudprovider.c:982 +#, c-format +msgid "Dialog was dismissed" +msgstr "ডায়ালগ বরখাস্ত করা হয়েছিল" + +#: ../src/goabackend/goaexchangeprovider.c:698 +#: ../src/goabackend/goaexchangeprovider.c:883 +#: ../src/goabackend/goaimapsmtpprovider.c:987 +#: ../src/goabackend/goaimapsmtpprovider.c:1078 +#: ../src/goabackend/goaimapsmtpprovider.c:1325 +#: ../src/goabackend/goaimapsmtpprovider.c:1399 +#: ../src/goabackend/goaowncloudprovider.c:812 +#: ../src/goabackend/goaowncloudprovider.c:1003 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "ডায়ালগ বাতিল করা হয়েছে (%s, %d): " + +# auto translated by TM merge from project: gedit, version: 3.8.3, DocId: gedit +#: ../src/goabackend/goaexchangeprovider.c:711 +#: ../src/goabackend/goaimapsmtpprovider.c:1000 +#: ../src/goabackend/goaimapsmtpprovider.c:1091 +#: ../src/goabackend/goaowncloudprovider.c:825 +msgid "_Ignore" +msgstr "অগ্রাহ্য করা হবে (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:716 +#: ../src/goabackend/goaexchangeprovider.c:902 +#: ../src/goabackend/goaimapsmtpprovider.c:1005 +#: ../src/goabackend/goaimapsmtpprovider.c:1096 +#: ../src/goabackend/goaimapsmtpprovider.c:1344 +#: ../src/goabackend/goaimapsmtpprovider.c:1418 +#: ../src/goabackend/goakerberosprovider.c:1654 +#: ../src/goabackend/goaowncloudprovider.c:830 +#: ../src/goabackend/goaowncloudprovider.c:1022 +msgid "_Try Again" +msgstr "আবার চেষ্টা করুন (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:721 +#: ../src/goabackend/goaexchangeprovider.c:895 +msgid "Error connecting to Microsoft Exchange server" +msgstr "মাইক্রোসফট এক্সচেঞ্জ সার্ভারের সাথে সংযোগ করার সময় ত্রুটি ঘটছে" + +#: ../src/goabackend/goaexchangeprovider.c:957 +#: ../src/goabackend/goafacebookprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:677 +#: ../src/goabackend/goakerberosprovider.c:1725 +#: ../src/goabackend/goaowncloudprovider.c:1078 +#: ../src/goabackend/goawindowsliveprovider.c:424 +msgid "Use for" +msgstr "এর জন্য ব্যবহার করুন" + +#: ../src/goabackend/goaexchangeprovider.c:959 +#: ../src/goabackend/goagoogleprovider.c:679 +msgid "_Mail" +msgstr "মেল (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:964 +#: ../src/goabackend/goagoogleprovider.c:684 +#: ../src/goabackend/goaowncloudprovider.c:1080 +msgid "Cale_ndar" +msgstr "ক্যালেন্ডার (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:969 +#: ../src/goabackend/goagoogleprovider.c:689 +#: ../src/goabackend/goaowncloudprovider.c:1085 +msgid "_Contacts" +msgstr "কন্টাক্টস (_C)" + +#: ../src/goabackend/goafacebookprovider.c:82 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:205 +#: ../src/goabackend/goagoogleprovider.c:200 +#: ../src/goabackend/goawindowsliveprovider.c:187 +#, c-format +msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgstr "" +"গাইড অনুরোধ করার সময় স্ট্যাটাস ২০০ প্রত্যাশিত, কিন্তু তার পরিবর্তে, " +"স্ট্যাটাস %d (%s) পাওয়া গেছে" + +# auto translated by TM merge from project: gvfs, version: 1.16.3, DocId: gvfs +#: ../src/goabackend/goafacebookprovider.c:224 +#: ../src/goabackend/goafacebookprovider.c:236 +#: ../src/goabackend/goafacebookprovider.c:246 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:219 +#: ../src/goabackend/goagoogleprovider.c:231 +#: ../src/goabackend/goaoauth2provider.c:600 +#: ../src/goabackend/goaoauth2provider.c:630 +#: ../src/goabackend/goaoauth2provider.c:642 +#: ../src/goabackend/goawindowsliveprovider.c:206 +#: ../src/goabackend/goawindowsliveprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:230 +#, c-format +msgid "Could not parse response" +msgstr "প্রাপ্ত উত্তর পার্স করা যায়নি" + +#: ../src/goabackend/goafacebookprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:694 +#: ../src/goabackend/goawindowsliveprovider.c:426 +msgid "C_hat" +msgstr "চ্যাট (_h)" + +#: ../src/goabackend/goaflickrprovider.c:83 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:183 +#, c-format +msgid "" +"Expected status 200 when requesting user id, instead got status %d (%s)" +msgstr "" +"ব্যবহারকারী অাইডি অনুরোধের সময়ে প্রত্যাশিত স্ট্যাটাস 200, পরিবর্তে পাওয়া " +"স্ট্যাটাস হল %d (%s)" + +#: ../src/goabackend/goaflickrprovider.c:322 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "আপনার সিস্টেমের সময় অবৈধ। আপনার তারিখ এবং সময় সেটিংস চেক করুন।" + +#: ../src/goabackend/goaflickrprovider.c:424 +msgid "_Photos" +msgstr "ছবি (_P)" + +#: ../src/goabackend/goagoogleprovider.c:86 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:699 +#: ../src/goabackend/goawindowsliveprovider.c:431 +msgid "_Documents" +msgstr "ডকুমেন্টস (_D)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:99 +#: ../src/goabackend/goasmtpauthplain.c:146 +#, c-format +msgid "Service not available" +msgstr "পরিষেবা উপলব্ধ নয়" + +# auto translated by TM merge from project: evolution-mapi, version: el6, DocId: evolution-mapi +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:120 +#: ../src/goabackend/goasmtpauthplain.c:115 +#, c-format +msgid "Authentication failed" +msgstr "পরিচয় প্রমাণ করতে বিফল" + +#: ../src/goabackend/goaimapsmtpprovider.c:82 +msgid "IMAP and SMTP" +msgstr "IMAP এবং SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:356 +#, c-format +msgid "Did not find imap-password with identity `%s' in credentials" +msgstr "শংসাপত্রে `%s' পরিচয়ের ক্ষেত্রে imap-password খুঁজে পাওয়া যায়নি" + +#. Translators: the first %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#: ../src/goabackend/goaimapsmtpprovider.c:385 +#, c-format +msgid "Invalid imap-password with username `%s' (%s, %d): " +msgstr "`%s' (%s, %d) ব্যবহারকারী নামের ক্ষেত্রে অবৈধ imap-password: " + +#: ../src/goabackend/goaimapsmtpprovider.c:409 +#, c-format +msgid "Did not find smtp-password with identity `%s' in credentials" +msgstr "শংসাপত্রে `%s' পরিচয়ের ক্ষেত্রে smtp-password খুঁজে পাওয়া যায়নি" + +#. Translators: the first %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#: ../src/goabackend/goaimapsmtpprovider.c:440 +#, c-format +msgid "Invalid smtp-password with username `%s' (%s, %d): " +msgstr "`%s' (%s, %d) ব্যবহারকারী নামের ক্ষেত্রে smtp-password অবৈধ: " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#: ../src/goabackend/goaimapsmtpprovider.c:626 +msgid "_Encryption" +msgstr "এনক্রিপশন (_E)" + +# auto translated by TM merge from project: rhsm-web, version: 0.0, DocId: management +#: ../src/goabackend/goaimapsmtpprovider.c:629 +msgid "None" +msgstr "শূণ্য" + +#: ../src/goabackend/goaimapsmtpprovider.c:632 +msgid "STARTTLS after connecting" +msgstr "সংযোগের পরে STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:635 +msgid "SSL on a dedicated port" +msgstr "একটি বিশেষ ভাবে নির্দিষ্ট পোর্টে SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:691 +msgid "_Name" +msgstr "নাম (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:708 +msgid "IMAP _Server" +msgstr "IMAP সার্ভার (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:728 +msgid "SMTP _Server" +msgstr "SMTP সার্ভার (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1010 +#: ../src/goabackend/goaimapsmtpprovider.c:1337 +msgid "Error connecting to IMAP server" +msgstr "IMAP সার্ভারে সংযোগের ক্ষেত্রে সমস্যা" + +#: ../src/goabackend/goaimapsmtpprovider.c:1101 +#: ../src/goabackend/goaimapsmtpprovider.c:1411 +msgid "Error connecting to SMTP server" +msgstr "SMTP সার্ভারে সংযোগের ক্ষেত্রে সমস্যা" + +#: ../src/goabackend/goaimapsmtpprovider.c:1519 +msgid "E-mail" +msgstr "ইমেল" + +# auto translated by TM merge from project: rhsm-web, version: 0.0, DocId: management +#: ../src/goabackend/goaimapsmtpprovider.c:1523 +msgid "Name" +msgstr "নাম" + +# auto translated by TM merge from project: evolution-data-server, version: el6, DocId: evolution-data-server-2.32 +#: ../src/goabackend/goaimapsmtpprovider.c:1533 +#: ../src/goabackend/goaimapsmtpprovider.c:1536 +msgid "IMAP" +msgstr "IMAP" + +# auto translated by TM merge from project: evolution-data-server, version: el6, DocId: evolution-data-server-2.32 +#: ../src/goabackend/goaimapsmtpprovider.c:1547 +#: ../src/goabackend/goaimapsmtpprovider.c:1550 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:87 +msgid "Enterprise Login (Kerberos)" +msgstr "এন্টারপ্রাইজ লগইন (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:449 +msgid "Identity service returned invalid key" +msgstr "পরিচয় সেবা অবৈধ কী ফিরিয়েেছ" + +#: ../src/goabackend/goakerberosprovider.c:715 +#, c-format +msgid "Could not find saved credentials for principal `%s' in keyring" +msgstr "keyring - এ সংরক্ষিত ক্রেডেনশিয়ালস এ প্রধান `%s' খুঁজে পাওয়া যায়নি" + +#: ../src/goabackend/goakerberosprovider.c:725 +#, c-format +msgid "Did not find password for principal `%s' in credentials" +msgstr "ক্রেডেনশিয়ালস এ প্রধান `% s' এর জন্য পাসওয়ার্ড খুঁজে পাওয়া যায়নি " + +#: ../src/goabackend/goakerberosprovider.c:1120 +msgid "_Domain" +msgstr "ডোমেন (_D)" + +#: ../src/goabackend/goakerberosprovider.c:1121 +msgid "Enterprise domain or realm name" +msgstr "এন্টারপ্রাইজ ডোমেন অথবা রিল্মের নাম" + +#: ../src/goabackend/goakerberosprovider.c:1353 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "রিল্মে লগইন করুন" + +#: ../src/goabackend/goakerberosprovider.c:1354 +msgid "Please enter your password below." +msgstr "অনুগ্রহ করে আপনার পাসওয়ার্ড নিচে লিখুন।" + +#: ../src/goabackend/goakerberosprovider.c:1355 +msgid "Remember this password" +msgstr "এই পাসওয়ার্ড মনে রাখুন" + +#: ../src/goabackend/goakerberosprovider.c:1494 +#, c-format +msgid "The domain is not valid" +msgstr "ডোমেন বৈধ নয়" + +#: ../src/goabackend/goakerberosprovider.c:1649 +msgid "Error connecting to enterprise identity server" +msgstr "এন্টারপ্রাইজ অাইডেন্টিটি সার্ভারের সাথে সংযোগ করার সময় ত্রুটি" + +#: ../src/goabackend/goakerberosprovider.c:1727 +msgid "Network _Resources" +msgstr "নেটওয়ার্ক রিসোর্সেস (_R)" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:576 +#: ../src/goabackend/goaoauthprovider.c:586 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"অ্যাক্সেস টোকেন অনুরোধ করার সময় স্ট্যাটাস ২০০ প্রত্যাশিত, কিন্তু তার " +"পরিবর্তে, স্ট্যাটাস %d (%s) পাওয়া গেছে" + +#: ../src/goabackend/goaoauth2provider.c:851 +#: ../src/goabackend/goaoauth2provider.c:891 +#, c-format +msgid "Authorization response was \"%s\"" +msgstr "অনুমোদন প্রতিক্রিয়া ছিল \"%s\"" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:997 +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr " অনুমোদন পৃষ্ঠা থেকে প্রাপ্ত অনুমোদন কোড আটকান:" + +#: ../src/goabackend/goaoauth2provider.c:1090 +#: ../src/goabackend/goaoauthprovider.c:1072 +msgid "Error getting an Access Token: " +msgstr "একটি অ্যাক্সেস টোকেন পেতে ত্রুটি: " + +#: ../src/goabackend/goaoauth2provider.c:1105 +#: ../src/goabackend/goaoauthprovider.c:1085 +msgid "Error getting identity: " +msgstr "অাইডেন্টিটি পেতে ত্রুটি" + +#: ../src/goabackend/goaoauth2provider.c:1395 +#: ../src/goabackend/goaoauthprovider.c:1391 +#, c-format +msgid "Was asked to login as %s, but logged in as %s" +msgstr "%s হিসেবে লগইন করতে অনুরোধ করা হয়েছিল, কিন্তু %s হিসাবে লগ ইন হয়েছেন" + +#: ../src/goabackend/goaoauth2provider.c:1566 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "ক্রেডেনশিয়ালস এ access_token নেই" + +#: ../src/goabackend/goaoauth2provider.c:1605 +#: ../src/goabackend/goaoauthprovider.c:1619 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "অ্যাক্সেস টোকেন (%s, %d) রিফ্রেশ করতে ব্যর্থ:" + +#: ../src/goabackend/goaoauthprovider.c:609 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"প্রতিক্রিয়ায় access_token বা access_token_secret হেডারগুলি অনুপস্থিত" + +#: ../src/goabackend/goaoauthprovider.c:911 +msgid "Error getting a Request Token: " +msgstr "একটি অনুরোধ টোকেন পেতে ত্রুটি" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:944 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"একটি অনুরোধ টোকেন পাওয়ার জন্য স্ট্যাটাস 200 প্রত্যাশিত, এর পরিবর্তে " +"স্ট্যাটাস %d (%s) পাওয়া গেছে" + +#: ../src/goabackend/goaoauthprovider.c:961 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"প্রতিক্রিয়ায় request_token বা request_token_secret হেডারগুলি অনুপস্থিত" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:978 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr " অনুমোদন পৃষ্ঠা থেকে প্রাপ্ত টোকেন কোড আটকান:" + +#: ../src/goabackend/goaoauthprovider.c:1575 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "ক্রেডেনশিয়ালস এ access_token বা access_token_secret নেই " + +#: ../src/goabackend/goaowncloudprovider.c:87 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:835 +#: ../src/goabackend/goaowncloudprovider.c:1015 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud সার্ভারে সংযোগের ক্ষেত্রে সমস্যা" + +#: ../src/goabackend/goaowncloudprovider.c:1090 +msgid "_Files" +msgstr "ফাইলগুলি (_F)" + +#: ../src/goabackend/goaprovider.c:577 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync টাইপ %s এর উপর প্রয়োগ করা হয় নি" + +# auto translated by TM merge from project: evolution-data-server, version: el6, DocId: evolution-data-server-2.32 +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:161 +#, c-format +msgid "TLS not available" +msgstr "TLS উপলব্ধ নয়" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:193 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail উপলব্ধ নয়" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:203 +#, c-format +msgid "Failed to parse email address" +msgstr "ইমেল ঠিকানা পার্জ করা গেল না" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:215 +#, c-format +msgid "Cannot do SMTP PLAIN without a domain" +msgstr "একটি ডোমেন ছাড়া SMTP PLAIN করা যায় না" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:253 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "শংসাপত্রে smtp-password খুঁজে পাওয়া যায়নি" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:264 +#, c-format +msgid "Cannot do SMTP PLAIN without a password" +msgstr "একটি পাসওয়ার্ড ছাড়া SMTP PLAIN করা যায় না" + +#: ../src/goabackend/goasmtpauthplain.c:619 +#, c-format +msgid "Server does not support PLAIN" +msgstr "সার্ভার PLAIN সমর্থন করে না" + +#: ../src/goabackend/goasmtpauthplain.c:731 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "সার্ভার STARTTLS সমর্থন করে না" + +#: ../src/goabackend/goautils.c:86 +#, c-format +msgid "A %s account already exists for %s" +msgstr "একটি %s অ্যাকাউন্ট %s এর জন্য ইতিমধ্যেই বিদ্যমান" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:108 +#, c-format +msgid "%s account" +msgstr "%s অ্যাকাউন্ট" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:152 +msgid "Failed to delete credentials from the keyring" +msgstr "keyring থেকে ক্রেডেনশিয়ালস মুছতে ব্যর্থ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:204 +msgid "Failed to retrieve credentials from the keyring" +msgstr "keyring ক্রেডেনশিয়ালস থেকে পুনরুদ্ধার করতে ব্যর্থ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:214 +msgid "No credentials found in the keyring" +msgstr "keyring এ কোনো শংসাপত্র খুঁজে পাওয়া যায়নি" + +#: ../src/goabackend/goautils.c:227 +msgid "Error parsing result obtained from the keyring: " +msgstr "keyring থেকে প্রাপ্ত ফলাফল পার্স করতে ত্রুটি:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'facebook' +#: ../src/goabackend/goautils.c:270 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "অাইডেন্টিটি %s এর জন্য GOA ক্রেডেনশিয়ালস %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:287 +msgid "Failed to store credentials in the keyring" +msgstr " keyring এ ক্রেডেনশিয়ালস সংরক্ষণ করতে ব্যর্থ" + +#: ../src/goabackend/goautils.c:508 +msgid "The signing certificate authority is not known." +msgstr "স্বাক্ষরকারী সার্টিফিকেট কর্তৃত্ব অজানাঁ" + +#: ../src/goabackend/goautils.c:512 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "সার্টিফিকেট সাইটের প্রত্যাশিত পরিচয়ের সংগে মিলছে না।" + +#: ../src/goabackend/goautils.c:517 +msgid "The certificate's activation time is still in the future." +msgstr "সার্টিফিকেটের সক্রিয়করণ সময় এখনও ভবিষ্যতে অাছে।" + +#: ../src/goabackend/goautils.c:521 +msgid "The certificate has expired." +msgstr "সার্টিফিকেটের মেয়াদ শেষ হয়ে গেছে।" + +# auto translated by TM merge from project: libvirt, version: 1.1.1, DocId: libvirt +#: ../src/goabackend/goautils.c:525 +msgid "The certificate has been revoked." +msgstr "সার্টিফিকেট নাকচ করা হয়েছে।" + +#: ../src/goabackend/goautils.c:529 +msgid "The certificate's algorithm is considered insecure." +msgstr "সার্টিফিকেটের অ্যালগরিদম অনিরাপদ বলে বিবেচনা করা হয়।" + +#: ../src/goabackend/goautils.c:533 +msgid "Invalid certificate." +msgstr "অবৈধ সার্টিফিকেট।" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:74 +#, c-format +msgid "Loading “%s”…" +msgstr "\"%s\" লোড হচ্ছে ..." + +#: ../src/goabackend/goawindowsliveprovider.c:84 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goaidentity/goaalarm.c:245 +msgid "Time" +msgstr "সময়" + +#: ../src/goaidentity/goaalarm.c:246 +msgid "Time to fire" +msgstr "ফায়ার করতে সময়" + +#: ../src/goaidentity/goaidentityservice.c:377 +msgid "initial secret passed before secret key exchange" +msgstr "গুপ্ত কী এক্সচেঞ্জের আগে প্রাথমিক গুপ্ত তথ্য পাস হয়ে গেছে" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "প্রাথমিক গুপ্ত কী অবৈধ" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "আপনাকে সাইন ইন করতে %s নেটওয়ার্ক রিল্মের কিছু তথ্য প্রয়োজন।" + +#: ../src/goaidentity/goakerberosidentity.c:272 +#: ../src/goaidentity/goakerberosidentity.c:281 +#: ../src/goaidentity/goakerberosidentity.c:608 +msgid "Could not find identity in credential cache: %k" +msgstr "ক্রেডেনশিয়াল ক্যাশে পরিচয় পাওয়া যায়নি:% ট" + +#: ../src/goaidentity/goakerberosidentity.c:621 +msgid "Could not find identity credentials in cache: %k" +msgstr "ক্যাশের মধ্যে অাইডেন্টিটি ক্রেডেনশিয়ালস পাওয়া যায়নি: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "ক্যাশের মধ্যে অাইডেন্টিটি ক্রেডেনশিয়ালস খুঁজে বার করা যায়নি: %k" + +#: ../src/goaidentity/goakerberosidentity.c:676 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "ক্যাশে পরিচয় ক্রেডেনশিয়ালসের অনুসন্ধান সম্পূর্ণ করা যায়নি: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1014 +#, c-format +msgid "No associated identification found" +msgstr "কোনো সংশ্লিষ্ট সনাক্তকরণ পাওয়া যায়নি" + +#: ../src/goaidentity/goakerberosidentity.c:1095 +msgid "Could not create credential cache: %k" +msgstr "ক্রেডেনশিয়াল ক্যাশে তৈরি করা যায়নি: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1129 +msgid "Could not initialize credentials cache: %k" +msgstr "%k: ক্রেডেনশিয়ালস ক্যাশে আরম্ভ করা যায়নি" + +#: ../src/goaidentity/goakerberosidentity.c:1148 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" +"ক্রেডেনশিয়ালস ক্যাশের মধ্যে নতুন ক্রেডেনশিয়ালস সংরক্ষণ করা যায়নি: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1425 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "অাইডেন্টিটি পুনর্নবীকরণ করা যায়নি: সাইন ইন করা নেই" + +#: ../src/goaidentity/goakerberosidentity.c:1437 +msgid "Could not renew identity: %k" +msgstr "%k: অাইডেন্টিটি পুনরারম্ভ করা যায়নি" + +#: ../src/goaidentity/goakerberosidentity.c:1454 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "%s পরিচয় নবীকরণের জন্য নতুন ক্রেডেনশিয়ালস পাওয়া যায়নি: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1494 +msgid "Could not erase identity: %k" +msgstr "%k: পরিচয় মুছে ফেলা যায়নি" + +#: ../src/goaidentity/goakerberosidentitymanager.c:747 +msgid "Could not find identity" +msgstr "পরিচয় পাওয়া যায়নি" + +#: ../src/goaidentity/goakerberosidentitymanager.c:824 +msgid "Could not create credential cache for identity" +msgstr "পরিচয়ের জন্য ক্যাশে ক্রেডেনশিয়াল তৈরি করা যায়নি" diff --git a/po/boldquot.sed b/po/boldquot.sed new file mode 100644 index 0000000..4b937aa --- /dev/null +++ b/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/po/bs.gmo b/po/bs.gmo new file mode 100644 index 0000000..a813b2b Binary files /dev/null and b/po/bs.gmo differ diff --git a/po/bs.po b/po/bs.po new file mode 100644 index 0000000..475a8c6 --- /dev/null +++ b/po/bs.po @@ -0,0 +1,852 @@ +# Bosnian translation for gnome-online-accounts +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the gnome-online-accounts package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2015-02-26 20:08+0000\n" +"PO-Revision-Date: 2015-02-27 10:48+0100\n" +"Last-Translator: Samir Ribic \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2015-02-05 06:46+0000\n" +"X-Generator: Launchpad (build 17331)\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:787 ../src/daemon/goadaemon.c:1048 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Nisam uspio da pronađem dostavljača za: %s" + +#: ../src/daemon/goadaemon.c:976 +msgid "IsLocked property is set for account" +msgstr "Svojstvo JeZaključan je postavljeno za račun" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1036 +msgid "ProviderType property is not set for account" +msgstr "Vrsta dostavljača nije podešena za nalog" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:230 ../src/goabackend/goahttpclient.c:174 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kod : %u — Neočekivan odgovor od servera" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:246 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Nisam uspio da obradim samootkrivajući odgovor za XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element nami. +#: ../src/goabackend/goaewsclient.c:257 ../src/goabackend/goaewsclient.c:272 +#: ../src/goabackend/goaewsclient.c:287 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "Nisam uspio naći ‘%s’ element" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:308 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Nisam uspio da pronađem AS adresu i OAB adresu u odgovoru samootkrivanja" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:383 +#: ../src/goabackend/goaowncloudprovider.c:1168 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "Nije pronadjena lozinka u uvjerenjima sa identitetom ‘%s’" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:406 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "Pogrešna lozinka sa korisničkim imenom ‘%s’ (%s, %d) " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:700 +msgid "_E-mail" +msgstr "_El. pošta" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:720 +#: ../src/goabackend/goaimapsmtpprovider.c:740 +#: ../src/goabackend/goaowncloudprovider.c:634 +msgid "_Password" +msgstr "_Lozinka" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "_Prilagođeno" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:719 +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goakerberosprovider.c:1108 +#: ../src/goabackend/goaowncloudprovider.c:633 +msgid "User_name" +msgstr "Korisničko _ime" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:632 +msgid "_Server" +msgstr "_Server" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:752 +#: ../src/goabackend/goakerberosprovider.c:1113 +#: ../src/goabackend/goaowncloudprovider.c:643 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "_Prekini" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1114 +#: ../src/goabackend/goaowncloudprovider.c:644 +msgid "C_onnect" +msgstr "P_oveži se" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:769 +#: ../src/goabackend/goakerberosprovider.c:1130 +#: ../src/goabackend/goaowncloudprovider.c:660 +msgid "Connecting…" +msgstr "Povezujem se…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:931 +#: ../src/goabackend/goaimapsmtpprovider.c:966 +#: ../src/goabackend/goaimapsmtpprovider.c:1054 +#: ../src/goabackend/goaimapsmtpprovider.c:1318 +#: ../src/goabackend/goaimapsmtpprovider.c:1391 +#: ../src/goabackend/goakerberosprovider.c:1521 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1086 +#: ../src/goabackend/goaoauthprovider.c:916 +#: ../src/goabackend/goaowncloudprovider.c:771 +#: ../src/goabackend/goaowncloudprovider.c:986 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "Dijalog je otkazan" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:996 +#: ../src/goabackend/goaimapsmtpprovider.c:1089 +#: ../src/goabackend/goaimapsmtpprovider.c:1342 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goaowncloudprovider.c:813 +#: ../src/goabackend/goaowncloudprovider.c:1007 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dijaloški prozor je odbačen (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1009 +#: ../src/goabackend/goaimapsmtpprovider.c:1102 +#: ../src/goabackend/goaowncloudprovider.c:826 +msgid "_Ignore" +msgstr "_Ignoriši" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1014 +#: ../src/goabackend/goaimapsmtpprovider.c:1107 +#: ../src/goabackend/goaimapsmtpprovider.c:1361 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1631 +#: ../src/goabackend/goaowncloudprovider.c:831 +#: ../src/goabackend/goaowncloudprovider.c:1026 +msgid "_Try Again" +msgstr "_Pokušajte ponovo" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Greška povezivanja na server Microsoft Exchange" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goaflickrprovider.c:412 +#: ../src/goabackend/goafoursquareprovider.c:404 +#: ../src/goabackend/goagoogleprovider.c:620 +#: ../src/goabackend/goakerberosprovider.c:1704 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1082 +#: ../src/goabackend/goapocketprovider.c:406 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:415 +msgid "Use for" +msgstr "Koristi za" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:622 +#: ../src/goabackend/goawindowsliveprovider.c:417 +msgid "_Mail" +msgstr "_Pošta" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:627 +#: ../src/goabackend/goaowncloudprovider.c:1084 +msgid "Cale_ndar" +msgstr "Kale_ndar" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:632 +#: ../src/goabackend/goaowncloudprovider.c:1089 +msgid "_Contacts" +msgstr "_Kontakti" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goafoursquareprovider.c:188 +#: ../src/goabackend/goagoogleprovider.c:219 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Ocekivano stanje 200 pri potraznji vaseg indetiteta, umjesto dobiveno stanje " +"%d(%s)" + +#: ../src/goabackend/goafacebookprovider.c:234 +#: ../src/goabackend/goafacebookprovider.c:246 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goafoursquareprovider.c:207 +#: ../src/goabackend/goafoursquareprovider.c:219 +#: ../src/goabackend/goafoursquareprovider.c:230 +#: ../src/goabackend/goafoursquareprovider.c:241 +#: ../src/goabackend/goafoursquareprovider.c:252 +#: ../src/goabackend/goafoursquareprovider.c:263 +#: ../src/goabackend/goagoogleprovider.c:238 +#: ../src/goabackend/goagoogleprovider.c:250 +#: ../src/goabackend/goaoauth2provider.c:699 +#: ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#, c-format +msgid "Could not parse response" +msgstr "Ne mogu da obradim odgovor" + +#: ../src/goabackend/goafacebookprovider.c:427 +#: ../src/goabackend/goaflickrprovider.c:414 +#: ../src/goabackend/goagoogleprovider.c:647 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "_Slike" + +#: ../src/goabackend/goafacebookprovider.c:432 +#: ../src/goabackend/goafoursquareprovider.c:406 +msgid "_Maps" +msgstr "_Mape" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:320 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Vaše sistemsko vrijeme je pogrešno. Projverite vaša podešavanja datuma i " +"vremena." + +#: ../src/goabackend/goafoursquareprovider.c:76 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:637 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "R_azgovor" + +#: ../src/goabackend/goagoogleprovider.c:642 +#: ../src/goabackend/goaowncloudprovider.c:1094 +#: ../src/goabackend/goawindowsliveprovider.c:422 +msgid "_Documents" +msgstr "_Dokumenti" + +#: ../src/goabackend/goagoogleprovider.c:652 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "_Files" +msgstr "_Datoteke" + +#: ../src/goabackend/goagoogleprovider.c:657 +msgid "Prin_ters" +msgstr "Prin_teri" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "Servis nije dostupan" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "Provjera identiteta nije uspjela" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Server ne podržava „PLAIN“" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Server ne podržava „STARTLS“" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP i SMTP" + +#. Translators: the first parameter is a field nami. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:358 +#: ../src/goabackend/goaimapsmtpprovider.c:416 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "Nije pronadjen %s sa identitetom ‘%s’ u akreditaciji" + +#. Translators: the first %s is a field nami. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field nami. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:389 +#: ../src/goabackend/goaimapsmtpprovider.c:449 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "Nevažeći %s sa korisničkim imenom ‘%s’ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:636 +msgid "_Encryption" +msgstr "_Šifrovanje" + +#: ../src/goabackend/goaimapsmtpprovider.c:639 +msgid "None" +msgstr "Nijedno" + +#: ../src/goabackend/goaimapsmtpprovider.c:642 +msgid "STARTTLS after connecting" +msgstr "STARTTLS nakon spajanja" + +#: ../src/goabackend/goaimapsmtpprovider.c:645 +msgid "SSL on a dedicated port" +msgstr "SSL na posebnom portu" + +#: ../src/goabackend/goaimapsmtpprovider.c:701 +msgid "_Name" +msgstr "_Ime" + +#: ../src/goabackend/goaimapsmtpprovider.c:718 +msgid "IMAP _Server" +msgstr "IMAP _Server" + +#: ../src/goabackend/goaimapsmtpprovider.c:738 +msgid "SMTP _Server" +msgstr "SMTP _Server" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +#: ../src/goabackend/goaimapsmtpprovider.c:1035 +#: ../src/goabackend/goaimapsmtpprovider.c:1371 +msgid "_Forward" +msgstr "_Naprijed" + +#: ../src/goabackend/goaimapsmtpprovider.c:1019 +#: ../src/goabackend/goaimapsmtpprovider.c:1354 +msgid "Error connecting to IMAP server" +msgstr "Greška povezivanja na IMAP server" + +#: ../src/goabackend/goaimapsmtpprovider.c:1112 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Greška povezivanja na SMTP server" + +#: ../src/goabackend/goaimapsmtpprovider.c:1527 +msgid "E-mail" +msgstr "E-mail" + +#: ../src/goabackend/goaimapsmtpprovider.c:1531 +msgid "Name" +msgstr "Naziv" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +#: ../src/goabackend/goaimapsmtpprovider.c:1544 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1558 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:64 +msgid "Enterprise Login (Kerberos)" +msgstr "Poslovno prijavljivanje (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:432 +msgid "Identity service returned invalid key" +msgstr "Usluga identiteta je vratila neispravan ključ" + +#: ../src/goabackend/goakerberosprovider.c:704 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"Ne mogu se pronaći vjerodostojne svjedodžbe za principal '%s' u privjesku" + +#: ../src/goabackend/goakerberosprovider.c:717 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "Nije pronađena lozinka za principal '%s' u svjedodžbi" + +#: ../src/goabackend/goakerberosprovider.c:1100 +msgid "_Domain" +msgstr "_Domena" + +#: ../src/goabackend/goakerberosprovider.c:1101 +msgid "Enterprise domain or realm name" +msgstr "Poslovni domen ili naziv područja" + +#: ../src/goabackend/goakerberosprovider.c:1330 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "Prijavite se na područje" + +#: ../src/goabackend/goakerberosprovider.c:1331 +msgid "Please enter your password below." +msgstr "Unesite svoju lozinku." + +#: ../src/goabackend/goakerberosprovider.c:1332 +msgid "Remember this password" +msgstr "Zapamti ovu lozinku" + +#: ../src/goabackend/goakerberosprovider.c:1471 +#, c-format +msgid "The domain is not valid" +msgstr "Domena nije važeća" + +#: ../src/goabackend/goakerberosprovider.c:1626 +msgid "Error connecting to enterprise identity server" +msgstr "Greška povezivanja na server poslovnog identiteta" + +#: ../src/goabackend/goakerberosprovider.c:1706 +msgid "Network _Resources" +msgstr "Mrežni _resursi" + +#: ../src/goabackend/goamediaserverprovider.c:76 +msgid "Media Server" +msgstr "Media Poslužitelj" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Osobni sadržaj može biti dodan Vašim aplikacijama preko Media poslužitelja " +"računa ." + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "Media poslužitellj dostupan" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "Nijedan media poslužitelj nije nađen" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 +#: ../src/goabackend/goaoauthprovider.c:558 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Očekivan status 200 kada je zahtijevan token za pristup umjesto toga dobijen " +"status %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:896 +msgid "Authorization response: " +msgstr "Odgovor autorizacije: " + +#: ../src/goabackend/goaoauth2provider.c:966 +#, c-format +msgid "Authorization response: %s" +msgstr "Odgovor autorizacije: %s" + +#: ../src/goabackend/goaoauth2provider.c:1112 +#: ../src/goabackend/goaoauthprovider.c:947 +msgid "Error getting an Access Token: " +msgstr "Greška prilikom dobavljanja tokena pristupa: " + +#: ../src/goabackend/goaoauth2provider.c:1127 +#: ../src/goabackend/goaoauthprovider.c:960 +msgid "Error getting identity: " +msgstr "Greška prilikom dobavljanja identiteta: " + +#: ../src/goabackend/goaoauth2provider.c:1344 +#: ../src/goabackend/goaoauthprovider.c:1268 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Zatraženo je da se prijavite kao %s, ali prijavljeni ste kao %s" + +#: ../src/goabackend/goaoauth2provider.c:1506 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Ovlaštenja ne sadrže token_pristupa" + +#: ../src/goabackend/goaoauth2provider.c:1545 +#: ../src/goabackend/goaoauthprovider.c:1496 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Nisam uspio da osvježim token pristupa (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:581 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Nedostaju access_token ili access_token_secret headers u odgovoru" + +#: ../src/goabackend/goaoauthprovider.c:830 +msgid "Error getting a Request Token: " +msgstr "Greška prilikom dobavljanja tokena zahtjeva: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:863 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Očekivao status 200 za dobavljanje tokena zahtjeva, ali dobio status %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:880 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Nedostaju zaglavlja request_token ili request_token_secret u odgovoru" + +#: ../src/goabackend/goaoauthprovider.c:1452 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Ovlaštenja ne sadrže access_token ili access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:67 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:836 +#: ../src/goabackend/goaowncloudprovider.c:1019 +msgid "Error connecting to ownCloud server" +msgstr "Greška povezivanja na OwnCloud server" + +#: ../src/goabackend/goapocketprovider.c:69 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:218 +#, c-format +msgid "No username or access_token" +msgstr "Nije _izabrano korisničko ime ili pristup" + +#: ../src/goabackend/goapocketprovider.c:408 +msgid "_Read Later" +msgstr "_Čitaj kasnije" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync nije implementiran na tipu %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS nije dostupan" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail nijed dostupno" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "Nisam uspio da obradim adresu el. pošte" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "Ne mogu napraviti SMTP provjeru autentičnosti bez domene" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "Nisam našao smtp-lozinku u punomoćstvima" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "Ne mogu napraviti SMTP provjeru autentičnosti bez lozinke" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Nepoznat mehanizam autentičnosti" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Telepathy chat račun nije pronađen" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "Neuspješno pokretanje GOA klijenta" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Nije uspjelo kreiranje korisničkog sučelja %s" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "Postavke povezivanja" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "Lični detalji" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "_Uredu" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "Ne mogu se snimiti parametri povezivanja" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "Ne možeš snimiti lične podatke na server" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "_postavke povezivanja" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "_Osobni podaci" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Nalog „%s“ već postoji za %s" + +#. Translators: the %s is the nami of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "Nalog %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "Nisam uspio da obrišem povjerenja iz privjeska ključeva" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Nisam uspio da dovučem povjerenja iz prstena ključeva" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "Nisam našao punomoćstva u prstenu ključeva" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "Greška u analizi rezultata dobijenih iz privjeska ključeva: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s ovlašćenja za identitet %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "Nisam uspio da sačuvam povjerenja u prstenuu ključeva" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "Autoritet certifikata potpisa nije poznat." + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Certifikat se ne slaže s očekivanium identitetom na sajtu s koga je preuzet." + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "Aktivacijsko vrijeme certifikata je jos uvijek u budućnosti." + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "Certifikat je istekao." + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "Certifikat je opozvan." + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Certifikatski algoritam se smatra nesigurnim." + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "Neispravan certifikat-." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "Učitavam „%s“…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "početna tajna je proslijeđena prije razmjene tajnog ključa" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "Ključ početne tajne je neispravan" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Mrežnom području „%s“ su potrebni neki podaci da bi vas prijavio." + +#: ../src/goaidentity/goakerberosidentity.c:250 +#: ../src/goaidentity/goakerberosidentity.c:259 +#: ../src/goaidentity/goakerberosidentity.c:593 +msgid "Could not find identity in credential cache: %k" +msgstr "Ne mogu da pronađem identitet u ostavi povjerenja: %k" + +#: ../src/goaidentity/goakerberosidentity.c:607 +msgid "Could not find identity credentials in cache: %k" +msgstr "Ne mogu da pronađem povjerenja identiteta u ostavi: %k" + +#: ../src/goaidentity/goakerberosidentity.c:647 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Ne mogu da pregledam povjerenja identiteta u ostavi: %k" + +#: ../src/goaidentity/goakerberosidentity.c:665 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "Ne mogu da završim pregledanje povjerenja identiteta u ostavi: %k" + +#: ../src/goaidentity/goakerberosidentity.c:960 +#, c-format +msgid "No associated identification found" +msgstr "Nije pronađena pridružena identifikacija" + +#: ../src/goaidentity/goakerberosidentity.c:1043 +msgid "Could not create credential cache: %k" +msgstr "Ne mogu da napravim ostavu povjerenja: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1077 +msgid "Could not initialize credentials cache: %k" +msgstr "Ne mogu da inicijaliziram ostavu povjerenja: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1094 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "Ne mogu da sačuvam nova povjerenja u ostavi povjerenja: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1369 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Ne mogu da obnovim identitet: Niste prijavljeni" + +#: ../src/goaidentity/goakerberosidentity.c:1381 +msgid "Could not renew identity: %k" +msgstr "Ne mogu da obnovim identitet: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1398 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "Ne mogu da dobavim nova povjerenja za obnavljanje identiteta %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1440 +msgid "Could not erase identity: %k" +msgstr "Ne mogu da obrišem identitet: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "Ne mogu da pronađem identitet" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "Ne mogu da napravim ostavu povjerenja za identitet" diff --git a/po/ca.gmo b/po/ca.gmo new file mode 100644 index 0000000..8b60cfd Binary files /dev/null and b/po/ca.gmo differ diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..171ce95 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,947 @@ +# Catalan translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Pau Iranzo , 2011. +# Jordi Serratosa , 2012. +# Gil Forcada , 2012, 2013, 2014, 2018. +# Josep Sànchez , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-31 11:38+0000\n" +"PO-Revision-Date: 2018-01-22 00:28+0100\n" +"Last-Translator: Gil Forcada Codinachs \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Llista de proveïdors que es poden carregar" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Una llista de cadenes que representen els proveïdors que es poden carregar " +"(predeterminat: «all» - tots). Només s'avalua en iniciar." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "No s'ha trobat cap proveïdor per: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "La propietat «IsLocked» està establerta pel compte" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "El compte no té cap valor a la propietat «ProviderType»" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "No s'ha pogut analitzar l'XML de la resposta d'autodescoberta" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "No s'ha pogut trobar l'element «%s»" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"No s'ha pogut trobar l'ASUrl ni l'OABUrl en la resposta d'autodescoberta" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "La contrasenya per a l'usuari «%s» no és correcta (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Adreça electrònica" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Contrasenya" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalitzat" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Nom d'_usuari" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Servidor" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Cancel·la" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "C_onnecta" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "S'està connectant…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "S'ha descartat el diàleg" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "S'ha descartat el diàleg (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignora" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Torna-ho a intentar" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "" +"S'ha produït un error en connectar-se al servidor de Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"En sol·licitar la vostra identitat s'esperava l'estat 200, però s'ha rebut " +"l'estat %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "No s'ha pogut analitzar la resposta" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"L'hora del sistema no és correcte. Comproveu la configuració de la data i " +"l'hora." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "El servei no està disponible" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Ha fallat l'autenticació" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "El servidor no permet utilitzar «PLAIN»" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "El servidor no permet utilitzar «STARTTLS»" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP i SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s no vàlid amb l'usuari «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Encriptació" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Cap" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "Utilitza l'STARTTLS després de connectar" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "Utilitza l'SSL en un port dedicat" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nom" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Servidor d'IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "Servidor d'_SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Endavant" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "S'ha produït un error en connectar-se al servidor d'IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "S'ha produït un error en connectar-se al servidor d'SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Correu electrònic" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Nom" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Entrada corporativa (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "La creació de tiquets està bloquejada pel compte" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"No s'han pogut trobar les credencials desades pel principal «%s» a l'anell " +"de claus" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"No s'ha pogut trobar la contrasenya pel principal «%s» a les credencials" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "S'ha cancel·lat l'operació" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Entra al regne" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Introduïu la contrasenya a sota." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Recorda la contrasenya" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "" +"S'ha produït un error en connectar-se al servidor d'identitat corporativa" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "El servei d'identitat ha retornat una clau no vàlida" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "S'ha produït un error en connectar-se a Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Servidor multimèdia" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Podeu afegir contingut personalitzat a les aplicacions mitjançant un compte " +"a un servidor multimèdia." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Servidors multimèdia disponibles" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "No s'ha trobat cap servidor multimèdia" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"S'esperava l'estat 200 en sol·licitar el testimoni d'autenticació, però s'ha " +"rebut l'estat %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Resposta d'autorització:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Resposta d'autorització: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "S'ha produït un error en obtenir el testimoni d'autenticació: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "S'ha produït un error en obtenir la identitat: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "S'ha demanat identificar-se com a %s, però s'ha connectat com a %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Les credencials no contenen el testimoni d'autenticació" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "No s'ha pogut actualitzar el testimoni d'autenticació (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Manquen les capçaleres del testimoni d'autenticació o del secret del " +"testimoni d'autenticació en la resposta" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "S'ha produït un error en obtenir el testimoni de sol·licitud: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"S'esperava l'estat 200 per obtenir el testimoni de sol·licitud demanat, però " +"s'ha rebut l'estat %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Manquen les capçaleres del testimoni de sol·licitud o del secret del " +"testimoni de sol·licitud en la resposta" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Les credencials no contenen cap testimoni d'autenticació o secret del " +"testimoni d'autenticació" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "S'ha produït un error en connectar-se al servidor d'ownCloud" + +# N.T.: Pocket és el nom d'un servei. No es tradueix +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Cap nom d'usuari o access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Correu" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Calen_dari" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "Co_ntactes" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Xat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documents" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_úsica" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Fitxers" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Recursos de xarxa" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Llegeix més tard" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Im_pressores" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapes" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Utilitza per" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "El compte està inhabilitat" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Error desconegut" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "«ensure_credentials_sync» no està implementat al tipus %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "El TLS no està disponible" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Es desconeix el mecanisme d'autenticació" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "No s'ha trobat cap compte de xat del Telepathy" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "No s'ha pogut crear una interfície d'usuari per a %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Paràmetres de la connexió" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Dades personals" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_D'acord" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "No es poden desar els paràmetres de la connexió" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "No es pot desar la vostra informació personal al servidor" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Paràmetres de la _connexió" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Dades _personals" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "S'ha produït un error en iniciar la sessió" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Les credencials han vençut" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Inicia la sessió per habilitar aquest compte." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Inicia la sessió" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Ja existeix un compte del %s per %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Compte %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "No s'han pogut suprimir les credencials de l'anell de claus" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "No s'han pogut recuperar les credencials de l'anell de claus" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "No s'han trobat credencials a l'anell de claus" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "" +"S'ha produït un error en analitzar el resultat obtingut de l'anell de claus: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credencials de %s del GOA per a la identitat %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "No s'han pogut emmagatzemar les credencials a l'anell de claus" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "No s'ha pogut resoldre el nom de la màquina" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "No s'ha pogut resoldre el nom del servidor intermediari" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "No s'ha pogut trobar el punt final WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Codi: %u — resposta inesperada del servidor" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Es desconeix l'autoritat de certificació que signa." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"El certificat no coincideix amb la identitat que s'esperava del lloc del " +"qual s'ha recollit." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "La data d'activació del certificat és en el futur." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "El certificat ha vençut." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "S'ha revocat el certificat." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "L'algorisme del certificat es considera insegur." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "El certificat no és vàlid." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "No s'ha trobat %s per la identitat «%s» a les credencials" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "S'està carregant «%s»…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "La clau inicial secreta no és vàlida" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "El regne de xarxa %s necessita informació per poder deixar-vos entrar." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "No s'ha pogut trobar la identitat a la memòria cau de credencials: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "" +"No s'han pogut trobar les credencials de la identitat a la memòria cau: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"No s'han pogut examinar amb detall les credencials d'identitat de la memòria " +"cau: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"No s'ha pogut finalitzar l'examinació en detall de les credencials " +"d'identitat de la memòria cau: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "No s'ha trobat cap identificació associada" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "No s'ha pogut crear la memòria cau de credencials: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "No s'ha pogut inicialitzar la memòria cau de credencials: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"No s'han pogut emmagatzemar les credencials noves a la memòria cau de " +"credencials: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "No s'ha pogut renovar la identitat: no heu entrat" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "No s'ha pogut renovar la identitat: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"No s'han pogut obtenir les credencials noves per renovar la identitat %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "No s'ha pogut suprimir la identitat: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "No s'ha pogut trobar la identitat" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "No s'ha pogut crear la memòria cau de credencials per la identitat" + +#~ msgid "_Domain" +#~ msgstr "_Domini" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Domini corporatiu o nom del regne" + +#~ msgid "The domain is not valid" +#~ msgstr "El domini no és vàlid" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "L'org.gnome.OnlineAccounts.Mail no està disponible" + +#~ msgid "Failed to parse email address" +#~ msgstr "No s'ha pogut analitzar el correu electrònic" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "No es pot realitzar una autenticació SMTP sense un domini" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "No s'ha trobat la contrasenya d'SMTP a les credencials" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "No es pot realitzar una autenticació SMTP sense una contrasenya" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "" +#~ "s'ha passat el secret inicial abans de l'intercanvi de les claus secretes" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "No s'ha pogut inicialitzar un client del GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "No s'ha trobat la contrasenya per la identitat «%s» a les credencials" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "S'esperava l'estat 200 en sol·licitar el nom, però s'ha rebut l'estat %d " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Enganxa el codi d'autorització que s'ha obtingut des de la pàgina d'autorització:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Enganxa el testimoni que s'ha obtingut des de la pàgina " +#~ "d'autorització:" + +#~ msgid "Time" +#~ msgstr "Temps" + +#~ msgid "Time to fire" +#~ msgstr "Temps en que ha de sonar" diff --git a/po/ca@valencia.gmo b/po/ca@valencia.gmo new file mode 100644 index 0000000..d605fa3 Binary files /dev/null and b/po/ca@valencia.gmo differ diff --git a/po/ca@valencia.po b/po/ca@valencia.po new file mode 100644 index 0000000..6038e7f --- /dev/null +++ b/po/ca@valencia.po @@ -0,0 +1,956 @@ +# Catalan translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Pau Iranzo , 2011. +# Jordi Serratosa , 2012. +# Gil Forcada , 2012, 2013, 2014. +# Josep Sànchez , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-10-03 16:41+0000\n" +"PO-Revision-Date: 2017-07-11 16:00+0100\n" +"Last-Translator: Xavi Ivars \n" +"Language-Team: Catalan \n" +"Language: ca-valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 1.8.7.1\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "No s'ha trobat cap proveïdor per: %s" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "La propietat «IsLocked» està establida pel compte" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "El compte no té cap valor a la propietat «ProviderType»" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "No s'ha pogut analitzar l'XML de la resposta d'autodescoberta" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "No s'ha pogut trobar l'element «%s»" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"No s'ha pogut trobar l'ASUrl ni l'OABUrl en la resposta d'autodescoberta" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "La contrasenya per a l'usuari «%s» no és correcta (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_Adreça electrònica" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Contrasenya" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalitzat" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "Nom d'_usuari" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Servidor" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Cancel·la" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:745 +#: ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "C_onnecta" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:761 +#: ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "S'està connectant…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "S'ha descartat el diàleg" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "S'ha descartat el diàleg (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "_Ignora" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_Torna-ho a intentar" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "" +"S'ha produït un error en connectar-se al servidor de Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"En sol·licitar la vostra identitat s'esperava l'estat 200, però s'ha rebut " +"l'estat %d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 +#: ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 +#: ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 +#: ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 +#: ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 +#: ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "No s'ha pogut analitzar la resposta" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"L'hora del sistema no és correcte. Comproveu la configuració de la data i " +"l'hora." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "El servei no està disponible" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:883 +#, c-format +msgid "Authentication failed" +msgstr "Ha fallat l'autenticació" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "El servidor no permet utilitzar «PLAIN»" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "El servidor no permet utilitzar «STARTTLS»" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP i SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s no vàlid amb l'usuari «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Encriptació" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Cap" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "Utilitza l'STARTTLS després de connectar" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "Utilitza l'SSL en un port dedicat" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Nom" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "_Servidor d'IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "Servidor d'_SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Endavant" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "S'ha produït un error en connectar-se al servidor d'IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "S'ha produït un error en connectar-se al servidor d'SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Correu electrònic" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Nom" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "Entrada corporativa (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:300 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "La creació de tiquets està bloquejada pel compte" + +#: ../src/goabackend/goakerberosprovider.c:325 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"No s'han pogut trobar les credencials guardades pel principal «%s» a l'anell " +"de claus" + +#: ../src/goabackend/goakerberosprovider.c:338 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"No s'ha pogut trobar la contrasenya pel principal «%s» a les credencials" + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "_Domain" +msgstr "_Domini" + +#: ../src/goabackend/goakerberosprovider.c:732 +msgid "Enterprise domain or realm name" +msgstr "Domini corporatiu o nom del regne" + +#: ../src/goabackend/goakerberosprovider.c:974 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Entra al regne" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Please enter your password below." +msgstr "Introduïu la contrasenya a sota." + +#: ../src/goabackend/goakerberosprovider.c:976 +msgid "Remember this password" +msgstr "Recorda la contrasenya" + +#: ../src/goabackend/goakerberosprovider.c:1110 +#, c-format +msgid "The domain is not valid" +msgstr "El domini no és vàlid" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "" +"S'ha produït un error en connectar-se al servidor d'identitat corporativa" + +#: ../src/goabackend/goakerberosprovider.c:1604 +#, c-format +msgid "Identity service returned invalid key" +msgstr "El servei d'identitat ha retornat una clau no vàlida" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 +#: ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "S'ha produït un error en connectar-se a Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Servidor multimèdia" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Podeu afegir contingut personalitzat a les aplicacions mitjançant un compte " +"a un servidor multimèdia." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Servidors multimèdia disponibles" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "No s'ha trobat cap servidor multimèdia" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 +#: ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"S'esperava l'estat 200 en sol·licitar el testimoni d'autenticació, però s'ha " +"rebut l'estat %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "Resposta d'autorització:" + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "Resposta d'autorització: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 +#: ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "S'ha produït un error en obtindre el testimoni d'autenticació: " + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "S'ha produït un error en obtindre la identitat: " + +#: ../src/goabackend/goaoauth2provider.c:1321 +#: ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "S'ha demanat identificar-se com a %s, però s'ha connectat com a %s" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Les credencials no contenen el testimoni d'autenticació" + +#: ../src/goabackend/goaoauth2provider.c:1512 +#: ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "No s'ha pogut actualitzar el testimoni d'autenticació (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Manquen les capçaleres del testimoni d'autenticació o del secret del " +"testimoni d'autenticació en la resposta" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "S'ha produït un error en obtindre el testimoni de sol·licitud: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"S'esperava l'estat 200 per obtindre el testimoni de sol·licitud demanat, però " +"s'ha rebut l'estat %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Manquen les capçaleres del testimoni de sol·licitud o del secret del " +"testimoni de sol·licitud en la resposta" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Les credencials no contenen cap testimoni d'autenticació o secret del " +"testimoni d'autenticació" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "S'ha produït un error en connectar-se al servidor d'ownCloud" + +# N.T.: Pocket és el nom d'un servei. No es tradueix +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "Cap nom d'usuari o access_token" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_Correu" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "Calen_dari" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "Co_ntactes" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Xat" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "_Documents" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "M_úsica" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_Fotos" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_Fitxers" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "_Recursos de xarxa" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "_Llig més tard" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "Im_pressores" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "_Mapes" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Utilitza per" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "El compte està inhabilitat" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "Error desconegut" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "«ensure_credentials_sync» no està implementat al tipus %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "El TLS no està disponible" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Es desconeix el mecanisme d'autenticació" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "No s'ha trobat cap compte de xat del Telepathy" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "No s'ha pogut crear una interfície d'usuari per a %s" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Paràmetres de la connexió" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Dades personals" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_D'acord" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "No es poden guardar els paràmetres de la connexió" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "No es pot guardar la vostra informació personal al servidor" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Paràmetres de la _connexió" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Dades _personals" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "S'ha produït un error en iniciar la sessió" + +#: ../src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Les credencials han vençut" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Inicia la sessió per habilitar este compte." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Inicia la sessió" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Ja existeix un compte del %s per %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Compte %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "No s'han pogut suprimir les credencials de l'anell de claus" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "No s'han pogut recuperar les credencials de l'anell de claus" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "No s'han trobat credencials a l'anell de claus" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "" +"S'ha produït un error en analitzar el resultat obtingut de l'anell de claus: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credencials de %s del GOA per a la identitat %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "No s'han pogut emmagatzemar les credencials a l'anell de claus" + +#: ../src/goabackend/goautils.c:870 +msgid "Cannot resolve hostname" +msgstr "No s'ha pogut resoldre el nom de la màquina" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot resolve proxy hostname" +msgstr "No s'ha pogut resoldre el nom del servidor intermediari" + +#: ../src/goabackend/goautils.c:879 +msgid "Cannot find WebDAV endpoint" +msgstr "No s'ha pogut trobar el punt final WebDAV" + +#: ../src/goabackend/goautils.c:888 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Codi: %u — resposta inesperada del servidor" + +#: ../src/goabackend/goautils.c:904 +msgid "The signing certificate authority is not known." +msgstr "Es desconeix l'autoritat de certificació que signa." + +#: ../src/goabackend/goautils.c:908 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"El certificat no coincideix amb la identitat que s'esperava del lloc del " +"qual s'ha recollit." + +#: ../src/goabackend/goautils.c:913 +msgid "The certificate’s activation time is still in the future." +msgstr "La data d'activació del certificat és en el futur." + +#: ../src/goabackend/goautils.c:917 +msgid "The certificate has expired." +msgstr "El certificat ha vençut." + +#: ../src/goabackend/goautils.c:921 +msgid "The certificate has been revoked." +msgstr "S'ha revocat el certificat." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s algorithm is considered insecure." +msgstr "L'algorisme del certificat es considera insegur." + +#: ../src/goabackend/goautils.c:929 +msgid "Invalid certificate." +msgstr "El certificat no és vàlid." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:964 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "No s'ha trobat %s per la identitat «%s» a les credencials" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "S'està carregant «%s»…" + +#: ../src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "La clau inicial secreta no és vàlida" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "El regne de xarxa %s necessita informació per poder deixar-vos entrar." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "No s'ha pogut trobar la identitat a la memòria cau de credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "" +"No s'han pogut trobar les credencials de la identitat a la memòria cau: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" +"No s'han pogut examinar amb detall les credencials d'identitat de la memòria " +"cau: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"No s'ha pogut finalitzar l'examinació en detall de les credencials " +"d'identitat de la memòria cau: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "No s'ha trobat cap identificació associada" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "No s'ha pogut crear la memòria cau de credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "No s'ha pogut inicialitzar la memòria cau de credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" +"No s'han pogut emmagatzemar les credencials noves a la memòria cau de " +"credencials: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "No s'ha pogut renovar la identitat: no heu entrat" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "No s'ha pogut renovar la identitat: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"No s'han pogut obtindre les credencials noves per renovar la identitat %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "No s'ha pogut suprimir la identitat: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "No s'ha pogut trobar la identitat" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "No s'ha pogut crear la memòria cau de credencials per la identitat" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "L'org.gnome.OnlineAccounts.Mail no està disponible" + +#~ msgid "Failed to parse email address" +#~ msgstr "No s'ha pogut analitzar el correu electrònic" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "No es pot realitzar una autenticació SMTP sense un domini" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "No s'ha trobat la contrasenya d'SMTP a les credencials" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "No es pot realitzar una autenticació SMTP sense una contrasenya" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "" +#~ "s'ha passat el secret inicial abans de l'intercanvi de les claus secretes" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "No s'ha pogut inicialitzar un client del GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "No s'ha trobat la contrasenya per la identitat «%s» a les credencials" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "S'esperava l'estat 200 en sol·licitar el nom, però s'ha rebut l'estat %d " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Enganxa el codi d'autorització que s'ha obtingut des de la pàgina d'autorització:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Enganxa el testimoni que s'ha obtingut des de la pàgina " +#~ "d'autorització:" + +#~ msgid "Time" +#~ msgstr "Temps" + +#~ msgid "Time to fire" +#~ msgstr "Temps en que ha de sonar" diff --git a/po/cs.gmo b/po/cs.gmo new file mode 100644 index 0000000..3fa9899 Binary files /dev/null and b/po/cs.gmo differ diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..c46e269 --- /dev/null +++ b/po/cs.po @@ -0,0 +1,862 @@ +# Czech translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Marek Černocký , 2011, 2012, 2013, 2014, 2015, 2016, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-15 11:00+0000\n" +"PO-Revision-Date: 2017-12-27 20:37+0100\n" +"Last-Translator: Marek Černocký \n" +"Language-Team: čeština \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Seznam poskytovatelů povolených k načtení" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Seznam řetězců představujících poskytovatele, u kterých je povoleno načtení " +"(výchozí: 'all'). Vyhodnocuje se jen při spuštění." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Selhalo vyhledání poskytovatele pro: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Pro účet je nastavena vlastnost IsLocked (je uzamčeno)" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Pro účet není nastavena vlastnost ProviderType (typ poskytovatele)" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Selhalo zpracování odpovědi automatického vyhledávání v XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Selhalo vyhledání prvku „%s“" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Selhalo vyhledání ASUrl a OABUrl v odpovědi automatického vyhledávání" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Neplatné heslo s uživatelským jménem „%s“ (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Heslo" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Vlastní" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Uživatelské j_méno" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Zrušit" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Přip_ojit" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Připojuje se…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialogové okno bylo zavřeno" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialogové okno bylo zavřeno (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorovat" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Zkusi_t znovu" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Chyba připojování k serveru Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Při žádosti o vaši identitu je očekáván stavový kód 200, ale místo toho byl " +"obdržen %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Nelze zpracovat odpověď" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Vás systémový čas je neplatný. Zkontrolujte své nastavení data a času." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Služba není dostupná" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Autentizace selhala" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Server nepodporuje autentizaci PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server nepodporuje STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP a SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Neplatná položka %s s uživatelským jménem „%s“ (%s, %d):" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "Ši_frování" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Žádné" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS po připojení" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL na vyhrazeném portu" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Název" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Server IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Server SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Vpřed" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Chyba připojování k serveru IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Chyba připojování k serveru SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Název" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Podnikové přihlášení (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Vydávání lístků je pro tento účet zakázáno" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "V klíčence nelze najít uložená pověření pro principál „%s“" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "V pověřeních nebylo nalezeno heslo pro principál „%s“" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principál" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Operace byla zrušena" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Přihlášení do sféry" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Níže prosím zadejte své heslo" + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Zapamatovat toto heslo" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Chyba připojování k serveru s podnikovými identitami" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Služba identit vrátila neplatný klíč" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Chyba připojování k Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Multimediální server" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Osobní obsah může být do vaší aplikace přidán přes účet na multimediálním " +"serveru." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Dostupné multimediální servery" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nebyly nalezeny žádné multimediální servery" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Při požadavku o přístupový tiket očekáván stavový kód 200, místo toho získán " +"%d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Odezva autorizace: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Odezva autorizace: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Chyba při získávání přístupového tiketu: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Chyba při získávání identity: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Bylo žádáno o přihlášení jako %s, ale provedlo se jako %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Pověření neobsahuje access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Selhalo občerstvení přístupového tiketu (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "V odpovědi schází hlavičky access_token nebo access_token_secret" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Chyba při získávání žádacího tiketu: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Při požadavku o žádací tiket očekáván stavový kód 200, místo toho získán %d " +"(%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "V odpovědi schází hlavičky request_token nebo request_token_secre" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Pověření neobsahuje contain access_token nebo access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Chyba připojování k serveru ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Žádné uživatelské jméno nebo přístupový tiket" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Pošta" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_ndář" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontakty" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Disk_uze" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenty" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "H_udba" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografie" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Soubory" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Síťové p_rostředky" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Přečíst později" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Tiskárny" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapy" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Úk_oly" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Použít pro" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Účet je zakázaný" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Neznámá chyba" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync není implementováno na typu %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS není dostupné" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Neznámý autentizační mechanizmus" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Účet diskuze Telepathy nebyl nalezen" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Selhalo vytvoření uživatelského rozhraní pro %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Nastavení připojení" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Osobní údaje" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Budiž" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Nelze uložit parametry připojení" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Nelze uložit vaše osobní údaje na serveru" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Nastavení _připojení" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Osobní údaje" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Chyba při přihlašování k účtu" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Pověření vypršela platnost" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Přihlášením tento účet povolíte." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Přihlá_sit" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Účet %s již existuje pro %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Účet %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Selhalo smazání pověření z klíčenky" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Selhalo získání pověření z klíčenky" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "V klíčence se nenachází žádná pověření" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Chyba analýzy výsledku získaného z klíčenky: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Pověření %s od GOA pro identitu %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Selhalo uložení pověření do klíčenky" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Nelze přeložit na adresu název počítače" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Nelze přeložit na adresu název počítače s proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Nelze najít koncový bod WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kód: %u – neočekávaná odpověď od serveru" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Podepisující certifikační autorita není známa." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Certifikát neodpovídá očekávané identitě serveru, ze kterého byl získán." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Čas aktivace certifikátu se zatím nachází v budoucnosti." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Certifikátu vypršela platnost." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Certifikát byl odvolán." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algoritmus certifikátu není považován za bezpečný." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Neplatný certifikát." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "V pověřeních nebyla nalezena položka %s s identitou „%s“" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Načítá se „%s“…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Počáteční tajný klíč je neplatný" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Síťová sféra %s potřebuje některé informace, abyste mohli být přihlášeni." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Nelze najít identitu v mezipaměti pověření: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Nelze najít pověření identity v mezipaměti: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Nelze prohledat pověření identit v mezipaměti: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Nelze dokončit prohledání pověření identit v mezipaměti: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nebyla nalezena žádná přidružená identifikace" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Nelze vytvořit mezipaměť pověření: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Nelze inicializovat mezipaměť pověření: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Nelze uložit nová pověření do mezipaměti pověření: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nelze obnovit identitu: Nepřihlášeno" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Nelze obnovit identitu: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Nelze získat nové pověření pro obnovenou identitu %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Nelze smazat identitu: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nelze najít identitu" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Nelze vytvořit mezipaměť pověření pro identitu" + +#~ msgid "_Domain" +#~ msgstr "_Doména" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Název podnikové domény nebo sféry" + +#~ msgid "The domain is not valid" +#~ msgstr "Doména není platná" diff --git a/po/da.gmo b/po/da.gmo new file mode 100644 index 0000000..f38b80f Binary files /dev/null and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..45f635c --- /dev/null +++ b/po/da.po @@ -0,0 +1,1075 @@ +# Danish translation for gnome-online-accounts. +# Copyright (C) 2011, 2014-2018 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Kris Thomsen , 2011, 2013-2015. +# Kenneth Nielsen , 2012-2013. +# Ask Hjorth Larsen , 2014-2016. +# scootergrisen, 2015, 2016. +# Alan Mortensen , 2017, 2018. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-02-26 19:09+0100\n" +"Last-Translator: Alan Mortensen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Liste over udbydere som må indlæses" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"En liste med strenge, der repræsenterer udbydere, som gerne må indlæses " +"(standard: “alle”). Dette undersøges kun ved opstart." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Kunne ikke finde en udbyder for: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Egenskaben IsLocked er indstillet for konto" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Egenskaben ProviderType er ikke indstillet for konto" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Kunne ikke fortolke svar-XML fra autoopdagelse" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Kunne ikke finde elementet “%s”" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Kunne ikke finde ASUrl og OABUrl i autoopdag-svar" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Ugyldig adgangskode med brugernavn “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Adgangskode" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Tilpasset" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Bruger_navn" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Annullér" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "_Forbind" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Forbinder …" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialog blev afvist" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialog blev afvist (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorér" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Prøv igen" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Fejl ved forbindelse til Microsoft Exchange-server" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Forventede status 200 under forespørgsel af din identitet, men fik i stedet " +"status %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Kunne ikke fortolke svar" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Din systemtid er ugyldig. Tjek dine dato- og tidsindstillinger." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Tjeneste ikke tilgængelig" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Godkendelse fejlede" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Server understøtter ikke PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server understøtter ikke STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP og SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Ugyldig %s med brugernavn “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Kryptering" + +# At dømme ud fra koden henvises der til kryptering, så Ingen er nok korrekt. Fejlmeldt her: https://bugzilla.gnome.org/show_bug.cgi?id=695559 +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ingen" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS efter forbindelse" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL på en dedikeret port" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Navn" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP-_server" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP-_server" + +# ??? Det er noget med IMAP/SMTP, så det må være at videresende e-mails +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Videresend" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Fejl ved forbindelse til IMAP-server" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Fejl ved forbindelse til SMTP-server" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Navn" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Enterprise-login (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Ticketing er deaktiveret for kontoen" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Kunne ikke finde gemte legitimationsoplysninger for den primære “%s” i " +"nøgleringen" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"Kunne ikke finde adgangskode for den primære “%s” i " +"legitimationsoplysningerne" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Primær" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Handlingen blev annulleret" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Log ind i verden (realm)" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Indtast venligst din adgangskode herunder." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Husk denne adgangskode" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Fejl ved forbindelse til enterprise-identitetsserver" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identitetstjeneste returnerede ugyldig nøgle" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Fejl ved forbindelse til Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Medieserver" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Personligt indhold kan føjes til dine programmer gennem en medieserver-konto." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Tilgængelige medieservere" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Ingen medieservere fundet" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Forventede status 200 under forespørgsel af adgangssymbol, fik i stedet " +"status %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Godkendelsessvar: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Godkendelsessvar: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Fejl under indhentning af adgangssymbol: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Fejl under indhentning af identitet: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Blev anmodet om at logge ind som %s, men loggede ind som %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Legitimationsoplysningerne indeholder ikke access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Kunne ikke genopfriske adgangssymbol (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Mangler access_token- eller access_token_secret-hoveder i svar" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Fejl under indhentning af forespørgselssymbol: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Forventede status 200 under indhentning af forespørgselssymbol, fik i stedet " +"status %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Mangler request_token- eller request_token_secret-hoveder i svar" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"legitimationsoplysningerne indeholder ikke access_token eller " +"access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +# Navn på tjeneste: http://en.wikipedia.org/wiki/OwnCloud +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Fejl ved forbindelse til ownCloud-server" + +# pocket er navnet på et program +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Intet brugernavn eller access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Post" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_nder" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontakter" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "C_hat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenter" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usik" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotoer" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Filer" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Netværks_ressourcer" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Læs senere" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Prin_tere" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Kort" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "G_øremål" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Brug til" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Kontoen er slået fra" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Ukendt fejl" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync er ikke implementeret på type %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS ikke tilgængelig" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Ukendt godkendelsesmekanisme" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Chatkonto for Telepathy blev ikke fundet" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Kunne ikke oprette en brugergrænseflade for %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Forbindelsesindstillinger" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Personlige detaljer" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Kan ikke gemme forbindelsesparametrene" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Kan ikke gemme din personlige information på serveren" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Forbindelsesindstillinger" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Personlige detaljer" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Fejl ved indlogning til kontoen" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "legitimationsoplysningerne er udløbet" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Log ind for at aktivere denne konto." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Log ind" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Der finder allerede en %s-konto for %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s-konto" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Kunne ikke slette legitimationsoplysninger fra nøgleringen" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Kunne ikke hente legitimationsoplysninger fra nøgleringen" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Ingen legitimationsoplysninger fundet i nøgleringen" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Kunne ikke tolke resultater indhentet fra nøgleringen: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s legitimationsoplysninger til identitet %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Kunne ikke gemme legitimationsoplysninger i nøgleringen" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Kan ikke slå værtsnavn op" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Kan ikke slå proxyens værtsnavn op" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Kan ikke finde WebDAV-slutpunkt" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kode: %u — Uventet svar fra server" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Den underskrivende certifikatautoritet er ukendt." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Certifikatet passer ikke med den forventede identitet, fra den side som det " +"blev hentet fra." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Certifikatets aktiveringstid er stadig i fremtiden." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Certifikatet er udløbet." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Certifikatet er blevet tilbagekaldt." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Certifikatets algoritme bliver betragtet som usikker." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Ugyldigt certifikat." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Fandt ikke %s med identitet “%s” i legitimationsoplysninger" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Indlæser “%s” …" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Indledende hemmelige nøgle er ugyldig" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Netværksverdnen (realm) %s skal bruge noget information for at logge dig ind." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Kunne ikke finde identitet i cachen for legitimationsoplysninger: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Kunne ikke finde legitimationsoplysninger for identitet i cachen: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Kunne ikke gennemse legitimationsoplysninger for identitet i cachen: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Kunne ikke færdiggøre gennemsyn af legitimationsoplysninger for identitet i " +"cachen: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Ingen associeret identifikation fundet" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Kunne ikke oprette cachen til legitimationsoplysninger: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Kunne ikke initialisere cachen til legitimationsoplysninger: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"Kunne ikke gemme nye legitimationsoplysninger i " +"cachen til legitimationsoplysninger: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Kunne ikke forny identitet: Ikke logget ind" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Kunne ikke forny identitet: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Kunne ikke hente nye legitimationsoplysninger til at forny identiteten %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Kunne ikke slette identitet: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Kunne ikke finde identitet" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Kunne ikke oprette cachen til legitimationsoplysninger for identitet" + +#~ msgid "_Domain" +#~ msgstr "_Domæne" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Enterprisedomæne eller verdensnavn (realm)" + +#~ msgid "The domain is not valid" +#~ msgstr "Domænet er ikke gyldigt" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail er ikke tilgængelig" + +#~ msgid "Failed to parse email address" +#~ msgstr "Kunne ikke fortolke e-mailadresse" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Kan ikke udføre SMTP-godkendelse uden et domæne" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Kunne ikke finde smtp-adgangskode i akkreditiver" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Kan ikke udføre SMTP-godkendelse uden en adgangskode" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "indledende hemmelighed bestået før udveksling af hemmelig nøgle" + +# Navn på tjeneste: http://en.wikipedia.org/wiki/OwnCloud +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Kunne ikke initialisere en GOA-klient" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Kunne ikke finde adgangskode med identitet “%s” i akkreditiver" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Forventede status 200 under forespørgsel af navn, fik i stedet status %d " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Indsæt godkendelseskode indhentet fra godkendelsesside:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Indsæt symbol indhentet fra godkendelsessiden:" + +#~ msgid "Time" +#~ msgstr "Tid" + +#~ msgid "Time to fire" +#~ msgstr "Alarmtid" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Kunne ikke finde Autodiscover-element" + +#~ msgid "Failed to find Account element" +#~ msgstr "Kunne ikke finde Account-element" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Forventede status 200 under forespørgsel af guid, fik i stedet status %d " +#~ "(%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Kunne ikke finde imap-adgangskode med identitet “%s” i akkreditiver" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Ugyldig imap-adgangskode med brugernavn “%s” (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Kunne ikke finde smtp-adgangskode med identitet “%s” i akkreditiver" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Ugyldig smtp-adgangskode med brugernavn “%s” (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Fejl under tolking af respons som JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Fandt ikke id-medlem i JSON-data" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Fandt ikke e-post-medlem i JSON-data" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Fandt ikke brugermedlem i JSON-data" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Fandt ikke bruger.id-medlem i JSON-data" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Fandt ikke bruger.brugernavn-medlem i JSON-data" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Fandt ikke bruger.brugernavn._medlem i JSON-data" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Fandt ikke access_token i ikke-JSON-data" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Fandt ikke access_token i JSON-data" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Fandt ikke konto-e-mail-medlem i JSON-data" + +#~ msgid "Online Accounts" +#~ msgstr "Online-konti" + +#~ msgid "An online account needs attention" +#~ msgstr "En online konto kræver opmærksomhed" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Åbn Online-konti …" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Akkreditiver ikke fundet i nøglering /%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Fejl under gemning af akkreditiver i nøglering (%s, %d): " + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Fandt ikke id_str-medlem i JSON-data" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Fandt ikke screen_name-medlem i JSON-data" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Fandt ikke guid-medlem i JSON-data" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Fandt ikke værdimedlem i JSON-data" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Fejl under tolkning af brugerkortsrespons som JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Fandt ikke profilmedlem i JSON-data" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Fandt ikke kaldenavnsmedlem i JSON-data" + +#~ msgid "Domain Administrator Login" +#~ msgstr "Logind for domæneadministrator" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "For at kunne bruge denne enterpriseidentitet skal computeren indskrives i " +#~ "domænet. Bed venligst din netværksadministrator om at skrive sin " +#~ "domæneadgangskode her." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "For at kunne bruge denne enterpriseidentitet skal computeren indskrives i " +#~ "domænet. Bed venligst din netværksadministrator om at skrive sit " +#~ "domænebrugernavn her." + +#~ msgid "No such domain or realm found" +#~ msgstr "Intet sådant domæne eller verden (realm) fundet" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Kan ikke logge ind som %s på domænet %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Ugyldig adgangskode, prøv venligst igen" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Kunne ikke forbinde til %s-domænet: %s" + +#~ msgid "Chat" +#~ msgstr "Chat" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Fandt ikke datamedlem i JSON-data" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Fandt ikke navnemedlem i JSON-data" + +#~ msgid "Email Address" +#~ msgstr "E-post-adresse" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Der er allerede en konto for identiteten %s" diff --git a/po/de.gmo b/po/de.gmo new file mode 100644 index 0000000..2c37abd Binary files /dev/null and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..0886c53 --- /dev/null +++ b/po/de.po @@ -0,0 +1,811 @@ +# German translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Mario Blättermann , 2011-2013, 2016-2017. +# Wolfgang Stöggl , 2011, 2012, 2014. +# Tobias Endrigkeit , 2012. +# Hedda Peters , 2012. +# Christian Kirbach , 2012. +# Benjamin Steinwender , 2013-2014. +# Bernd Homuth , 2014, 2015. +# Tim Sabsch , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-" +"accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-31 11:38+0000\n" +"PO-Revision-Date: 2017-12-31 17:14+0100\n" +"Last-Translator: Tim Sabsch \n" +"Language-Team: Deutsch \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.5\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Liste der Provider, die geladen werden dürfen" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Eine Liste aus Zeichenketten, die die zulässigen Provider darstellen " +"(Voreinstellung: »all«). Dies wird nur beim Start ausgewertet." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Das Finden eines Providers für %s ist fehlgeschlagen" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Die Eigenschaft »IsLocked« ist festgelegt für das Konto" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Die Eigenschaft des Providertyps ist für dieses Konto nicht eingestellt" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Das Verarbeiten der automatischen XML-Erkennungsantwort ist fehlgeschlagen" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Das Finden des Elementes »%s« ist fehlgeschlagen" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Das Finden von ASUrl und OABUrl in der automatischen Erkennungsantwort ist " +"fehlgeschlagen" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Ungültiges Passwort für Benutzer »%s« (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-Mail" + +#: src/goabackend/goaexchangeprovider.c:397 src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Passwort" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Benutzerdefiniert" + +#: src/goabackend/goaexchangeprovider.c:411 src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Benutzer_name" + +#: src/goabackend/goaexchangeprovider.c:412 src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "A_bbrechen" + +#: src/goabackend/goaexchangeprovider.c:423 src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "_Verbinden" + +#: src/goabackend/goaexchangeprovider.c:439 src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Verbindung wird hergestellt …" + +#: src/goabackend/goaexchangeprovider.c:539 src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 src/goabackend/goaoauth2provider.c:995 +#: src/goabackend/goaoauthprovider.c:859 src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialog wurde abgebrochen" + +#: src/goabackend/goaexchangeprovider.c:577 src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialog wurde abgebrochen (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorieren" + +#: src/goabackend/goaexchangeprovider.c:595 src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Erneut _versuchen" + +#: src/goabackend/goaexchangeprovider.c:600 src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Fehler beim Verbinden zum Microsoft Exchange-Server" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Bei der Abfrage der Benutzerkennung wurde der HTTP-Statuscode 200 erwartet, aber " +"stattdessen der Statuscode %d (%s) empfangen" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 src/goabackend/goatodoistprovider.c:234 +#: src/goabackend/goautils.c:313 src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Antwort konnte nicht analysiert werden" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Ihre Systemzeit ist ungültig. Überprüfen Sie ihre Datums- und Zeiteinstellungen." + +# Name des Dienstes +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Dienst nicht erreichbar" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Legitimierung gescheitert" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Server unterstützt PLAIN nicht" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server unterstützt STARTTLS nicht" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP und SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Ungültiges Feld »%s« für Benutzername »%s« (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "V_erschlüsselung" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Kein" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS nach Verbinden" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL auf einem dedizierten Port" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Name" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP-_Server" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP-_Server" + +#: src/goabackend/goaimapsmtpprovider.c:700 src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Weiter" + +#: src/goabackend/goaimapsmtpprovider.c:956 src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Fehler beim Verbinden zum IMAP-Server" + +#: src/goabackend/goaimapsmtpprovider.c:1053 src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Fehler beim Verbinden zum SMTP-Server" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-Mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Name" + +#: src/goabackend/goaimapsmtpprovider.c:1490 src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Unternehmensanmeldung (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Ticketanforderung ist für das Konto deaktiviert" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Gespeicherte Anmeldedaten für Prinzipal »%s« konnten nicht im Schlüsselbund " +"gefunden werden" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Passwort für Prinzipal »%s« wurde nicht in den Anmeldedaten gefunden" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Vorgang wurde abgebrochen" + +#: src/goabackend/goakerberosprovider.c:794 src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Beim Bereich anmelden" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Bitten geben Sie unten Ihr Passwort ein." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Passwort merken" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Fehler beim Verbinden mit Unternehmensidentitätsserver" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identitätsdienst gab ungültigen Schlüssel zurück" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Fehler beim Verbinden mit Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Medien-Server" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server account." +msgstr "" +"Persönlicher Inhalt kann über ein Konto eines Medien-Servers zu Ihren Anwendungen " +"hinzugefügt werden." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Verfügbare Medien-Server" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Keine Medien-Server gefunden" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Bei der Abfrage des Zutritt-Tokens wurde Status 200 erwartet und stattdessen Status " +"%d (%s) erhalten" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Legitimierungsantwort: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Legitimierungsantwort: »%s«" + +#: src/goabackend/goaoauth2provider.c:1021 src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Fehler beim Holen des Zugriffs-Tokens: " + +#: src/goabackend/goaoauth2provider.c:1036 src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Fehler beim Ermitteln der Identität: " + +#: src/goabackend/goaoauth2provider.c:1254 src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Anmeldung als %s wurde angefragt, aber als %s angemeldet" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Anmeldedaten enthalten nicht »access_token«" + +#: src/goabackend/goaoauth2provider.c:1445 src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Fehler beim Holen des Zugriffs-Tokens (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Fehlende Kopfzeilen »access_token« oder »access_token_secret« in Antwort" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Fehler beim Holen des Anfrage-Tokens: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Bei der Abfrage des Anfrage-Tokens wurde Status 200 erwartet und stattdessen Status " +"%d (%s) erhalten" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Fehlende Kopfzeilen mit »request_token« oder »request_token_secret« in der Antwort" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Anmeldedaten enthalten weder »access_token« noch »access_token_secret«" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Fehler beim Verbinden zum ownCloud-Server" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Kein Benutzername oder Zutritt-_Token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_E-Mail" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "_Kalender" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "K_ontakte" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "C_hat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumente" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usik" + +# Hotkey auf "F" ist völlig in Ordnung +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Dateien" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Netzwerkressourcen" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Später lesen" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Drucker" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Karten" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o-do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Verwenden für" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Konto ist deaktiviert" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Unbekannter Fehler" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "»ensure_credentials_sync« ist nicht im Typ %s implementiert" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS nicht verfügbar" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Unbekannter Legitimierungsmodus" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Das Chat-Benutzerkonto von Telepathy wurde nicht gefunden" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Erstellen einer Benutzerschnittstelle für %s ist fehlgeschlagen" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Verbindungseinstellungen" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Persönliche Angaben" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Die Verbindungsparameter konnten nicht gespeichert werden" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Die persönlichen Informationen können auf dem Server nicht gespeichert werden" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Verbindungs_einstellungen" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Persönliche Angaben" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Fehler beim Anmelden am Konto" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Die Zugangsinformationen sind abgelaufen" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Melden Sie sich zum Aktivieren dieses Kontos an." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Anmelden" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Ein %s-Konto existiert bereits für %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s-Konto" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Fehler beim Löschen der Anmeldedaten aus dem Schlüsselbund" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Fehler beim Holen der Anmeldedaten aus dem Schlüsselbund" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Die Anmeldedaten wurden im Schlüsselbund nicht gefunden" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Fehler beim Verarbeiten des Ergebnisses der Schlüsselbundanfrage: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s-Anmeldedaten für Identität %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Fehler beim Speichern der Anmeldedaten im Schlüsselbund" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Rechnername konnte nicht aufgelöst werden" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Proxy-Rechnername konnte nicht aufgelöst werden" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV-Endpunkt konnte nicht gefunden werden" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Code: %u — Unerwartete Antwort vom Server" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Der Zertifikatsaussteller ist nicht bekannt." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Das Zertifikat entspricht nicht der erwarteten Identität der Seite, von der es " +"bezogen wurde." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Die Aktivierungszeit des Zertifikats liegt in der Zukunft." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Das Zertifikat ist abgelaufen." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Das Zertifikat wurde zurückgezogen." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Der Algorithmus des Zertifikats gilt als unsicher." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Ungültiges Zertifikat." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "»%s« wurde in den Anmeldedaten für »%s« nicht gefunden" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "»%s« laden …" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Anfangsgeheimnis ist ungültig" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Der Netzwerkbereich %s benötigt einige Informationen für Ihre Anmeldung." + +#: src/goaidentity/goakerberosidentity.c:275 src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Identität konnte nicht im Anmeldedaten-Cache gefunden werden: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Anmeldedaten der Identität konnten nicht im Cache gefunden werden: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Anmeldedaten der Identität im Cache konnten nicht durchsucht werden: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Durchsuchen der Anmeldedaten der Identität im Cache konnte nicht abgeschlossen " +"werden: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Keine zugehörige Identifikation gefunden" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Anmeldedaten-Cache konnte nicht erstellt werden: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Anmeldedaten-Cache konnte nicht initialisiert werden: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Neue Anmeldedaten konnten nicht im Anmeldedaten-Cache gespeichert werden: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Identität konnte nicht erneuert werden: Nicht angemeldet" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Identität konnte nicht erneuert werden: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Anmeldedaten zur Erneuerung der Identität %s konnten nicht abgerufen werden: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Identität konnte nicht gelöscht werden: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Identität konnte nicht gefunden werden" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Anmeldedaten-Cache für Identität konnte nicht erstellt werden" + +#~ msgid "_Domain" +#~ msgstr "_Domäne" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Unternehmensdomäne oder Bereichsname" + +#~ msgid "The domain is not valid" +#~ msgstr "Die Domäne ist ungültig" diff --git a/po/el.gmo b/po/el.gmo new file mode 100644 index 0000000..8579a80 Binary files /dev/null and b/po/el.gmo differ diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..886593f --- /dev/null +++ b/po/el.po @@ -0,0 +1,1082 @@ +# Greek translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Dimitris Spingos (Δημήτρης Σπίγγος) , 2013, 2014. +# Efstathios Iosifidis , 2012, 2013, 2015, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-07 22:50+0000\n" +"PO-Revision-Date: 2018-03-07 00:03+0200\n" +"Last-Translator: Tom Tryfonidis \n" +"Language-Team: Ελληνικά <>\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Η λίστα των παρόχων που επιτρέπεται να φορτωθούν" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Μια λίστα των συμβολοσειρών που αντιπροσωπεύουν τους παρόχους που " +"επιτρέπεται να φορτωθούν (προεπιλογή: «all»). Αυτό αξιολογείται μόνο κατά " +"την εκκίνηση." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Αποτυχία εύρεσης παρόχου για: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Η ιδιότητα IsLocked έχει οριστεί για το λογαριασμό" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Η ιδιότητα ProviderType δεν έχει οριστεί για το λογαριασμό" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Αποτυχία ανάλυσης απόκρισης αυτόματου εντοπισμού XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Αποτυχία εύρεσης στοιχείου «%s»" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Αποτυχία εύρεσης ASUrl και OABUrl στην απόκριση αυτόματου εντοπισμού" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Μη έγκυρος κωδικός πρόσβασης με όνομα χρήστη «%s» (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Ηλεκτρονική διεύθυνση" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Κωδικός πρόσβασης" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Προσαρμοσμένο" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Όνομα_χρήστη" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "Διακομι_στής " + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "A_κύρωση" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Σύν_δεση" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Σύνδεση…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Απορρίφθηκε το παράθυρο διαλόγου" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Απορρίφθηκε ο διάλογος (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Παράβλεψη" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Προσπαθήστε ξανά" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Σφάλμα σύνδεσης στον διακομιστή Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Αναμενόταν η κατάσταση 200 κατά την αίτηση της ταυτότητάς σας, αντ'αυτού " +"εμφανίστηκε η κατάσταση %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Αδυναμία ανάλυσης απόκρισης " + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Η ώρα του συστήματος σας είναι εσφαλμένη. Ελέξτε τις ρυθμίσεις ημερομηνίας " +"και ώρας." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Δεν είναι διαθέσιμη η υπηρεσία" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Αποτυχία πιστοποίησης" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Ο διακομιστής δεν υποστηρίζει PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Ο διακομιστής δεν υποστηρίζει STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP και SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Μη έγκυρο %s με όνομα χρήστη «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Κρυπτογράφηση" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Κανένα" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS μετά τη σύνδεση" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL σε μια αποκλειστική θύρα" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "Ό_νομα" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "Διακομι_στής IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "Διακομι_στής SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Προώθηση" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Σφάλμα σύνδεσης στον διακομιστή IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Σφάλμα σύνδεσης στον διακομιστή SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Ηλεκτρονική διεύθυνση" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Όνομα" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Εταιρική σύνδεση (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "" +"Η δημιουργία εισητηρίου έχει απενεργοποιηθεί για το λογαριασμό Kerberos" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Αδυναμία εύρεσης αποθηκευμένων διαπιστευτηρίων για το κύριο «%s» στην " +"κλειδοθήκη" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Δε βρέθηκε κωδικός πρόσβασης για το κύριο «%s» στα διαπιστευτήρια" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Κύριος" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Η λειτουργία ακυρώθηκε" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Σύνδεση σε Realm" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Παρακαλούμε πληκτρολογήστε τον κωδικό πρόσβασής σας παρακάτω." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Απομνημόνευση κωδικού πρόσβασης" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Σφάλμα σύνδεσης στον εταιρικό διακομιστή ταυτοτήτων" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Η υπηρεσία ταυτότητας επέστρεψε μη έγκυρο κλειδί" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Σφάλμα σύνδεσης στο Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Διακομιστής πολυμέσων" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Μπορεί να προστεθεί προσωπικό περιεχόμενο στις εφαρμογές σας με έναν " +"λογαριασμό διακομιστή πολυμέσων." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Διαθέσιμοι διακομιστές πολυμέσων" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Δεν βρέθηκαν διακομιστές πολυμέσων" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Αναμενόταν η κατάσταση 200 κατά την αίτηση διακριτικού πρόσβασης, αντί να " +"ληφθεί η κατάσταση %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Απόκριση εξουσιοδότησης:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Απόκριση εξουσιοδότησης: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Σφάλμα λήψης αναγνωριστικού πρόσβασης: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Σφάλμα λήψης ταυτότητας: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Ζητήθηκε σύνδεση ως %s, αλλά συνδεθήκατε ως %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Τα διαπηστευτήρια δεν περιέχουν το διακριτικό access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Αποτυχία ανανέωσης αναγνωριστικού πρόσβασης (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Απουσία επικεφαλίδων access_token ή access_token_secret στην απόκριση " + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Σφάλμα λήψης αιτούμενου αναγνωριστικού: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Αναμενόταν η κατάσταση 200 κατά την αίτηση αιτήματος πρόσβασης, αντί να " +"ληφθεί η κατάσταση %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Απουσία επικεφαλίδων request_token ή request_token_secret στην απόκριση " + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Τα διαπιστευτήρια δεν περιέχουν τα access_token ή access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Σφάλμα σύνδεσης στον διακομιστή ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Χωρίς όνομα χρήστη ή διακρι_τικό πρόσβασης" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "Αλλ_ηλογραφία" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Ημερο_λόγιο" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "Επα_φές" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Συνομιλία" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "Έ_γγραφα" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "Μ_ουσική" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Φωτογραφίες" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Αρχεία" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Πό_ροι δικτύου" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Να διαβαστεί α_ργότερα" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Εκτυπω_τές" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Χάρτες" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Προς _τακτοποίηση" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Χρήση για" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Ο λογαριασμός είναι απενεργοποιημένος" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Άγνωστο σφάλμα" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "Το ensure_credentials_sync δεν έχει υλοποιηθεί στον τύπο %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "Το TLS δεν είναι διαθέσιμο" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Άγνωστος μηχανισμός πιστοποίησης" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Δεν βρέθηκε λογαριασμός συνομιλίας Telepathy" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Αποτυχία δημιουργίας διεπαφής χρήστη για %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Ρυθμίσεις σύνδεσης" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Προσωπικές λεπτομέρειες" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "Ε_ντάξει" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Αδυναμία αποθήκευσης παραμέτρων σύνδεσης" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Αδυναμία αποθήκευσης των προσωπικών σας πληροφοριών στον διακομιστή" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Ρυθμίσεις σύνδεσης" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Προσωπικές λεπτομέρειες" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Σφάλμα σύνδεσης στο λογαριασμό" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Τα διαπιστευτήρια έχουν λήξει" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Συνδεθείτε για να ενεργοποιήσετε τον λογαριασμό." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Σύνδεση" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Yπάρχει ήδη o λογαριασμός %s για %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Λογαριασμός %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Αποτυχία διαγραφής διαπιστευτηρίων από την κλειδοθήκη" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Αποτυχία ανάκλησης διαπιστευτηρίων από την κλειδοθήκη" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Δεν βρέθηκαν διαπιστευτήρια στην κλειδοθήκη" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Σφάλμα ανάλυσης αποτελέσματος που ελήφθη από την κλειδοθήκη: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Διαπιστευτήρια GOA %s για την ταυτότητα %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Αποτυχία αποθήκευσης διαπιστευτηρίων στην κλειδοθήκη" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Αδυναμία επίλυσης ονόματος διακομιστή" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Αδυναμία επίλυσης ονόματος διακομιστή του διαμεσολαβητή" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Αδυναμία εύρεσης τελικού σημείου WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Κωδικός: %u - Μη αναμενόμενη απόκριση από τον διακομιστή" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Η αρχή υπογραφής του πιστοποιητικού δεν είναι γνωστή." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Το πιστοποιητικό δεν ταιριάζει με την αναμενόμενη ταυτότητα της ιστοσελίδας " +"από την οποία έχει ληφθεί." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "" +"Ο χρόνος ενεργοποίησης του πιστοποιητικού εξακολουθεί να είναι στο μέλλον." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Το πιστοποιητικό έχει λήξει." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Το πιστοποιητικό έχει ανακληθεί." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Ο αλγόριθμος του πιστοποιητικού θεωρείται μη ασφαλής." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Άκυρο πιστοποιητικό." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Δε βρέθηκε %s με ταυτότητα «%s» στα διαπιστευτήρια" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Φόρτωση του «%s»…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Το αρχικό μυστικό κλειδί δεν είναι έγκυρο" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Το δίκτυο realm %s χρειάζεται μερικές πληροφορίες για να σας συνδέσει." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Αδυναμία εύρεσης ταυτότητας στη μνήμη διαπιστευτηρίων: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Αδυναμία εύρεσης διαπιστευτηρίων ταυτότητας στη μνήμη: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"Αδυναμία λεπτομερούς εξέτασης των διαπιστευτηρίων ταυτότητας στη μνήμη: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Αδυναμία καθαρισμού της λεπτομερούς εξέτασης των διαπιστευτηρίων ταυτότητας " +"στη μνήμη:" + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Δε βρέθηκε σχετική ταυτότητα" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Αδυναμία δημιουργίας μνήμης διαπιστευτηρίων: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Αδυναμία αρχικοποιήσης μνήμης διαπιστευτηρίων: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Αδυναμία αποθήκευσης νέων διαπιστευτηρίων στη μνήμη διαπιστευτηρίων: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Αδυναμία ανανέωσης της ταυτότητας: Δεν συνδέθηκε" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Αδυναμία ανανέωσης ταυτότητας: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Αδυναμία λήψης νέων διαπιστευτηρίων για ανανέωση της ταυτότητας %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Αδυναμία διαγραφής ταυτότητας: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Αδυναμία εύρεσης ταυτότητας" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Αδυναμία δημιουργίας μνήμης διαπιστευτηρίων για την ταυτότητα" + +#~ msgid "_Domain" +#~ msgstr "_Τομέας" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Εταιρικός τομέας ή όνομα realm" + +#~ msgid "The domain is not valid" +#~ msgstr "Δεν είναι έγκυρος ο τομέας" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "Δεν είναι διαθέσιμο το org.gnome.OnlineAccounts.Mail" + +#~ msgid "Failed to parse email address" +#~ msgstr "Αποτυχία ανάλυσης διεύθυνσης αλληλογραφίας" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Αδυναμία πιστοποίησης SMTP χωρίς τομέα" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Δε βρέθηκε ο κωδικός πρόσβασης smtp στα διαπιστευτηρία" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Αδυναμία πιστοποίησης SMTP χωρίς κωδικό πρόσβασης" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "το μυστικό πέρασε πριν την ανταλλαγή του μυστικού κλειδιού" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Αποτυχία αρχικοποίησης πελάτη GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Δε βρέθηκε ο κωδικός πρόσβασης με ταυτότητα ‘%s’ στα διαπιστευτήρια" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Αναμενόταν κατάταση 200 κατά την αίτηση ονόματος, αντί να ληφθεί η " +#~ "κατάσταση %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Επικόλληση κωδικού εξουσιοδότησης που προέρχεται από την σελίδα εξουσιοδότησης:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Επικόλληση αναγνωριστικού που προέρχεται από την σελίδα " +#~ "έγκρισης:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Ώρα" + +#~ msgid "Time to fire" +#~ msgstr "Ώρα έναρξης" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Αποτυχία εύρεσης στοιχείου αυτόματου εντοπισμού" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Αναμενόταν κατάσταση 200 κατά την αίτηση του αναγνωριστικού guid, αντί να " +#~ "ληφθεί η κατάσταση %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Δε βρέθηκε ο κωδικός πρόσβασης imap με αναγνωριστικό `%s' στα " +#~ "διαπιστευτήρια" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Άκυρος κωδικός πρόσβασης imap με όνομα χρήστη `%s' (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Δε βρέθηκε ο κωδικός πρόσβασης smtp με αναγνωριστικό `%s' στα " +#~ "διαπιστευτήρια" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Άκυρος κωδικός πρόσβασης smtp με όνομα χρήστη `%s' (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "Διαδικτυακοί λογαριασμοί" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "Δίνει το όνομα org.gnome.OnlinesAccounts στον δίαυλο της συνεδρίας" + +#~ msgid "An online account needs attention" +#~ msgstr "Ένας διαδικτυακός λογαριασμός χρειάζεται την προσοχή σας" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Ανοίξτε τους διαδικτυακούς λογαριασμούς..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Σφάλμα προσπέλασης απάντησης ως JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Δε βρέθηκε η ταυτότητα χρήστη στα δεδομένα JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Δε βρέθηκε ηλεκτρονική διεύθυνση μέλους στα δεδομένα JSON" + +#~| msgid "Didn't find value member in JSON data" +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Δε βρέθηκε ο χρήστης στα δεδομένα JSON" + +#~| msgid "Didn't find guid member in JSON data" +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Δε βρέθηκε το user.id του μέλους στα δεδομένα JSON" + +#~| msgid "Didn't find screen_name member in JSON data" +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Δε βρέθηκε το user.username του μέλους στα δεδομένα JSON" + +#~| msgid "Didn't find screen_name member in JSON data" +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Δε βρέθηκε το user.username._content του μέλους στα δεδομένα JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Δε βρέθηκε to access_token σta δεδομένα μη JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Δε βρέθηκε το access_token στα δεδομένα JSON" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Δε βρέθηκε το μέλος id_str στα δεδομένα JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Δε βρέθηκε το μέλος screen_name στα δεδομένα JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Δε βρέθηκε λογαριασμός αλληλογραφίας μέλους στα δεδομένα JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Δε βρέθηκε το guid μέλους στα δεδομένα JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Δε βρέθηκε η τιμή μέλους στα δεδομένα JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Σφάλμα ανάλυσης απάντησης κάρτας χρήστη ως JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Δε βρέθηκε το προφίλ του μέλους στα δεδομένα JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Δε βρέθηκε ψευδώνυμο μέλους στα δεδομένα JSON" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Δε βρέθηκαν διαπιστευτήρια στην κλειδοθήκη (%s, %d): " + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Δε βρέθηκαν δεδομένα μέλους στα δεδομένα JSON" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Σφάλμα αποθήκευσης διαπιστευτηρίων στην κλειδοθήκη (%s, %d): " + +#~ msgid "Domain Administrator Login" +#~ msgstr "Σύνδεση διαχειριστή τομέα" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "Για να χρησιμοποιήσετε αυτή την εταιρική ταυτότητα, ο υπολογιστής θα " +#~ "πρέπει να είναι εγγεγραμμένος στον τομέα. Παρακαλώ πείτε το διαχειριστή " +#~ "δικτύου σας να πληκτρολογήσει εδώ τον κωδικό πρόσβασης του τομέα." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "Για να χρησιμοποιήσετε αυτή την εταιρική ταυτότητα, ο υπολογιστής θα " +#~ "πρέπει να είναι εγγεγραμμένος στον τομέα. Παρακαλώ πείτε το διαχειριστή " +#~ "δικτύου σας να πληκτρολογίσει εδώ το όνομα χρήστη του τομέα." + +#~ msgid "No such domain or realm found" +#~ msgstr "Δεν βρέθηκε τέτοιος τομέας ή realm" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Αδυναμία σύνδεσης ως %s στον τομέα %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Λάθος κωδικός πρόσβασης, παρακαλώ προσπαθήστε ξανά" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Αδυναμία σύνδεσης στον τομέα %s: %s" + +#~ msgid "Chat" +#~ msgstr "Συνομιλία" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Νέος λογαριασμός Microsoft Exchange" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Νέα εταιρική σύνδεση (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "Προσθήκη του %s" + +#~ msgid "Refresh %s" +#~ msgstr "Ανανέωση του %s" diff --git a/po/en@boldquot.header b/po/en@boldquot.header new file mode 100644 index 0000000..fedb6a0 --- /dev/null +++ b/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/po/en@quot.header b/po/en@quot.header new file mode 100644 index 0000000..a9647fc --- /dev/null +++ b/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/po/en_GB.gmo b/po/en_GB.gmo new file mode 100644 index 0000000..bf6497e Binary files /dev/null and b/po/en_GB.gmo differ diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..79a1465 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,1073 @@ +# British English translation of gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER. +# This file is distributed under the same licence as the gnome-online-accounts package. +# Bruce Cowan , 2011, 2012, 2013, 2018. +# Philip Withnall , 2013. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-05 18:19+0000\n" +"PO-Revision-Date: 2018-03-02 22:15+0000\n" +"Last-Translator: Bruce Cowan \n" +"Language-Team: British English \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "List of providers that are allowed to be loaded" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Failed to find a provider for: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "IsLocked property is set for account" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "ProviderType property is not set for account" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Failed to parse autodiscover response XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +#| msgid "Failed to find ‘%s’ element" +msgid "Failed to find “%s” element" +msgstr "Failed to find “%s” element" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Failed to find ASUrl and OABUrl in autodiscover response" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:299 +#, c-format +#| msgid "Invalid password with username ‘%s’ (%s, %d): " +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Invalid password with username “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:655 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:675 +#: src/goabackend/goaimapsmtpprovider.c:695 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Password" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Custom" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:674 +#: src/goabackend/goaimapsmtpprovider.c:694 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "User_name" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:707 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:552 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Cancel" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "C_onnect" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:723 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Connecting…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:873 +#: src/goabackend/goaimapsmtpprovider.c:908 +#: src/goabackend/goaimapsmtpprovider.c:1000 +#: src/goabackend/goaimapsmtpprovider.c:1257 +#: src/goabackend/goaimapsmtpprovider.c:1333 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:671 +#: src/goabackend/goaowncloudprovider.c:891 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialogue was dismissed" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:941 +#: src/goabackend/goaimapsmtpprovider.c:1038 +#: src/goabackend/goaimapsmtpprovider.c:1284 +#: src/goabackend/goaimapsmtpprovider.c:1361 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:716 +#: src/goabackend/goaowncloudprovider.c:918 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialogue was dismissed (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:954 +#: src/goabackend/goaimapsmtpprovider.c:1051 +#: src/goabackend/goaowncloudprovider.c:729 +msgid "_Ignore" +msgstr "_Ignore" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:959 +#: src/goabackend/goaimapsmtpprovider.c:1056 +#: src/goabackend/goaimapsmtpprovider.c:1303 +#: src/goabackend/goaimapsmtpprovider.c:1380 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:734 +#: src/goabackend/goaowncloudprovider.c:937 +msgid "_Try Again" +msgstr "_Try Again" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Error connecting to Microsoft Exchange server" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Could not parse response" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Your system time is invalid. Check your date and time settings." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:89 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Service not available" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:109 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Authentication failed" + +#: src/goabackend/goaimapauthlogin.c:134 +msgid "Server does not support PLAIN" +msgstr "Server does not support PLAIN" + +#: src/goabackend/goaimapauthlogin.c:186 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server does not support STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP and SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:335 +#: src/goabackend/goaimapsmtpprovider.c:386 +#, c-format +#| msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Invalid %s with username “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:572 +msgid "_Encryption" +msgstr "_Encryption" + +#: src/goabackend/goaimapsmtpprovider.c:575 +msgid "None" +msgstr "None" + +#: src/goabackend/goaimapsmtpprovider.c:578 +msgid "STARTTLS after connecting" +msgstr "STARTTLS after connecting" + +#: src/goabackend/goaimapsmtpprovider.c:581 +msgid "SSL on a dedicated port" +msgstr "SSL on a dedicated port" + +#: src/goabackend/goaimapsmtpprovider.c:656 +msgid "_Name" +msgstr "_Name" + +#: src/goabackend/goaimapsmtpprovider.c:673 +msgid "IMAP _Server" +msgstr "IMAP _Server" + +#: src/goabackend/goaimapsmtpprovider.c:693 +msgid "SMTP _Server" +msgstr "SMTP _Server" + +#: src/goabackend/goaimapsmtpprovider.c:708 +#: src/goabackend/goaimapsmtpprovider.c:980 +#: src/goabackend/goaimapsmtpprovider.c:1313 +msgid "_Forward" +msgstr "_Forward" + +#: src/goabackend/goaimapsmtpprovider.c:964 +#: src/goabackend/goaimapsmtpprovider.c:1296 +msgid "Error connecting to IMAP server" +msgstr "Error connecting to IMAP server" + +#: src/goabackend/goaimapsmtpprovider.c:1061 +#: src/goabackend/goaimapsmtpprovider.c:1373 +msgid "Error connecting to SMTP server" +msgstr "Error connecting to SMTP server" + +#: src/goabackend/goaimapsmtpprovider.c:1484 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1488 +msgid "Name" +msgstr "Name" + +#: src/goabackend/goaimapsmtpprovider.c:1498 +#: src/goabackend/goaimapsmtpprovider.c:1502 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1513 +#: src/goabackend/goaimapsmtpprovider.c:1517 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Enterprise Login (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Ticketing is disabled for account" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +#| msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Could not find saved credentials for principal “%s” in keyring" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +#| msgid "Did not find password for principal ‘%s’ in credentials" +msgid "Did not find password for principal “%s” in credentials" +msgstr "Did not find password for principal “%s” in credentials" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Operation was cancelled" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Log In to Realm" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Please enter your password below." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Remember this password" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Error connecting to enterprise identity server" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identity service returned invalid key" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Error connecting to Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Media Server" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Personal content can be added to your applications through a media server " +"account." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Available Media Servers" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "No media servers found" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Expected status 200 when requesting access token, instead got status %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Authorisation response: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Authorisation response: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Error getting an Access Token: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Error getting identity: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Was asked to log in as %s, but logged in as %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Credentials do not contain access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Failed to refresh access token (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Missing access_token or access_token_secret headers in response" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Error getting a Request Token: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Missing request_token or request_token_secret headers in response" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Credentials do not contain access_token or access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:739 +#: src/goabackend/goaowncloudprovider.c:930 +msgid "Error connecting to ownCloud server" +msgstr "Error connecting to ownCloud server" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "No username or access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Mail" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Cale_ndar" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Contacts" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "C_hat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documents" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usic" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Photos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Files" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Network _Resources" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Read Later" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Prin_ters" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Maps" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Use for" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Account is disabled" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Unknown error" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync is not implemented on type %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS not available" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Unknown authentication mechanism" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Telepathy chat account not found" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Failed to create a user interface for %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Connection Settings" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Personal Details" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Cannot save the connection parameters" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Cannot save your personal information on the server" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Connection Settings" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Personal Details" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Error logging into the account" + +#: src/goabackend/goautils.c:140 +#| msgid "Credentials have expired." +msgid "Credentials have expired" +msgstr "Credentials have expired" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Sign in to enable this account." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Sign In" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "A %s account already exists for %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +#| msgid "%s account" +msgid "%s Account" +msgstr "%s Account" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Failed to delete credentials from the keyring" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Failed to retrieve credentials from the keyring" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "No credentials found in the keyring" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Error parsing result obtained from the keyring: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s credentials for identity %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Failed to store credentials in the keyring" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Cannot resolve hostname" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Cannot resolve proxy hostname" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Cannot find WebDAV endpoint" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Code: %u — Unexpected response from server" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "The signing certificate authority is not known." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "The activation time of the certificate is still in the future." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "The certificate has expired." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "The certificate has been revoked." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "The algorithm of the certificate is considered insecure." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Invalid certificate." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +#| msgid "Did not find %s with identity ‘%s’ in credentials" +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Did not find %s with identity “%s” in credentials" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Loading “%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +#| msgid "Microsoft Account" +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Initial secret key is invalid" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "The network realm %s needs some information to sign you in." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +#| msgid "Could not find identity in credential cache: %k" +msgid "Could not find identity in credential cache: " +msgstr "Could not find identity in credential cache: " + +#: src/goaidentity/goakerberosidentity.c:720 +#| msgid "Could not find identity credentials in cache: %k" +msgid "Could not find identity credentials in cache: " +msgstr "Could not find identity credentials in cache: " + +#: src/goaidentity/goakerberosidentity.c:771 +#| msgid "Could not sift through identity credentials in cache: %k" +msgid "Could not sift through identity credentials in cache: " +msgstr "Could not sift through identity credentials in cache: " + +#: src/goaidentity/goakerberosidentity.c:788 +#| msgid "" +#| "Could not finish up sifting through identity credentials in cache: %k" +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Could not finish up sifting through identity credentials in cache: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "No associated identification found" + +#: src/goaidentity/goakerberosidentity.c:1186 +#| msgid "Could not create credential cache: %k" +msgid "Could not create credential cache: " +msgstr "Could not create credential cache: " + +#: src/goaidentity/goakerberosidentity.c:1220 +#| msgid "Could not initialize credentials cache: %k" +msgid "Could not initialize credentials cache: " +msgstr "Could not initialise credentials cache: " + +#: src/goaidentity/goakerberosidentity.c:1236 +#| msgid "Could not store new credentials in credentials cache: %k" +msgid "Could not store new credentials in credentials cache: " +msgstr "Could not store new credentials in credentials cache: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Could not renew identity: Not signed in" + +#: src/goaidentity/goakerberosidentity.c:1546 +#| msgid "Could not renew identity: %k" +msgid "Could not renew identity: " +msgstr "Could not renew identity: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +#| msgid "Could not get new credentials to renew identity %s: %k" +msgid "Could not get new credentials to renew identity %s: " +msgstr "Could not get new credentials to renew identity %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +#| msgid "Could not erase identity: %k" +msgid "Could not erase identity: " +msgstr "Could not erase identity: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Could not find identity" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Could not create credential cache for identity" + +#~ msgid "_Domain" +#~ msgstr "_Domain" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Enterprise domain or realm name" + +#~ msgid "The domain is not valid" +#~ msgstr "The domain is not valid" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail is not available" + +#~ msgid "Failed to parse email address" +#~ msgstr "Failed to parse e-mail address" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Cannot do SMTP authentication without a domain" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Did not find SMTP password in credentials" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Cannot do SMTP authentication without a password" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "initial secret passed before secret key exchange" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Failed to find Autodiscover element" + +#~ msgid "Failed to find Account element" +#~ msgstr "Failed to find Account element" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Expected status 200 when requesting GUID, instead got status %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Did not find IMAP password with identity ‘%s’ in credentials" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Invalid IMAP password with username ‘%s’ (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Did not find SMTP password with identity ‘%s’ in credentials" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Invalid SMTP password with username ‘%s’ (%s, %d): " + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Paste authorisation code obtained from the authorisation " +#~ "page:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Paste token obtained from the authorisation page:" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Failed to initialise a GOA client" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Expected status 200 when requesting name, instead got status %d (%s)" + +#~ msgid "Time" +#~ msgstr "Time" + +#~ msgid "Time to fire" +#~ msgstr "Time to fire" + +#~ msgid "Online Accounts" +#~ msgstr "Online Accounts" + +#~ msgid "An online account needs attention" +#~ msgstr "An online account needs attention" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Open Online Accounts…" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Credentials not found in keyring (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Error parsing response as JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Didn't find id member in JSON data" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Didn't find e-mail member in JSON data" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Didn't find data member in JSON data" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Didn't find access_token in non-JSON data" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Didn't find access_token in JSON data" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Error storing credentials in keyring (%s, %d): " + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Didn't find account e-mail member in JSON data" + +#~ msgid "Domain Administrator Login" +#~ msgstr "Domain Administrator Login" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." + +#~ msgid "No such domain or realm found" +#~ msgstr "No such domain or realm found" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Cannot log in as %s at the %s domain" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Invalid password, please try again" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Couldn't connect to the %s domain: %s" + +#~ msgid "Chat" +#~ msgstr "Chat" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "New Microsoft Exchange Account" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "New Enterprise Login (Kerberos)" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Didn't find id_str member in JSON data" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Didn't find screen_name member in JSON data" + +#~ msgid "Add %s" +#~ msgstr "Add %s" + +#~ msgid "Refresh %s" +#~ msgstr "Refresh %s" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Didn't find guid member in JSON data" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Didn't find value member in JSON data" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Error parsing usercard response as JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Didn't find profile member in JSON data" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Didn't find nickname member in JSON data" + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "Didn't find username member in JSON data" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Didn't find name member in JSON data" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "There is already an account for the identity %s" + +#~ msgid "Email Address" +#~ msgstr "E-mail Address" diff --git a/po/eo.gmo b/po/eo.gmo new file mode 100644 index 0000000..7bf4aff Binary files /dev/null and b/po/eo.gmo differ diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..b0d7766 --- /dev/null +++ b/po/eo.po @@ -0,0 +1,998 @@ +# Esperanto translation for gnome-online-accounts. +# Copyright (C) 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# Telperien , 2012. +# Ryan LORTIE , 2013. +# Daniel PUENTES , 2014. +# Kristjan SCHMIDT , 2011, 2013, 2014, 2017. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-06-05 13:04+0000\n" +"PO-Revision-Date: 2017-06-11 12:57+0200\n" +"Last-Translator: Kristjan SCHMIDT \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1132 ../src/daemon/goadaemon.c:1416 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Malsukcesa serĉo de provizanto por: %s" + +#: ../src/daemon/goadaemon.c:1359 +msgid "IsLocked property is set for account" +msgstr "La atributo IsLocked estas definita por konto" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1404 +msgid "ProviderType property is not set for account" +msgstr "La atributo ProviderType ne estas difinita por la konto" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, fuzzy, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Malsukcesis analizi responda XML al aŭtomata malkovrilo" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +#| msgid "Failed to find ‘%s’ element" +msgid "Failed to find “%s” element" +msgstr "Malsukcesis trovi elementon “%s”" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Malsukcesis serĉi ASUrl kaj OABUrl je respondo de aŭtomata malkovrilo" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:280 +#: ../src/goabackend/goaowncloudprovider.c:314 +#, c-format +#| msgid "Invalid password with username ‘%s’ (%s, %d): " +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Nevalida pasvorto kun uzantonomo “%s” (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "R_etpoŝto" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:422 +#: ../src/goabackend/goaowncloudprovider.c:561 +msgid "_Password" +msgstr "_Pasvorto" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Propra" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:421 +#: ../src/goabackend/goaowncloudprovider.c:560 +msgid "User_name" +msgstr "Uzant_nomo" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:559 +msgid "_Server" +msgstr "_Servilo" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:749 +#: ../src/goabackend/goalastfmprovider.c:430 +#: ../src/goabackend/goaowncloudprovider.c:575 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Nuligi" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:750 +#: ../src/goabackend/goalastfmprovider.c:431 +#: ../src/goabackend/goaowncloudprovider.c:576 +msgid "C_onnect" +msgstr "K_onekti" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:766 +#: ../src/goabackend/goalastfmprovider.c:447 +#: ../src/goabackend/goaowncloudprovider.c:591 +msgid "Connecting…" +msgstr "Konektante…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1163 +#: ../src/goabackend/goalastfmprovider.c:642 +#: ../src/goabackend/goalastfmprovider.c:810 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1091 +#: ../src/goabackend/goaoauthprovider.c:860 +#: ../src/goabackend/goaowncloudprovider.c:702 +#: ../src/goabackend/goaowncloudprovider.c:926 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "La dialogo estis ignorita" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:676 +#: ../src/goabackend/goalastfmprovider.c:829 +#: ../src/goabackend/goaowncloudprovider.c:744 +#: ../src/goabackend/goaowncloudprovider.c:950 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "La dialogo estis ignorita (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:757 +msgid "_Ignore" +msgstr "_Ignori" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1270 +#: ../src/goabackend/goalastfmprovider.c:688 +#: ../src/goabackend/goalastfmprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:762 +#: ../src/goabackend/goaowncloudprovider.c:969 +msgid "_Try Again" +msgstr "_Provi denove" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Eraro dum konekto al servilo de Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:55 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:152 +#: ../src/goabackend/goafoursquareprovider.c:167 +#: ../src/goabackend/goagoogleprovider.c:204 +#: ../src/goabackend/goawindowsliveprovider.c:164 +#, fuzzy, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Estis atendite statuso 200 kiam petante uzantonumeron, statuso %d (%s) estis " +"prenita anstataŭe" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:204 +#: ../src/goabackend/goafacebookprovider.c:216 +#: ../src/goabackend/goafacebookprovider.c:229 +#: ../src/goabackend/goaflickrprovider.c:171 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:193 +#: ../src/goabackend/goaflickrprovider.c:203 +#: ../src/goabackend/goaflickrprovider.c:213 +#: ../src/goabackend/goafoursquareprovider.c:186 +#: ../src/goabackend/goafoursquareprovider.c:198 +#: ../src/goabackend/goafoursquareprovider.c:209 +#: ../src/goabackend/goafoursquareprovider.c:220 +#: ../src/goabackend/goafoursquareprovider.c:231 +#: ../src/goabackend/goafoursquareprovider.c:242 +#: ../src/goabackend/goagoogleprovider.c:223 +#: ../src/goabackend/goagoogleprovider.c:235 +#: ../src/goabackend/goalastfmprovider.c:211 +#: ../src/goabackend/goalastfmprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:237 +#: ../src/goabackend/goalastfmprovider.c:505 +#: ../src/goabackend/goalastfmprovider.c:514 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goalastfmprovider.c:536 +#: ../src/goabackend/goaoauth2provider.c:742 +#: ../src/goabackend/goaoauth2provider.c:772 +#: ../src/goabackend/goaoauth2provider.c:784 ../src/goabackend/goautils.c:315 +#: ../src/goabackend/goawindowsliveprovider.c:183 +#: ../src/goabackend/goawindowsliveprovider.c:195 +#: ../src/goabackend/goawindowsliveprovider.c:207 +#, c-format +msgid "Could not parse response" +msgstr "Ne eblis analizi respondon" + +#: ../src/goabackend/goaflickrprovider.c:55 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:285 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"La tempo de via sistemo estas nevalida. Kontrolu viajn agordojn pri dato kaj " +"tempo." + +#: ../src/goabackend/goafoursquareprovider.c:64 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:63 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:93 ../src/goabackend/goasmtpauth.c:159 +#, c-format +msgid "Service not available" +msgstr "Servo ne disponeblas" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:114 +#: ../src/goabackend/goalastfmprovider.c:522 +#: ../src/goabackend/goasmtpauth.c:112 ../src/goabackend/goautils.c:895 +#, c-format +msgid "Authentication failed" +msgstr "Aŭtentigo malsukcesis" + +#: ../src/goabackend/goaimapauthlogin.c:139 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Servilo ne subtenas na PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:193 ../src/goabackend/goasmtpauth.c:817 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Servilo ne subtenas na STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP kaj SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +#| msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Nevalida %s kun uzantonomo “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "Ĉ_ifrado" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Neniu" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS post konekti" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL sur dediĉita pordo" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Nomo" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP-_servilo" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "SMTP-_servilo" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Antaŭen" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Eraro dum konekto al IMAP-servilo" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Eraro dum konekto al SMTP-servilo" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Retpoŝto" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Nomo" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "Entreprena ensaluto (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:302 +#, fuzzy, c-format +#| msgid "IsLocked property is set for account" +msgid "Ticketing is disabled for account" +msgstr "Biletumo estas elŝaltita por konto" + +#: ../src/goabackend/goakerberosprovider.c:327 +#, c-format +#| msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Ne eblis trovi konservitajn ensalutilojn por ĉefa “%s” en ŝlosilaro" + +#: ../src/goabackend/goakerberosprovider.c:340 +#, c-format +#| msgid "Did not find password for principal ‘%s’ in credentials" +msgid "Did not find password for principal “%s” in credentials" +msgstr "Ne trovis pasvorton por ĉefa “%s” en ensalutiloj" + +#: ../src/goabackend/goakerberosprovider.c:736 +msgid "_Domain" +msgstr "_Domajno" + +#: ../src/goabackend/goakerberosprovider.c:737 +msgid "Enterprise domain or realm name" +msgstr "Entreprena domajno aŭ loka nomo" + +#: ../src/goabackend/goakerberosprovider.c:979 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Ensaluti al regno" + +#: ../src/goabackend/goakerberosprovider.c:980 +msgid "Please enter your password below." +msgstr "Bonvole entajpu vian pasvorton sube." + +#: ../src/goabackend/goakerberosprovider.c:981 +msgid "Remember this password" +msgstr "Memorigi ĉi tiun pasvorton" + +#: ../src/goabackend/goakerberosprovider.c:1115 +#, c-format +msgid "The domain is not valid" +msgstr "La domajno estas senvalida" + +#: ../src/goabackend/goakerberosprovider.c:1265 +msgid "Error connecting to enterprise identity server" +msgstr "Eraro konektante al entreprena identeca servilo" + +#: ../src/goabackend/goakerberosprovider.c:1612 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Identeca servo liveris nevalidan klavon" + +#: ../src/goabackend/goalastfmprovider.c:64 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:690 +#: ../src/goabackend/goalastfmprovider.c:840 +#| msgid "Error connecting to IMAP server" +msgid "Error connecting to Last.fm" +msgstr "Eraro dum konekto al Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Aŭdvidea servilo" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Persona enhavo povas aldoniĝi al viaj aplikaĵoj per konto de aŭdvidea " +"servilo." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Disponeblaj aŭdvideaj serviloj" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Neniu aŭdvidean servilon trovita" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:718 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Atendite statuso 200 kiam petante atingoĵetonon, tamen havas statuson %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:898 +msgid "Authorization response: " +msgstr "Rajtiga respondo: " + +#: ../src/goabackend/goaoauth2provider.c:968 +#, c-format +msgid "Authorization response: %s" +msgstr "Rajtiga respondo: %s" + +#: ../src/goabackend/goaoauth2provider.c:1117 +#: ../src/goabackend/goaoauthprovider.c:891 +msgid "Error getting an Access Token: " +msgstr "Eraro akirante atingoĵetonon: " + +#: ../src/goabackend/goaoauth2provider.c:1132 +#: ../src/goabackend/goaoauthprovider.c:904 +msgid "Error getting identity: " +msgstr "Eraro akirante identecon: " + +#: ../src/goabackend/goaoauth2provider.c:1354 +#: ../src/goabackend/goaoauthprovider.c:1208 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Estis demandita ensaluto kiel %s, sed ensalutis kiel %s" + +#: ../src/goabackend/goaoauth2provider.c:1516 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Akreditaĵoj ne enhavas na access_token" + +#: ../src/goabackend/goaoauth2provider.c:1555 +#: ../src/goabackend/goaoauthprovider.c:1436 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Malsukcesis aktualigi atingoĵetonon (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Manka access_token aŭ access_token_secret kapoj en respondo" + +#: ../src/goabackend/goaoauthprovider.c:774 +msgid "Error getting a Request Token: " +msgstr "Eraro akirante petĵetonon: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:805 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Atendite statuso 200 kiam ricevante petan ĵetonon, tamen havas statuson %d " +"(%s)" + +#: ../src/goabackend/goaoauthprovider.c:822 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Manka request_token aŭ request_token_secret kapoj en respondo" + +#: ../src/goabackend/goaoauthprovider.c:1392 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Akreditaĵoj ne enhavas na access_token aŭ na access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:767 +#: ../src/goabackend/goaowncloudprovider.c:962 +msgid "Error connecting to ownCloud server" +msgstr "Eraro dum konekto al ownCloud-servilo" + +#: ../src/goabackend/goapocketprovider.c:73 +msgid "Pocket" +msgstr "Poŝo" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:248 +#, c-format +msgid "No username or access_token" +msgstr "Neniu uzantonomo aŭ a_tingoĵetono" + +#: ../src/goabackend/goaprovider.c:118 +msgid "_Mail" +msgstr "_Retpoŝto" + +#: ../src/goabackend/goaprovider.c:123 +msgid "Cale_ndar" +msgstr "Kale_ndaro" + +#: ../src/goabackend/goaprovider.c:128 +msgid "_Contacts" +msgstr "_Kontaktaro" + +#: ../src/goabackend/goaprovider.c:133 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Retbabilo" + +#: ../src/goabackend/goaprovider.c:138 +msgid "_Documents" +msgstr "_Dokumentoj" + +#: ../src/goabackend/goaprovider.c:143 +msgid "M_usic" +msgstr "M_uziko" + +#: ../src/goabackend/goaprovider.c:148 +msgid "_Photos" +msgstr "_Fotaĵoj" + +#: ../src/goabackend/goaprovider.c:153 +msgid "_Files" +msgstr "_Dosieroj" + +#: ../src/goabackend/goaprovider.c:158 +msgid "Network _Resources" +msgstr "Retaj _risurcoj" + +#: ../src/goabackend/goaprovider.c:163 +msgid "_Read Later" +msgstr "_Legi poste" + +#: ../src/goabackend/goaprovider.c:168 +msgid "Prin_ters" +msgstr "Pres_iloj" + +#: ../src/goabackend/goaprovider.c:173 +msgid "_Maps" +msgstr "_Mapoj" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:607 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Uzi por" + +#: ../src/goabackend/goaprovider.c:862 +msgid "Account is disabled" +msgstr "Konto estas elŝaltite" + +#: ../src/goabackend/goaprovider.c:885 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync ne realigitas por tipo %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:174 +#, c-format +msgid "TLS not available" +msgstr "TLS ne disponeblas" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail ne disponeblas" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "Malsukcesis analizi retpoŝtadreson" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:260 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "Ne eblas fari SMTP-an aŭtentigon sendomajne" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:300 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "Ne trovis SMTP-pasvorton en ensalutiloj" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:311 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "Ne eblas fari SMTP-a aŭtentigo senpasvorte" + +#: ../src/goabackend/goasmtpauth.c:673 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Nekonata aŭtentiga mekanismo" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Telepathy-a retbabilkonto ne trovita" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Malsukcesis krei interfacon por %s" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Konektaj agordoj" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Personaj detaloj" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "B_one" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Ne eblas konservi konektajn parametrojn" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Ne eblas konservi vian personan informon en la servilo" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Konektaj agordoj" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Personaj detaloj" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Eraro dum ensaluto en la konton" + +#: ../src/goabackend/goautils.c:140 +#| msgid "The certificate has expired." +msgid "Credentials have expired" +msgstr "La ensalutiloj senvalidiĝis" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Ensalutu por enŝalti ĉi konton." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "E_nsaluti" + +#: ../src/goabackend/goautils.c:282 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Iu %s konto jam ekzistas por %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:335 +#, c-format +#| msgid "%s account" +msgid "%s Account" +msgstr "%s konto" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:393 +msgid "Failed to delete credentials from the keyring" +msgstr "Malsukcesis forviŝi ensalutilojn el la ŝlosilaro" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Malsukcesis akiri ensalutilojn el ŝlosilaro" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:455 +msgid "No credentials found in the keyring" +msgstr "Trovis neniujn ensalutilojn en la ŝlosilaro" + +#: ../src/goabackend/goautils.c:468 +msgid "Error parsing result obtained from the keyring: " +msgstr "Eraro analizante rezultojn akiritajn el ŝlosilaro: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:511 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s ensalutiloj por identeco %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:528 +msgid "Failed to store credentials in the keyring" +msgstr "Malsukcesis konservi ensalutilojn en ŝlosilaro" + +#: ../src/goabackend/goautils.c:882 +#| msgid "Cannot save the connection parameters" +msgid "Cannot resolve hostname" +msgstr "Ne eblas trovi komutilnomon" + +#: ../src/goabackend/goautils.c:886 +msgid "Cannot resolve proxy hostname" +msgstr "Ne eblas trovi prokurilan komputilnomon" + +#: ../src/goabackend/goautils.c:891 +msgid "Cannot find WebDAV endpoint" +msgstr "Ne eblis trovi finon de WebDAV" + +#: ../src/goabackend/goautils.c:900 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kodo: %u - Neatendita respondo de la servilo" + +#: ../src/goabackend/goautils.c:916 +msgid "The signing certificate authority is not known." +msgstr "La subskribanta atesta aŭtoritato ne konatas." + +#: ../src/goabackend/goautils.c:920 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"La atestilo ne kongruas la antaŭviditan identon de la retejo de kiu ĝi estis " +"ricevita." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s activation time is still in the future." +msgstr "La aktivigotempo de la atestilo estas ankoraŭ en la estonteco." + +#: ../src/goabackend/goautils.c:929 +msgid "The certificate has expired." +msgstr "La atestilo senvalidiĝis." + +#: ../src/goabackend/goautils.c:933 +msgid "The certificate has been revoked." +msgstr "La atestilo senvalidigitis." + +#: ../src/goabackend/goautils.c:937 +msgid "The certificate’s algorithm is considered insecure." +msgstr "La algoritmo de la atestilo estas konsiderita kiel nesekura." + +#: ../src/goabackend/goautils.c:941 +msgid "Invalid certificate." +msgstr "Nevalida atestilo." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:976 +#, c-format +#| msgid "Did not find %s with identity ‘%s’ in credentials" +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Ne trovis %s kun idento “%s” en ensalutiloj" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Ŝutante “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:55 +#| msgid "Microsoft Exchange" +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "Komenca sekreta key estas nevalida" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "La reta regno %s bezonas iun informon por ensaluti vin." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "Ne troveblis indenton en ensalutila kaŝmemoro: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "Ne troveblis indenton en ensalutila kaŝmemoro: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Ne eblis traserĉi identajn ensalutilojn en kaŝmemoro: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "Ne eblis fini traserĉon de identaj ensalutiloj en kaŝmemoro: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Ne trovis asociigita identecon" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Ne krebeblis ensalutilan kaŝmemoron: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "Ne eblis pravalorizi ensalutilan kaŝmemoron: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" +"Ne eblis enmemorigi novajn ensalutilojn en kaŝmemron de ensalutiloj: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Ne eblis renovigi identecon: Neensalutite" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Ne renovigeblis identon: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "Ne akireblis novajn ensalutilojn por renovigi identon %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Ne viŝeblis identon: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Ne eblis trovi identecon" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "Ne krebeblis ensalutilan kaŝmemoron por idento" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Ne trovis pasvorton kun idento`%s' en ensalutiloj" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Malsukcesis pravalorizi GOA-klienton" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Estis atendite statuso 200 kiam petante nomon, statuso %d (%s) estis " +#~ "prenita anstataŭe" + +#, fuzzy +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "Komenca sekreto pasita antaŭ interŝanĝo de sekreta ŝlosilo" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Malsukseca serĉo por 'aŭtomata malkovro'-elemento" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Estis atendite statuso 200 kiam petante gvidon, statuso %d (%s) estis " +#~ "prenita anstataŭe" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Ne trovis IMAP-pasvorton kun identeco `%s' en ensalutiloj" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Nevalida IMAP-pasvorto kun uzantonomo `%s'(%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Ne trovis SMTP-pasvorton kun identeco `%s' en ensalutiloj" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Nevalida SMTP-pasvorto kun uzantonomo `%s'(%s, %d): " + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Algluu rajtigan kodon ricevitan de la rajtiga paĝo:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Algluu ĵetonon ricevitan de la rajtiga paĝo:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Tempo" + +#~ msgid "Online Accounts" +#~ msgstr "Retaj kontoj" + +#~ msgid "An online account needs attention" +#~ msgstr "Unu reta konto bezonas atenton" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Malfermi retajn kontojn..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Ensalutiloj ne trovitaj en ŝlosilaro (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Eraro analizante responde kiel JSON-n" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Ne trovis ID-membron en datumoj de JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Ne trovis retpoŝt-membron en datumoj de JSON" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Ne trovis uzanto-membron en datumoj de JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Ne trovisekrannom-membron en datumoj de JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Ne trovis gvidilo-membron en datumoj de JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Ne trovis valoro-membron en datumoj de JSON" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Ne trovis profil-membron en datumoj de JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Ne trovis kromnom-membron en datumoj de JSON" diff --git a/po/es.gmo b/po/es.gmo new file mode 100644 index 0000000..5f5ce50 Binary files /dev/null and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..db92058 --- /dev/null +++ b/po/es.po @@ -0,0 +1,1110 @@ +# Spanish translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Jorge González , 2011. +# Daniel Mustieles , 2011-2017, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-13 17:42+0000\n" +"PO-Revision-Date: 2017-12-14 12:55+0100\n" +"Last-Translator: Daniel Mustieles \n" +"Language-Team: es \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Lista de proveedores que se pueden cargar" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Una lista de cadenas que representan los proveedores que se pueden cargar " +"(predeterminado: 'all'). Esto sólo se evalúa al inicio." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Falló al buscar un proveedor para: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Propiedad «IsLocked» establecida para la cuenta" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Propiedad «ProviderType» no establecida para la cuenta" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Falló al analizar la respuesta XML de la autodetección" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Falló al buscar el elemento «%s»" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Falló al buscar «ASUrl» y «OABUrl» en la respuesta de la autodetección" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Contraseña incorrecta para el nombre de usuario «%s» (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "Corr_eo-e" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Contraseña" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalizado" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "Nombre de _usuario" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Servidor" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:552 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Cancelar" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "C_onectar" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Conectando…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 +#: src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:671 +#: src/goabackend/goaowncloudprovider.c:891 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Se descartó el diálogo" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:716 +#: src/goabackend/goaowncloudprovider.c:918 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Se descartó el diálogo (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:729 +msgid "_Ignore" +msgstr "_Ignorar" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:734 +#: src/goabackend/goaowncloudprovider.c:937 +msgid "_Try Again" +msgstr "In_tentarlo de nuevo" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Error al conectar al servidor de Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Se esperaba un estado 200 cuando se solicitó el su identidad, en su lugar se " +"obtuvo el estado %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "No se pudo analizar la respuesta" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"La hora de su sistema no es válida. Compruebe su configuración de fecha y " +"hora." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Servicio no disponible" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 +#: src/goabackend/goalastfmprovider.c:529 src/goabackend/goasmtpauth.c:108 +#: src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Falló la autenticación" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "El servidor no soporta PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "El servidor no soporta STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP y SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s no válida para el nombre de usuario «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Cifrado" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ninguno" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS después de conectar" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL en un puerto dedicado" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nombre" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Servidor IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Servidor SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Adelante" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Error al conectar al servidor IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Error al conectar al servidor SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Correo-e" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Nombre" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Inicio de sesión empresarial (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Creación de tiques bloqueado para esta cuenta" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"No se pudieron guardar las credenciales guardadas para «%s» en el depósito " +"de claves" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "No se encontró la contraseña para «%s» en las credenciales" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Operación cancelada" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Iniciar sesión en el dominio" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Introduzca su contraseña a continuación." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Recordar esta contraseña" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Error al conectar al servidor empresarial de identidad" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "El servicio de identidad devolvió una clave no válida" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Error al conectar a Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Servidor multimedia" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Puede añadir contenido personal a sus aplicaciones usando una cuenta en un " +"servidor multimedia." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Servidores multimedia disponibles" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "No se han encontrado servidores multimedia" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 +#: src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Se esperaba un estado 200 cuando se solicitó acceso al «token», en su lugar " +"se obtuvo el estado %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Respuesta a la autorización: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Respuesta a la autorización: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Error al obtener el «token» de acceso: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Error al obtener la identidad: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Se solicitó iniciar sesión como %s, pero se inició sesión como %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Las credenciales no contienen el «access_token»" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Falló al actualizar el acceso al «token» (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Faltan las cabeceras del «access_token» o del «access_token_secret» en la " +"respuesta" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Error al obtener el «token» solicitado: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Se esperaba un estado 200 al solicitar el «token», en su lugar se obtuvo el " +"estado %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Faltan las cabeceras «request_token» o «request_token_secret» en la respuesta" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Las credenciales no contienen «access_token» o «access_token_secret»" + +#: src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:739 +#: src/goabackend/goaowncloudprovider.c:930 +msgid "Error connecting to ownCloud server" +msgstr "Error al conectar al servidor de ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "No hay nombre de usuario o _token de acceso" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "Co_rreo" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Cale_ndario" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Contactos" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "C_hat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documentos" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "_Música" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Archivos" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Recursos de red" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Leer más tarde" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Impresoras" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapas" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Tareas _pendientes" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Usar para" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "La cuenta está desactivada" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Error desconocido" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "«ensure_credentials_sync» no está implementado en el tipo %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS no disponible" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Mecanismo de autenticación desconocido" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "No se puede encontrar la cuenta de Telepathy" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Falló al crear una interfaz de usuario para %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Configuración de la conexión" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Detalles personales" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Aceptar" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "No se pueden guardar los parámetros de la conexión" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "No se puede guardar su información personal en el servidor" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Configuración de la conexión" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Detalles personales" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Error al iniciar sesión en la cuenta" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Las credenciales han caducado" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Firme para activar esta cuenta." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Iniciar _sesión" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Ya existe una cuenta %s para %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Cuenta de %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Falló al eliminar las credenciales del depósito de claves" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Falló al obtener las credenciales del depósito de claves" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "No se han encontrado credenciales en el depósito de claves" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Error analizando el resultado obtenido del depósito de claves:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credenciales GOA de %s para la identidad %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Falló al almacenar las credenciales en el depósito de claves" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "No se resolver el nombre del equipo" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "No se puede resolver el nombre de equipo del proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "No se puede encontrar el punto final WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Código: %u: respuesta inesperada del servidor" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "La autoridad de firma del certificado es desconocida." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"El certificado no coincide con la identidad del sitio esperada del que se " +"obtuvo." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "La fecha de activación del certificado todavía está en el futuro." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "El certificado ha caducado." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "El certificado se ha revocado." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "El algoritmo del certificado se considera no seguro." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Certificado no válido." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "No se encontró %s con la identidad «%s» en las credenciales" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Cargando «%s»…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "La clave secreta inicial no es válida" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "El dominio de red %s necesita cierta información para verificarle." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "No se pudo encontrar la identidad en la caché de credenciales: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "No se pudo encontrar la identidad de las credenciales en la caché: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"No se pudo filtrar a través de las credenciales de identidad en la caché: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"No se pudo terminar de filtrar a través de credenciales de identidad en la " +"caché: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "No se encontró ninguna identificación asociada" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "No se pudo crear la caché de credenciales: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "No se pudo inicializar la caché de credenciales: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"No se pudieron almacenar las nuevas credenciales en la caché de " +"credenciales: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "No se pudo renovar la identidad: no está firmada" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "No se pudo renovar la identidad: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"No se pudieron obtener credenciales nuevas para renovar la identidad %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "No se pudo eliminar la identidad: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "No se pudo encontrar la identidad" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "No se pudo crear la caché de credenciales para la identidad" + +#~ msgid "_Domain" +#~ msgstr "_Dominio" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Dominio empresarial o nombre del dominio" + +#~ msgid "The domain is not valid" +#~ msgstr "El dominio no es válido" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail no está disponible" + +#~ msgid "Failed to parse email address" +#~ msgstr "Falló al analizar la dirección de correo-e" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "No se puede hacer una autenticación SMTP sin un dominio" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "No se encontró la contraseña de SMTP en las credenciales" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "No se puede hacer una autenticación SMTP sin una contraseña" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "secreto inicial pasado antes del intercambio de la clave secreta" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Falló al inicializar el cliente GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "No se encontró la contraseña con la identidad «%s» en las credenciales" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Se esperaba un estado 200 al solicitar el nombre, en su lugar se obtuvo " +#~ "el estado %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Pegue el código de autorización obtenido en la página de " +#~ "autorización:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Pegue el «token» obtenido en la página de autorización:" + +#~ msgid "Time" +#~ msgstr "Tiempo" + +#~ msgid "Time to fire" +#~ msgstr "Tiempo para la ejecución" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Se esperaba el estado 200 al solicitar el guid, pero se obtuvo el estado " +#~ "%d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "No se encontró la contraseña de IMAP con la identidad «%s» en las " +#~ "credenciales" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "" +#~ "Contraseña de IMAP incorrecta para el nombre de usuario «%s» (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "No se encontró la contraseña de SMTP con la identidad «%s» en las " +#~ "credenciales" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "" +#~ "Contraseña de SMTP incorrecta para el nombre de usuario «%s» (%s, %d): " + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Falló al buscar el elemento «Autodiscover»" + +#~ msgid "Failed to find Account element" +#~ msgstr "Falló al buscar el elemento «Account»" + +#~ msgid "Online Accounts" +#~ msgstr "Cuentas en línea" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "" +#~ "Proporciona el nombre org.gnome.OnlinesAccounts en el bus de la sesión" + +#~ msgid "An online account needs attention" +#~ msgstr "Una cuenta en línea necesita su atención" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Abrir cuentas en línea…" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Error al analizar la respuesta como JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "No se encontró el miembro «id» en los datos JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "No se encontró el correo-e del miembro en los datos JSON" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "No se encontró miembro «user» en los datos JSON" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "No se encontró el miembro user.id member en los datos JSON" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "No se encontró el miembro user.username en los datos JSON" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "No se encontró el miembro user.username._content en los datos JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "No se encontró el «access_token» en los datos que no eran JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "No se encontró el «access_token» en los datos JSON" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "No se encontró el miembro «id_str» en los datos JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "No se encontró el miembro «screen_name» en los datos JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "No se encontró la cuenta de correo-e del miembro en los datos JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "No se encontró el miembro «guid» en los datos JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "No se encontró el miembro de valor en los datos JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Error al analizar la respuesta de la tarjeta de usuario como JSON:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "No se encontró el miembro de perfil en los datos JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "No se encontró el apodo del miembro en los datos JSON" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "" +#~ "No se encontraron las credenciales en el depósito de claves (%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "" +#~ "Error al almacenar las credenciales en el depósito de claves (%s, %d): " + +#~ msgid "Domain Administrator Login" +#~ msgstr "Inicio de sesión del administrador del dominio" + +#~ msgid "Could not find supported credentials" +#~ msgstr "No se pudieron encontrar credenciales soportadas" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "Para usar la identidad empresarial, el equipo debe formar parte del " +#~ "dominio. Pida al administrador de su red que escriba aquí la contraseña " +#~ "del dominio." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "Para usar la identidad empresarial, el equipo debe formar parte del " +#~ "dominio. Pida al administrador de su red que escriba aquí el nombre de " +#~ "usuario del dominio." + +#~ msgid "No such domain or realm found" +#~ msgstr "No existe el dominio o no se encontró" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "No se puede iniciar sesión como %s en el dominio %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Contraseña incorrecta, inténtelo de nuevo" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "No se pudo conectar al dominio %s: %s" + +#~ msgid "Chat" +#~ msgstr "Chat" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "No se encontraron los datos del miembro en los datos JSON" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Nueva cuenta de Microsoft Exchange" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Nuevo inicio de sesión empresarial (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "Añadir %s" + +#~ msgid "Refresh %s" +#~ msgstr "Actualizar %s" + +#~ msgid "Email _Address" +#~ msgstr "_Dirección de correo-e" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Ya existe una cuenta para la identidad %s" + +#~ msgid "User Name" +#~ msgstr "Nombre de usuario" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "No se encontró el nombre del miembro en los datos JSON" + +#~ msgid "Expected 200 for getting a Request Token, got %d (%s)" +#~ msgstr "" +#~ "Se esperaba un estado 200 para obtener un «token» de solicitud, se obtuvo " +#~ "el estado %d (%s)" diff --git a/po/et.gmo b/po/et.gmo new file mode 100644 index 0000000..985b68d Binary files /dev/null and b/po/et.gmo differ diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..485ef33 --- /dev/null +++ b/po/et.po @@ -0,0 +1,638 @@ +# Estonian translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Mattias Põldaru , 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-09-10 18:52+0000\n" +"PO-Revision-Date: 2013-09-11 08:19+0300\n" +"Last-Translator: Mattias Põldaru \n" +"Language-Team: Estonian <>\n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Poedit 1.5.4\n" + +#. TODO: more specific +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "%s jaoks ei leitud pakkujat" + +#. TODO: more specific +msgid "ProviderType property is not set for account" +msgstr "Selle konto jaoks pole ProviderType omadus määratud" + +#. TODO: more specific +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kood %u — server andis ootamatu vastuse" + +#. TODO: more specific +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Automaattuvastuse vastuse XML-i parsimine nurjus" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "'%s' elementi ei leitud" + +#. TODO: more specific +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ASUrl-i ja OABUrl-i ei leitud automaattuvastuse vastuses" + +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "Ei leitud identiteedile '%s' vastavat parooli" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "Parool ei sobi kasutajanimega '%s' (%s, %d): " + +msgid "_E-mail" +msgstr "_E-mail" + +msgid "_Password" +msgstr "_Parool" + +msgid "_Custom" +msgstr "_Kohandatud" + +msgid "User_name" +msgstr "_Kasutajanimi" + +msgid "_Server" +msgstr "_Server" + +msgid "Connecting…" +msgstr "Ühendumine…" + +#, c-format +msgid "Dialog was dismissed" +msgstr "Dialoog katkestati" + +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialoog katkestati (%s, %d): " + +msgid "_Ignore" +msgstr "_Eira" + +msgid "_Try Again" +msgstr "_Proovi uuesti" + +msgid "Error connecting to Microsoft Exchange server" +msgstr "Viga ühendumisel Microsoft Exchange serveriga" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +msgid "Use for" +msgstr "Kasutatakse:" + +msgid "_Mail" +msgstr "_E-posti" + +msgid "Cale_ndar" +msgstr "K_alenderit" + +msgid "_Contacts" +msgstr "_Kontakte" + +msgid "Facebook" +msgstr "Facebooki" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Sinu identiteedi pärimisel oodati olekut 200, selle asemel saadi olek %d (%s)" + +#, c-format +msgid "Could not parse response" +msgstr "Vastust pole võimalik parsida" + +msgid "C_hat" +msgstr "_Vestlus" + +msgid "Flickr" +msgstr "Flickr" + +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Su arvuti kell on vale. Kontrolli kella ja kuupäeva sätteid." + +msgid "_Photos" +msgstr "_Fotod" + +msgid "Google" +msgstr "Google" + +msgid "_Documents" +msgstr "_Dokumendid" + +#. TODO: more specific +#, c-format +msgid "Service not available" +msgstr "Teenus pole saadaval" + +#. TODO: more specific +#, c-format +msgid "Authentication failed" +msgstr "Autentimine nurjus" + +#, c-format +msgid "Server does not support PLAIN" +msgstr "Server ei toeta PLAIN ühendust" + +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Server ei toeta STARTTLS ühendust" + +msgid "IMAP and SMTP" +msgstr "IMAP ja SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "Ei leitud identiteedile '%s' vastavat välja '%s'" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s ei sobi kasutajanimega '%s' (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +msgid "_Encryption" +msgstr "_Krüpteering" + +msgid "None" +msgstr "Puudub" + +msgid "STARTTLS after connecting" +msgstr "STARTTLS pärast ühendumist" + +msgid "SSL on a dedicated port" +msgstr "SSL eraldi pordi kaudu" + +msgid "_Name" +msgstr "_Nimi" + +msgid "IMAP _Server" +msgstr "IMAP _server" + +msgid "SMTP _Server" +msgstr "SMTP _server" + +msgid "Error connecting to IMAP server" +msgstr "Viga ühendumisel IMAP serveriga" + +msgid "Error connecting to SMTP server" +msgstr "Viga ühendumisel SMTP serveriga" + +msgid "E-mail" +msgstr "E-mail" + +msgid "Name" +msgstr "Nimi" + +msgid "IMAP" +msgstr "IMAP" + +msgid "SMTP" +msgstr "SMTP" + +msgid "Enterprise Login (Kerberos)" +msgstr "Ettevõtte kontoga sisselogimine (Kerberos)" + +msgid "Identity service returned invalid key" +msgstr "Identity teenus tagastas sobimatu võtme" + +# See principal on üsna kahtlane sõna, aga ehk ei tee kellegile viga. +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"Peavalduse (principal) '%s' jaoks salvestatud parooli polnud võimalik " +"võtmerõngast leida" + +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "" +"Peavalduse (principal) '%s' jaoks salvestatud parooli ei leitud võtmerõngast" + +msgid "_Domain" +msgstr "_Domeen" + +msgid "Enterprise domain or realm name" +msgstr "Ettevõtte domeeni või valduse (realm) nimi" + +msgid "Log In to Realm" +msgstr "Valdusesse (realm) sisselogimine" + +msgid "Please enter your password below." +msgstr "Palun sisesta oma parool." + +msgid "Remember this password" +msgstr "Parooli meeldejätmine" + +#, c-format +msgid "The domain is not valid" +msgstr "Domeen pole õige" + +msgid "Error connecting to enterprise identity server" +msgstr "Viga ettevõtte identity serverisse sisselogimisel" + +msgid "Network _Resources" +msgstr "Võrgu_ressursid" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Ligipääsu märgi pärimisel oodati olekut 200, selle asemel saadi olek %d (%s)" + +#, c-format +msgid "Authorization response was ‘%s’" +msgstr "Vastus autoriseerimisele oli '%s'" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr "Aseta siia autoriseerimise lehelt saadud kood:" + +msgid "Error getting an Access Token: " +msgstr "Viga turvamärgi hankimisel: " + +msgid "Error getting identity: " +msgstr "Viga identiteedi hankimisel: " + +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"Paluti sisse logida nimega %s, kuid selle asemel logiti sisse nimega %s" + +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Autentimistõendid ei sisalda access_token'it" + +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Turvamärgi värskendamine nurjus (%s, %d): " + +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Vastuses puudub päis access_token või access_token_secret" + +msgid "Error getting a Request Token: " +msgstr "Viga turvamärgi (Request token) hankimisel: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Turvamärgi (Request token) pärimisel oodati olekut 200, selle asemel saadi " +"olek %d (%s)" + +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Vastuses puudub päis request_token või request_token_secret" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr "Aseta siia autoriseerimise lehelt saadud turvamärk:" + +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Autentimistõendis ei sisaldu access_token või access_token_secret" + +msgid "ownCloud" +msgstr "ownCloud" + +msgid "Error connecting to ownCloud server" +msgstr "Viga ühendumisel ownCloud serveriga" + +msgid "_Files" +msgstr "_Failid" + +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync ei ole liigi %s jaoks teostatud" + +#. TODO: more specific +#, c-format +msgid "TLS not available" +msgstr "TLS pole saadaval" + +#. TODO: more specific +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail pole saadaval" + +#. TODO: more specific +#, c-format +msgid "Failed to parse email address" +msgstr "Meiliaadressi parsimine nurjus" + +#. TODO: more specific +#, c-format +msgid "Cannot do SMTP PLAIN without a domain" +msgstr "SMTP PLAIN ühendust pole võimalik ilma domeenita luua" + +#. TODO: more specific +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "Autentimistõendite hulgast ei leitud SMTP parooli" + +#. TODO: more specific +#, c-format +msgid "Cannot do SMTP PLAIN without a password" +msgstr "SMTP PLAIN ühendust pole võimalik ilma paroolita luua" + +#, c-format +msgid "Telepathy chat account not found" +msgstr "Telepathy vestluskontot ei leitud" + +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "GOA klienti polnud võimalik lähtestada" + +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s jaoks ei suudetud luua kasutajaliidest" + +msgid "Connection Settings" +msgstr "Ühenduse sätted" + +msgid "Personal Details" +msgstr "Isiklikud andmed" + +msgid "Cannot save the connection parameters" +msgstr "Ühenduse parameetreid pole võimalik salvestada" + +msgid "Cannot save your personal information on the server" +msgstr "Sinu isiklikke andmeid pole võimalik serverisse salvestada" + +#. Connection Settings button +msgid "_Connection Settings" +msgstr "Ühenduse _sätted" + +#. Edit Personal Information button +msgid "_Personal Details" +msgstr "_Isiklikud andmed" + +msgid "Twitter" +msgstr "Twitter" + +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s konto on juba olemas kasutajale %s" + +#. Translators: the %s is the name of the provider. eg., Google. +#, c-format +msgid "%s account" +msgstr "%s konto" + +#. TODO: more specific +msgid "Failed to delete credentials from the keyring" +msgstr "Autentimistõendite kustutamine võtmerõngast nurjus" + +#. TODO: more specific +msgid "Failed to retrieve credentials from the keyring" +msgstr "Autentimistõendite hankimine võtmerõngast nurjus" + +#. TODO: more specific +msgid "No credentials found in the keyring" +msgstr "Võtmerõngast ei leitud autentimistõendeid" + +msgid "Error parsing result obtained from the keyring: " +msgstr "Viga võtmerõngast saadud vastuse parsimisel: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s autentimistõendid identiteedi %s jaoks" + +#. TODO: more specific +msgid "Failed to store credentials in the keyring" +msgstr "Autentimistõendite salvestamine võtmerõngasse nurjus" + +msgid "The signing certificate authority is not known." +msgstr "Allkirjastamise sertifikaadi tunnustaja on tundmatu." + +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Sertifikaat ei vasta saidi, kust see saadi, eeldatavale identiteedile." + +msgid "The certificate’s activation time is still in the future." +msgstr "Sertifikaadi kehtivuse algus on ikka veel tulevikus." + +msgid "The certificate has expired." +msgstr "Sertifikaat on aegunud." + +msgid "The certificate has been revoked." +msgstr "Sertifikaat on tühistatud." + +msgid "The certificate’s algorithm is considered insecure." +msgstr "Sertifikaadi algoritm on ebaturvaline." + +msgid "Invalid certificate." +msgstr "Vigane sertifikaat." + +#. translators: %s here is the address of the web page +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” laadimine…" + +msgid "Windows Live" +msgstr "Windows Live" + +msgid "Yahoo" +msgstr "Yahoo" + +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "'name' pärimisel oodati olekut 200, selle asemel saadi olek %d (%s)" + +msgid "Time" +msgstr "Aeg" + +msgid "Time to fire" +msgstr "Millal käivitatakse" + +msgid "initial secret passed before secret key exchange" +msgstr "esialgne saladus, mis antakse enne salavõtme vahetust" + +msgid "Initial secret key is invalid" +msgstr "Esialgne salavõti on vale" + +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Võrguvaldus (realm) %s vajab andmeid, et sind sisse logida." + +msgid "Could not find identity in credential cache: %k" +msgstr "Identiteeti ei leitud paroolide puhvrist: %k" + +msgid "Could not find identity credentials in cache: %k" +msgstr "Puhvrist ei leitud identiteedi parooli: %k" + +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Identiteediparoolide puhvrit pole võimalik sõeluda: %k" + +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "Identiteediparoolide puhvri sõelumist pole võimalik lõpetada: %k" + +#, c-format +msgid "No associated identification found" +msgstr "Seonduvat identifikaatorit ei leitud" + +msgid "Could not create credential cache: %k" +msgstr "Paroolide puhvrit pole võimalik luua: %k" + +msgid "Could not initialize credentials cache: %k" +msgstr "Paroolide puhvrit pole võimalik lähtestada: %k" + +msgid "Could not store new credentials in credentials cache: %k" +msgstr "Uute autentimistõendite salvestamine puhvrisse nurjus: %k" + +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Identiteeti pole võimalik uuendada: pole sisse logitud" + +msgid "Could not renew identity: %k" +msgstr "Identiteeti pole võimalik uuendada: %k" + +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "Pole võimalik hankida parooli identiteedi %s uuendamiseks: %k" + +msgid "Could not erase identity: %k" +msgstr "Identiteeti pole võimalik kustutada: %k" + +msgid "Could not find identity" +msgstr "Identiteeti ei leitud" + +msgid "Could not create credential cache for identity" +msgstr "Pole võimalik luua paroolide puhvrit identiteedi jaoks" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Automaattuvastuse elementi ei leitud" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "guid pärimisel oodati olekut 200, selle asemel saadi olek %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Ei leitud identiteedile '%s' vastavat IMAP parooli" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "IMAP parool ei sobi kasutajanimega '%s' (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Ei leitud kasutajanimele '%s' vastavat SMTP parooli" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "SMTP parool ei sobi kasutajanimega '%s' (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Viga vastuse parsimisel JSON andmetena: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'id'" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'email'" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "JSON andmetes puudub liige user" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "JSON andmetes puudub liige user.id" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "JSON andmetes puudub liige user.username" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "JSON andmetes puudub liige user.username._content" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Mitte-JSON andmetes puudub 'access_token'" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON andmetes puudub 'access_token'" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'id_str'" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'screen_name'" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON andmetes puudub konto e-posti aadress" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'guid'" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'value'" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Viga usercard vastuse parsimisel JSON andmetena: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'member'" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON andmetes puudub liige 'nickname'" + +#~ msgid "Online Accounts" +#~ msgstr "Veebikontod" + +#~ msgid "An online account needs attention" +#~ msgstr "Veebikonto tahab tähelepanu" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Ava veebikontod..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Autentimistõendeid ei leitud võtmerõngast (%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Viga autentimistõendite salvestamisel võtmerõngasse (%s, %d): " + +#~ msgid "_User_name" +#~ msgstr "_Kasutajanimi" diff --git a/po/eu.gmo b/po/eu.gmo new file mode 100644 index 0000000..2714d94 Binary files /dev/null and b/po/eu.gmo differ diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..890966e --- /dev/null +++ b/po/eu.po @@ -0,0 +1,1034 @@ +# Basque translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Julen Ruiz Aizpuru , 2011. +# Iñaki Larrañaga Murgoitio , 2012, 2013, 2014, 2015, 2016, 2017. +# Asier Sarasua Garmendia , 2013. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-08-08 16:41+0000\n" +"PO-Revision-Date: 2017-08-27 15:42+0200\n" +"Last-Translator: Iñaki Larrañaga Murgoitio \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.5\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Huts egin du honentzako hornitzailea bilatzean: %s" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "IsLocked propietatea kontuarentzako ezarri da" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "Ez da kontuaren ProviderType propietatea ezarri" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" +"Huts egin du autodiscover (automatikoki ezagutu) XML erantzuna analizatzean" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Huts egin du “%s“ elementua bilatzean" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Huts egin du ASUrl eta OABUrl bilatzean Autodiscover (automatikoki ezagutu) " +"erantzunean" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "“%s“ erabiltzaile-izenaren baliogabeko pasahitza (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_Helb. elek." + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Pasahitza" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Pertsonalizatu" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "_Erabiltzaile-izena" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Zerbitzaria" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Utzi" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:745 +#: ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "_Konektatu" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:761 +#: ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Konektatzen..." + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "Elkarrizketa-koadroa itxi egin da" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Elkarrizketa-koadroa galdu egin da (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "_Ez ikusi egin" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_Saiatu berriro" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Errorea Microsoft Exchange zerbitzariarekin konektatzean" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"'200' egoera espero zen zure IDa eskatzean, horren ordez '%d' (%s) egoera " +"jaso da" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 +#: ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 +#: ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 +#: ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 +#: ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 +#: ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "Ezin izan da erantzuna aztertu" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Sistemaren ordua baliogabea da. Egiaztatu data eta orduaren ezarpenak." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "Zerbitzua ez dago erabilgarri" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:883 +#, c-format +msgid "Authentication failed" +msgstr "Autentifikazioak huts egin du" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Zerbitzariak ez du PLAIN onartzen" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Zerbitzariak ez du STARTTLS onartzen" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP eta SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "“%s“ eremu baliogabea “%s“ erabiltzailearekin (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Zifraketa" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Bat ere ez" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS konektatu ostean" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL ataka dedikatu batean" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Izena" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP _zerbitzaria" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "_SMTP zerbitzaria" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Birbidali" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Errorea IMAP zerbitzariarekin konektatzean" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Errorea SMTP zerbitzariarekin konektatzean" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Helb. elek." + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Izena" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "Enpresako saio-hasiera (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:300 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "Kontuaren tiketa sortzea desgaituta dago" + +#: ../src/goabackend/goakerberosprovider.c:325 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Ezin izan da gordetako “%s“ nagusiaren kredentzialik aurkitu gako-sortan" + +#: ../src/goabackend/goakerberosprovider.c:338 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Ez da “%s“ nagusiaren pasahitzik aurkitu kredentzialetan" + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "_Domain" +msgstr "_Domeinua" + +#: ../src/goabackend/goakerberosprovider.c:732 +msgid "Enterprise domain or realm name" +msgstr "Enpresaren domeinuaren izena" + +#: ../src/goabackend/goakerberosprovider.c:974 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Hasi saioa domeinuan" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Please enter your password below." +msgstr "Sartu zure pasahitza behean." + +#: ../src/goabackend/goakerberosprovider.c:976 +msgid "Remember this password" +msgstr "Gogoratu pasahitz hau" + +#: ../src/goabackend/goakerberosprovider.c:1110 +#, c-format +msgid "The domain is not valid" +msgstr "Domeinua ez da baliozkoa" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "Errorea enpresaren identitate zerbitzuarekin konektatzean " + +#: ../src/goabackend/goakerberosprovider.c:1604 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Identitatearen zerbitzuak baliogabeko gakoa itzuli du" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 +#: ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Errorea Last.fm-rekin konektatzean" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Multimediaren zerbitzaria" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Eduki pertsonala gehi iezaiokezu aplikazioei multimediaren zerbitzariaren " +"kontua erabiliz." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Multimediaren zerbitzari erabilgarriak" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Ez da multimediaren zerbitzaririk aurkitu" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 +#: ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"'200' egoera espero zen atzipen-tokena eskatzean, horren ordez '%d' egoera " +"jaso da (%s)" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "Baimenaren erantzuna: " + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "Baimenaren erantzuna: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 +#: ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Errorea atzipen-tokena lortzean: " + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Errorea identitatea lortzean: " + +#: ../src/goabackend/goaoauth2provider.c:1321 +#: ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "'%s' gisa saioa hasteko eskatu da, baina '%s' gisa hasi da saioa" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Kredentzialek ez daukate 'access_token'" + +#: ../src/goabackend/goaoauth2provider.c:1512 +#: ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Huts egin du atzipen-tokena freskatzean (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"'access_token' edo 'access_token_secret' goiburuak falta dira erantzunean" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Errorea eskaera-tokena lortzean: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"'200' egoera espero zen eskaera-tokena lortzeko, horren ordez '%d' egoera " +"jaso da (%s)" + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"'request_token' edo 'request_token_secret' goiburuak falta dira erantzunean" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Kredentzialek ez daukate 'access_token' edo 'access_token_secret'" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "Errorea owncloud zerbitzariarekin konektatzean" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "Ez dago erabiltzaile-izenaren edo sarbidetzaren tokenik" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_Posta" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "_Egutegia" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "_Kontaktuak" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Berriketa" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "_Dokumentuak" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "M_usika" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_Argazkiak" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_Fitxategiak" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "Sareko _baliabideak" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "_Irakurri geroago" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "_Inprimagailuak" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "_Mapak" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "__Egiteko" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Erabili honentzako" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "Kontua desgaituta dago" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "Errore ezezaguna" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "'ensure_credentials_sync' ez dago inplementatuta %s motan" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "TLS ez dago erabilgarri" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Autentifikazioaren protokoloa ezezaguna" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Ez da Telepathy berriketako kontua aurkitu" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Huts egin du erabiltzailearen interfazea sortzean '%s'(r)entzako" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Konexioaren ezarpenak" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Xehetasun pertsonalak" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Ados" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Ezin dira konexioaren parametroak gorde" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Ezin da zure informazio pertsonala zerbitzarian gorde" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Konexioaren ezarpenak" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Xehetasun pertsonalak" + +# Todoist == egitekoen zerrenda kudeatzen duen webgunea. +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Errorea kontuan saioa hastean" + +#: ../src/goabackend/goautils.c:140 +#| msgid "Credentials have expired." +msgid "Credentials have expired" +msgstr "Kredentzialak iraungi dira" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Hasi saioa kontu hau gaitzeko." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Hasi saioa" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%2$s(r)en %1$s kontua badago lehendik ere" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +#| msgid "%s account" +msgid "%s Account" +msgstr "%s kontua" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Huts egin du kredentzialak gako-sortatik ezabatzean" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Huts egin du kredentzialak gako-sortatik eskuratzean" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Ez da kredentzialik aurkitu gako-sortan" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Errorea gako-sortatik eskuratutako erantzuna analizatzean: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s kredentzialak %s identitatearentzako" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Huts egin du kredentzialak gako-sortan gordetzean" + +#: ../src/goabackend/goautils.c:870 +msgid "Cannot resolve hostname" +msgstr "Ezin da ostalari-izena ebatzi" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot resolve proxy hostname" +msgstr "Ezin da proxyaren ostalari-izena ebatzi" + +#: ../src/goabackend/goautils.c:879 +msgid "Cannot find WebDAV endpoint" +msgstr "Ezin da WebDAV-en amaiera aurkitu" + +#: ../src/goabackend/goautils.c:888 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kodea: %u - Zerbitzariaren ustekabeko erantzuna" + +#: ../src/goabackend/goautils.c:904 +msgid "The signing certificate authority is not known." +msgstr "Sinaduraren ziurtagiri-emailea ezezaguna da." + +#: ../src/goabackend/goautils.c:908 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Ziurtagiria ez dator bat eskuratu den guneko (eta espero zen) " +"identitatearekin." + +#: ../src/goabackend/goautils.c:913 +msgid "The certificate’s activation time is still in the future." +msgstr "Ziurtagiria aktibatzeko data oraindik etorkizunekoa da." + +#: ../src/goabackend/goautils.c:917 +msgid "The certificate has expired." +msgstr "Ziurtagiria iraungi da." + +#: ../src/goabackend/goautils.c:921 +msgid "The certificate has been revoked." +msgstr "Ziurtagiria errebokatu da." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Ziurtagiriaren algoritmoa ez da segurutzat jotzen." + +#: ../src/goabackend/goautils.c:929 +msgid "Invalid certificate." +msgstr "Baliogabeko ziurtagiria." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:964 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Ez du “%2$s“ identitateko “%1$s“ eremurik aurkitu kredentzialetan" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "'%s' kargatzen..." + +#: ../src/goabackend/goawindowsliveprovider.c:56 +#| msgid "Microsoft Account" +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "Hasierako ezkutuko gakoa baliogabea" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Sareko %s domeinuak zenbait informazio behar ditu zu bertan sartzeko." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "Ezin izan da identitatea aurkitu kredentzialaren cachean: %s" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "Ezin izan da identitatearen kredentzialik aurkitu cachean: %s" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Ezin izan dira cacheko identitate-kredentzialak iragazi: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "Ezin izan da cacheko identitate-kredentzialen iragazketa bukatu: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Ez da esleitutako identifikaziorik aurkitu" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Ezin izan da kredentzialaren cache-rik sortu: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "Ezin izan da kredentzialaren cache-a hasieratu: %s" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "Ezin izan da kredentzial berririk gorde kredentzialen cache-an: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Ezin izan da identitatea berritu: ez da sinatu" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Ezin izan da identitatea berritu: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Ezin izan da kredentzial berririk lortu '%s' identitatea berritzeko: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Ezin izan da identitatea ezabatu: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Ezin izan da identitatea aurkitu" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "Ezin izan da kredentzialaren cache-a sortu identitatearentzako" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail ez dago erabilgarri" + +#~ msgid "Failed to parse email address" +#~ msgstr "Huts egin du helbide elektronikoa analizatzean" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Ezin da SMTPren autentifikazioa egin domeinurik gabe" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Ez du SMTPko pasahitzik aurkitu kredentzialetan" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Ezin da SMTP autentifikazioa egin pasahitzik gabe" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "hasierako ezkutukoa igarota ezkutuko gakoa trukatu aurretik" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Huts egin du GOA bezeroa hasieratzean" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Ez du '%s' identitateko pasahitzik aurkitu kredentzialetan" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "'200' egoera espero zen izena eskatzean, horren ordez '%d' egoera jaso da " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Itsatsi baimen-orritik eskuratutako baimen-kodea:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Itsatsi baimen-orritik eskuratutako tokena:" + +#~ msgid "Time" +#~ msgstr "Ordua" + +#~ msgid "Time to fire" +#~ msgstr "Ordua abiarazteko" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Online Accounts" +#~ msgstr "Konektatutako kontuak" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "Saioaren bus-ean 'org.gnome.OnlinesAccounts' izena ematen du" + +#~ msgid "An online account needs attention" +#~ msgstr "Lineako kontu batek arreta behar du" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Ireki lineako kontuak..." + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "" +#~ "Huts egin du Autodiscover (automatikoki ezagutu) elementua bilatzean" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Ez da kredentzialik aurkitu gako-sortan (%s, %d): " + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "'200' egoera espero zen guid-a eskatzean, horren ordez '%d' egoera jaso " +#~ "da (%s)" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Errorea erantzuna JSON gisa analizatzean: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Ez da 'id' kidea aurkitu JSON datuetan" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Ez da 'email' kiderik aurkitu JSON datuetan" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Ez da 'user' kiderik aurkitu JSON datuetan" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Ez da 'user.id' kidea aurkitu JSON datuetan" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Ez da 'user.username' kiderik aurkitu JSON datuetan" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Ez da 'user.username._content' kiderik aurkitu JSON datuetan" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Ez da 'access_token' aurkitu JSON ez den datuetan" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Ez da 'access_token' aurkitu JSON datuetan" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Errorea kredentzialak gako-sortan gordetzean (%s, %d): " + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Ez da 'id_str' kidea aurkitu JSON datuetan" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Ez da 'screen_name' kidea aurkitu JSON datuetan" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Ez da kontuaren 'email' kiderik aurkitu JSON datuetan" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Ez da 'guid' kidea aurkitu JSON datuetan" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Ez da 'value' kidea aurkitu JSON datuetan" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Errorea erabiltzaile-txartelaren erantzuna JSON gisa analizatzean: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Ez da 'profile' kiderik aurkitu JSON datuetan" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Ez da 'nickname' kiderik aurkitu JSON datuetan" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Ez da 'name' kiderik aurkitu JSON datuetan" + +#~ msgid "Chat" +#~ msgstr "Berriketa" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Ez da 'data' kiderik aurkitu JSON datuetan" + +#~ msgid "Email Address" +#~ msgstr "Helbide elektronikoa" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Badago lehendik ere kontu bat %s identitaterako" diff --git a/po/fa.gmo b/po/fa.gmo new file mode 100644 index 0000000..1ab3e38 Binary files /dev/null and b/po/fa.gmo differ diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 0000000..73604e5 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,972 @@ +# Persian translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Arash Mousavi , 2011, 2012, 2013, 2014, 2015. +# Danial Behzadi , 2012, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-08-03 15:09+0000\n" +"PO-Revision-Date: 2017-09-20 14:09+0430\n" +"Last-Translator: Danial Behzadi \n" +"Language-Team: Persian <>\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.1\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "یافتن فراهم‌کننده شکست خورد: %s" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "مشخصه IsLocked برای حساب تنظیم شده است" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "ویژگی «نوع فراهم‌کننده» برای حساب کاربری تنظیم نشده است" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "تجزیه‌ی XML پاسخ کشف خودکار با شکست مواجه شد" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "شکست در یافتن عنصر «%s»" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "یافتن ASUrl و OABUrl در پاسخ کشف خودکار با شکست مواجه شد" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "اکسچنج مایکروسافت" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:283 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "گذرواژه با نام کاربری «%s» نامعتبر است (%s، %Id): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_پست‌الکترونیکی" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:425 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_گذرواژه" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_سفارشی" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:424 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "نام _کاربری" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_کارگزار" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:433 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_لغو" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:745 +#: ../src/goabackend/goalastfmprovider.c:434 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "_اتصال" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:761 +#: ../src/goabackend/goalastfmprovider.c:450 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "در حال اتصال…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:645 +#: ../src/goabackend/goalastfmprovider.c:813 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1073 +#: ../src/goabackend/goaoauthprovider.c:840 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "محاوره رد شد" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:679 +#: ../src/goabackend/goalastfmprovider.c:832 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "محاوره رد شد (%s، %Id): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "_نادیده گرفتن" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:691 +#: ../src/goabackend/goalastfmprovider.c:849 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_تلاش دوباره" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "خطا در اتّصال به کارگزار اکسچنج مایکروسافت" + +#: ../src/goabackend/goafacebookprovider.c:55 +msgid "Facebook" +msgstr "فیس‌بوک" + +#: ../src/goabackend/goafacebookprovider.c:182 +#: ../src/goabackend/goaflickrprovider.c:146 +#: ../src/goabackend/goafoursquareprovider.c:153 +#: ../src/goabackend/goagoogleprovider.c:190 +#: ../src/goabackend/goatodoistprovider.c:192 +#: ../src/goabackend/goawindowsliveprovider.c:158 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"هنگام درخواست هویت شما انتظار وضعیت ۲۰۰ را داشتیم، در عوض وضعیت %Id دریافت شد " +"(%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:201 +#: ../src/goabackend/goafacebookprovider.c:212 +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:165 +#: ../src/goabackend/goaflickrprovider.c:176 +#: ../src/goabackend/goaflickrprovider.c:187 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:209 +#: ../src/goabackend/goafoursquareprovider.c:172 +#: ../src/goabackend/goafoursquareprovider.c:183 +#: ../src/goabackend/goafoursquareprovider.c:194 +#: ../src/goabackend/goafoursquareprovider.c:205 +#: ../src/goabackend/goafoursquareprovider.c:214 +#: ../src/goabackend/goafoursquareprovider.c:227 +#: ../src/goabackend/goagoogleprovider.c:209 +#: ../src/goabackend/goagoogleprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:211 +#: ../src/goabackend/goalastfmprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:228 +#: ../src/goabackend/goalastfmprovider.c:235 +#: ../src/goabackend/goalastfmprovider.c:240 +#: ../src/goabackend/goalastfmprovider.c:508 +#: ../src/goabackend/goalastfmprovider.c:517 +#: ../src/goabackend/goalastfmprovider.c:532 +#: ../src/goabackend/goalastfmprovider.c:537 +#: ../src/goabackend/goaoauth2provider.c:722 +#: ../src/goabackend/goaoauth2provider.c:752 +#: ../src/goabackend/goaoauth2provider.c:763 +#: ../src/goabackend/goatodoistprovider.c:211 +#: ../src/goabackend/goatodoistprovider.c:222 +#: ../src/goabackend/goatodoistprovider.c:233 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:177 +#: ../src/goabackend/goawindowsliveprovider.c:188 +#: ../src/goabackend/goawindowsliveprovider.c:197 +#: ../src/goabackend/goawindowsliveprovider.c:210 +#, c-format +msgid "Could not parse response" +msgstr "نمی‌توان پاسخ را تجزیه کرد" + +#: ../src/goabackend/goaflickrprovider.c:55 +msgid "Flickr" +msgstr "فلیکر" + +#: ../src/goabackend/goaflickrprovider.c:283 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "زمان سیستم شما نامعنبر است. تنظیمات تاریخ و زمان خود را بررسی کنید." + +#: ../src/goabackend/goafoursquareprovider.c:56 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:55 +msgid "Google" +msgstr "گوگل" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "سرویس در دسترس نیست" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:524 ../src/goabackend/goasmtpauth.c:108 +#: ../src/goabackend/goautils.c:883 +#, c-format +msgid "Authentication failed" +msgstr "تصدیق‌هویت شکست خورد" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "کارگزار از PLAIN پشتیبانی نمی‌کند" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "کارگزار از STARTTLS پشتیبانی نمی‌کند" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "‫IMAP و SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s با نام کاربری «%s» نامعتبر است (%s، %Id): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_رمزنگاری" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "هیچ‌کدام" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "‫STARTTLS پس از اتصال" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "‫SSL بر روی درگاه تخصیص داده شده" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_نام" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "_کارگزار IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "_کارگزار SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_پیشروی" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "خطا در اتصال به کارگزار IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "خطا در اتصال به کارگزار SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "پست‌الکترونیکی" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "نام" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "ورود تجاری ‫(Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:300 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "مشخصه Ticketing برای حساب غیرفعال شده" + +#: ../src/goabackend/goakerberosprovider.c:325 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "گواهی‌نامه‌ی ذخیره شده برای صفت «%s» در جاکلیدی یافت نشد" + +#: ../src/goabackend/goakerberosprovider.c:338 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "گذرواژه برای صفت «%s» در گواهی‌نامه یافت نش " + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "_Domain" +msgstr "_دامنه" + +#: ../src/goabackend/goakerberosprovider.c:732 +msgid "Enterprise domain or realm name" +msgstr "دامنه‌ی تجاری یا نام محدوده" + +#: ../src/goabackend/goakerberosprovider.c:974 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "ورود به محدوده" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Please enter your password below." +msgstr "لطفاً گذرواژه‌تان را در زیر وارد کنید." + +#: ../src/goabackend/goakerberosprovider.c:976 +msgid "Remember this password" +msgstr "این گذرواژه به‌خاطر سپرده شود" + +#: ../src/goabackend/goakerberosprovider.c:1110 +#, c-format +msgid "The domain is not valid" +msgstr "دامنه معتبر نیست" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "خطا در اتصال به کارگزار شناسه‌ی تجاری" + +#: ../src/goabackend/goakerberosprovider.c:1604 +#, c-format +msgid "Identity service returned invalid key" +msgstr "سرویس شناسه کلیدی نامعتبر برگرداند" + +#: ../src/goabackend/goalastfmprovider.c:64 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:693 +#: ../src/goabackend/goalastfmprovider.c:843 +msgid "Error connecting to Last.fm" +msgstr "خطا در اتصال به کارگزار Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "کارگزار رسانه" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"اطلاعات شخصی می‌توانند از طریق حساب کارگزار رسانه به برنامه‌های شما اضافه شوند." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "کارگزارهای رسانه‌ی موجود" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "هیچ کارگزار رسانه‌ای پیدا نشد" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:698 +#: ../src/goabackend/goaoauthprovider.c:539 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"هنگام درخواست رمز دسترسی (access token) انتظار وضعیت ۲۰۰ را داشتیم، در عوض " +"وضعیت %Id دریافت شد (%s)" + +#: ../src/goabackend/goaoauth2provider.c:880 +msgid "Authorization response: " +msgstr "پاسخ به تصدیق‌هویت:" + +#: ../src/goabackend/goaoauth2provider.c:950 +#, c-format +msgid "Authorization response: %s" +msgstr "پاسخ به تصدیق‌هویت: %s" + +#: ../src/goabackend/goaoauth2provider.c:1099 +#: ../src/goabackend/goaoauthprovider.c:871 +msgid "Error getting an Access Token: " +msgstr "خطا در هنگام دریافت رمز دسترسی: " + +#: ../src/goabackend/goaoauth2provider.c:1114 +#: ../src/goabackend/goaoauthprovider.c:884 +msgid "Error getting identity: " +msgstr "خطا در هنگام دریافت شناسه: " + +#: ../src/goabackend/goaoauth2provider.c:1336 +#: ../src/goabackend/goaoauthprovider.c:1188 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "درخواست ورود به عنوان %s شده بود، ولی به عنوان %s وارد شد" + +#: ../src/goabackend/goaoauth2provider.c:1498 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "گواهینامه‌ها حاوی رمز دسترسی (access_token) نیستند" + +#: ../src/goabackend/goaoauth2provider.c:1537 +#: ../src/goabackend/goaoauthprovider.c:1416 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "نوسازی رمز دسترسی شکست خورد (%s، %Id): " + +#: ../src/goabackend/goaoauthprovider.c:562 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "موارد access_token یا access_token_secret در سرصفحه پاسخ پیدا نشد" + +#: ../src/goabackend/goaoauthprovider.c:754 +msgid "Error getting a Request Token: " +msgstr "خطا در هنگام دریافت رمز درخواست: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:785 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"در هنگام درخواست رمز درخواست (Request Token) انتظار وضعیت ۲۰۰ را داشتیم، در " +"عوض وضعیت %Id دریافت شد (%s)" + +#: ../src/goabackend/goaoauthprovider.c:802 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "موارد request_token یا request_token در سرصفحه پاسخ پیدا نشد" + +#: ../src/goabackend/goaoauthprovider.c:1372 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "گواهینامه‌ها حاوی access_token یا access_token_secret نیستند" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "نکست‌کلود" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "خطا در اتصال به کارگزار آون‌کلاود" + +#: ../src/goabackend/goapocketprovider.c:73 +msgid "Pocket" +msgstr "پاکت" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:248 +#, c-format +msgid "No username or access_token" +msgstr "نام کاربری یا ژتون دسترسی وجود ندارد" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_پست‌الکترونیکی" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "_تقویم" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "_آشناها" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_گپ" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "اسناد" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "موز_یک" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_عکس‌ها" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_پرونده‌ها" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "_منابع شبکه‌ای" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "_خواندن در آینده" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "_چاپگرها" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "_نقشه‌ها" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "برای انجام" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "استفاده برای" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "حساب غیرفعال شده است" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "خطای ناشناخته" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "مورد ensure_credentials_sync برای انواع %s اجرایی نشده است" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "‫TLS در دسترس نیست" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "ساز و کار تأیید هویت ناشناخته" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "حساب گپ Telepathy پیدا نشد" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "ایجاد رابط کاربری بری %s شکست خورد" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "تنظیمات اتصال" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "جزئیات شخصی" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_قبول" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "نمی‌توان پارامترهای اتصال را ذخیره کرد" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "نمی‌توان اطلاعات شخصی شما را بر روی کارگزار ذخیره کرد" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "تنظیمات _اتصال" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "جزئیات _شخصی" + +#: ../src/goabackend/goatodoistprovider.c:57 +msgid "Todoist" +msgstr "تودوییست" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "خطا در هنگام ورود به حساب" + +#: ../src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "گواهی‌نامه‌ها منقضی شده‌اند" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "برای فعال‌سازی حساب، وارد شوید" + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_ورود" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "یک حساب کاربری %s از قبل برای %s وجود دارد" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "حساب %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "حذف گواهی‌ها از دسته‌کلید شکست خورد" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "دریافت گواهی‌ها از دسته‌کلید شکست خورد" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "هیچ گواهی‌نامه‌ای در دسته‌کلید پیدا نشد" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "خطا در هنگام تجزیه نتیجه دریافت شده از دسته‌کلید: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "گواهینامه GOA %s برای شناسه %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "ذخیره‌سازی گواهی‌نامه در دسته‌کلید شکست خورد: %s" + +#: ../src/goabackend/goautils.c:870 +msgid "Cannot resolve hostname" +msgstr "امکان برقراری ارتباط با نام کارگزار نبود" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot resolve proxy hostname" +msgstr "امکان برقراری ارتباط با نام کارگزار پیشکار نبود" + +#: ../src/goabackend/goautils.c:879 +msgid "Cannot find WebDAV endpoint" +msgstr "امکان یافتن مقصد WebDAV نبود" + +#: ../src/goabackend/goautils.c:888 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "کد: %Iu - پاسخ غیرمنتظره از کارگزار" + +#: ../src/goabackend/goautils.c:904 +msgid "The signing certificate authority is not known." +msgstr "هویت امضا کننده‌ی گواهینامه شناخته شده نیست." + +#: ../src/goabackend/goautils.c:908 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"گواهینامه با هویت مورد انتظار از پایگاهی که از آن صادر شده هم‌خوانی ندارد." + +#: ../src/goabackend/goautils.c:913 +msgid "The certificate’s activation time is still in the future." +msgstr "زمان فعّال‌سازی گواهی‌نامه هم‌چنان در آینده است." + +#: ../src/goabackend/goautils.c:917 +msgid "The certificate has expired." +msgstr "گواهینامه منقضی شده است." + +#: ../src/goabackend/goautils.c:921 +msgid "The certificate has been revoked." +msgstr "گواهی‌نامه باطل شده است." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s algorithm is considered insecure." +msgstr "الگوریتم گواهی‌نامه ناامن به‌نظر می‌رسد." + +#: ../src/goabackend/goautils.c:929 +msgid "Invalid certificate." +msgstr "گواهینامه نامعتبر." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:964 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "%s ای با هویت «%s» در گواهی‌نامه‌ها یافت نشد" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "درحال بارگیری «%s»…" + +#: ../src/goabackend/goawindowsliveprovider.c:55 +msgid "Microsoft" +msgstr "مایکروسافت" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "کلید رمز ابتدایی نامعتبر است" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "محدوده‌ی شبکه‌ی %s برای وارد کردن شما نیاز به یک سری اطلاعات دارد." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "شناسه در حافظه‌ی موقت گواهی‌ها پیدا نشد: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "گواهی‌های شناسه در حافظه‌ی موقت پیدا نشد: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "انتخاب از میان گواهی‌های شناسه در حافظه موقت امکان‌پذیر نبود: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "اتمام انتخاب از میان گواهی‌های شناسه در حافظه موقت امکان‌پذیر نبود: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "شناسه‌ی مرتبطی پیدا نشد" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "نمی‌توان حافظه‌ی موقت گواهی‌نامه را ایجاد کرد: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "مقداردهی اولیه حافظه‌ی موقت گواهی‌ها امکان‌پذیر نبود: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "نمی‌توان گواهی‌های جدید را در حافظه‌ی موقت گواهی‌ها ذخیره کرد: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "نمی‌توان شناسه را تجدید کرد: وارد نشده" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "نمی‌توان شناسه را تجدید کرد: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "نمی‌توان گواهی‌های جدید را برای تجدید شناسه‌ی %s بکار گرفت: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "نمی‌توان شناسه را پاک کرد: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "نمی‌توان شناسه را پیدا کرد" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "نمی‌توان حافظه‌ی موقت گواهی را برای شناسه ایجاد کرد" + +#~ msgid "ownCloud" +#~ msgstr "آون‌کلاود" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "‫org.gnome.OnlineAccounts.Mail در دسترس نیست" + +#~ msgid "Failed to parse email address" +#~ msgstr "تجزیه‌ی آدرس پست‌الکترونیکی شکست خورد" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "نمی‌توان تأیید هویت SMTP ساده را بدون دامنه انجام داد" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "گذرواژه‌ی smtp در گواهی‌نامه‌ها یافت نشد" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "نمی‌توان تأیید هویت SMTP ساده را بدون گذرواژه انجام داد" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "رمز ابتدایی قبل از تبادل کلید رمز صادر شد" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "راه‌اندازی اولیه کارگیر GOA شکست خورد" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "گذرواژه‌ای با هویت «%s» در گواهی‌نامه‌ها یافت نشد" + +#~ msgid "Windows Live" +#~ msgstr "ویندوز لایو" + +#~ msgid "Yahoo" +#~ msgstr "یاهو" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "در هنگام درخواست نام انتظار وضعیت ۲۰۰ را داشتیم، در عوض وضعیت %Id دریافت شد " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "لطفاُ کد تصدیق‌هویت دریافت شده از صفحه تصدیق‌هویت را " +#~ "بچسبانید:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "رمز دریافت شده از صفحه تصدیق‌هویت را وارد کنید:" + +#~ msgid "Twitter" +#~ msgstr "توییتر" + +#~ msgid "Time" +#~ msgstr "زمان" + +#~ msgid "Time to fire" +#~ msgstr "زمان اجرا" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "یافتن عنصر کشف خودکار با شکست مواجه شد" + +#~ msgid "Failed to find Account element" +#~ msgstr "یافتن عنصر حساب کاربری با شکست مواجه شد" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "در هنگام درخواست guid انتظار وضعیت ۲۰۰ را داشتیم، در عوض وضعیت %Id دریافت " +#~ "شد (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "گذرواژه imapای با نام کاربری «%s» در گواهی‌نامه‌ها یافت نشد" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "گذرواژه imap با نام کاربری «%s» نامعتبر است (%s، %Id): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "گذرواژه smtpای با نام کاربری «%s» در گواهی‌نامه‌ها یافت نشد" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "گذرواژه smtp با نام کاربری «%s» نامعتبر است (%s، %Id): " + +#~ msgid "Online Accounts" +#~ msgstr "حساب‌های کاربری برخط" + +#~ msgid "An online account needs attention" +#~ msgstr "یک حساب کاربری برخط نیاز به توجه دارد" + +#~ msgid "Open Online Accounts..." +#~ msgstr "بازکردن حساب‌های کاربری برخط…" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "گواهینامه در دسته‌کلید پیدا نشد (%s، %Id): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "خطا در تجزیه پاسخ به عنوان JSON:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "در اطلاعات JSON شناسه پیدا نشد" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "در اطلاعات JSON بخش پست‌الکترونیکی پیدا نشد" diff --git a/po/fi.gmo b/po/fi.gmo new file mode 100644 index 0000000..9c6a2a1 Binary files /dev/null and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..84c5cdf --- /dev/null +++ b/po/fi.po @@ -0,0 +1,972 @@ +# Finnish translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Gnome 2012-03 Finnish translation sprint participants: +# Timo Jyrinki +# Jiri Grönroos , 2012, 2013, 2014, 2015, 2016, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-08-08 16:41+0000\n" +"PO-Revision-Date: 2017-08-29 12:44+0300\n" +"Last-Translator: Jiri Grönroos \n" +"Language-Team: suomi \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.7\n" +"X-POT-Import-Date: 2012-02-19 15:16:12+0000\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "IsLocked-ominaisuus on asetettu tilille" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Virheellinen salasana käyttäjätunnuksella “%s” (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_Sähköposti" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "S_alasana" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Mukautettu" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "_Käyttäjätunnus" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Palvelin" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Peru" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:745 +#: ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "_Yhdistä" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:761 +#: ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Yhdistetään…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "Valintaikkuna ohitettiin" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Valintaikkuna ohitettiin (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "_Hylkää" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_Yritä uudelleen" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Virhe yhdistäessä Microsoft Exchange -palvelimeen" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, fuzzy, c-format +#| msgid "" +#| "Expected status 200 when requesting user id, instead got status %d (%s)" +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Odotettiin tilaa 200 pyydettässä käyttäjä-id:tä, mutta vastaanotettiin tila " +"%d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 +#: ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 +#: ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 +#: ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 +#: ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 +#: ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "Vastauksen jäsentäminen ei onnistu" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Järjestelmäsi aika on virheellinen. Tarkista päivän ja ajan asetukset." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "Palvelu ei ole käytettävissä" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:883 +#, c-format +msgid "Authentication failed" +msgstr "Todennus epäonnistui" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "PLAIN ei ole tuettu palvelimen toimesta" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Palvelin ei tue STARTTLS:ää" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP ja SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Virheellinen %s käyttäjätunnuksella “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Salaus" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Ei mitään" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS yhteyden muodostuttua" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL tietyssä portissa" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Nimi" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "_IMAP-palvelin" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "SMTP-palv_elin" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Seuraava" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Virhe yhdistäessä IMAP-palvelimeen" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Virhe yhdistäessä SMTP-palvelimeen" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Sähköposti" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Nimi" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "Yritysverkkoon kirjautuminen (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:300 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:325 +#, fuzzy, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Käyttäjätunnukselle `%s' ei löytynyt salasanaa valtuutuksista" + +#: ../src/goabackend/goakerberosprovider.c:338 +#, fuzzy, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find password for principal “%s” in credentials" +msgstr "Käyttäjätunnukselle `%s' ei löytynyt salasanaa valtuutuksista" + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "_Domain" +msgstr "_Toimialue" + +#: ../src/goabackend/goakerberosprovider.c:732 +msgid "Enterprise domain or realm name" +msgstr "Yrityksen toimialue tai alueen nimi" + +#: ../src/goabackend/goakerberosprovider.c:974 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Kirjaudu alueeseen" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Please enter your password below." +msgstr "Kirjoita salasanasi alapuolelle." + +#: ../src/goabackend/goakerberosprovider.c:976 +msgid "Remember this password" +msgstr "Muista salasana" + +#: ../src/goabackend/goakerberosprovider.c:1110 +#, c-format +msgid "The domain is not valid" +msgstr "Toimialue on virheellinen" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "Virhe yhdistäessä yritysverkon identiteettipalvelimeen" + +#: ../src/goabackend/goakerberosprovider.c:1604 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Identiteettipalvelu palautti virheellisen avaimen" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 +#: ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Virhe yhdistäessä Last.fm:ään" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Mediapalvelin" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Henkilökohtaista sisältöä on mahdollista lisätä sovelluksiin " +"mediapalvelintilin kautta." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Saatavilla olevat mediapalvelimet" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Mediapalvelimia ei löytynyt" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 +#: ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "Valtuutusvastaus:" + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "Valtuutusvastaus: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 +#: ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1321 +#: ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"Kirjautumista pyydettiin tunnuksella %s, mutta kirjauduttiin silti " +"tunnuksella %s" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1512 +#: ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "Virhe yhdistäessä ownCloud-palvelimeen" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "Ei käyttäjätunnusta tai access_tokenia" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_Sähköposti" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "_Kalenteri" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "_Yhteystiedot" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "K_eskustelu" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "_Asiakirjat" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "M_usiikki" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_Valokuvat" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "Tie_dostot" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "Verkko_resurssit" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "Lue my_öhemmin" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "_Tulostimet" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "Ka_rtat" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "Teht_ävät" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Käyttökohteet" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "Tili on pois käytöstä" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "Tuntematon virhe" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "TLS ei ole käytettävissä" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Tuntematon tunnistautumistapa" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Telepathy-keskustelutiliä ei löytynyt" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Käyttöliittymän luominen kohteelle %s epäonnistui" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Yhteyden asetukset" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Henkilökohtaiset tiedot" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Yhteyden parametrien tallentaminen epäonnistui" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Henkilökohtaisten tietojesi tallennus palvelimelle ei onnistu" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Yhteyden asetukset" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Henkilökohtaiset tiedot" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Virhe tilille kirjautuessa" + +#: ../src/goabackend/goautils.c:140 +#| msgid "Credentials have expired." +msgid "Credentials have expired" +msgstr "Kirjautumistiedot ovat vanhentuneet" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Kirjaudu sisään ottaaksesi tämän tilin käyttöön." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Kirjaudu" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s-tili" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Valtuutuksien poisto avainnipusta epäonnistui" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Valtuutuksien haku avainnipusta epäonnistui" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Valtuutuksia ei löytynyt avainnipusta" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Virhe jäsentäessä avainnipusta saatua tulosta: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Valtuutuksien tallennus avainnippuun epäonnistui" + +#: ../src/goabackend/goautils.c:870 +msgid "Cannot resolve hostname" +msgstr "Tietokoneen nimen selvittäminen ei onnistunut" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot resolve proxy hostname" +msgstr "" + +#: ../src/goabackend/goautils.c:879 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV-päätepistettä ei löydy" + +#: ../src/goabackend/goautils.c:888 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Koodi: %u — Odottamaton vastaus palvelimelta" + +#: ../src/goabackend/goautils.c:904 +msgid "The signing certificate authority is not known." +msgstr "Varmenteen allekirjoittajataho on tuntematon." + +#: ../src/goabackend/goautils.c:908 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Varmenne ei vastaa sen sivuston odotettua identiteettiä, jolta se " +"vastaanotettiin." + +#: ../src/goabackend/goautils.c:913 +msgid "The certificate’s activation time is still in the future." +msgstr "Varmenteen aktivointiaika on edelleen tulevaisuudessa." + +#: ../src/goabackend/goautils.c:917 +msgid "The certificate has expired." +msgstr "Varmenne on vanhentunut." + +#: ../src/goabackend/goautils.c:921 +msgid "The certificate has been revoked." +msgstr "Varmenne on hylätty." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Varmenteen algoritmia pidetään turvattomana." + +#: ../src/goabackend/goautils.c:929 +msgid "Invalid certificate." +msgstr "Virheellinen varmenne." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:964 +#, fuzzy, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Käyttäjätunnukselle `%s' ei löytynyt salasanaa valtuutuksista" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Ladataan “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Verkkoalue %s vaatii lisätietoja kirjatakseen sinut sisään." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Tiliin kohdistettua tunnistautumista ei löytynyt" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Identiteetin uusiminen epäonnistui: ei sisäänkirjautuneena" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Identiteetin uusiminen epäonnistui: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Identiteetin hävittäminen epäonnistui: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Identiteettiä ei löytynyt" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail ei ole käytettävissä" + +#~ msgid "Failed to parse email address" +#~ msgstr "Sähköpostiosoitteen jäsennys epäonnistui" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "SMTP-tunnistautuminen ei onnistu ilman toimialuetta" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Valtuutuksista ei löytynyt SMTP-salasanaa" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "SMTP-tunnistautumista ei voi tehdä ilman salasanaa" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#, fuzzy +#~| msgid "Did not find password with identity `%s' in credentials" +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Käyttäjätunnukselle `%s' ei löytynyt salasanaa valtuutuksista" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~| msgid "" +#~| "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Odotettiin tilaa 200 pyydettässä nimeä, mutta vastaanotettiin tila %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "Liitä valtuutussivulla näkyvä valtuutuskoodi:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Aika" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Odotettiin tilaa 200 pyydettässä ryhmä-id:tä (guid), mutta " +#~ "vastaanotettiin tila %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Käyttäjätunnukselle ei löytynyt IMAP-salasanaa `%s' valtuutuksista" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Virheellinen IMAP-salasana käyttäjätunnukselle `%s' (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Käyttäjätunnukselle ei löytynyt SMTP-salasanaa `%s' valtuutuksista" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Virheellinen SMTP-salasana käyttäjätunnukselle`%s' (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "Verkkotilit" + +#~ msgid "An online account needs attention" +#~ msgstr "Verkkotili pyytää huomiota" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Avaa verkkotilit..." + +#~ msgid "Chat" +#~ msgstr "Keskustelu" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Virheellinen salasana, yritä uudelleen" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Uusi Microsoft Exchange -tili" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Uusi yritysverkkoon kirjautuminen (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "Lisää %s" + +#~ msgid "Refresh %s" +#~ msgstr "Päivitä %s" + +#~ msgid "Email Address" +#~ msgstr "Sähköpostiosoite" diff --git a/po/fr.gmo b/po/fr.gmo new file mode 100644 index 0000000..6e87843 Binary files /dev/null and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..d1263f0 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,889 @@ +# French translation for gnome-online-accounts. +# Copyright (C) 2011-2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Alexandre Franke , 2011, 2013. +# Bruno Brouard , 2012. +# Alain Lojewski , 2012. +# Christophe Fergeau +# Charles Monzat , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-03-12 09:39+0100\n" +"Last-Translator: Claude Paroz \n" +"Language-Team: français \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Liste de fournisseurs autorisés à être chargés" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Une liste de chaînes représentant les fournisseurs autorisés à être " +"chargés (par défaut : « all » (tous)). Ceci n’est évalué qu’au démarrage." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Impossible de trouver un fournisseur pour : %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "La propriété IsLocked est définie pour ce compte" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "La propriété ProviderType n’est pas définie pour ce compte" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Échec de l’analyse XML de la réponse autodiscover" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Impossible de trouver l’élément « %s »" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Impossible de trouver ASUrl et OABUrl dans la réponse autodiscover" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Mot de passe invalide pour l’utilisateur « %s » (%s, %d) : " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Courriel" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Mot de passe" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personnaliser" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Nom d’utilisateur" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Serveur" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Annuler" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "C_onnexion" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Connexion…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Le dialogue a été rejeté" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Le dialogue a été rejeté (%s, %d) : " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorer" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Réessayez" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Erreur de connexion au serveur Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Code 200 attendu lors de la requête de votre identité, code %d (%s) reçu à " +"la place" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Impossible d’analyser la réponse" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"La date de votre système n’est pas valide. Vérifiez vos paramètres de date " +"et heure." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Service non disponible" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Échec d’authentification" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Le serveur ne prend pas en charge PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Le serveur ne prend pas en charge STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP et SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s invalide pour l’utilisateur « %s » (%s, %d) : " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Chiffrement" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Aucun" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS après la connexion" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL sur un port dédié" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nom" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Serveur IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Serveur SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Suivant" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Erreur de connexion au serveur IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Erreur de connexion au serveur SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Courriel" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Nom" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Connexion d’entreprise (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Les tickets sont désactivés pour ce compte" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Impossible de trouver les données d’authentification du principal « %s » " +"enregistrées dans le trousseau de clés" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"Impossible de trouver le mot de passe du principal « %s » dans les données " +"d’authentification" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "L’opération a été annulée" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Connexion au nom de domaine" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Saisissez votre mot de passe ci-dessous." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Se souvenir de ce mot de passe" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Erreur de connexion au serveur d’identité de l’entreprise" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Le service d’authentification a renvoyé « clé non valide »" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Erreur de connexion à Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Serveur multimédia" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Des données personnelles peuvent être ajoutées à votre application via un " +"compte de serveur multimédia." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Serveur multimédias disponibles" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Aucun serveur multimédia trouvé" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Code 200 attendu lors de la requête du jeton d’accès, code %d (%s) reçu à la " +"place" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Réponse d’autorisation : " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Réponse d’autorisation : %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Erreur lors de l’obtention du jeton d’accès : " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Erreur lors de l’obtention d’une identité : " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"Il était demandé de se connecter en tant que %s, mais la connexion a été " +"établie en tant que %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Les données d’authentification ne contiennent pas access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Échec de l’actualisation du jeton d’accès (%s, %d) : " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "En-têtes access_token ou access_token_secret manquants dans la réponse" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Erreur d’obtention d’un jeton de requête : " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Code 200 attendu lors de l’obtention d’un jeton de requête, code %d (%s) " +"reçu à la place" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"En-têtes request_token ou request_token_secret manquants dans la réponse" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Les données d’authentification ne contiennent pas access_token ou " +"access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Erreur de connexion au serveur ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Pas de nom d’utilisateur ou de jeton d’accès" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "Cou_rriel" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Age_nda" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Contacts" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "D_iscussion" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documents" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usique" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Photos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Fichiers" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Ressources du réseau" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Lire plus tard" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Impriman_te " + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Cartes" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_âches" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Utiliser pour" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Le compte est désactivé" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Erreur inconnue" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync n’est pas implémenté pour le type %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS non disponible" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Méthode d’authentification inconnue" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Aucun compte de discussion Telepathy trouvé" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Impossible de créer une interface utilisateur pour %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Paramètres de connexion" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Informations personnelles" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Valider" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Impossible d’enregistrer les paramètres de connexion" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Impossible d’enregistrer vos informations personnelles sur le serveur" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Paramètres de connexion" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Informations personnelles" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Erreur à la connexion au compte" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Les données d’authentification ont expiré" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Identifiez vous pour activer ce compte" + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_S’identifier" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Un compte %s existe déjà pour %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Compte %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "" +"Échec de suppression des données d’authentification du trousseau de clés" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "" +"Échec lors de la récupération des données d’authentification depuis le " +"trousseau de clés" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Aucune donnée d’authentification trouvée dans le trousseau de clés" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "" +"Erreur lors de l’analyse du résultat obtenu à partir du trousseau de clés : " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Données d’authentification GOA %s pour l’identité %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "" +"Échec lors du stockage des données d’authentification dans le trousseau de " +"clés" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Impossible de résoudre le nom de domaine" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Impossible de résoudre le nom de domaine du serveur mandataire" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Impossible de trouver le point de sortie WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Code : %u — Réponse inattendue du serveur" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "L’autorité de certificat de signature est inconnue." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Le certificat ne correspond pas à l’identité attendue pour le site d’où il " +"provient." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "La date d’activation du certificat est toujours dans l’avenir." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Le certificat a expiré." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Le certificat a été révoqué." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "L’algorithme du certificat n’est pas considéré comme sûr." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Certificat non valide." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "" +"Il n’y a aucun %s avec l’identité « %s » dans les données d’authentification" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Chargement de « %s »…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "La clé secrète initiale n’est pas valide" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Le nom de domaine du réseau %s a besoin de quelques informations pour vous " +"connecter." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "" +"Impossible de trouver l’identité dans le cache de la donnée " +"d’authentification : " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "" +"Impossible de trouver les données d’authentification de l’identité dans le " +"cache : " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"Impossible de passer au crible les données d’authentification de l’identité " +"dans le cache : " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Impossible d’achever le passage au crible des données d’authentification de " +"l’identité dans le cache : " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Aucune authentification associée trouvée" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Impossible de créer le cache des données d’authentification : " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Impossible d’initialiser le cache des données d’authentification : " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"Impossible de stocker de nouvelles données d’authentification dans le cache " +"des données d’authentification : " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Impossible de renouveler l’identité : vous n’êtes pas connecté" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Impossible de renouveler l’identité : " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Impossible d’obtenir de nouvelles données d’authentification pour " +"renouveller l’identité %s : " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Impossible d’effacer l’identité : " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Impossible de trouver l’identité" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "" +"Impossible de créer le cache de la donnée d’authentification pour l’identité" diff --git a/po/fur.gmo b/po/fur.gmo new file mode 100644 index 0000000..115d4e5 Binary files /dev/null and b/po/fur.gmo differ diff --git a/po/fur.po b/po/fur.po new file mode 100644 index 0000000..9e22328 --- /dev/null +++ b/po/fur.po @@ -0,0 +1,985 @@ +# Friulian translation for gnome-online-accounts. +# Copyright (C) 2013 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Fabio Tomat , 2013, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-14 14:29+0000\n" +"PO-Revision-Date: 2017-12-15 11:59+0100\n" +"Last-Translator: Fabio Tomat \n" +"Language-Team: Friulian \n" +"Language: fur\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Liste di furnidôrs che a puedin jessi cjariâts" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Une liste di stringhis che a rapresentin i furnidôrs che a puedin jessi " +"cjariâts (predefinît: \"all\"). Chest al è valutât nome al inviament." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Impussibil cjatâ un provider par: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "la proprietât IsLocked no je stabilide pal account" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "La proprietât ProviderType no je impuestade pal account" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Analisi falide dal contignût XML te rispueste autodiscover" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "No si è rivâts a cjatâ l'element “%s”" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Falît a cjatâ ASUrl e OABUrl inte rispueste di autodiscover" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Password no valide cul non utent “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Password" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalize" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Non Utent" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Anule" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "C_oneti" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Conetint…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Il dialic al è stât respint" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Il dialic al è stât respint (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignore" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Riprove" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Erôr tal conetisi al servidôr di Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "Si spietave 200 tal domandâ la tô identitât, invezit si à vût %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "No ai podût analizâ la rispueste" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"La ore dal to sisteme no è valide. Controle lis impostazions di date e ore." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Servizi no disponibil" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Autenticazion falide" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Il servidôr nol supuarte PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Il servidôr nol supuarte STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP e SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s no valit cul non utent “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Cifradure" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Nissun" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS dopo la conession" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL intune puarte dedicade" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Non" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Servidôr IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Servidôr SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Indenant" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Erôr tal conetisi al servidôr IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Erôr tal conetisi al servidôr SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Non" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Acès di imprese (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "La creazion dai Ticket e je blocade par chest account" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Impussibil cjatâ lis credenziâls salvadis pal principâl “%s” intal " +"puarteclâfs" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "No ai cjatât password pal principâl “%s” intes credenziâls" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principâl" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "La operazion e je stade anulade" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Jentre tal Ream" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Par plasê scrîf la tô password chi sot." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Visiti cheste password" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Erôr conetint al servidôr di identitât di imprese" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Il servizi di identitât al à tornât une clâf no valide" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Erôr tal conetisi a Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Media Server" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"I contignûts personâi a puedin jessi zontâts tes tôs aplicazions a mieç di " +"un account di un servidôr multimediâl." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Media Servers disponibii" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nissun media server cjatât" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "Si spietave 200 tal domandâ l'acès token, invezit si à vût %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Rispueste di autorizazion: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Rispueste di autorizazion: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Erôr intant che si cirive di vê un Token di Acès: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Erôr intant che si recuperave la identitât: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Si jere domandât di jentrâ come %s, ma si è jentrâts come %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Lis credenziâls no contegnin access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Impussibil atualizâ il token di acès (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "A mancjin access_toke o access_token_secret te testade de rispueste" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Erôr intant che si cirive di vê un Request Token: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "Si spietave 200 tal tirâ ju un Request Token, invezit si à vût %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Al mancje request_token o request_token_secret in te intestazion de rispueste" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Lis credenziâls no contegnin access_token o access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Erôr tal conetisi al servidôr ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nissun non utent o token di acès" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Mail" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Cale_ndari" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Contats" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "C_hat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documents" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usiche" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_File" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Risorsis di Rêt" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Lei Dopo" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "S_tampants" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapis" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "D_i Fâ" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Dopre par" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "L'account nol è abilitât" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Erôr no cognossût" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync nol è implementât tal gjenar %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS no dispunibil" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Mecanisim di autenticazion no cognossût" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Account di chat Telepathy no cjatât" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Falît a creâ une interface utent par %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Impostazions di conession" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Detais Personâi" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "No pues salvâ i parametris de conession" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "No pues salvâ lis tôs informazions personâi tal servidôr" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Impostazions di _conession" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Detais Personâi" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Erôr tal acedi tal account" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Lis credenziâls a son scjadudis" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Jentre par abilitâ chest account." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Jentre" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Un account %s al esist bielza par %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Account %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "No soi rivât a scancelâ lis credenziâls dal puarteclâfs" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "No soi rivât a cjoli lis credenziâls dal puarteclâfs" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "No soi rivât a cjatâ credenziâls intal puarteclâfs" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Erôr te analisi dal risultât vût dal puarteclâfs: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credenziâls GOA %s pe identitât %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "No soi rivât a salvâ lis credenziâls tal puarteclâfs" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "No pues risolvi il non host" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "No rivi a risolvi il non host dal proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "No rivi a cjatâ il endpoint WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Codiç: %u - rispueste dal servidôr no spietade" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "La firme de autoritât di certificazion no je cognossude." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Il certificât nol corispuint ae identitât spietade dal sît di dulà che al è " +"stât recuperât." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Le date di ativazion dal certificât e je ancjemò in divignî." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Il certificât al è scjadût." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Il certificât al è stât revocât." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "L'algoritmi dal certificât al è considerât no sigûr." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Certificât no valit." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "No ai cjatât %s cun la identitât “%s” intes credenziâls" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Daûr a cjamâ “%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "La clâf segrete iniziâl no je valide" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Il ream di rêt %s al à bisugne di cualchi informazion par fâti jentrâ." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Impussibil cjatâ la identitât te cache des credenziâls: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Impussibil cjatâ lis credenziâls de identitât inte cache: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Impussibil passâ al draç lis credenziâls di identitât te cache: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Impussibil finî il draç des credenziâls de identitât te cache: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "No je stade cjatade une identificazion associade" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Impussibil creâ la cache des credenziâls: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Impussibil inizializâ la cache des credenziâls: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Impussibil salvâ lis gnovis credenziâls inte cache des credenziâls: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "No ai podût rinovâ la identitât: No tu âs fat l'acès" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Impussibil rinovâ la identitât: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Impussibil otignî lis gnovis credenziâls par rinovâ la identitât %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Impussibil scancelâ la identitât: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "No ai podût cjatâ la identitât" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Impussibil creâ la cache des credenziâls pe identitât" + +#~ msgid "_Domain" +#~ msgstr "_Domain" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Domini di imprese o non reâl" + +#~ msgid "The domain is not valid" +#~ msgstr "Il domini nol è valit" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail nol è disponibil" + +#~ msgid "Failed to parse email address" +#~ msgstr "Falît a analizâ il recapit email" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "No pues fa autenticazion SMTP cence un domain" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "No ai cjatât smtp-password intes credenziâls" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "No pues fa autenticazion SMTP cence une password" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "segret iniziâl inserît prime dal scambi de clâf segrete" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Falît tal inizializâ un client GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "No ai cjatât password cun le identitât `%s' in tas credenziai" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "Si spietave 200 tal domandâ il non, invezit si à vût %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Copie a chi il codic di autorizazion vût de pagjine di " +#~ "autorizazions:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Copie a chi il token vût dae pagjine di autorizazion:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Date e ore" + +#~ msgid "Time to fire" +#~ msgstr "Date e ore di inviament" + +#~ msgid "Online Accounts" +#~ msgstr "Online Accounts" + +#~ msgid "An online account needs attention" +#~ msgstr "Un account online al à bisugne di atenzion" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Vierç Online Accounts..." + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Falît a cjatâ l'element Autodiscover" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Credenziâls no cjatadin in tal puarteclâfs(%s, %d):" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "Si spietave 200 tal domandâ il guid, invezit si à vût %d (%s)" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Erôr tal analizâ la rispueste come JSON:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "No ai cjatât id member tai dâts JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "No ai cjatât email member tai dâts JSON" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "No ai cjatât user member tai dâts JSON" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "No ai cjatât user.id member tai dâts JSON" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "No ai cjatât user.username member tai dâts JSON" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "No ai cjatât user.username._content member tai dâts JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "No ai cjatât access_token tai dâts non-JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "No ai cjatât access_token tai dâts JSON" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Erôr tal salvâ lis credenziâls tal puarteclâfs (%s, %d):" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "No ai cjatât id_str member tai dâts JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "No ai cjatât screen_name member tai dâts JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "No ai cjatât il account email member tai dâts JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "No ai cjatât guid member tai dâts JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "No ai cjatât value member tai dâts JSON" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "No ai cjatât profile member tai dâts JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "No ai cjatât nickname member tai dâts JSON" diff --git a/po/ga.gmo b/po/ga.gmo new file mode 100644 index 0000000..b229bfe Binary files /dev/null and b/po/ga.gmo differ diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..25663ad --- /dev/null +++ b/po/ga.po @@ -0,0 +1,814 @@ +# Irish translations for gnome-online-accounts package. +# Copyright (C) 2013 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# Seán de Búrca , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts.master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-02 12:17-0600\n" +"PO-Revision-Date: 2013-09-02 12:43-0600\n" +"Last-Translator: Seán de Búrca \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " +"4;\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:788 ../src/daemon/goadaemon.c:1034 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Theip ar aimsiú soláthraí do: %s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1022 +msgid "ProviderType property is not set for account" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:234 ../src/goabackend/goahttpclient.c:175 +#, c-format +msgid "Code: %u - Unexpected response from server" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:260 +#, c-format +msgid "Failed to find Autodiscover element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:274 +#, c-format +msgid "Failed to find Response element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:288 +#, c-format +msgid "Failed to find Account element" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:305 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:79 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:317 +#: ../src/goabackend/goaexchangeprovider.c:1026 +#: ../src/goabackend/goaowncloudprovider.c:403 +#: ../src/goabackend/goaowncloudprovider.c:1188 +#, c-format +msgid "Did not find password with identity `%s' in credentials" +msgstr "Níor aimsigh focal faire le haitheantas `%s' i ndintiúir" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:345 +#: ../src/goabackend/goaowncloudprovider.c:426 +#, c-format +msgid "Invalid password with username `%s' (%s, %d): " +msgstr "Focal faire neamhbhailí leis an ainm úsáideora `%s' (%s, %d):" + +#: ../src/goabackend/goaexchangeprovider.c:499 +#: ../src/goabackend/goaimapsmtpprovider.c:697 +msgid "_E-mail" +msgstr "_Ríomhphost" + +#: ../src/goabackend/goaexchangeprovider.c:500 +#: ../src/goabackend/goaimapsmtpprovider.c:717 +#: ../src/goabackend/goaimapsmtpprovider.c:737 +#: ../src/goabackend/goaowncloudprovider.c:655 +msgid "_Password" +msgstr "_Focal faire" + +#: ../src/goabackend/goaexchangeprovider.c:503 +msgid "_Custom" +msgstr "Sain_cheaptha" + +#: ../src/goabackend/goaexchangeprovider.c:514 +#: ../src/goabackend/goaimapsmtpprovider.c:716 +#: ../src/goabackend/goaimapsmtpprovider.c:736 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:654 +msgid "User_name" +msgstr "_Ainm úsáideoira" + +#: ../src/goabackend/goaexchangeprovider.c:515 +#: ../src/goabackend/goaowncloudprovider.c:653 +msgid "_Server" +msgstr "Frea_stalaí" + +#: ../src/goabackend/goaexchangeprovider.c:545 +#: ../src/goabackend/goaimapsmtpprovider.c:769 +#: ../src/goabackend/goakerberosprovider.c:1154 +#: ../src/goabackend/goaowncloudprovider.c:684 +msgid "Connecting…" +msgstr "Ag ceangal…" + +#: ../src/goabackend/goaexchangeprovider.c:650 +#: ../src/goabackend/goaexchangeprovider.c:845 +#: ../src/goabackend/goaimapsmtpprovider.c:929 +#: ../src/goabackend/goaimapsmtpprovider.c:964 +#: ../src/goabackend/goaimapsmtpprovider.c:1052 +#: ../src/goabackend/goaimapsmtpprovider.c:1308 +#: ../src/goabackend/goaimapsmtpprovider.c:1381 +#: ../src/goabackend/goakerberosprovider.c:1545 +#: ../src/goabackend/goaoauth2provider.c:1133 +#: ../src/goabackend/goaoauthprovider.c:1041 +#: ../src/goabackend/goaowncloudprovider.c:795 +#: ../src/goabackend/goaowncloudprovider.c:1008 +#: ../src/goabackend/goatelepathyprovider.c:466 +#: ../src/goabackend/goatelepathyprovider.c:515 +#: ../src/goabackend/goatelepathyprovider.c:689 +#, c-format +msgid "Dialog was dismissed" +msgstr "Ruaigeadh an dialóg" + +#: ../src/goabackend/goaexchangeprovider.c:688 +#: ../src/goabackend/goaexchangeprovider.c:873 +#: ../src/goabackend/goaimapsmtpprovider.c:994 +#: ../src/goabackend/goaimapsmtpprovider.c:1085 +#: ../src/goabackend/goaimapsmtpprovider.c:1332 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goaowncloudprovider.c:837 +#: ../src/goabackend/goaowncloudprovider.c:1029 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Ruaigeadh an dialóg (%s, %d):" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1098 +#: ../src/goabackend/goaowncloudprovider.c:850 +msgid "_Ignore" +msgstr "Déan Neamha_ird De" + +#: ../src/goabackend/goaexchangeprovider.c:706 +#: ../src/goabackend/goaexchangeprovider.c:892 +#: ../src/goabackend/goaimapsmtpprovider.c:1012 +#: ../src/goabackend/goaimapsmtpprovider.c:1103 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +#: ../src/goabackend/goaimapsmtpprovider.c:1425 +#: ../src/goabackend/goakerberosprovider.c:1655 +#: ../src/goabackend/goaowncloudprovider.c:855 +#: ../src/goabackend/goaowncloudprovider.c:1048 +msgid "_Try Again" +msgstr "Bain _Triail Eile As" + +#: ../src/goabackend/goaexchangeprovider.c:711 +#: ../src/goabackend/goaexchangeprovider.c:885 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Earráid agus ag ceangal le freastalaí Microsoft Exchange" + +#: ../src/goabackend/goaexchangeprovider.c:945 +#: ../src/goabackend/goafacebookprovider.c:415 +#: ../src/goabackend/goaflickrprovider.c:425 +#: ../src/goabackend/goagoogleprovider.c:544 +#: ../src/goabackend/goakerberosprovider.c:1726 +#: ../src/goabackend/goaowncloudprovider.c:1102 +#: ../src/goabackend/goatelepathyprovider.c:894 +#: ../src/goabackend/goawindowsliveprovider.c:430 +msgid "Use for" +msgstr "Úsáid le" + +#: ../src/goabackend/goaexchangeprovider.c:947 +#: ../src/goabackend/goagoogleprovider.c:546 +msgid "_Mail" +msgstr "_Post" + +#: ../src/goabackend/goaexchangeprovider.c:952 +#: ../src/goabackend/goagoogleprovider.c:551 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "Cale_ndar" +msgstr "_Féilire" + +#: ../src/goabackend/goaexchangeprovider.c:957 +#: ../src/goabackend/goagoogleprovider.c:556 +#: ../src/goabackend/goaowncloudprovider.c:1109 +msgid "_Contacts" +msgstr "_Teagmhálacha" + +#: ../src/goabackend/goafacebookprovider.c:82 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:211 +#: ../src/goabackend/goagoogleprovider.c:207 +#: ../src/goabackend/goatwitterprovider.c:166 +#: ../src/goabackend/goawindowsliveprovider.c:195 +#: ../src/goabackend/goayahooprovider.c:187 +#, c-format +msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgstr "" +"Bhíothas ag súil le stádas 200 agus ag iarraidh guid, ach fuarthas stádas %d " +"(%s)" + +#: ../src/goabackend/goafacebookprovider.c:230 +#: ../src/goabackend/goafacebookprovider.c:242 +#: ../src/goabackend/goafacebookprovider.c:252 +#: ../src/goabackend/goaflickrprovider.c:208 +#: ../src/goabackend/goaflickrprovider.c:220 +#: ../src/goabackend/goaflickrprovider.c:230 +#: ../src/goabackend/goaflickrprovider.c:240 +#: ../src/goabackend/goaflickrprovider.c:250 +#: ../src/goabackend/goagoogleprovider.c:226 +#: ../src/goabackend/goagoogleprovider.c:238 +#: ../src/goabackend/goaoauth2provider.c:682 +#: ../src/goabackend/goaoauth2provider.c:712 +#: ../src/goabackend/goaoauth2provider.c:724 +#: ../src/goabackend/goatwitterprovider.c:185 +#: ../src/goabackend/goatwitterprovider.c:197 +#: ../src/goabackend/goatwitterprovider.c:207 +#: ../src/goabackend/goawindowsliveprovider.c:214 +#: ../src/goabackend/goawindowsliveprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:238 +#: ../src/goabackend/goayahooprovider.c:206 +#: ../src/goabackend/goayahooprovider.c:218 +#: ../src/goabackend/goayahooprovider.c:229 +#: ../src/goabackend/goayahooprovider.c:275 +#: ../src/goabackend/goayahooprovider.c:287 +#: ../src/goabackend/goayahooprovider.c:298 +#, c-format +msgid "Could not parse response" +msgstr "Níorbh fhéidir an freagra a pharsáil" + +#: ../src/goabackend/goafacebookprovider.c:417 +#: ../src/goabackend/goagoogleprovider.c:561 +#: ../src/goabackend/goatelepathyprovider.c:896 +#: ../src/goabackend/goawindowsliveprovider.c:432 +msgid "C_hat" +msgstr "Com_hrá" + +#: ../src/goabackend/goaflickrprovider.c:83 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:189 +#, c-format +msgid "Expected status 200 when requesting user id, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaflickrprovider.c:328 +#: ../src/goabackend/goayahooprovider.c:350 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" + +#: ../src/goabackend/goaflickrprovider.c:427 +msgid "_Photos" +msgstr "_Grianghraif" + +#: ../src/goabackend/goagoogleprovider.c:82 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:566 +#: ../src/goabackend/goaowncloudprovider.c:1114 +#: ../src/goabackend/goawindowsliveprovider.c:437 +msgid "_Documents" +msgstr "_Cáipéisí" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:99 +#: ../src/goabackend/goasmtpauthplain.c:146 +#, c-format +msgid "Service not available" +msgstr "Níl an tseirbhís ar fáil" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:120 +#: ../src/goabackend/goasmtpauthplain.c:115 +#, c-format +msgid "Authentication failed" +msgstr "Theip ar fhíordheimniú" + +#: ../src/goabackend/goaimapauthlogin.c:145 +#: ../src/goabackend/goasmtpauthplain.c:646 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Ní thacaíonn an freastalaí le PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:199 +#: ../src/goabackend/goasmtpauthplain.c:751 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Ní thacaíonn an freastalaí le STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:82 +msgid "IMAP and SMTP" +msgstr "IMAP agus SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:362 +#, c-format +msgid "Did not find imap-password with identity `%s' in credentials" +msgstr "" + +#. Translators: the first %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:391 +#, c-format +msgid "Invalid imap-password with username `%s' (%s, %d): " +msgstr "" + +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Did not find smtp-password with identity `%s' in credentials" +msgstr "" + +#. Translators: the first %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:446 +#, c-format +msgid "Invalid smtp-password with username `%s' (%s, %d): " +msgstr "" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:632 +msgid "_Encryption" +msgstr "_Criptiú" + +#: ../src/goabackend/goaimapsmtpprovider.c:635 +msgid "None" +msgstr "Neamhní" + +#: ../src/goabackend/goaimapsmtpprovider.c:638 +msgid "STARTTLS after connecting" +msgstr "STARTTLS tar éis ceangail" + +#: ../src/goabackend/goaimapsmtpprovider.c:641 +msgid "SSL on a dedicated port" +msgstr "SSL ar phort tiomnaithe" + +#: ../src/goabackend/goaimapsmtpprovider.c:698 +msgid "_Name" +msgstr "_Ainm" + +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "IMAP _Server" +msgstr "_Freastalaí IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:735 +msgid "SMTP _Server" +msgstr "_Freastalaí SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1017 +#: ../src/goabackend/goaimapsmtpprovider.c:1344 +msgid "Error connecting to IMAP server" +msgstr "Earráid agus ag ceangal le freastalaí IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1108 +#: ../src/goabackend/goaimapsmtpprovider.c:1418 +msgid "Error connecting to SMTP server" +msgstr "Earráid agus ag ceangal le freastalaí SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1517 +msgid "E-mail" +msgstr "Ríomhphost" + +#: ../src/goabackend/goaimapsmtpprovider.c:1521 +msgid "Name" +msgstr "Ainm" + +#: ../src/goabackend/goaimapsmtpprovider.c:1531 +#: ../src/goabackend/goaimapsmtpprovider.c:1534 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +#: ../src/goabackend/goaimapsmtpprovider.c:1548 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:87 +msgid "Enterprise Login (Kerberos)" +msgstr "Logáil Isteach Fiontair (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:455 +msgid "Identity service returned invalid key" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:728 +#, c-format +msgid "Could not find saved credentials for principal `%s' in keyring" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:738 +#, c-format +msgid "Did not find password for principal `%s' in credentials" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:1121 +msgid "_Domain" +msgstr "_Fearann" + +#: ../src/goabackend/goakerberosprovider.c:1122 +msgid "Enterprise domain or realm name" +msgstr "Fearann fiontair nó ainm flaithis" + +#: ../src/goabackend/goakerberosprovider.c:1354 +#: ../src/goaidentity/goaidentityservice.c:1085 +msgid "Log In to Realm" +msgstr "Logáil Isteach ar Fhlaitheas" + +#: ../src/goabackend/goakerberosprovider.c:1355 +msgid "Please enter your password below." +msgstr "Iontráil d'fhocal faire thíos, le do thoil." + +#: ../src/goabackend/goakerberosprovider.c:1356 +msgid "Remember this password" +msgstr "Meabhraigh an focal faire seo" + +#: ../src/goabackend/goakerberosprovider.c:1495 +#, c-format +msgid "The domain is not valid" +msgstr "Níl an fearann bailí" + +#: ../src/goabackend/goakerberosprovider.c:1650 +msgid "Error connecting to enterprise identity server" +msgstr "Earráid agus ag ceangal le freastalaí aitheantas fiontair" + +#: ../src/goabackend/goakerberosprovider.c:1728 +msgid "Network _Resources" +msgstr "Acmhainní Líon_ra" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:658 +#: ../src/goabackend/goaoauthprovider.c:586 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:916 +#: ../src/goabackend/goaoauth2provider.c:956 +#, c-format +msgid "Authorization response was \"%s\"" +msgstr "" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:1059 +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1159 +#: ../src/goabackend/goaoauthprovider.c:1072 +msgid "Error getting an Access Token: " +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1174 +#: ../src/goabackend/goaoauthprovider.c:1085 +msgid "Error getting identity: " +msgstr "Earráid agus aitheantas á fháil: " + +#: ../src/goabackend/goaoauth2provider.c:1386 +#: ../src/goabackend/goaoauthprovider.c:1391 +#, c-format +msgid "Was asked to login as %s, but logged in as %s" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1542 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1581 +#: ../src/goabackend/goaoauthprovider.c:1619 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:609 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:911 +msgid "Error getting a Request Token: " +msgstr "" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:944 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:961 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:978 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:1575 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" + +#: ../src/goabackend/goaowncloudprovider.c:87 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:860 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "Error connecting to ownCloud server" +msgstr "Earráid agus ag ceangal le freastalaí ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:1119 +msgid "_Files" +msgstr "_Comhaid" + +#: ../src/goabackend/goaprovider.c:688 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:161 +#, c-format +msgid "TLS not available" +msgstr "Níl TLS ar fáil" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:227 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "Níl org.gnome.OnlineAccounts.Mail ar fáil" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:237 +#, c-format +msgid "Failed to parse email address" +msgstr "Theip ar pharsáil seoladh ríomhphoist" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:249 +#, c-format +msgid "Cannot do SMTP PLAIN without a domain" +msgstr "Ní féidir SMTP PLAIN a úsáid gan fearann" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:287 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:298 +#, c-format +msgid "Cannot do SMTP PLAIN without a password" +msgstr "Ní féidir SMTP PLAIN a úsáid gan focal faire" + +#: ../src/goabackend/goatelepathyprovider.c:183 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Cuntas comhrá Telepathy gan aimsiú" + +#: ../src/goabackend/goatelepathyprovider.c:372 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "Theip ar thúsú cliaint GOA" + +#: ../src/goabackend/goatelepathyprovider.c:415 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Theip ar chruthú chomhéadán úsáideora do %s" + +#: ../src/goabackend/goatelepathyprovider.c:542 +msgid "Connection Settings" +msgstr "Socruithe Ceangail" + +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "Personal Details" +msgstr "Sonraí Pearsanta" + +#: ../src/goabackend/goatelepathyprovider.c:860 +msgid "Cannot save the connection parameters" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:872 +msgid "Cannot save your personal information on the server" +msgstr "" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Connection Settings" +msgstr "Socruithe _Ceangail" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:905 +msgid "_Personal Details" +msgstr "Sonraí _Pearsanta" + +#: ../src/goabackend/goatwitterprovider.c:81 +msgid "Twitter" +msgstr "Twitter" + +#: ../src/goabackend/goautils.c:86 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Tá cuntas %s do %s ann cheana" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:108 +#, c-format +msgid "%s account" +msgstr "Cuntas %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:152 +msgid "Failed to delete credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:204 +msgid "Failed to retrieve credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:214 +msgid "No credentials found in the keyring" +msgstr "" + +#: ../src/goabackend/goautils.c:227 +msgid "Error parsing result obtained from the keyring: " +msgstr "" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:270 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:287 +msgid "Failed to store credentials in the keyring" +msgstr "" + +#: ../src/goabackend/goautils.c:508 +msgid "The signing certificate authority is not known." +msgstr "" + +#: ../src/goabackend/goautils.c:512 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" + +#: ../src/goabackend/goautils.c:517 +msgid "The certificate's activation time is still in the future." +msgstr "Tá am gníomhachtaithe an teastais fós sa todhchaí." + +#: ../src/goabackend/goautils.c:521 +msgid "The certificate has expired." +msgstr "Chuaigh an teastas as feidhm." + +#: ../src/goabackend/goautils.c:525 +msgid "The certificate has been revoked." +msgstr "Cealaíodh an teastas." + +#: ../src/goabackend/goautils.c:529 +msgid "The certificate's algorithm is considered insecure." +msgstr "Meastar nach bhfuil algartam an teastais daingean." + +#: ../src/goabackend/goautils.c:533 +msgid "Invalid certificate." +msgstr "Teastas neamhbhailí." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:74 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” á luchtú…" + +#: ../src/goabackend/goawindowsliveprovider.c:84 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goayahooprovider.c:81 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:255 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"Bhíothas ag súil le stádas 200 agus ag iarraidh ainm, ach fuarthas stádas %d " +"(%s)" + +#: ../src/goaidentity/goaalarm.c:245 +msgid "Time" +msgstr "" + +#: ../src/goaidentity/goaalarm.c:246 +msgid "Time to fire" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:378 +msgid "initial secret passed before secret key exchange" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:570 +msgid "Initial secret key is invalid" +msgstr "" + +#: ../src/goaidentity/goaidentityservice.c:1090 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:269 +#: ../src/goaidentity/goakerberosidentity.c:278 +#: ../src/goaidentity/goakerberosidentity.c:606 +msgid "Could not find identity in credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:619 +msgid "Could not find identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:657 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:674 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1012 +#, c-format +msgid "No associated identification found" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1093 +msgid "Could not create credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1127 +msgid "Could not initialize credentials cache: %k" +msgstr "Níorbh fhéidir taisce dintiúr a thúsú: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1146 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1423 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1435 +msgid "Could not renew identity: %k" +msgstr "Níorbh fhéidir aitheantas a athnuachan: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1452 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Níorbh fhéidir dintiúir nua a fháil chun aitheantas %s a athnuachan: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1492 +msgid "Could not erase identity: %k" +msgstr "Níorbh fhéidir aitheantas a ghlanadh: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:747 +msgid "Could not find identity" +msgstr "Niorbh fhéidir aitheantas a aimsiú" + +#: ../src/goaidentity/goakerberosidentitymanager.c:824 +msgid "Could not create credential cache for identity" +msgstr "Níorbh fhéidir taisce dintiúr a chruthú d'aitheantas" diff --git a/po/gd.gmo b/po/gd.gmo new file mode 100644 index 0000000..729c54a Binary files /dev/null and b/po/gd.gmo differ diff --git a/po/gd.po b/po/gd.po new file mode 100644 index 0000000..04c80e8 --- /dev/null +++ b/po/gd.po @@ -0,0 +1,1022 @@ +# Gaelic; Scottish translation for gnome-online-accounts +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the gnome-online-accounts package. +# FIRST AUTHOR , 2013. +# alasdair caimbeul , 2013. +# GunChleoc , 2013, 2014, 2015, 2016, 2018. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product" +"=gnome-online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-11-07 16:48+0000\n" +"PO-Revision-Date: 2018-02-26 12:17+0100\n" +"Last-Translator: GunChleoc \n" +"Language-Team: Fòram na Gàidhlig\n" +"Language: gd\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " +"(n > 2 && n < 20) ? 2 : 3;\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Launchpad-Export-Date: 2013-09-19 08:01+0000\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Cha b’ urrainn dhuinn solaraiche a lorg airson: %s" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "Chaidh an roghainn IsLocked a shuidheachadh airson a’ chunntais" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "Cha deach an roghainn ProviderType a shuidheachadh airson a’ chunntais" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Cha b’ urrainn dhuinn XML freagairt an Autodiscover a pharsadh" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +#| msgid "Failed to find ‘%s’ element" +msgid "Failed to find “%s” element" +msgstr "Cha b’ urrainn dhuinn an eileamaid “%s” a lorg" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Cha b’ urrainn dhuinn ASUrl agus OABUrl a lorg san fhreagairt Autodiscover" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +#| msgid "Invalid password with username ‘%s’ (%s, %d): " +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Facal-faire mì-dhligheach airson an ainm-chleachdaiche “%s” (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "Post-_d" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Facal-faire" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Gnàthaichte" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "Ai_nm-chleachdaiche" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "F_rithealaiche" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:570 +#: ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Sguir dheth" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:571 +#: ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "_Ceangail" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:586 +#: ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "’Ga cheangal…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:877 +#: ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "Chaidh an còmhradh a leigeil seachad" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Chaidh an còmhradh a leigeil seachad (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "Le_ig seachad" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:957 +#: ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "Feuch ris a-rithis_t" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Mearachd a’ ceangal ri frithealaiche Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Bha dùil ri staid 200 nuair a dh’iarr sinn aithne a’ chleachdaiche ach " +"fhuair sinn staid %d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 +#: ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 +#: ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 +#: ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 +#: ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 +#: ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "Cha b’ urrainn dhuinn an fhreagairt a pharsadh" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Chan eil àm an t-siostaim agad dligheach. Thoir sùil air roghainnean a’ " +"chinn-là agus an ama agad." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "Chan eil an t-seirbheis seo ri làimh" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:878 +#, c-format +msgid "Authentication failed" +msgstr "Dh’fhàillig an dearbhadh" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Chan eil am frithealaiche a’ cur taic ri PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Chan eil am frithealaiche a’ cur taic ri STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP agus SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +#| msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s mì-dhligheach airson an ainm-chleachdaiche “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "Cri_optachadh" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Chan eil gin" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS an dèidh stèidheachadh a’ cheangail" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL air port dìleas" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "Ai_nm" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "Frithealaiche IMA_P" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "Frithealaiche _SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Sìn Air adhart" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Mearachd a’ ceangal ris an fhrithealaiche IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Mearachd a’ ceangal ris an fhrithealaiche SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Post-d" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Ainm" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Clàradh a-steach Enterprise (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:227 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "Chaidh ticeadan a chur à comas airson a’ chunntais" + +#: ../src/goabackend/goakerberosprovider.c:252 +#, c-format +#| msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Cha b’ urrainn dhuinn teisteasan a chaidh a shàbhaladh a lorg airson a’ " +"phrìomh-“%s” san dul-iuchrach" + +#: ../src/goabackend/goakerberosprovider.c:265 +#, c-format +#| msgid "Did not find password for principal ‘%s’ in credentials" +msgid "Did not find password for principal “%s” in credentials" +msgstr "Cha do lorg sinn facal-faire airson a’ phrìomh-“%s” sna teisteasan" + +#: ../src/goabackend/goakerberosprovider.c:565 +msgid "_Principal" +msgstr "_Prìomh-fhear" + +#: ../src/goabackend/goakerberosprovider.c:799 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Clàraich a-steach dhan rìoghachd" + +#: ../src/goabackend/goakerberosprovider.c:800 +msgid "Please enter your password below." +msgstr "Cuir a-steach am facal-faire agad gu h-ìosal." + +#: ../src/goabackend/goakerberosprovider.c:801 +msgid "Remember this password" +msgstr "Cuimhnich am facal-faire seo" + +#: ../src/goabackend/goakerberosprovider.c:952 +msgid "Error connecting to enterprise identity server" +msgstr "Mearachd a’ ceangal ri frithealaiche Enterprise nan ID" + +#: ../src/goabackend/goakerberosprovider.c:1290 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Thill seirbheis nan ID iuchair mhì-dhligheach" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 +#: ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Mearachd a’ ceangal ri Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Frithealaiche mheadhanan" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Gabhaidh susbaint phearsanta a chur ris na prògraman agad le cunntas " +"frithealaiche mheadhanan." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Frithealaichean mheadhanan ri làimh" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Cha deach frithealaiche mheadhanan a lorg" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 +#: ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Bha dùil ri staid 200 nuair a dh’iarr sinn an tòcan inntrigidh ach fhuair " +"sinn staid %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "Freagairt an ùghdarrachaidh: " + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "Freagairt an ùghdarrachaidh: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 +#: ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Mearachd a’ faighinn an tòcain inntrigidh: " + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Mearachd a’ faighinn na ID: " + +#: ../src/goabackend/goaoauth2provider.c:1321 +#: ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Dh’iarr sinn clàradh a-steach mar %s ach chlàradh a-steach mar %s" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Chan eil teisteasan san _tòcan inntrigidh" + +#: ../src/goabackend/goaoauth2provider.c:1512 +#: ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Cha b’ urrainn dhuinn an tòcan inntrigidh ath-nuadhachadh (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Tha bannan-cinn access_token no access_token_secret a dhìth air an fhreagairt" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Mearachd a’ faighinn tòcan iarrtais: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Bha dùil ri staid 200 nuair a dh’iarr sinn tòcan iarrtais ach fhuair sinn " +"staid %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Tha bannan-cinn request_token no request_token_secret a dhìth air an " +"fhreagairt" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Chan eil access_token no access_token_secret sna teisteasan" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "Mearachd a’ ceangal ri frithealaiche ownCloud" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pòcaid" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "Tha username no access_token a dhìth" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_Post" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "Mìosacha_n" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "_Luchd-aithne" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Cabadaic_h" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "_Sgrìobhainnean" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "C_eòl" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_Dealbhan" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_Faidhlichean" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "_Goireasan an lìonraidh" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "_Leugh uaireigin eile" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "Clò-bhuala_dairean" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "_Mapaichean" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Cleachd airson" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "Chaidh an cunntas a chur à comas" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "Mearachd nach aithne dhuinn" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "Cha deach ensure_credentials_sync a chur an sàs san t-seòrsa %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "Chan eil TLS ri làimh" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Dòigh dearbhachaidh neo-aithnichte" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Cha deach cunntas cabadaich Telepathy a lorg" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Cha b’ urrainn dhuinn eadar-aghaidh a chruthachadh airson %s" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Roghainnean ceangail" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Fiosrachadh pearsanta" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Ceart ma-thà" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Chan urrainn dhuinn roghainnean a’ cheangail a shàbhaladh" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "" +"Chan urrainn dhuinn am fiosrachadh pearsanta agad a shàbhaladh air an " +"fhrithealaiche" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Roghainnean _ceangail" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Fiosrachadh _pearsanta" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Mearachd a’ clàradh a-steach dhan chunntas" + +#: ../src/goabackend/goautils.c:140 +#| msgid "Credentials have expired." +msgid "Credentials have expired" +msgstr "Dh’fhalbh an ùine air an teisteanas" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Clàraich a-steach gus an cunntas seo a chur an comas." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Clàraich a-_steach" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Tha cunntas %s ann airson %s mu thràth" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +#| msgid "%s account" +msgid "%s Account" +msgstr "Cunntas %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Cha b’ urrainn dhuinn na teisteasan a sguabadh às an dul-iuchrach" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Cha b’ urrainn dhuinn na teisteasan fhaighinn on dul-iuchrach" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Cha deach teisteasan a lorg san dul-iuchrach" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Mearachd a’ parsadh an toraidh a fhuair sinn on dul-iuchrach: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Teisteasan %s GOA airson na ID %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Cha b’ urrainn dhuinn na teisteasan a stòradh san dul-iuchrach" + +#: ../src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Chan urrainn dhuinn ainm an òstair fhuasgladh" + +#: ../src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Chan urrainn dhuinn ainm an òstair progsaidh fhuasgladh" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Chan urrainn dhuinn puing-dheiridh WebDAV a lorg" + +#: ../src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Còd: %u — Freagairt ris nach robh dùil on fhrithealaiche" + +#: ../src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Chan aithne dhuinn ùghdarras soidhneadh nan teisteanasan" + +#: ../src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Chan eil an teisteanas seo a’ freagairt ri ID na làraich-lìn (on a fhuaradh " +"e) ris an robh dùil" + +#: ../src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Tha àm gnìomhachadh an teisteanais seo san àm ri teachd fhathast." + +#: ../src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Dh’fhalbh an ùine air an teisteanas." + +#: ../src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Chaidh an teisteanas a chùl-ghairm." + +#: ../src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Thathar dhen bheachd nach eil algairim an teisteanais tèarainte." + +#: ../src/goabackend/goautils.c:924 +msgid "Invalid certificate." +msgstr "Teisteanas mì-dhligheach." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:959 +#, c-format +#| msgid "Did not find %s with identity ‘%s’ in credentials" +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Cha do lorg sinn %s leis an aithne “%s” sna teisteasan" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "A’ luchdadh “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:56 +#| msgid "Microsoft Account" +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "Tha an rùn tùsail mì-dhligheach" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Feumaidh rìoghachd an lìonraidh %s fiosrachadh mus urrainn dhut clàradh a-" +"steach." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "Cha b’ urrainn dhuinn an ID a lorg ann an tasgadan nan teisteasan: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "Cha b’ urrainn dhuinn teisteanan ID a lorg san tasgadan: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Cha b’ urrainn sìolachadh tro na IDs ann an tasgadan nan teisteasan: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"Cha b’ urrainn sìolachadh tro na IDs ann an tasgadan nan teisteasan a " +"choileanadh: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Cha deach ID co-cheangailte a lorg" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Cha b’ urrainn tasgadan theisteasan a chruthachadh: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "Cha b’ urrainn dhuinn tasgadan nan teisteasan ath-shuidheachadh: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" +"Cha b’ urrainn na teisteasan ùra a stòradh ann an tasgadan nan teisteasan: %" +"k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "" +"Cha b’ urrainn dhuinn an ID ath-nuadhachadh: Cha do rinn thu clàradh " +"a-steach" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Cha b’ urrainn dhuinn an ID ath-nuadhachadh: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Cha b’ urrainn dhuinn teisteasan ùra fhaighinn gus an ID %s ath-nuadhachadh: " +"%k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Cha b’ urrainn dhuinn an ID a dhubhadh às: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Cha b’ urrainn dhuinn an ID a lorg" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "Cha b’ urrainn dhuinn tasgadan theisteasan airson na ID a chruthachadh" + +#~ msgid "_Domain" +#~ msgstr "Àrainn-lì_n" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Ainm na h-àrainne-lìn no na rìoghachd Enterprise" + +#~ msgid "The domain is not valid" +#~ msgstr "Chan eil an àrainn-lìn dligheach" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "Chan eil org.gnome.OnlineAccounts.Mail ri làimh" + +#~ msgid "Failed to parse email address" +#~ msgstr "Cha b' urrainn dhuinn an seòladh puist-d a pharsadh" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Chan urrainn dhuinn dearbhadh SMTP a dhèanamh as aonais àrainne" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Cha deach smtp-password a lorg sna teisteasan" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "" +#~ "Chan urrainn dhuinn dearbhadh SMTP a dhèanamh as aonais facail-fhaire" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "" +#~ "Chaidh an rùn tùsail a thoirt seachad mus deach an iuchair rùin a mhalairt" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Cha b' urrainn dhuinn an cliant GOA a thòiseachadh" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Cha do lorg sinn facal-faire leis an aithne \"%s\" sna teisteasan" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Bha dùil ri staid 200 nuair a dh'iarr sinn an t-ainm ach fhuair sinn " +#~ "staid %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Cuir ann an còd ùghdarrachaidh a fhuair thu on duilleag " +#~ "ùghdarrachaidh:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Cuir ann an tòcan a fhuair thu on duilleag ùghdarrachaidh:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Àm" + +#~ msgid "Time to fire" +#~ msgstr "Time to fire" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Cha b' urrainn dhuinn an eileamaid Autodiscover a lorg" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Cha do lorg sinn imap-password air an robh an ID \"%s\" sna teisteasan" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "" +#~ "imap-password mì-dhligheach airson an ainm-chleachdaiche \"%s\" (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Cha do lorg sinn smtp-password aig an robh an ID \"%s\" sna teisteasan" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "" +#~ "smtp-password mì-dhligheach airson an ainm-chleachdaiche \"%s\" (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "Cunntasan air-loidhne" + +#~ msgid "An online account needs attention" +#~ msgstr "Tha cunntas air-loidhne feumail air frithealaidh" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Fosgail cunntasan air-loidhne..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Cha do lorg teisteasan sa dul-iuchrach (%s, %d): " + +#~ msgid "Did not find password with username `%s' in credentials" +#~ msgstr "Cha do lorg facal-faire le ainm-chleachdaiche `%s' sna teisteasan" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Mearachd a' parsadh freagairt mar JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Cha do lorg ball id (DA) ann an dàta JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Cha do lorg ball post-d ann an dàta JSON" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Cha do lorg ball dàta ann an dàta JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Cha do lorg àirleas_cothrom anns an dàta neo-JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Cha do lorg àirleas_cothrom anns an dàta JSON" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Mearachd a' stòradh teisteasan ann dul-iuchrach (%s, %d): " + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Cha do lorg cunntas ball post-d ann an dàta JSON" diff --git a/po/gl.gmo b/po/gl.gmo new file mode 100644 index 0000000..58f396d Binary files /dev/null and b/po/gl.gmo differ diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..2ab10d8 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,1115 @@ +# Galician translation for gnome-online-accounts. +# Copyright (C) 2012 Leandro Regueiro +# This file is distributed under the same license as the gnome-online-accounts package. +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en http://www.trasno.net +# Xosé M Lamas , 2011. +# Fran Diéguez , 2011, 2012. +# Leandro Regueiro , 2012. +# Fran Dieguez , 2012, 2013, 2014, 2015, 2016, 2017, 2018. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-02-09 14:58+0200\n" +"Last-Translator: Fran Dieguez \n" +"Language-Team: Galician\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Lista de fornecedores que se poden ler" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Unha lista de cadeas que representa os fornecedores que teñen permitido a " +"súa carga (por omisión: «all»). Isto só se avalía ao inicio." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Produciuse un erro ao buscar un fornecedor para: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "A propiedade «IsLocked» está estabelecida para a conta" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "A propiedade «ProviderType» non está estabelecida para a conta" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Produciuse un erro ao analizar a resposta XML da autodetección" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Produciuse un erro ao buscar o elemento «%s»" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Produciuse un erro ao buscar «ASUrl» e «AOBUrl» na resposta da autodetección" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Contrasinal non válido co nome de usuario «%s» (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "Correo _electrónico" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Contrasinal" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalizado" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Nome de _usuario" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Servidor" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Cancelar" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "C_onectando…" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Connecting…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Descartouse o diálogo" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Descartouse o diálogo (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorar" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Tentar de novo" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Produciuse un erro ao conectar ao servidor de Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Agardábase o estado 200 cando se solicitou a súa identidade, mais obtívose o " +"estado %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Non foi posíbel analizar a resposta" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"A hora do seu sistema non é válida. Comprobe a súa configuración de data e " +"hora." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Servizo non dispoñíbel" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "A autenticación fallou" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "O servidor non admite PLAIN." + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "O servidor non admite STARTTLS." + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP e SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s non válido co nome de usuario «%s» (%s, %d):" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Cifrado" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ningún" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS despois de conectarse" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL nun porto adicado" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nome" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Servidor IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "Servidor SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Adiante" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Produciuse un erro ao conectar co servidor IMAP." + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Produciuse un erro ao conectar co servidor SMTP." + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Correo" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Nome" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Inicio de sesión corporativo (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Creación de tiques bloqueada para esta conta" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Non foi posíbel atopar as credenciais gardadas para o principal «%s» no anel " +"de chaves" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"Non foi posíbel atopar o contrasinal para o princpal «%s» nas credenciais" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "A operación foi cancelada" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Iniciar sesión no reino" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Escriba o seu contrasinal embaixo." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Lembrar o contrasinal" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Produciuse un erro ao conectarse ao servidor corporativo de identidade" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "O servizo de identidade devolveu unha chave non válida" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Produciuse un erro ao conectarse Last.fm." + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Servidor multimedia" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"O contido persoal pode engadirse aos seus aplicativos mediante unha conta de " +"servidor multimedia." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Servidores multimedia dispoñíbeis" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "No se atopou ningún servidor multimedia" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Esperábase o estado 200 ó pedir o sinal de acceso, pero reciveuse o estado " +"%d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Resposta da autorización:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Resposta da autorización: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Produciuse un erro ao obter un Token de Acceso: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Produciuse un erro ao obter a identidade: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Solicitóuselle iniciar sesión como %s, pero estás conectado coma %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "As credenciais non conteñen o access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Produciuse un erro ao actualizar o token de acceso (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Faltan as cabeceiras «access_token» ou «access_token_secret» na resposta" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Produciuse un erro ao obter o «token» solicitado:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Agardábase un estado 200 ao solicitar o «token», no seu lugar obtívose o " +"estado %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Faltan as cabeceiras «request_token» ou «request_token_secret» na resposta" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "As credenciais non conteñen «access_token» ou «access_token_secret»" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Produciuse un erro ao conectar ao servidor de ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Non hai ningún nome de usuario ou access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "Co_rreo" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Cale_ndario" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Contactos" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "C_hat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documentos" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "Mús_ica" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Ficheiros" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Recursos en rede" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Ler máis tarde" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Impresoras" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapas" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_arefas" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Usar para" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "A conta está desactivada" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Erro descoñecido" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "«ensure_credentials» non está implementado no tipo %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS non dispoñíbel" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Método de autenticación descoñecido" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Conta de chat de Telepathy non atopada" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Produciuse un fallo ao crear a interface de usuario para %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Preferencias da conexión" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Detalles persoais" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Aceptar" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Non foi posíbel gardar os parametros de conexión" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Non foi posíbel gardar a información persoal no servidor" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Preferencias da _conexión" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Detalles _persoais" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Produciuse un erro ao acceder á conta" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "As credenciais caducaron" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Inicie a sesión para activar esta conta." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Iniciar sesión" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Xa existe unha conta %s para %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Conta de %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Produciuse un erro ao eliminar as credenciais do anel de chaves" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Produciuse un erro ao obter as credenciais do anel de chaves" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Non se atoparon as credenciais no anel de chaves" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "" +"Produciuse un erro ao analizar o resultado obtido desde o anel de chaves: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credenciais GOA de %s para a identidade %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Produciuse un erro ao gardar as credenciais no anel de chaves" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Non é posíbel resolver o nome de equipo" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Non é posíbel resolver o nome de equipo do proxi" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Non é posíbel atopar o punto final WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Código: %u — Resposta non agardada do servidor" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "O asinado da autoridade certificadora non se recoñece." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"O certificado non coincide coa identidade agardada do sitio da que se obtivo." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "A hora de activación do certificado está aínda no futuro." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "O certificado caducou." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "O certificado foi revogado." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "O algoritmo do certificado considérase inseguro." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Certificado non válido." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Non foi posíbel atopar %s coa identidade «%s» nas credenciais" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Cargando «%s»…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Chave secreta inicial non válida" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"O reino da rede %s precisa algunha información para iniciarlle a sesión." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +#| msgid "Could not find identity in credential cache: %k" +msgid "Could not find identity in credential cache: " +msgstr "Non foi posíbel atopar unha identidade na caché de credenciais:" + +#: src/goaidentity/goakerberosidentity.c:720 +#| msgid "Could not find identity credentials in cache: %k" +msgid "Could not find identity credentials in cache: " +msgstr "Non foi posíbel atopar as credenciais de identidade na caché:" + +#: src/goaidentity/goakerberosidentity.c:771 +#| msgid "Could not sift through identity credentials in cache: %k" +msgid "Could not sift through identity credentials in cache: " +msgstr "Non foi cribar as credenciais de identidade na caché:" + +#: src/goaidentity/goakerberosidentity.c:788 +#| msgid "" +#| "Could not finish up sifting through identity credentials in cache: %k" +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Non foi finalizar a criba das credenciais de identidade na caché:" + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Non se atopou unha identificación asociada" + +#: src/goaidentity/goakerberosidentity.c:1186 +#| msgid "Could not create credential cache: %k" +msgid "Could not create credential cache: " +msgstr "Non foi posíbel crear a caché de credenciais:" + +#: src/goaidentity/goakerberosidentity.c:1220 +#| msgid "Could not initialize credentials cache: %k" +msgid "Could not initialize credentials cache: " +msgstr "Non foi posíbel iniciar a caché de credenciais:" + +#: src/goaidentity/goakerberosidentity.c:1236 +#| msgid "Could not store new credentials in credentials cache: %k" +msgid "Could not store new credentials in credentials cache: " +msgstr "Non foi posíbel gardar as novas credenciais na caché de credenciais:" + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Non foi posíbel renovar a identidade: Non ten a sesión iniciada" + +#: src/goaidentity/goakerberosidentity.c:1546 +#| msgid "Could not renew identity: %k" +msgid "Could not renew identity: " +msgstr "Non foi posíbel renovar a identidade:" + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +#| msgid "Could not get new credentials to renew identity %s: %k" +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Non foi posíbel obter unhas novas credenciais para renovar a identidade %s:" + +#: src/goaidentity/goakerberosidentity.c:1604 +#| msgid "Could not erase identity: %k" +msgid "Could not erase identity: " +msgstr "Non foi posíbel eliminar a identidade:" + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Non foi posíbel atopar a identidade" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Non foi posíbel crear a caché de creadenciais para a identidade" + +#~ msgid "_Domain" +#~ msgstr "_Dominio" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Dominio corporativo ou nome do reino" + +#~ msgid "The domain is not valid" +#~ msgstr "O dominio non é válido" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail non está dispoñíbel" + +#~ msgid "Failed to parse email address" +#~ msgstr "Produciuse un erro ao analizar o enderezo de correo" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Non foi posíbel usar a autenticacion SMTP sen un dominio" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Non foi posíbel atopar o contrasinal de smtp nas credenciais" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Non foi posíbel usar a autenticación SMTP sen un contrasinal" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "segredo inicial pasado antes do intercambio de chave secreta" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Produciuse un fallow ao inicializar o cliente GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "Non foi posíbel atopar o contrasinal coa identidade «%s» nas credenciais" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Agardábase o estado 200 na petición de nome, mais obtívose o estado %d " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Pegue o código de acceso obtido desde a páxina de " +#~ "autorización:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Pegue o sinal obtido desde a páxina de autorización:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Hora" + +#~ msgid "Time to fire" +#~ msgstr "Hora para disparar" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Produciuse un erro ao buscar o elemento «Autodiscover»." + +#~ msgid "Failed to find Account element" +#~ msgstr "Produciuse un erro ao buscar o elemento «Account»" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Agardábase o estado 200 cando se solicitou o «guid», mais obtívose o " +#~ "estado %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Non foi posíbel atopar o contrasinal de imap coa identidade «%s» nas " +#~ "credenciais" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Contrasinal de imap non válido co nome de usuario «%s» (%s, %d):" + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Non foi posíbel atopar o contrasinal de smtp para o nome de usuario «%s» " +#~ "nas credenciais" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Contrasinal de smtp non válido co nome de usuario «%s» (%s, %d):" + +#~ msgid "Online Accounts" +#~ msgstr "Contas en liña" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "Fornece o nome de org.gnome.OnlinesAccounts no bus de sesión" + +#~ msgid "An online account needs attention" +#~ msgstr "Unha das contas en liña precisa atención" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Abrir Contas en Liña..." + +# N.T.: JSON stands for JavaScript Object Notation that is a language independent text format. Unha linguaxe de progrmación. +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Produciuse un erro ao analizar a resposta como JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Non foi posíbel atopar o membro «id» nos datos JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "" +#~ "Non foi posíbel atopar o correo electrónico do membro nos datos JSON" + +# poño este en maiúsculas para enfatizar a diferencia deste (usuario único) co member name (nome "real" do usuario) +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Non foi posíbel atopar o membro «user» nos datos JSON" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Non foi posíbel atopar o membro «user.id» nos datos JSON" + +# poño este en maiúsculas para enfatizar a diferencia deste (usuario único) co member name (nome "real" do usuario) +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Non foi posíbel atopar o membro «user.username» nos datos JSON" + +# poño este en maiúsculas para enfatizar a diferencia deste (usuario único) co member name (nome "real" do usuario) +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "" +#~ "Non foi posíbel atopar o membro «user.username._content» nos datos JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Non se atopou o sinal de acceso nos datos non-JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Non se atopou o sinal de acceso nos datos JSON" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Non foi posíbel atopar o membro «id_str» nos datos JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Non foi posíbel atopar o membro «screen_name» nos datos JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Non foi posíbel atopar a conta de correo-e do membro nos datos JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "" +#~ "Non foi posíbel atopar o número identificador do membro nos datos JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Non foi posíbel atopar o membro de valor nos datos JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "" +#~ "Produciuse un erro ao analizar a resposta da tarxeta de usuario como JSON:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Non foi posíbel atopar un perfil de usuario nos datos JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Non foi psoíbel atopar o alcume do usuario nos datos JSON" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Non foi posíbel atopar as credenciais no anel de chaves (%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "" +#~ "Produciuse un erro ao gardar as credenciais no anel de chaves (%s, %d): " + +#~ msgid "Domain Administrator Login" +#~ msgstr "Inicio de sesión do administrador do dominio" + +#~ msgid "Could not find supported credentials" +#~ msgstr "Non foi posíbel atopar as credenciais compatíbeis" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "Para usar esta identidade corporativa, o computador debe unirse nun " +#~ "dominio. Contace co seu administrador de rede para que escriba o " +#~ "contrasinal do dominio aquí." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "Para usar esta identidade corporativa, o computador debe unirse nun " +#~ "dominio. Contace co seu administrador de rede para que escriba o nome de " +#~ "usuario do dominio aquí." + +#~ msgid "No such domain or realm found" +#~ msgstr "Non foi posíbel atopar o dominio ou o reino" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Non foi posíbel iniciar sesión como %s no dominio %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Contrasinal incorrecto, ténteo de novo" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Non é posíbel conectarse ao dominio %s: %s" + +#~ msgid "Chat" +#~ msgstr "Conversa" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Non foi posíbel atopar os datos do membro nos datos JSON" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Nova conta de Microsoft Exchange" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Novo inicio de sesión corporativo (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "Engadir %s" + +#~ msgid "Refresh %s" +#~ msgstr "Actualizar %s" + +#~ msgid "Email _Address" +#~ msgstr "_Enderezo de correo electrónico" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Xa existe unha conta para a identidade %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Non se atopou o nome de membro nos datos JSON" diff --git a/po/gnome-online-accounts.pot b/po/gnome-online-accounts.pot new file mode 100644 index 0000000..04f3398 --- /dev/null +++ b/po/gnome-online-accounts.pot @@ -0,0 +1,840 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR GNOME Online Accounts Authors +# This file is distributed under the same license as the gnome-online-accounts package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts 3.28.2\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2019-02-10 20:40+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:192 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:211 +#: src/goabackend/goagoogleprovider.c:222 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "" + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "" + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "" + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "" + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "" + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "" + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "" + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "" + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "" + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "" + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "" + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "" + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "" diff --git a/po/gu.gmo b/po/gu.gmo new file mode 100644 index 0000000..7a04e6e Binary files /dev/null and b/po/gu.gmo differ diff --git a/po/gu.po b/po/gu.po new file mode 100644 index 0000000..81def75 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,968 @@ +# Gujarati translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# , 2014. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-" +"accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-06-07 15:01+0000\n" +"PO-Revision-Date: 2016-07-11 22:22+0200\n" +"Last-Translator: વિશાલ ભલાણી \n" +"Language-Team: American English \n" +"Language: gu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:884 ../src/daemon/goadaemon.c:1114 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "તેની માટે પ્રદાતાને શોધવામાં નિષ્ફળતા: %s" + +#: ../src/daemon/goadaemon.c:1056 +msgid "IsLocked property is set for account" +msgstr "ખાતા માટે IsLocked ગુણધર્મ સુયોજિત કરેલ છે" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1102 +msgid "ProviderType property is not set for account" +msgstr "ProviderType ગુણધર્મ એ ખાતા માટે સુયોજિત નથી" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "autodiscover પ્રત્યુત્તર XML નું પદચ્છેદન કરતી વખતે નિષ્ફળતા" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:261 ../src/goabackend/goaewsclient.c:276 +#: ../src/goabackend/goaewsclient.c:291 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ ઘટકને શોધવામાં નિષ્ફળતા" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:312 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "autodiscover પ્રત્યુત્તરમાં ASUrl અને OABUrl શોધવામાં નિષ્ફળતા" + +#: ../src/goabackend/goaexchangeprovider.c:74 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:283 ../src/goabackend/goalastfmprovider.c:280 +#: ../src/goabackend/goaowncloudprovider.c:314 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "વપરાશકર્તાનામ ‘%s’ (%s, %d) સાથે અયોગ્ય પાસવર્ડ: " + +#: ../src/goabackend/goaexchangeprovider.c:436 ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "ઇમેઇલ (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:437 ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 ../src/goabackend/goalastfmprovider.c:422 +#: ../src/goabackend/goaowncloudprovider.c:560 +msgid "_Password" +msgstr "પાસવર્ડ (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:440 +msgid "_Custom" +msgstr "વૈવિધ્ય (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:451 ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 ../src/goabackend/goakerberosprovider.c:735 +#: ../src/goabackend/goalastfmprovider.c:421 ../src/goabackend/goaowncloudprovider.c:559 +msgid "User_name" +msgstr "વપરાશકર્તા નામ (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:452 ../src/goabackend/goaowncloudprovider.c:558 +msgid "_Server" +msgstr "સર્વર (_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:462 ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:740 ../src/goabackend/goalastfmprovider.c:430 +#: ../src/goabackend/goaowncloudprovider.c:569 ../src/goabackend/goatelepathyprovider.c:623 +msgid "_Cancel" +msgstr "રદ કરો (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:463 ../src/goabackend/goakerberosprovider.c:741 +#: ../src/goabackend/goalastfmprovider.c:431 ../src/goabackend/goaowncloudprovider.c:570 +msgid "C_onnect" +msgstr "જોડાવો (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:479 ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:757 ../src/goabackend/goalastfmprovider.c:447 +#: ../src/goabackend/goaowncloudprovider.c:585 +msgid "Connecting…" +msgstr "જોડાઇ રહ્યા છે..." + +#: ../src/goabackend/goaexchangeprovider.c:584 ../src/goabackend/goaexchangeprovider.c:779 +#: ../src/goabackend/goaimapsmtpprovider.c:916 ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 ../src/goabackend/goaimapsmtpprovider.c:1310 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 ../src/goabackend/goakerberosprovider.c:1156 +#: ../src/goabackend/goalastfmprovider.c:642 ../src/goabackend/goalastfmprovider.c:808 +#: ../src/goabackend/goamediaserverprovider.c:434 ../src/goabackend/goaoauth2provider.c:1033 +#: ../src/goabackend/goaoauthprovider.c:862 ../src/goabackend/goaowncloudprovider.c:696 +#: ../src/goabackend/goaowncloudprovider.c:910 ../src/goabackend/goatelepathyprovider.c:438 +#: ../src/goabackend/goatelepathyprovider.c:486 ../src/goabackend/goatelepathyprovider.c:654 +#, c-format +msgid "Dialog was dismissed" +msgstr "સંવાદ અસ્વીકાર થયેલ છે" + +#: ../src/goabackend/goaexchangeprovider.c:622 ../src/goabackend/goaexchangeprovider.c:807 +#: ../src/goabackend/goaimapsmtpprovider.c:984 ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1337 ../src/goabackend/goaimapsmtpprovider.c:1414 +#: ../src/goabackend/goalastfmprovider.c:676 ../src/goabackend/goalastfmprovider.c:827 +#: ../src/goabackend/goaowncloudprovider.c:738 ../src/goabackend/goaowncloudprovider.c:931 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "સંવાદ અસ્વીકાર થયેલ છે (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:635 ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 ../src/goabackend/goaowncloudprovider.c:751 +msgid "_Ignore" +msgstr "અવગણો (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:640 ../src/goabackend/goaexchangeprovider.c:826 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1356 ../src/goabackend/goaimapsmtpprovider.c:1433 +#: ../src/goabackend/goakerberosprovider.c:1263 ../src/goabackend/goalastfmprovider.c:688 +#: ../src/goabackend/goalastfmprovider.c:844 ../src/goabackend/goaowncloudprovider.c:756 +#: ../src/goabackend/goaowncloudprovider.c:950 +msgid "_Try Again" +msgstr "ફરીથી પ્રયત્ન કરો (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:645 ../src/goabackend/goaexchangeprovider.c:819 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft Exchange સર્વરને જોડતી વખતે ભૂલ" + +#: ../src/goabackend/goafacebookprovider.c:77 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:216 ../src/goabackend/goaflickrprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:190 ../src/goabackend/goagoogleprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:196 +#, c-format +msgid "Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"ઇચ્છિત સ્થિતિ 200 ની ઇચ્છા રાખેલ છે જ્યારે તમારાં ઓળખાણની માંગણી કરી રહ્યા હોય, તેને બદલે સ્થિતિ %d (%s) " +"મળ્યુ" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:235 ../src/goabackend/goafacebookprovider.c:247 +#: ../src/goabackend/goafacebookprovider.c:260 ../src/goabackend/goaflickrprovider.c:203 +#: ../src/goabackend/goaflickrprovider.c:215 ../src/goabackend/goaflickrprovider.c:225 +#: ../src/goabackend/goaflickrprovider.c:235 ../src/goabackend/goaflickrprovider.c:245 +#: ../src/goabackend/goafoursquareprovider.c:209 ../src/goabackend/goafoursquareprovider.c:221 +#: ../src/goabackend/goafoursquareprovider.c:232 ../src/goabackend/goafoursquareprovider.c:243 +#: ../src/goabackend/goafoursquareprovider.c:254 ../src/goabackend/goafoursquareprovider.c:265 +#: ../src/goabackend/goagoogleprovider.c:245 ../src/goabackend/goagoogleprovider.c:257 +#: ../src/goabackend/goalastfmprovider.c:211 ../src/goabackend/goalastfmprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:230 ../src/goabackend/goalastfmprovider.c:237 +#: ../src/goabackend/goalastfmprovider.c:505 ../src/goabackend/goalastfmprovider.c:514 +#: ../src/goabackend/goalastfmprovider.c:529 ../src/goabackend/goalastfmprovider.c:536 +#: ../src/goabackend/goaoauth2provider.c:699 ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 ../src/goabackend/goautils.c:153 +#: ../src/goabackend/goawindowsliveprovider.c:215 +#: ../src/goabackend/goawindowsliveprovider.c:227 +#: ../src/goabackend/goawindowsliveprovider.c:239 +#, c-format +msgid "Could not parse response" +msgstr "જવાબનુ પદચ્છેદન કરી શક્યા નહિં" + +#: ../src/goabackend/goaflickrprovider.c:78 +msgid "Flickr" +msgstr "ફ્લિકર" + +#: ../src/goabackend/goaflickrprovider.c:322 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "તમારો સિસ્ટમ સમય અમાન્ય છે. તમારી તારીખ અને સમય સુયોજનોને ચકાસો." + +#: ../src/goabackend/goafoursquareprovider.c:78 +msgid "Foursquare" +msgstr "ફોરસ્ક્વેર" + +#: ../src/goabackend/goagoogleprovider.c:77 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "સેવા ઉપલબ્ધ નથી" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 ../src/goabackend/goalastfmprovider.c:522 +#: ../src/goabackend/goasmtpauth.c:113 ../src/goabackend/goautils.c:628 +#, c-format +msgid "Authentication failed" +msgstr "સત્તાધિકરણ નિષ્ક્રિય" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "સેવા PLAIN ને આધાર આપતુ નથી" + +#: ../src/goabackend/goaimapauthlogin.c:194 ../src/goabackend/goasmtpauth.c:816 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "સર્વર STARTTLS ને આધાર આપતુ નથી" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP અને SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "અયોગ્ય %s એ વપરાશકર્તા ‘%s’ (%s, %d) સાથે: " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "એનક્રિપ્શન (_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "કંઈ નહિં" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "જોડાણ પછી STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "સમર્પિત પોર્ટ પર SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "નામ (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP સર્વર (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "SMTP સર્વર (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1366 +msgid "_Forward" +msgstr "આગળ ધપાવો (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 ../src/goabackend/goaimapsmtpprovider.c:1349 +msgid "Error connecting to IMAP server" +msgstr " IMAP સર્વરને જોડતી વખતે ભૂલ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 ../src/goabackend/goaimapsmtpprovider.c:1426 +msgid "Error connecting to SMTP server" +msgstr "SMTP સર્વરને જોડતી વખતે ભૂલ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1525 +msgid "E-mail" +msgstr "ઇ-મેઇલ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1529 +msgid "Name" +msgstr "નામ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1539 ../src/goabackend/goaimapsmtpprovider.c:1543 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1554 ../src/goabackend/goaimapsmtpprovider.c:1558 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "એન્ટરપ્રાઇઝ પ્રવેશ (કર્બરોઝ)" + +#: ../src/goabackend/goakerberosprovider.c:294 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "એકાઉન્ટ માટે ટિકિટ અક્ષમ છે" + +#: ../src/goabackend/goakerberosprovider.c:319 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "કિરીંગમાં પ્રિન્સીપલ ‘%s’ માટે સંગ્રહેલ શ્રેયને શોધી શક્યા નહિં" + +#: ../src/goabackend/goakerberosprovider.c:332 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "શ્રેયમાં પ્રિન્સીપલ ‘%s’ માટે પાસવર્ડ મળ્યો ન હતો" + +#: ../src/goabackend/goakerberosprovider.c:727 +msgid "_Domain" +msgstr "ડોમેઇન (_D)" + +#: ../src/goabackend/goakerberosprovider.c:728 +msgid "Enterprise domain or realm name" +msgstr "એન્ટરપ્રાઇઝ ડોમેઇન અથવા ક્ષેત્ર નામ" + +#: ../src/goabackend/goakerberosprovider.c:964 ../src/goaidentity/goaidentityservice.c:1127 +msgid "Log In to Realm" +msgstr "ક્ષેત્રમાં પ્રવેશો" + +#: ../src/goabackend/goakerberosprovider.c:965 +msgid "Please enter your password below." +msgstr "મહેરબાની કરીને નીચે તમારો પાસવર્ડ દાખલ કરો." + +#: ../src/goabackend/goakerberosprovider.c:966 +msgid "Remember this password" +msgstr "આ પાસવર્ડને યાદ રાખો" + +#: ../src/goabackend/goakerberosprovider.c:1108 +#, c-format +msgid "The domain is not valid" +msgstr "ડોમેઇન માન્ય નથી" + +#: ../src/goabackend/goakerberosprovider.c:1258 +msgid "Error connecting to enterprise identity server" +msgstr "એન્ટરપ્રાઇઝ ઓળખાણ સર્વર સાથે જોડાવામાં ભૂલ" + +#: ../src/goabackend/goakerberosprovider.c:1525 +#, c-format +msgid "Identity service returned invalid key" +msgstr "ઓળખાણ સેવાને અયોગ્ય કી પાછી મળી" + +#: ../src/goabackend/goalastfmprovider.c:64 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:690 ../src/goabackend/goalastfmprovider.c:838 +msgid "Error connecting to Last.fm" +msgstr "Last.fm સાથે જોડાવવામાં ક્ષતિ" + +#: ../src/goabackend/goamediaserverprovider.c:77 +msgid "Media Server" +msgstr "મીડિયા સર્વર" + +#: ../src/goabackend/goamediaserverprovider.c:330 +msgid "Personal content can be added to your applications through a media server account." +msgstr "મીડિયા સર્વર ખાતા મારફતે તમારાં કાર્યક્રમમાં વ્યક્તિગત સમાવિષ્ટને ઉમેરી શકાય છે." + +#: ../src/goabackend/goamediaserverprovider.c:343 +msgid "Available Media Servers" +msgstr "ઉપલબ્ધ મીડિયા સર્વરો" + +#: ../src/goabackend/goamediaserverprovider.c:374 +msgid "No media servers found" +msgstr "મીડિયા સર્વરો મળ્યા નથી" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "સ્થિતિ 200 ની ઇચ્છા રાખેલ છે જ્યારે પ્રવેશ ટોકનની માંગણી કરી રહ્યા હોય, તેને બદલે સ્થિતિ %d (%s) મળ્યુ" + +#: ../src/goabackend/goaoauth2provider.c:841 +msgid "Authorization response: " +msgstr "સત્તાધિકરણ જવાબ: " + +#: ../src/goabackend/goaoauth2provider.c:911 +#, c-format +msgid "Authorization response: %s" +msgstr "સત્તાધિકરણ જવાબ: %s" + +#: ../src/goabackend/goaoauth2provider.c:1059 ../src/goabackend/goaoauthprovider.c:893 +msgid "Error getting an Access Token: " +msgstr "પ્રવેશ ટોકનને મેળવી રહ્યા હોય ત્યારે ભૂલ: " + +#: ../src/goabackend/goaoauth2provider.c:1074 ../src/goabackend/goaoauthprovider.c:906 +msgid "Error getting identity: " +msgstr "ઓળખાણને મેળવતી વખતે ભૂલ:" + +#: ../src/goabackend/goaoauth2provider.c:1291 ../src/goabackend/goaoauthprovider.c:1210 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s તરીકે પ્રવેશ કરવા પૂછ્યુ હતુ, પરંતુ %s તરીકે પ્રવેશેલ છે" + +#: ../src/goabackend/goaoauth2provider.c:1453 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "શ્રેય access_token સમાવતુ નથી" + +#: ../src/goabackend/goaoauth2provider.c:1492 ../src/goabackend/goaoauthprovider.c:1438 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "પ્રવેશ ટોકનને તાજુ કરવામાં નિષ્ફળતા (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "પ્રત્યુત્તરમાં ગેરહાજર access_token અથવા access_token_secret હેડર" + +#: ../src/goabackend/goaoauthprovider.c:774 +msgid "Error getting a Request Token: " +msgstr "સૂચન ટોકનેને મેળવી રહ્યા હોય ત્યારે ભૂલ: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:807 +#, c-format +msgid "Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "સૂચન ટોકનને મેળવવા માટે સ્થિતિ 200 ની ઇચ્છા રાખેલ છે, તેને બદલે સ્થિતિ %d (%s) મળ્યુ" + +#: ../src/goabackend/goaoauthprovider.c:824 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "પ્રત્યુત્તરમાં ગેરહાજર request_token અથવા request_token_secret હેડર" + +#: ../src/goabackend/goaoauthprovider.c:1394 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "શ્રેય access_token અથવા access_token_secret સમાવતુ નથી" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:761 ../src/goabackend/goaowncloudprovider.c:943 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud સર્વરને જોડતી વખતે ભૂલ" + +#: ../src/goabackend/goapocketprovider.c:70 +msgid "Pocket" +msgstr "પોકેટ" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:219 +#, c-format +msgid "No username or access_token" +msgstr "વપરાશકર્તા અથવા પ્રવેશ ટોકન નથી (_t)" + +#: ../src/goabackend/goaprovider.c:107 +msgid "_Mail" +msgstr "મેઇલ (_M)" + +#: ../src/goabackend/goaprovider.c:112 +msgid "Cale_ndar" +msgstr "કૅલેન્ડર (_n)" + +#: ../src/goabackend/goaprovider.c:117 +msgid "_Contacts" +msgstr "સંપર્કો (_C)" + +#: ../src/goabackend/goaprovider.c:122 +msgid "C_hat" +msgstr "વાર્તાલાપ (_h)" + +#: ../src/goabackend/goaprovider.c:127 +msgid "_Documents" +msgstr "દસ્તાવેજો (_D)" + +#: ../src/goabackend/goaprovider.c:132 +msgid "M_usic" +msgstr "સંગીત (_u)" + +#: ../src/goabackend/goaprovider.c:137 +msgid "_Photos" +msgstr "ફોટા (_P)" + +#: ../src/goabackend/goaprovider.c:142 +msgid "_Files" +msgstr "ફાઇલો (_F)" + +#: ../src/goabackend/goaprovider.c:147 +msgid "Network _Resources" +msgstr "નેટવર્ક સ્ત્રોત (_R)" + +#: ../src/goabackend/goaprovider.c:152 +msgid "_Read Later" +msgstr "પછીથી વાંચો (_R)" + +#: ../src/goabackend/goaprovider.c:157 +msgid "Prin_ters" +msgstr "પ્રિન્ટર (_t)" + +#: ../src/goabackend/goaprovider.c:162 +msgid "_Maps" +msgstr "નક્ષો (_M)" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:563 +msgid "Use for" +msgstr "તેની માટે વાપરો" + +#: ../src/goabackend/goaprovider.c:823 +msgid "Account is disabled" +msgstr "ખાતુ અક્ષમ છે" + +#: ../src/goabackend/goaprovider.c:846 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync એ પ્રકાર %s પર અમલીકરણ થયેલ નથી" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS ઉપલબ્ધ નથી" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail ઉપલબ્ધ નથી" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "ઇમેઇલ સરનામાંને પદચ્છેદન કરતી વખતે નિષ્ફળતા" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:260 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "ડોમેઇન વગર SMTP સત્તાધિકરણ કરી શકાતુ નથી" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:299 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "શ્રેયમાં smtp-password મળ્યુ ન હતુ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:310 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "પાસવર્ડ વગર SMTP સત્તાધિકરણ કરી શકાતુ નથી" + +#: ../src/goabackend/goasmtpauth.c:672 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "અજ્ઞાત સત્તાધિકરણ પદ્દતિ" + +#: ../src/goabackend/goatelepathyprovider.c:181 +#, c-format +msgid "Telepathy chat account not found" +msgstr "ટૅલિપથી વાર્તાલાપ ખાતુ મળ્યુ નથી" + +#: ../src/goabackend/goatelepathyprovider.c:396 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s માટે વપરાશકર્તા ઇન્ટરફેસને બનાવવામાં નિષ્ફળતા" + +#: ../src/goabackend/goatelepathyprovider.c:512 +msgid "Connection Settings" +msgstr "જોડાણ સુયોજનો" + +#: ../src/goabackend/goatelepathyprovider.c:618 +msgid "Personal Details" +msgstr "વ્યક્તિગત વિગતો" + +#: ../src/goabackend/goatelepathyprovider.c:624 +msgid "_OK" +msgstr "બરાબર (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:809 +msgid "Cannot save the connection parameters" +msgstr "જોડાણ પરિમાણનું સંગ્રહ કરી શકાતુ નથી" + +#: ../src/goabackend/goatelepathyprovider.c:822 +msgid "Cannot save your personal information on the server" +msgstr "સર્વર પર તમારી વ્યક્તિગત જાણકારીને સંગ્રહી શકાતુ નથી" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:848 +msgid "_Connection Settings" +msgstr "જોડાણ સુયોજનો (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:852 +msgid "_Personal Details" +msgstr "વ્યક્તિગત વિગતો (_P)" + +#: ../src/goabackend/goautils.c:120 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s ખાતુ પહેલેથી જ %s માટે અસ્તિત્વ ધરાવે છે" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:170 +#, c-format +msgid "%s account" +msgstr "%s ખાતુ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:228 +msgid "Failed to delete credentials from the keyring" +msgstr "કીરીંગમાંથી શ્રેયને કાઢતી વખતે નિષ્ફળતા" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:280 +msgid "Failed to retrieve credentials from the keyring" +msgstr "કીરીંગમાંથી શ્રેયને પ્રાપ્ત કરતી વખતે નિષ્ફળતા" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:290 +msgid "No credentials found in the keyring" +msgstr "કીરીંગમાં શ્રેય મળ્યુ નથી" + +#: ../src/goabackend/goautils.c:303 +msgid "Error parsing result obtained from the keyring: " +msgstr "કીરીંગમાંથી પ્રાપ્ત થયેલ પરિણામ પદચ્છેદન કરતી વખતે ભૂલ: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:346 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "ઓળખાણ %s માટે GOA %s શ્રેય" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:363 +msgid "Failed to store credentials in the keyring" +msgstr "કીરીંગમાં શ્રેયને સંગ્રહવામાં નિષ્ફળતા" + +#: ../src/goabackend/goautils.c:615 +msgid "Cannot resolve hostname" +msgstr "યજમાન નામ મળી શકતુ નથી" + +#: ../src/goabackend/goautils.c:619 +msgid "Cannot resolve proxy hostname" +msgstr "યજમાન નામ મળી શકતુ નથી" + +#: ../src/goabackend/goautils.c:624 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV અંતછેડો શોધી શકાતો નથી" + +#: ../src/goabackend/goautils.c:633 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "કોડ: %u — સર્વરમાંથી અનિચ્છનીય જવાબ" + +#: ../src/goabackend/goautils.c:649 +msgid "The signing certificate authority is not known." +msgstr "હસ્તાક્ષર થયેલ પ્રમાણપત્ર સત્તા જાણીતી નથી." + +#: ../src/goabackend/goautils.c:653 +msgid "" +"The certificate does not match the expected identity of the site that it was retrieved from." +msgstr "પ્રમાણપત્ર સાઇટની ઇચ્છિત ઓળખાણ સાથે બંધબેસતુ નથી કે જે કે જે તેમાંથી પ્રાપ્ત થયેલ હતુ." + +#: ../src/goabackend/goautils.c:658 +msgid "The certificate’s activation time is still in the future." +msgstr "પ્રમાણપત્રનું સક્રિયકરણ સમય હજુ ભવિષ્યમાં છે." + +#: ../src/goabackend/goautils.c:662 +msgid "The certificate has expired." +msgstr "પ્રમાણપત્ર નિવૃત્ત થયેલ છે." + +#: ../src/goabackend/goautils.c:666 +msgid "The certificate has been revoked." +msgstr "પ્રમાણપત્રને બોલાવી દેવામાં આવ્યુ છે." + +#: ../src/goabackend/goautils.c:670 +msgid "The certificate’s algorithm is considered insecure." +msgstr "પ્રમાણપત્રનો અલ્ગોરિધમ અસુરક્ષિત તરીકે નક્કી થયેલ છે." + +#: ../src/goabackend/goautils.c:674 +msgid "Invalid certificate." +msgstr "અયોગ્ય પ્રમાણપત્ર." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:709 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "શ્રેયમાં ઓળખાણ ‘%s’ સાથે %s મળ્યો નહિં" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” ને લાવી રહ્યા છે…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Microsoft Account" +msgstr "Microsoft ખાતુ" + +#: ../src/goaidentity/goaidentityservice.c:377 +msgid "initial secret passed before secret key exchange" +msgstr "ખાનગી કી બદલાય તે પહેલાં પ્રારંભિક ખાનગી જાણકારી પસાર થઇ ગઇ" + +#: ../src/goaidentity/goaidentityservice.c:573 +msgid "Initial secret key is invalid" +msgstr "પ્રારંભિક ખાનગી કી અયોગ્ય છે" + +#: ../src/goaidentity/goaidentityservice.c:1132 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "તમને પ્રવેશવા માટે નેટવર્ક ક્ષેત્ર %s ને અમુક જાણકારીની જરૂર છે." + +#: ../src/goaidentity/goakerberosidentity.c:276 ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "શ્રેય કેશમાં ઓળખી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "કેશમાં શ્રેયને ઓળખી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "કેશમાં ઓળખાણ શ્રેય મારફતે ખસેડી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "કેશમાં ઓળખાણ શ્રેય મારફતે ખસેડવાનું સમાપ્ત કરી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "સંકળાયેલ ઓળખાણ મળી નથી" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "શ્રેય કેશને બનાવી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "શ્રેય કેશનો પ્રારંભ કરી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "શ્રેય કેશમાં નવાં શ્રેયને સંગ્રહી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "ઓળખાણને તાજુ કરી શક્યા નહિં: પ્રવેશેલ નથી" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "ઓળખાણને તાજુ કરી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "ઓળખાણ %s ને તાજુ કરવા માટે નવાં શ્રેયને મેળવી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "ઓળખાણને ભૂંસી શક્યા નહિં: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "ઓળખાણને શોધી શક્યા નહિં" + +#: ../src/goaidentity/goakerberosidentitymanager.c:840 +msgid "Could not create credential cache for identity" +msgstr "ઓળખાણ માટે શ્રેય કેશને બનાવી શક્યા નહિં" + +#~| msgid "Did not find password with identity `%s' in credentials" +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "શ્રેયમાં ઓળખાણ ‘%s’ સાથે પાસવર્ડ મળ્યો નહિં" + +#~| msgid "Failed to find Account element" +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "GOA ક્લાયન્ટને પ્રારંભ કરવામાં નિષ્ફળતા" + +#~ msgid "Windows Live" +#~ msgstr "Windows જીવંત" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "સ્થિતિ 200 ની ઇચ્છા રાખેલ છે જ્યારે નામની માંગણી કરી રહ્યા હોય, તેને બદલે સ્થિતિ %d (%s) મળ્યુ" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Autodiscover ઘટકને શોધવામાં નિષ્ફળતા" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "સ્થિતિ 200 ની ઇચ્છા રાખેલ છે જ્યારે guid ની માંગણી કરી રહ્યા હોય, તેને બદલે સ્થિતિ %d (%s) મળ્યુ" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "શ્રેયમાં ઓળખાણ `%s' સાથે imap-password મળ્યો નહિં" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "વપરાશકર્તાનામ `%s' (%s, %d) સાથે imap-password મળ્યો નહિં: " + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "શ્રેયમાં ઓળખાણ`%s' સાથે smtp-password મળ્યો નહિં" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "વપરાશકર્તાનામ `%s' (%s, %d) સાથે અયોગ્ય પાસવર્ડ: " + +#~ msgid "Paste authorization code obtained from the authorization page:" +#~ msgstr "સત્તા પાનું માંથી પ્રાપ્ત થયેલ સત્તા કોડ ચોંટાડો:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "સત્તા પાનું માંથી પ્રાપ્ત થયેલ ટોકન ચોંટાડો:" + +#~ msgid "Time" +#~ msgstr "સમય" + +#~ msgid "Time to fire" +#~ msgstr "શરૂ કરવાનો સમય" + +#~ msgid "Online Accounts" +#~ msgstr "ઓનલાઇન ખાતા" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "સત્ર બસ પર org.gnome.OnlinesAccounts નામને પૂરુ પાડે છે" + +#~ msgid "An online account needs attention" +#~ msgstr "ઓનલાઇન ખાતાને ધ્યાનની જરૂર છે" + +#~ msgid "Open Online Accounts..." +#~ msgstr "ઓનલાઇન ખાતાઓ ખોલો..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "JSON તરીકે જવાબને પદચ્છેદન કરતા ભૂલ:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON માહિતીમાં id સભ્યને શોધાયુ નહિં" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON માહિતીમાં ઇમેલ સભ્યને શોધાયુ નહિં" + +#, fuzzy +#~| msgid "Didn't find username member in JSON data" +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "JSON માહિતીમાં વપરાશકર્તાનામ સભ્યને શોધાયુ નહિં" + +#, fuzzy +#~| msgid "Didn't find guid member in JSON data" +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "JSON માહિતીમાં guid સભ્યને શોધાયુ નહિં" + +#, fuzzy +#~| msgid "Didn't find username member in JSON data" +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "JSON માહિતીમાં વપરાશકર્તાનામ સભ્યને શોધાયુ નહિં" + +#, fuzzy +#~| msgid "Didn't find username member in JSON data" +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "JSON માહિતીમાં વપરાશકર્તાનામ સભ્યને શોધાયુ નહિં" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "બિન-JSON માહિતીમાં પ્રવેશ ટોકન મળ્યુ ન હતુ (_t)" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON માહિતીમાં access_token ને શોધાયુ નહિં" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON માહિતીમાં id_str સભ્યને શોધાયુ નહિં" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON માહિતીમાં screen_name સભ્યને શોધાયુ નહિં" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON માહિતીમાં ઇમેલ સભ્યનુ ખાતુ શોધાયુ નહિં" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON માહિતીમાં guid સભ્યને શોધાયુ નહિં" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON માહિતીમાં કિંમત સભ્યને શોધાયુ નહિં" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "JSON તરીકે વપરાશકર્તાકાર્ડ પ્રત્યુત્તરનુ પદચ્છેદન કરતી વખતે ભૂલ:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON માહિતીમાં રૂપરેખા સભ્યને શોધાયુ નહિં" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON માહિતીમાં ઉપનામ સભ્યને શોધાયુ નહિં" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "શ્રેય કિરીંગમાં મળ્યા નથી (%s, %d): " + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON માહિતીમાં માહિતી સભ્યને શોધાયુ નહિં" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "કીરીંગમાં શ્રેયને સંગ્રહ કરતી વખતે ભૂલ (%s, %d): " + +#~ msgid "Domain Administrator Login" +#~ msgstr "ડોમેઇન સંચાલક પ્રવેશ" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be enrolled in the " +#~ "domain. Please have your network administrator type their domain password here." +#~ msgstr "" +#~ "આ એન્ટરપ્રાઇઝ ઓળખને વાપરવા ક્રમમાં, કમ્પ્યૂટરને ડોમેઇનમાં નોંધણી કરવાની જરૂર છે. મહેરબાની કરીને તમારાં " +#~ "નેટવર્ક સંચાલક પ્રકાર અહિંયા અહિંયા તેનાં ડોમેઇન પાસવર્ડમાં રાખો." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be enrolled in the " +#~ "domain. Please have your network administrator type their domain username here." +#~ msgstr "" +#~ "આ એન્ટરપ્રાઇઝ ઓળખને વાપરવા ક્રમમાં, કમ્પ્યૂટરને ડોમેઇનમાં નોંધણી કરવાની જરૂર છે. મહેરબાની કરીને તમારાં " +#~ "નેટવર્ક સંચાલક પ્રકાર અહિંયા અહિંયા તેનાં ડોમેઇન વપરાશકર્તા નામમાં રાખો." + +#~ msgid "No such domain or realm found" +#~ msgstr "આવુ કોઈ ડોમેઈન અથવા ક્ષેત્ર મળ્યુ નથી" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%s ડોમેઇન પર %s તરીકે પ્રવેશી શકાતુ નથી" + +#~ msgid "Invalid password, please try again" +#~ msgstr "અયોગ્ય પાસવર્ડ, મહેરબાની કરીને ફરી પ્રયત્ન કરો" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "%s ડોમેઇનમાં જોડાઇ શકાયુ નહિં: %s" + +#~ msgid "Chat" +#~ msgstr "વાર્તાલાપ" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "નવું Microsoft Exchange ખાતુ" + +#~ msgid "Add %s" +#~ msgstr "%s ને ઉમેરો" + +#~ msgid "Refresh %s" +#~ msgstr "%s ને તાજુ કરો" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON માહિતીમાં નામ સભ્યને શોધાયુ નહિં" + +#~ msgid "Email Address" +#~ msgstr "ઇમેલ સરનામું" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "ત્યાં પહેલેથી જ ઓળખાણ %s માટે ખાતુ છે" diff --git a/po/he.gmo b/po/he.gmo new file mode 100644 index 0000000..e9197e4 Binary files /dev/null and b/po/he.gmo differ diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..e3f2b61 --- /dev/null +++ b/po/he.po @@ -0,0 +1,1054 @@ +# Hebrew translations for PACKAGE package. +# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Yaron Shahrabani , 2011, 2012. +# Yosef Or Boczko , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: Gnome Online Account\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-11-27 11:35+0200\n" +"PO-Revision-Date: 2017-11-27 11:46+0200\n" +"Last-Translator: Yosef Or Boczko \n" +"Language-Team: עברית <>\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Hebrew\n" +"X-Poedit-Country: ISRAEL\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "List of providers that are allowed to be loaded" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "חיפוש הספק נכשל עבור: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "המאפיין IsLocked הוגדר עבור החשבון" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "המאפיין ProviderType לא הוגדר עבור החשבון" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "ניתוח תגובת ה־XML של הגילוי האוטומטי נכשל" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "החיפוש אחר הרכיב „%s“ נכשל" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "החיפוש אחר ASUrl ו־OABUrl בתגובת הגילוי האוטומטי נכשל" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "ססמה שגויה עם שם המשתמש „%s“‏ (%s,‏ %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_דוא״ל" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:706 +#: src/goabackend/goaimapsmtpprovider.c:726 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_ססמה" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "הת_אמה אישית" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:705 +#: src/goabackend/goaimapsmtpprovider.c:725 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "שם מ_שתמש" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_שרת" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:738 +#: src/goabackend/goakerberosprovider.c:570 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:552 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_ביטול" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:571 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "הת_חברות" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:754 +#: src/goabackend/goakerberosprovider.c:586 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "בהתחברות…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:916 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaimapsmtpprovider.c:1312 +#: src/goabackend/goaimapsmtpprovider.c:1388 +#: src/goabackend/goakerberosprovider.c:877 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:671 +#: src/goabackend/goaowncloudprovider.c:888 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "הדו־שיח נזנח" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:984 +#: src/goabackend/goaimapsmtpprovider.c:1081 +#: src/goabackend/goaimapsmtpprovider.c:1339 +#: src/goabackend/goaimapsmtpprovider.c:1416 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:713 +#: src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "תיבת הדו־שיח נזנח (%s,‏ %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:997 +#: src/goabackend/goaimapsmtpprovider.c:1094 +#: src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "הת_עלמות" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:1002 +#: src/goabackend/goaimapsmtpprovider.c:1099 +#: src/goabackend/goaimapsmtpprovider.c:1358 +#: src/goabackend/goaimapsmtpprovider.c:1435 +#: src/goabackend/goakerberosprovider.c:957 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_ניסיון חוזר" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "אירעה שגיאה בעת ההתחברות לשרת Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "הציפייה הייתה למצב 200 בעת בקשת הזהות שלך, במקום התקבל המצב %d ‏(%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "לא ניתן לנתח את הבקשה" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "שעון המערכת שלך מכוון באופן שגוי. יש לבדוק את הגדרות התאריך והשעה שלך." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:89 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "השירות אינו זמין" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:109 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "האימות נכשל" + +#: src/goabackend/goaimapauthlogin.c:134 +msgid "Server does not support PLAIN" +msgstr "השרת אינו תומך ב־PLAIN" + +#: src/goabackend/goaimapauthlogin.c:186 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "השרת אינו תומך ב־STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP ו־SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:364 +#: src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "שגיאה ב־%s עם שם המשתמש „%s“‏ (%s,‏ %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "ה_צפנה" + +#: src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "אין" + +#: src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS לאחר התחברות" + +#: src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL בפתחה מוגדרת" + +#: src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_שם" + +#: src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "ש_רת IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "_שרת SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:739 +#: src/goabackend/goaimapsmtpprovider.c:1023 +#: src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_קדימה" + +#: src/goabackend/goaimapsmtpprovider.c:1007 +#: src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "שגיאה בהתחברות לשרת ה־IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1104 +#: src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "שגיאה בהתחברות לשרת ה־SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "דוא״ל" + +#: src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "שם" + +#: src/goabackend/goaimapsmtpprovider.c:1555 +#: src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1570 +#: src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "כניסה ארגונית (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:227 +msgid "Ticketing is disabled for account" +msgstr "כרטוס מושבת עבור החשבון" + +#: src/goabackend/goakerberosprovider.c:252 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "לא נמצאו אישורים המיועדים למשאב „%s“ במאגר המפתחות" + +#: src/goabackend/goakerberosprovider.c:265 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "לא נמצאה ססמה המיועדת למשאב „%s“ באישורים" + +#: src/goabackend/goakerberosprovider.c:565 +msgid "_Principal" +msgstr "_עיקרי" + +#: src/goabackend/goakerberosprovider.c:799 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "כניסה לתחום" + +#: src/goabackend/goakerberosprovider.c:800 +msgid "Please enter your password below." +msgstr "נא להזין את הססמה שלך להלן." + +#: src/goabackend/goakerberosprovider.c:801 +msgid "Remember this password" +msgstr "שמירת ססמה זו" + +#: src/goabackend/goakerberosprovider.c:952 +msgid "Error connecting to enterprise identity server" +msgstr "אירעה שגיאה בעת ההתחברות לשרת הזיהוי הארגוני" + +#: src/goabackend/goakerberosprovider.c:1290 +msgid "Identity service returned invalid key" +msgstr "שירות הזהות החזיר מפתח שגוי" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "שגיאה בהתחברות ל־Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "שרת תוכן" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "תוכן פרטי ניתן להוספה ליישום שלך דרך חשבון שרת תוכן." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "שרתי תוכן זמינים" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "לא נמצאו שרתי תוכן" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "הציפייה הייתה למצב 200 בעת בקשת אסימון גישה, במקום התקבל המצב %d ‏(%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "תגובה לאימות:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "תגובה לאימות: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "שגיאה בקבלת אסימון לגישה:" + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "שגיאה בקבלת הזהות:" + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "התקבלה בקשת כניסה בתור %s, אך הכניסה בוצעה בשם %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "פרטי הגישה אינם מכילים access_token (אסימון גישה)" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "רענון אסימון הגישה נכשל (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "הכותרות access_token או access_token_secret חסרות בתגובה" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "שגיאה בקבלת אסימון הגישה:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "הציפייה הייתה למצב 200 בעת קבלת אסימון בקשה, במקום התקבל המצב %d ‏(%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "הכותרות request_token או request_token_secret חסרות בתגובה" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "פרטי הגישה אינם מכילים access_token או access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:736 +#: src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "אירעה שגיאה בהתחברות לשרת ה־ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "כיס" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "אין שם משתמש או מפתח _גישה" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_דוא״ל" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "_לוח שנה" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_אנשי קשר" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_שיחה" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "מ_סמכים" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "_מוזיקה" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_תמונות" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_קבצים" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "משאבי _רשת" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "א_קרא אחר כך" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_מדפסות" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_מפות" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_לעשות" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "שימוש לצורך" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "חשבון זה מושבת" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "שגיאה לא ידועה" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "התכונה ensure_credentials_sync אינה מיושמת בסוג %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS אינו זמין" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "מנגנון האימות אינו ידוע" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "חשבון צ׳אט של Telepathy לא נמצא" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "יצירת מנשק משתמש עבור %s נכשלה" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "הגדרות חיבור" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "פרטים אישיים" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_אישור" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "לא ניתן לשמור את מאפייני החיבור" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "לא ניתן לשמור את הפרטים האישיים שלך בשרת" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "ה_גדרות חיבור" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_פרטים אישיים" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "רשימת מטלות" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "אירעה שגיאה בהתחברות אל החשבון" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "האישורים פגי תוקף" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "התחברות על מנת לאפשר חשבון זה." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "ה_תחברות" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "חשבון %s כבר קיים עבור %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "חשבון %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "מחיקת פרטי הזיהוי מקבוצת המפתחות נכשלה" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "קבלת פרטי הגישה מקבוצת המפתחות נכשלה" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "לא נמצאו מאפייני זהות בקבוצת המפתחות" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "אירע כשל בעת ניתוח התוצאה שהתקבלה מקבוצת המפתחות:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "פרטי הגישה %s של מנהל החשבונות המקוונים של GNOME עבור הזהות %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "אחסון פרטי הגישה בקבוצת המפתחות נכשל" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "לא ניתן לזהות את שם המארח" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "לא ניתן לזהות את שם מארח ה־proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "לא ניתן למצוא נקודת קצה WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "קוד: %u — תשובה בלתי צפויה מהשרת" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "הרשות שחתמה על האישור אינה ידועה." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "האישור לא תואם לזהות הצפויה מהאתר ממנו הוא הגיע." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "זמן ההפעלה של אישור זה יתרחש בעתיד." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "פג תוקפו של האישור." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "האישור נשלל." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "האלגוריתם של האישור הזה נחשב לבלתי מאובטח." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "אישור שגוי." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "לא נמצא %s עם הזהות „%s“ בפרטי הזיהוי" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "„%s“ בטעינה…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "הקוד הסודי ההתחלתי שגוי" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "תחום הרשת %s זקוק למידע נוסף כדי להכניס אותך." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "לא ניתן למצוא את הזהות במטמון פרטי הזיהוי: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "לא ניתן למצוא את פרטי הזהות במטמון: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "לא ניתן לחקור את פרטי גישת הזהויות במטמון: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "לא ניתן לסיים את חקירת פרטי גישת הזהויות במטמון: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "לא נמצא זיהוי משויך" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "לא ניתן ליצור מטמון פרטי זיהוי: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "לא ניתן לאתחל את מטמון פרטי הזיהוי: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "לא ניתן לאחסן את פרטי הזיהוי החדשים באוגר פרטי הזיהוי: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "לא ניתן לחדש את הזהות: לא נכנסת" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "לא ניתן לחדש את הזהות: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "לא ניתן לקבל פרטי זיהוי חדשים כדי לחדש את הזהות %s:‏ " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "לא ניתן למחוק את הזהות: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "לא נמצאה הזהות" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "לא ניתן ליצור מאגר פרטי זיהוי לזהות" + +#~ msgid "_Domain" +#~ msgstr "מת_חם" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "שם התחום או המתחם הארגוני" + +#~ msgid "The domain is not valid" +#~ msgstr "שם המתחם שגוי" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail אינו זמין" + +#~ msgid "Failed to parse email address" +#~ msgstr "פענוח כתובת הדוא״ל נכשל" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "לא ניתן לבצע אימות SMTP ללא שם מתחם" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "לא ניתן למצוא את smtp-password בין פרטי האימות" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "לא ניתן לבצע אימות SMTP ללא ססמה" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "הסוד הראשוני עבר לפני החלפת מפתחות הסוד" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "הפעלת לקוח ה־GOA נכשלה" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "לא נמצאה ססמה עם הזהות „%s“ בפרטי הזיהוי" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "הציפייה הייתה למצב 200 בעת בקשת השם, במקום התקבל המצב %d ‏(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "נא להדביק את קוד האימות שהתקבל מדף האימות:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "האסימון שהודבק התקבל מדף האימות:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "זמן" + +#~ msgid "Time to fire" +#~ msgstr "הגיע זמן לפעול" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "החיפוש אחר רכיב הגילוי האוטומטי נכשל" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "הציפייה הייתה למצב 200 בעת בקשת מזהה הקבוצה, במקום התקבל המצב %d ‏(%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "לא נמצאה imap-password עם הזהות `%s' בפרטי הזיהוי" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "imap-password שגויה עם שם המשתמש '%s`‏ (%s,‏ %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "לא נמצאה smtp-password עם הזהות `%s' בפרטי זיהוי" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "הערך smtp-password שגוי עם שם המשתמש `%s'‏ (%s,‏ %d): " + +#~ msgid "Online Accounts" +#~ msgstr "חשבונות מקוונים" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "מספקת את השם org.gnome.OnlinesAccounts לאפיק ההפעלה" + +#~ msgid "An online account needs attention" +#~ msgstr "חשבון מקוון זקוק לתשומת לב" + +#~ msgid "Open Online Accounts..." +#~ msgstr "פתיחת חשבונות מקוונים..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "שגיאה בפענוח התגובה בתור JSON:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "לא נמצא חבר מזהה בנתוני ה־JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "לא נמצא חבר כתובת דוא״ל בנתוני ה־JSON" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "לא נמצא חבר שם משתמש בנתוני ה־JSON" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "לא נמצא חבר מזהה קבוצה ייחודי (user.id) בנתוני ה־JSON" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "לא נמצא חבר שם משתמש (user.username) בנתוני ה־JSON" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "לא נמצא חבר שם משתמש (user.username._content) בנתוני ה־JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "לא נמצא access_token (אסימון גישה) בנתונים שאינם JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "לא נמצא access_token (אסימון גישה) בנתוני ה־JSON" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "לא נמצא חבר מחרוזת זיהוי (id_str) בנתוני ה־JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "לא נמצא חבר שם מסך (screen_name) בנתוני ה־JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "לא נמצא חבר כתובת דוא״ל החשבון בנתוני ה־JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "לא נמצא חבר מזהה קבוצה ייחודי בנתוני ה־JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "לא נמצא חבר ערך בנתוני ה־JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "אירעה שגיאה בעת ניתוח תגובת כרטיס המשתמש בתור JSON:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "לא נמצא חבר פרופיל בנתוני ה־JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "לא נמצא חבר כינוי בנתוני ה־JSON" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "פרטי הגישה לא נמצאו בקבוצת המפתחות (%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "שגיאה באחסון פרטי הגישה בקבוצת המפתחות (%s, %d): " + +#~ msgid "Domain Administrator Login" +#~ msgstr "כניסת מנהל המתחם" + +#~ msgid "Could not find supported credentials" +#~ msgstr "לא ניתן למצוא את פרטי הזיהוי הנתמכים" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ " על מנת להשתמש בזהות ארגונית זו, יש לרשום את המחשב במתחם. נא לבקש ממנהל " +#~ "הרשת להקליד את ססמתו במתחם להלן. " + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "על מנת להשתמש בזהות ארגונית זו, יש לרשום את המחשב במתחם. נא לבקש ממנהל " +#~ "הרשת להקליד את שם המשתמש שלו במתחם להלן." + +#~ msgid "No such domain or realm found" +#~ msgstr "לא נמצא כזה תחום או מתחם" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "לא ניתן להתחבר בשם %s למתחם %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "ססמה שגויה, נא לנסות שוב" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "לא ניתן להתחבר למתחם %s:‏ %s" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "חשבון Microsoft Exchange חדש" + +#~ msgid "Chat" +#~ msgstr "צ׳אט" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "לא נמצא חבר נתונים בנתוני ה־JSON" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "כניסה ארגונית חדשה (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "הוספת %s" + +#~ msgid "Refresh %s" +#~ msgstr "רענון %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "לא נמצא חבר שם בנתוני ה־JSON" + +#~ msgid "Email Address" +#~ msgstr "כתובת דוא״ל" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "כבר יש חשבון עבור הזהות %s" diff --git a/po/hi.gmo b/po/hi.gmo new file mode 100644 index 0000000..c65060c Binary files /dev/null and b/po/hi.gmo differ diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 0000000..90b3f1c --- /dev/null +++ b/po/hi.po @@ -0,0 +1,995 @@ +# Hindi translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# chandan kumar , 2012, 2013. +# rajesh , 2014. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-09-19 19:07+0000\n" +"PO-Revision-Date: 2014-09-21 10:08+0630\n" +"Last-Translator: rajesh \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "प्रदाता खोजने में विफल:%s के लिए" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "ProviderType गुण खाते के लिए सेट नहीं है" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +#| msgid "Code: %u - Unexpected response from server" +msgid "Code: %u — Unexpected response from server" +msgstr "कोड: %u — सर्वर से अप्रत्याशित अनुक्रिया" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "autodiscover एक्सएमएल प्रतिक्रिया पार्स करने में विफल " + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +#| msgid "Failed to find Response element" +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’तत्व को खोजने में असफल" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "autodiscover प्रतिक्रिया में ASUrl और OABUrl खोजने में विफल" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "माइक्रोसॉफ्ट एक्सचेंज" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "उपयोगकर्ता नाम ‘%s’ के साथ क्रेडेंशियल में पासवर्ड नहीं मिला" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "अवैध कूटशब्द उपयोक्तानाम ‘%s’ (%s, %d) के साथ:" + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "ई - मेल (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "कूटशब्द (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "मनपसंद (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "उपभोक्ता नाम (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "सर्वर (_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "रद्द करें (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +#| msgid "Connecting…" +msgid "C_onnect" +msgstr "कनेक्ट (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "कनेक्ट कर रहा है…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "संवाद को खारिज कर दिया गया था" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "संवाद को खारिज कर दिया गया था (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "अनदेखा करें (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "फिर से कोशिश करें (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "माइक्रोसॉफ्ट एक्सचेंज सर्वर से कनेक्ट करने में त्रुटि" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "के लिए प्रयोग करें" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "मेल (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "पंचांग (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "सम्पर्क (_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "फेसबुक" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +#| msgid "" +#| "Expected status 200 when requesting user id, instead got status %d (%s)" +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"उम्मीद की गयी स्थिति 200 जब पहचान के लिए अनुरोध किया, के बजाय स्थिति %d (%s) " +"पाया" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "अनुक्रिया विश्लेषित नहीं कर सका" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "बातचीत (_h)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "फोटो (_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "नक्शे (_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "फ्लिकर" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"अपने सिस्टम का समय अमान्य है. अपने दिनांक और समय सेटिंग्स की जाँच करें." + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "गूगल" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "दस्तावेज़ (_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +msgid "Prin_ters" +msgstr "मुद्रक (_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "सेव उपलब्ध नहीं है" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "सत्यापन असफल" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "सर्वर PLAIN का समर्थन नहीं करता" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "सर्वर STARTTLS का समर्थन नहीं करता" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP और SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "%s को ‘%s’ पहचान के साथ क्रेडेंशियल नहीं ढूँढ़ सका" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "अवैध %s उपयोक्तानाम ‘%s’ (%s, %d) के साथ:" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "गोपन (_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "कुछ नहीं" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "जोड़ने के बाद STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "समर्पित पोर्ट पर SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "नाम (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "IMAP सर्वर (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "SMTP सर्वर (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "आगे (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "IMAP सर्वर से कनेक्ट करने में त्रुटि" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "SMTP सर्वर से कनेक्ट करने में त्रुटि" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "ई-मेल " + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "नाम" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "उद्यम लॉगिन (कर्बेरॉस)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "पहचान सेवा अवैध कुंजी लौटे" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +#| msgid "Could not find saved credentials for principal `%s' in keyring" +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "प्रिंसिपल के लिए ‘%s’ कीरिंग में सहेजा नहीं क्रेडेंशियल्स पा सका" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +#| msgid "Did not find password for principal `%s' in credentials" +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "प्रिंसिपल के लिए ‘%s’के लिए पहचान में नहीं शब्दकूट मिला" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "डोमेन (_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "एंटरप्राइज डोमेन नाम या रियल्म नाम" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "दायरे में प्रवेश करें" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "कृपया अपना पासवर्ड नीचे भरें" + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "यह पासवर्ड याद रखें" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "डोमेन मान्य नहीं है" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "उद्यम पहचान सर्वर से कनेक्ट करने में त्रुटि" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "संजाल संसाधन" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "IMAP _Server" +msgid "Media Server" +msgstr "मीडिया सर्वर" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"मीडिया सर्वर खाता के द्वारा निजी सामग्री को आपके अनुप्रयोग पर जोड़ा जा सकता " +"है." + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "उपलब्ध मीडिया सर्वर" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "कोई मीडिया नहीं मिला" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"स्थिति की उम्मीद 200 जब पहुँच टोकन का अनुरोध किया है, बजाय स्थिति %d (%s) " +"पाया." + +#: ../src/goabackend/goaoauth2provider.c:888 +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: " +msgstr "सत्यापन प्रतिक्रिया" + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: %s" +msgstr "सत्यापन प्रतिक्रिया: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "पहुँच टोकन प्राप्त करने में त्रुटि:" + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "पहचान पाने में त्रुटि:" + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +#| msgid "Was asked to login as %s, but logged in as %s" +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"%s के रूप में प्रवेश करने के लिए कहा गया था, लेकिन %s के रूप में लॉग इन हुआ" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "क्रेडेंशियल में access_token शामिल नहीं है " + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "पहुँच टोकन को ताज़ा करने में विफल (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "प्रतिक्रिया में access_token या access_token_secret हेडर लापता" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "अनुरोध टोकन प्राप्त करने में त्रुटि: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"एक अनुरोध टोकन प्राप्त करने के लिए 200 स्थिति की उम्मीद है, इसके अलावा " +"स्थिति %d (%s) " +"प्राप्त हुआ." + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "प्रतिक्रिया में request_token या request_token_secret हेडर लापता" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "क्रेडेंशियल में access_token या access_token_secret शामिल नहीं है" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud सर्वर से कनेक्ट करने में त्रुटि" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "फ़ाइलें (_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "पॉकेट" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "कोई उपयोक्तानाम या पहुँच टोकन नहीं (_t)" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "बाद में पढ़ें (_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync प्रकार %s पर लागू नहीं है" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS अनुपलब्ध" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail उपलब्ध नहीं" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "ई-मेल पता पार्स करने में विफल " + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a domain" +msgid "Cannot do SMTP authentication without a domain" +msgstr "SMTP सत्यापन एक डोमेन के बिना नहीं कर सकते" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "साख में SMTP पासवर्ड नहीं मिला" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a password" +msgid "Cannot do SMTP authentication without a password" +msgstr "कूटशब्द के बिना SMTP सत्यापन नहीं कर सकते" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +#| msgid "Authentication failed" +msgid "Unknown authentication mechanism" +msgstr "अज्ञात सत्यापन यांत्रिकी" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "टेलिपैथी चैट खाता नहीं मिला" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +#| msgid "Failed to find Account element" +msgid "Failed to initialize a GOA client" +msgstr "गोवा क्लायंट आरंभ करने में विफल" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +#| msgid "Failed to find a provider for: %s" +msgid "Failed to create a user interface for %s" +msgstr "%s के लिए उपयोक्ता अंतरफलक बनाने में विफल" + +#: ../src/goabackend/goatelepathyprovider.c:535 +#| msgid "Connecting…" +msgid "Connection Settings" +msgstr "कनेक्शन सेटिंग" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "निजी विवरण" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "ठीक (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "कनेक्शन पैरामीटर नहीं सहेज सकता है" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "सर्वर पर निजी सूचना सहेज नहीं सकता है" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +#| msgid "Connecting…" +msgid "_Connection Settings" +msgstr "कनेक्शन सेटिंग (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "निजी विवरण (_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s खाता %s के लिए पहले से ही मौजूद है" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s खाता" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "कीरिंग से क्रेडेंशियल को हटाने में विफल" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "कीरिंग से क्रेडेंशियल को पुनः प्राप्त करने में विफल" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "कोई क्रेडेंशियल्स कीरिंग में नहीं पाया" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "पार्सिंग त्रुटि परिणाम कीरिंग से प्राप्त:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "पहचान %s के लिए गोवा %s क्रेडेंशियल" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "कीरिंग में क्रेडेंशियल को भंडारित में विफल" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "प्रमाणपत्र प्राधिकारी पर हस्ताक्षर करने नहीं जाना जाता है." + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"प्रमाणपत्र साइट की उम्मीद की पहचान है कि यह से पुनः प्राप्त किया गया था मेल " +"नहीं खाता." + +#: ../src/goabackend/goautils.c:545 +#| msgid "The certificate's activation time is still in the future." +msgid "The certificate’s activation time is still in the future." +msgstr "प्रमाणपत्र सक्रियकरण समय भविष्य में अब भी है." + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "प्रमाणपत्र की मियाद ख़त्म हो चुकी है." + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "प्रमाणपत्र रद्द कर दिया गया है." + +#: ../src/goabackend/goautils.c:557 +#| msgid "The certificate's algorithm is considered insecure." +msgid "The certificate’s algorithm is considered insecure." +msgstr "प्रमाणपत्र एल्गोरिथ्म असुरक्षित माना जाता है." + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "अवैध प्रमाणपत्र" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "लोड किया जा रहा है “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "विंडोज लाइव" + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "याहू" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"उम्मीद की गयी स्थिति 200 जब नाम के लिए अनुरोध किया, के बजाय स्थिति %d (%s) " +"पाया" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "प्रारंभिक गुप्त रहस्य कुंजी विनिमय से पहले पारित" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "प्रारंभिक गुप्त कुंजी अमान्य है" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "नेटवर्क दायरे %s कुछ जानकारी की जरूरत है अंदर आप हस्ताक्षर" + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "प्रमाण कैश में पहचान नहीं मिल सका: %k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "कैश में पहचान पहचान नहीं पा सका: %k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "कैश में पहचान क्रेडेंशियल्स के माध्यम से झारना नहीं किया जा सका: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"Sifting कैश में पहचान क्रेडेंशियल के माध्यम से नहीं खत्म कर सकता है: %k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "नहीं जुड़े पहचान पाया" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "प्रमाण कैश नहीं बना सका: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "कैश प्रारंभ नहीं किया जा सका क्रेडेंशियल्स: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "श्रेय कैश में नया श्रेय भंडारित नहीं कर सकते: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "पहचान का नवीनीकरण नहीं किया जा सका: साइन इन नहीं" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "पहचान का नवीनीकरण नहीं किया जा सका: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "पहचान %s का नवीनीकरण कराने के लिए नया साख नहीं मिला : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "पहचान मिटा नहीं सका: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "पहचान मिटा नहीं सका" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "पहचान के लिए प्रमाण कैश नहीं बना सका" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Autodiscover तत्व को खोजने में असफल" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "उम्मीद की गयी स्थिति 200 जब guid के लिए अनुरोध किया, के बजाय स्थिति %d (%s) पाया" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "पहचान `%s'के साथ क्रेडेंशियल्स में imap पासवर्ड नहीं मिला" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "अवैध imap-कूटशब्द उपयोगकर्ता नाम `%s' (%s, %d) के साथ: " + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "उपयोगकर्ता नाम `%s' के साथ क्रेडेंशियल में smtp-पासवर्ड नहीं मिला " + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "उपयोगकर्ता नाम `%s' (%s, %d) के साथ क्रेडेंशियल में smtp-पासवर्ड नहीं मिला" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "पेस्ट प्राधिकरण कोड प्राधिकरण पृष्ठ से प्राप्त हुआ:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr " प्राधिकरण पृष्ठ से प्राप्त पेस्ट टोकन." + +#~ msgid "Time" +#~ msgstr "समय" + +#~ msgid "Time to fire" +#~ msgstr "आग करने के लिए समय" + +#~ msgid "Online Accounts" +#~ msgstr "ऑनलाइन खाता" + +#~ msgid "An online account needs attention" +#~ msgstr "एक ऑनलाइन खाते पर ध्यान देने की जरूरत है" + +#~ msgid "Open Online Accounts..." +#~ msgstr "ऑनलाइन खाता खोलें ..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "कीरिंग में क्रेडेंशियल नहीं मिला (%s, %d): " + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "नई माइक्रोसॉफ्ट एक्सचेंज खाता" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "माइक्रोसॉफ्ट एक्सचेंज खाता" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "JSON के रूप में त्रुटि पार्सिंग प्रतिक्रिया:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON डेटा में आईडी सदस्य नहीं मिला" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON डेटा में ईमेल सदस्य नहीं मिला" + +#~ msgid "Chat" +#~ msgstr "गपशप" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON डेटा में डेटा सदस्य नहीं मिला" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON डेटा में खाता ईमेल सदस्य नहीं मिला" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr " गैर JSON डेटा में access_token नही मिला" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr " JSON डेटा में access_token नही मिला" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "कीरिंग के क्रेडेंशियल भंडारण में त्रुटि (%s, %d): " + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON डेटा में सदस्य id_str नहीं मिला." + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON डेटा में सदस्य screen_name नहीं मिला है" + +#~ msgid "Add %s" +#~ msgstr "जोड़ें %s" + +#~ msgid "Refresh %s" +#~ msgstr "ताज़ा करें %s" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON डेटा में guid सदस्य नहीं मिला" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON डेटा में मान सदस्य नहीं मिला" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "JSON के रूप में usercard प्रतिक्रिया पार्स करने में त्रुटि:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON डेटा में प्रोफ़ाइल सदस्य नहीं मिला" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON डेटा में उपनाम सदस्य नहीं मिला" diff --git a/po/hr.gmo b/po/hr.gmo new file mode 100644 index 0000000..430e460 Binary files /dev/null and b/po/hr.gmo differ diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..1e7af81 --- /dev/null +++ b/po/hr.po @@ -0,0 +1,909 @@ +# Croatian translation for gnome-online-accounts +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the gnome-online-accounts package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-04 22:22+0000\n" +"PO-Revision-Date: 2018-02-17 00:49+0100\n" +"Last-Translator: gogo \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2017-03-15 11:08+0000\n" +"X-Generator: Poedit 2.0.6\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Popis pružatelja usluga kojima je dopušteno učitavanje" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Popis izraza koji predstavljaju pružatelje usluga kojima je dopušteno " +"učitavanje (zadano: 'all'). Ovo se procjenjuje samo pri pokretanju." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Neuspješni pronalazak pružatelja usluge za:%s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "IsLocked svojstvo je postavljeno za ovaj račun" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Svojstvo pružatelja usluge nije postavljeno za račun" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Nemoguća obrada automatskog otkrivanja odgovora XML-a" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Nemoguć pronalazak “%s” elementa" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Nemoguć pronalazak ASUrl i OABUrl u odgovoru automatskog otkrivanja" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Neispravna lozinka korisničkog imena “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-pošta" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Lozinka" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Prilagođeno" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Korisničko _ime" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Poslužitelj" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Odustani" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "P_oveži se" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Povezivanje…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dijalog je odbijen" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dijalog je odbačen (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Zanemari" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Pokušaj ponovno" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Greška povezivanja s Microsoft Exchange poslužiteljem" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Očekivano stanje 200 kada se zahtijeva vaš identitet, umjesto dobivenog " +"stanja %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Nemoguća obrada odgovora" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Vaše vrijeme sustava je neispravno. Provjerite svoje postavke datuma i " +"vremena." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Usluga nije dostupna" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Ovjera nije uspjela" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Poslužitelj ne podržava PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Poslužitelj ne podržava STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP i SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Neispravno %s s korisničkim imenom “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Šifriranje" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ništa" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "Pokreni TLS nakon povezivanja" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL na dodjeljenom ulazu" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Naziv" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP _poslužitelj" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP _poslužitelj" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Naprijed" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Greška povezivanja s IMAP poslužiteljem" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Greška povezivanja sa SMTP poslužiteljem" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-pošta" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Naziv" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Prijava za tvrtke (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Stvaranje kartona za ovaj račun je onemogućeno" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Nemoguće spremanje vjerodajnica za glavni “%s” u skup ključeva" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Lozinka nije pronađena za glavni \"%s\" u vjerodajnicama" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Glavni" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Radnja je prekinuta" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Prijavi se s imenom" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Upišite ispod svoju lozinku." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Zapamti ovu lozinku" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Greška povezivanja s poslužiteljem" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Usluga identiteta vratila je neispravan ključ" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Greška povezivanja na Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Medijski poslužitelj" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Osobni sadržaj može se dodati u vašu aplikaciju putem računa medijskog " +"poslužitelja." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Dostupni medijski poslužitelji" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nema pronađenih medijskih poslužitelja" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Očekivano stanje 200 je pri zahtjevu pristupnog tokena, umjesto toga je " +"stanje %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Odgovor ovjere: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Odgovor ovjere: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Greška pri dobivanju pristupnog tokena: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Greška pti dobivanju identiteta: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Je upitan da se prijavi kao %s, ali je prijavljen kao %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Vjerodajnice ne sadrže access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Neuspjelo osvježavanje pristupnog tokena (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Nedostaje access_token ili access_token_secret zaglavlje u odgovoru" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Greška pri dobivanju zahtjeva tokena: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Očekivano stanje 200 je za dobivanje zahtjeva tokena, umjesto toga je stanje " +"%d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Nedostaje request_token ili request_token_secret zaglavlje u odgovoru" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Vjerodajnice ne sadrže access_token ili access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Greška pri povezivanju s ownCloud poslužiteljem" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nemo korisničkog imena ili access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Poštu" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_ndar" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontakte" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Č_avrljanje" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenti" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "G_lazba" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografije" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Datoteke" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Mrežni _resursi" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Pročitaj kasnije" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Pis_ači" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mape" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Z_a napraviti" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Koristi se za" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Račun je onemogućen" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Nepoznata greška" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync nije implementiran u vrstu %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS nedostupan" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Nepoznat mehanizam ovjere" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Telepathy račun čavrljanja nije pronađen" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Neuspjelo stvaranje korisničkog sučelja za %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Postavke povezivanja" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Osobne pojedinosti" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_U redu" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Neuspjelo spremanje parametara povezivanja" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Neuspjelo spremanje vaših osobnih informacija na poslužitelju" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Postavke povezivanja" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Osobne pojedinosti" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Greška prijave na račun" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Vjerodajnica je istekla" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Prijavi se za omogućavanje ovog računa." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Prijavi se" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Račun %s za %s već postoji" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s račun" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Neuspjelo brisanje vjerodajnica iz skupa ključeva" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Neuspjelo primanje vjerodajnica iz skupa ključeva" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nema pronađenih vjerodajnica u skupu ključeva" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Greška obrade rezultata dobivenih iz skupa ključeva: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s vjerodajnice za identitet %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Neuspjelo spremanje vjerodajnica u skup ključeva" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Nemoguće razrješavanje naziva računala" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Nemoguće razrješavanje proxyja računala" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Nemoguć pronalazak WebDAV završne točke" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kôd: %u — Neočekivan odgovor s poslužitelja" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Vjerodajnica autorizacije prijave nije poznata." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Vjerodajnica se ne podudara s očekivanim identitetom stranice s kojeg je " +"primljena." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Vrijeme aktivacije vjerodajnice još nije počelo." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Vjerodajnica je istekla." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Vjerodajnica je opozvana." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algoritam vjerodajnice se smatra nesigurnim." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Neispravna vjerodajnica." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Nije pronađen %s s identitetom “%s” u vjerodajnicama" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Učitavam “%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Početni tajni ključ je neispravan" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Mrežno ime %s treba neke informacije kako bi se prijavili." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Nemoguć pronalazak identiteta u predmemoriji vjerodajnice: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Nemoguć pronalazak identiteta vjerodajnice u predmemoriji: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Nemoguća provjera putem vjerodajnica identiteta u predmemoriji: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Nemoguć završetak provjere putem vjerodajnica identiteta u predmemoriji: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nema pronađenih pridruženih indentifikacija" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Nemoguće stvaranje predmemorije vjerodajnice: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Nemoguće pokretanje predmemorije vjerodajnica: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Nemoguće spremanje novih vjerodajnica u predmemoriju vjerodajnica: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nemoguća obnova identiteta: Niste prijavljeni" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Nemoguća obnova identiteta: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Nemoguće dobivanje novih vjerodajnica za obnovu identiteta %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Nemoguće brisanje identiteta: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nemoguć pronalazak identiteta" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Nemoguće stvaranje predmemorije vjerodajnice za identitet" + +#~ msgid "_Domain" +#~ msgstr "_Domena" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Domena tvrtke ili ime" + +#~ msgid "The domain is not valid" +#~ msgstr "Domena nije valjana" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail nedostupan" + +#~ msgid "Failed to parse email address" +#~ msgstr "Neuspjela obrada adrese e-pošte" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Nemoguća SMTP ovjera bez domene" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Nije pronađena smtp-password u vjerodajnicama" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Nemoguća SMTP ovjera bez lozinke" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "početna tajna je prošla prije tajne razmjene ključa" + +#~ msgid "Failed to find ‘%s’ element" +#~ msgstr "Nemoguć pronalazak ‘%s’ elementa" + +#~ msgid "Invalid password with username ‘%s’ (%s, %d): " +#~ msgstr "Neispravna lozinka s korisničkim imenom ‘%s’ (%s, %d): " + +#~ msgid "Did not find %s with identity ‘%s’ in credentials" +#~ msgstr "Nije pronađeno %s s identitetom ‘%s’ u vjerodajnicama" + +#~ msgid "Invalid %s with username ‘%s’ (%s, %d): " +#~ msgstr "Neispravno %s s korsiničkim imenom ‘%s’ (%s, %d): " + +#~ msgid "Could not find saved credentials for principal ‘%s’ in keyring" +#~ msgstr "" +#~ "Nemoguć pronalazak spremljenih vjerodajnica za glavni ‘%s’ u skupu " +#~ "ključeva" + +#~ msgid "Did not find password for principal ‘%s’ in credentials" +#~ msgstr "Nemoguć pronalazak lozinke za glavni ‘%s’ u vjerodajnicama" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Neuspjelo pokretanje GOA klijenta" diff --git a/po/hu.gmo b/po/hu.gmo new file mode 100644 index 0000000..ec1cbe0 Binary files /dev/null and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..7b40d07 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,1079 @@ +# Hungarian translation for gnome-online-accounts. +# Copyright (C) 2011-2016 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Gabor Kelemen , 2011, 2012, 2013, 2016. +# Lukács Bence , 2012. +# Balázs Úr , 2012, 2013, 2014, 2015, 2016. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-01-24 14:40+0100\n" +"Last-Translator: Meskó Balázs \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.3\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Betölthető szolgáltatók listája" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"A betölthető szolgáltatókat képviselő karakterláncok listája " +"(alapértelmezett: „all”). Ez csak indításkor kerül kiértékelésre." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Nem található szolgáltató a következőhöz: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Az IsLocked tulajdonság nincs beállítva a fiók számára" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "A ProviderType tulajdonság nincs beállítva a fiók számára" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Az automatikus felderítésre adott válasz XML feldolgozása sikertelen." + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Nem sikerült megtalálni a(z) „%s” elemet" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Az ASUrl és OABUrl nem található az automatikus felderítésre adott válaszban" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Érvénytelen jelszó a(z) „%s” felhasználónévhez (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Jelszó" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Egyéni" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Felhasználónév" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Kiszolgáló" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Mégse" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Kapcs_olódás" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Kapcsolódás…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Az ablakot bezárták" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Az ablakot bezárták (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Kihagyás" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "P_róbálja újra" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Hiba a Microsoft Exchange kiszolgálóhoz való kapcsolódáskor" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"A felhasználó azonosító kérésekor a várt 200-as állapot helyett %d állapot " +"érkezett (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "A válasz nem elemezhető" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Rendszerideje nem érvényes. Ellenőrizze a dátum- és időbeállításokat." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "A szolgáltatás nem érhető el" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "A hitelesítés meghiúsult" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "A kiszolgáló nem támogatja az egyszerű szöveges hitelesítést" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "A kiszolgáló nem támogatja a STARTTLS-t" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP és SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Érvénytelen %s a(z) „%s” felhasználónévhez (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Titkosítás" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Nincs" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS kapcsolódás után" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL kijelölt porton" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Név" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_IMAP kiszolgáló" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "S_MTP kiszolgáló" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Előre" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Hiba az IMAP kiszolgálóhoz kapcsolódás közben" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Hiba az SMTP kiszolgálóhoz kapcsolódás közben" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Név" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Vállalati bejelentkezés (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "A jegykezelés tiltott a fiók számára" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Nem találhatók mentett hitelesítési adatok a(z) „%s” résztvevőhöz a " +"kulcstartón" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"Nem található jelszó a(z) „%s” résztvevőhöz a hitelesítési adatok között" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Résztvevő" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Művelet megszakítva" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Bejelentkezés a zónába" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Adja meg lentebb a jelszavát." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Jelszó megjegyzése" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Hiba a vállalati személyazonosság-kiszolgálóhoz való kapcsolódáskor" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "A személyazonosság szolgáltatás érvénytelen kulcsot adott vissza" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Hiba a Last.fm kiszolgálóhoz kapcsolódás közben" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Médiakiszolgáló" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Személyes információk adhatók hozzá az alkalmazásokhoz egy médiakiszolgáló " +"fiókon keresztül." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Elérhető médiakiszolgálók" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nem találhatók médiakiszolgálók" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"A hozzáférési jelsor kérésekor a várt 200-as állapot helyett %d állapot " +"érkezett (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "A felhatalmazási válasz: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "A felhatalmazási válasz: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Hiba a hozzáférési jelsor lekérésekor: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Hiba a személyazonosság lekérésekor: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "A(z) %s néven való bejelentkezésre kérés után %s néven jelentkezett be" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "A hitelesítési adatok nem tartalmaznak access_token tagot" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "A hozzáférési jelsor frissítése sikertelen (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Hiányzó access_token vagy access_token_secret fejlécek a válaszban" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Hiba a kérés jelsor lekérésekor: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"A kérés jelsor lekérésekor a várt 200-as állapot helyett %d állapot érkezett " +"(%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Hiányzó request_token vagy request_token_secret fejlécek a válaszban" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"A hitelesítési adatok nem tartalmaznak access_token vagy access_token_secret " +"tagot" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Hiba az ownCloud kiszolgálóhoz kapcsolódás közben" + +# Ez egy szolgáltatás neve, nem fordul +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nincs felhasználónév vagy hozzáférési token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Levelezés" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "_Naptár" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "Né_vjegyek" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Csevegés" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumentumok" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "_Zene" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fényképek" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Fájlok" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Hálózati erőforrások" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Olvasás később" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Nyomtatók" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Térképek" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Tenni_valók" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Használat ehhez" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "A fiók le van tiltva" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Ismeretlen hiba" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "Az ensure_credentials_sync nincs megvalósítva a(z) %s típushoz" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS nem érhető el" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Ismeretlen hitelesítési mechanizmus" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "A Telepathy csevegőfiók nem található" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "A felhasználói felület létrehozása meghiúsult ehhez: %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Kapcsolat beállításai" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Személyes adatok" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Nem lehet elmenteni a kapcsolat paramétereit" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Nem lehet elmenteni a személyes információkat a kiszolgálón" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Kapcsolat beállításai" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Személyes adatok" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Hiba a fiókba történő bejelentkezéskor" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "A hitelesítési adatok lejártak" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Jelentkezzen be a fiók engedélyezéséhez." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Bejelentkezés" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Egy %s fiók már létezik itt: %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s fiók" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "A hitelesítési adatok törlése meghiúsult a kulcstartóról" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "A hitelesítési adatok lekérése meghiúsult a kulcstartóról" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nem található hitelesítési adatok a kulcstartón" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Hiba a kulcstartótól kapott eredmény feldolgozásakor: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s hitelesítési adatok a(z) %s személyazonossághoz" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "A hitelesítési adatok tárolása meghiúsult a kulcstartón" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "A gépnév feloldása sikertelen" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "A proxy gépnév feloldása sikertelen" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "A WebDAV végpont nem található" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kód: %u — Nem várt válasz érkezett a kiszolgálótól" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Az aláíró hitelesítésszolgáltató ismeretlen." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"A tanúsítvány nem felel meg azon oldal várt személyazonosságának, ahonnan le " +"lett töltve." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "A tanúsítvány aktiválási ideje a jövőben van." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "A tanúsítvány lejárt." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "A tanúsítvány vissza lett vonva." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "A tanúsítvány algoritmusa nem tekinthető biztonságosnak." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Érvénytelen tanúsítvány." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "" +"Nem található %s a(z) „%s” személyazonossághoz a hitelesítési adatok között" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "„%s” betöltése…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "A kezdeti titkos kulcs érvénytelen" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "A(z) %s hálózati zóna információkat igényel a bejelentkeztetéshez." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Nem található személyazonosság a hitelesítési adatok gyorsítótárában: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "" +"Nem találhatók a személyazonosság hitelesítési adatai a gyorsítótárban: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"Nem szűrhetők át a személyazonosság hitelesítési adatai a gyorsítótárban: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Nem fejezhető be a személyazonosság hitelesítési adatainak átszűrése a " +"gyorsítótárban: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nem található társított személyazonosság" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Nem hozható létre a hitelesítési adatok gyorsítótára: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Nem készíthető elő a hitelesítési adatok gyorsítótára: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"Nem tárolhatók az új hitelesítési adatok a hitelesítési adatok " +"gyorsítótárában: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nem újítható meg a személyazonosság: nincs bejelentkezve" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Nem újítható meg a személyazonosság: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Nem kérhetők le a hitelesítési adatok a(z) %s személyazonosság " +"megújításához: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Nem törölhető a személyazonosság: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nem található személyazonosság" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "" +"Nem hozható létre a hitelesítési adatok gyorsítótára a személyazonossághoz" + +#~ msgid "_Domain" +#~ msgstr "_Tartomány" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Vállalati tartomány- vagy zónanév" + +#~ msgid "The domain is not valid" +#~ msgstr "A tartomány nem érvényes" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "Az org.gnome.OnlineAccounts.Mail nem érhető el" + +#~ msgid "Failed to parse email address" +#~ msgstr "Az e-mail cím feldolgozása sikertelen" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Nem végezhető SMTP hitelesítés tartomány nélkül" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Nem található SMTP jelszó a hitelesítési adatok között" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Nem végezhető SMTP hitelesítés jelszó nélkül" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "kiinduló titok átadva a titkos kulcsok cseréje előtt" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Nem sikerült előkészíteni a GOA klienst" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "Nem található jelszó a(z) „%s” személyazonossághoz a hitelesítési adatok " +#~ "között" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "A név kérésekor a várt 200-as állapot helyett %d állapot érkezett (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Illessze be a felhatalmazási oldalról kapott " +#~ "felhatalmazási kódot:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Illessze be a felhatalmazási oldalról kapott jelsort:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Idő" + +#~ msgid "Time to fire" +#~ msgstr "Idő az indításig" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Nem sikerült megtalálni az Autodiscover elemet" + +#~ msgid "Failed to find Account element" +#~ msgstr "Nem sikerült megtalálni az Account elemet" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "A guid kérésekor a várt 200-as állapot helyett %d állapot érkezett (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Nem található IMAP jelszó a(z) „%s” személyazonossághoz a hitelesítési " +#~ "adatok között" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Érvénytelen IMAP jelszó a(z) „%s” felhasználónévhez (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Nem található SMTP jelszó a(z) „%s” személyazonossághoz a hitelesítési " +#~ "adatok között" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Érvénytelen SMTP jelszó a(z) „%s” felhasználónévhez (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "Online fiókok" + +#~ msgid "An online account needs attention" +#~ msgstr "Egy online fiók figyelmet kér" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Online fiókok megnyitása…" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "A hitelesítési adatok nem találhatók a kulcstartón (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Hiba a válasz JSON-ként való feldolgozásakor: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Nem található id tag a JSON-adatokban" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Nem található e-mail tag a JSON-adatokban" + +#~| msgid "Didn't find id member in JSON data" +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Nem található user tag a JSON-adatokban" + +#~| msgid "Didn't find id member in JSON data" +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Nem található user.id tag a JSON-adatokban" + +#~| msgid "Didn't find email member in JSON data" +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Nem található user.username tag a JSON-adatokban" + +#~| msgid "Didn't find account email member in JSON data" +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Nem található user.username._content tag a JSON-adatokban" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Nem található az access_token a nem JSON-adatokban" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Nem található az access_token a JSON-adatokban" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Hiba a hitelesítési adatok tárolásakor a kulcstartón (%s, %d): " + +#~| msgid "Didn't find id member in JSON data" +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Nem található id_str tag a JSON-adatokban" + +#~| msgid "Didn't find email member in JSON data" +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Nem található screen_name tag a JSON-adatokban" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Nem található fiók e-mail tag a JSON-adatokban" + +#~| msgid "Didn't find id member in JSON data" +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Nem található guid tag a JSON-adatokban" + +#~| msgid "Didn't find email member in JSON data" +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Nem található érték tag a JSON-adatokban" + +#~| msgid "Error parsing response as JSON: " +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Hiba a felhasználói névjegy JSON-ként való feldolgozásakor: " + +#~| msgid "Didn't find id member in JSON data" +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Nem található profile tag a JSON-adatokban" + +#~| msgid "Didn't find id member in JSON data" +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Nem található nickname tag a JSON-adatokban" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Nem található adat tag a JSON-adatokban" + +#~ msgid "Domain Administrator Login" +#~ msgstr "Tartományadminisztrátori bejelentkezés" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "Ezen vállalati személyazonosság használatához a számítógépet be kell " +#~ "jegyezni a tartományba. Kérje meg a hálózati rendszergazdát, hogy írja be " +#~ "itt a tartomány jelszavát." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "Ezen vállalati személyazonosság használatához a számítógépet be kell " +#~ "jegyezni a tartományba. Kérje meg a hálózati rendszergazdát, hogy írja be " +#~ "itt a tartományfelhasználó nevét." + +#~ msgid "No such domain or realm found" +#~ msgstr "Nem található ilyen tartomány vagy zóna" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Nem lehet bejelentkezni %s néven a(z) %s tartományba" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Érvénytelen jelszó, próbálja újra" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Nem lehet csatlakozni a(z) %s tartományhoz: %s" diff --git a/po/id.gmo b/po/id.gmo new file mode 100644 index 0000000..98b13ff Binary files /dev/null and b/po/id.gmo differ diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..a1e0e93 --- /dev/null +++ b/po/id.po @@ -0,0 +1,890 @@ +# Indonesian translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Andika Triwidada , 2011, 2012, 2013, 2014. +# Dirgita , 2012. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-05 18:19+0000\n" +"PO-Revision-Date: 2017-12-06 15:08+0700\n" +"Last-Translator: Kukuh Syafaat \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Daftar penyedia yang diijinkan untuk dimuat" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Daftar string yang mewakili penyedia yang diizinkan untuk dimuat (bawaan: " +"'all' (semua)). Ini hanya dievaluasi saat awal mulai." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Gagal menemukan penyedia layanan untuk: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Properti IsLocked disetel untuk akun" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Properti ProviderType tidak disetel untuk akun" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Gagal mengurai XML respon autodiscover" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Gagal menemukan elemen \"%s\"" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Gagal menemukan ASUrl dan OABUrl dalam respon autodiscover" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Sandi tidak valid dengan nama pengguna \"%s\" (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:655 +msgid "_E-mail" +msgstr "Sur_el" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:675 +#: src/goabackend/goaimapsmtpprovider.c:695 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "San_di" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Ubahan" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:674 +#: src/goabackend/goaimapsmtpprovider.c:694 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "_Nama Pengguna" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:707 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:552 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Batal" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "S_ambung" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:723 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Menyambung..." + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:873 +#: src/goabackend/goaimapsmtpprovider.c:908 +#: src/goabackend/goaimapsmtpprovider.c:1000 +#: src/goabackend/goaimapsmtpprovider.c:1257 +#: src/goabackend/goaimapsmtpprovider.c:1333 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:671 +#: src/goabackend/goaowncloudprovider.c:891 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialog telah diakhiri" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:941 +#: src/goabackend/goaimapsmtpprovider.c:1038 +#: src/goabackend/goaimapsmtpprovider.c:1284 +#: src/goabackend/goaimapsmtpprovider.c:1361 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:716 +#: src/goabackend/goaowncloudprovider.c:918 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialog telah diakhiri (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:954 +#: src/goabackend/goaimapsmtpprovider.c:1051 +#: src/goabackend/goaowncloudprovider.c:729 +msgid "_Ignore" +msgstr "Aba_ikan" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:959 +#: src/goabackend/goaimapsmtpprovider.c:1056 +#: src/goabackend/goaimapsmtpprovider.c:1303 +#: src/goabackend/goaimapsmtpprovider.c:1380 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:734 +#: src/goabackend/goaowncloudprovider.c:937 +msgid "_Try Again" +msgstr "Coba _Lagi" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Galat ketika menyambung ke server Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Mengharapkan status 200 ketika meminta identitas Anda, tetapi mendapat " +"status %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Tidak bisa mengurai respon" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Waktu sistem Anda tidak valid. Periksa pengaturan tanggal dan waktu Anda." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:89 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Layanan tidak tersedia" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:109 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Otentikasi gagal" + +#: src/goabackend/goaimapauthlogin.c:134 +msgid "Server does not support PLAIN" +msgstr "Server tidak mendukung PLAIN" + +#: src/goabackend/goaimapauthlogin.c:186 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server tidak mendukung STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP dan SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:335 +#: src/goabackend/goaimapsmtpprovider.c:386 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s tidak valid dengan nama pengguna \"%s\" (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:572 +msgid "_Encryption" +msgstr "_Enkripsi" + +#: src/goabackend/goaimapsmtpprovider.c:575 +msgid "None" +msgstr "Nihil" + +#: src/goabackend/goaimapsmtpprovider.c:578 +msgid "STARTTLS after connecting" +msgstr "STARTTLS setelah menyambung" + +#: src/goabackend/goaimapsmtpprovider.c:581 +msgid "SSL on a dedicated port" +msgstr "SSL pada port tersendiri" + +#: src/goabackend/goaimapsmtpprovider.c:656 +msgid "_Name" +msgstr "_Nama" + +#: src/goabackend/goaimapsmtpprovider.c:673 +msgid "IMAP _Server" +msgstr "_Server IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:693 +msgid "SMTP _Server" +msgstr "_Server SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:708 +#: src/goabackend/goaimapsmtpprovider.c:980 +#: src/goabackend/goaimapsmtpprovider.c:1313 +msgid "_Forward" +msgstr "_Lanjut" + +#: src/goabackend/goaimapsmtpprovider.c:964 +#: src/goabackend/goaimapsmtpprovider.c:1296 +msgid "Error connecting to IMAP server" +msgstr "Galat ketika menyambung ke server IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1061 +#: src/goabackend/goaimapsmtpprovider.c:1373 +msgid "Error connecting to SMTP server" +msgstr "Galat ketika menyambung ke server SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1484 +msgid "E-mail" +msgstr "Surel" + +#: src/goabackend/goaimapsmtpprovider.c:1488 +msgid "Name" +msgstr "Nama" + +#: src/goabackend/goaimapsmtpprovider.c:1498 +#: src/goabackend/goaimapsmtpprovider.c:1502 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1513 +#: src/goabackend/goaimapsmtpprovider.c:1517 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Log Masuk Enterprise (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Properti IsLocked disetel untuk akun" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Tidak bisa menemukan kredensial yang tersimpan bagi principal \"%s\" dalam " +"ring kunci" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Tidak menemukan sandi bagi principal \"%s\" dalam kredensial" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Operasi dibatalkan" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Log Masuk ke Realm" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Harap masukkan sandi Anda di bawah." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Ingat sandi ini" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Galat ketika menyambung ke server identitas enterprise" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Layanan identitas mengembalikan kunci yang tidak valid" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Galat ketika menyambung ke Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Server Media" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Muatan personal dapat ditambahkan ke aplikasi Anda melalui sebuah akun " +"server media." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Server Media Yang Tersedia" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Tidak ada server media yang ditemukan" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Mengharapkan status 200 ketika meminta token akses, tetapi mendapat status " +"%d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Respon otorisasi: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Respon otorisasi: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Galat saat mengambil Token Akses: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Galat saat mengambil identitas: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Diminta untuk masuk sebagai %s, tetapi masuk sebagai %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Kredensial tidak berisi access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Gagal menyegarkan token akses (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Kehilangan tajuk access_token atau access_token_secret dalam respon" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Galat saat mengambil Token Request: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Mengharapkan status 200 ketika mengambil Token Request, tetapi mendapat " +"status %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Kehilangan tajuk request_token atau request_token_secret dalam respon" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Kredensial tidak berisi access_token atau access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:739 +#: src/goabackend/goaowncloudprovider.c:930 +msgid "Error connecting to ownCloud server" +msgstr "Galat ketika menyambung ke server ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Tidak ada nama pengguna atau access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Surel" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_nder" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontak" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Obrolan" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumen" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usik" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Foto" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Berkas" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Sumbe_r Daya Jaringan" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Baca _Nanti" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Pence_tak" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Peta" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Unt_uk Dilakukan" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Gunakan untuk" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Akun dinonaktifkan" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Galat tak dikenal" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync tidak diimplementasi pada tipe %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS tidak tersedia" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Mekanisme otentikasi yang tidak dikenal" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Akun obrolan Telepathy tidak ditemukan" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Gagal membuat antarmuka pengguna untuk %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Pengaturan Koneksi" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Rincian Pribadi" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Tidak bisa menyimpan parameter koneksi" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Tidak bisa menyimpan informasi pribadi Anda pada server" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Pengaturan Koneksi" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Rincian _Pribadi" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Galat saat log masuk ke akun" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Kredensial telah kedaluwarsa" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Masuklah untuk memfungsikan akun ini." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Ma_suk" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Sudah ada akun %s untuk %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Akun %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Gagal menghapus kredensial dari ring kunci" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Gagal mengambil kredensial dari ring kunci" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Tidak ada kredensial yang ditemukan dalam ring kunci" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Galat saat mengurai hasil yang diperoleh dari ring kunci: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA kredensial %s untuk identitas %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Gagal menyimpan kredensial dalam ring kunci" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Tidak bisa mengurai parameter koneksi" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Tidak bisa mengurai proksi hostname" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Tidak bisa menemukan titik akhir WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kode: %u — Respon tidak terduga dari server" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Otoritas penandatangan sertifikat tidak dikenal." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Sertifikat tidak cocok dengan identitas yang diharapkan dari situs asal " +"sertifikasi tersebut diambil." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Waktu aktifasi sertifikat masih di masa mendatang." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Sertifikat telah kedaluwarsa." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Sertifikat telah dicabut." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algoritma sertifikat dianggap tidak aman." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Sertifikat tidak valid." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Tidak menemukan %s dengan identitas \"%s\" dalam kredensial" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Memuat “%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Kunci rahasia awal tidak valid" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Jaringan realm %s membutuhkan beberapa informasi untuk memasukkan Anda." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Tidak bisa menemukan identitas dalam tembolok kredensial: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Tidak bisa menemukan kredensial identitas dalam tembolok: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Tidak bisa memilah seluruh kredensial identitas dalam tembolok: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Tidak bisa menyelesaikan memilah seluruh kredensial identitas dalam " +"tembolok: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Tidak ada identifikasi terkait yang ditemukan" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Tidak bisa membuat tembolok kredensial: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Tidak bisa menginisialisasi tembolok kredensial: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Tidak bisa menyimpan kredensial baru dalam tembolok kredensial: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Tidak bisa memperbarui identitas: Belum masuk" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Tidak bisa memperbarui identitas: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Tidak bisa mendapat kredensial baru untuk memperbarui indentitas %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Tidak bisa menghapus identitas: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Tidak bisa menemukan identitas" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Tidak bisa membuat tembolok kredensial bagi identitas" + +#~ msgid "_Domain" +#~ msgstr "_Domain" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Domain enterprise atau nama realm" + +#~ msgid "The domain is not valid" +#~ msgstr "Domain tidak valid" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail tidak tersedia" + +#~ msgid "Failed to parse email address" +#~ msgstr "Gagal mengurai alamat surel" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Tidak bisa melaksanakan otentikasi SMTP tanpa sebuah domain" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Tidak menemukan smtp-password dalam kredensial" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Tidak bisa melaksanakan otentikasi SMTP tanpa sebuah sandi" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "rahasia awal disampaikan sebelum pertukaran kunci rahasia" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" diff --git a/po/insert-header.sin b/po/insert-header.sin new file mode 100644 index 0000000..b26de01 --- /dev/null +++ b/po/insert-header.sin @@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/is.gmo b/po/is.gmo new file mode 100644 index 0000000..bc05253 Binary files /dev/null and b/po/is.gmo differ diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..4cbf6e3 --- /dev/null +++ b/po/is.po @@ -0,0 +1,893 @@ +# translation of gnome-online-accounts.master.po to +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sveinn í Felli , 2015, 2017. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts.master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-11-07 16:48+0000\n" +"PO-Revision-Date: 2017-12-08 08:22+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic \n" +"Language: is\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +#| msgid "Failed to find ‘%s’ element" +msgid "Failed to find “%s” element" +msgstr "Gat ekki fundið ‘%s’ stakið" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 +#: ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +#| msgid "Invalid password with username ‘%s’ (%s, %d): " +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Ógilt lykilorð með notandanafn ‘%s’ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "Tölvu_póstur" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Lykilorð" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Sérsniðið" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "_Notandanafn" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "Þ_jónn" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:570 +#: ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Hætta við" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:571 +#: ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "_Tengjast" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:586 +#: ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Tengist…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:877 +#: ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "Notandi hafnaði samskiptaglugga" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Notandi hafnaði samskiptaglugga (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "H_unsa" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:957 +#: ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 +#: ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "Re_yndu aftur" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Villa við tengingu við Microsoft Exchange miðlara" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:183 +#: ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 +#: ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 +#: ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 +#: ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 +#: ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 +#: ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 +#: ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "Ekki tókst að þátta svarið" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Kerfistíminn þinn er ógildur. Athugaðu stillingar á dagsetningu og tíma." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "Þjónusta ekki til staðar" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:878 +#, c-format +msgid "Authentication failed" +msgstr "Auðkenning mistókst" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Þjónninn styður ekki PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Þjónninn styður ekki STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP og SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +#| msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Ógilt %s með notandanafn ‘%s’ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Dulritun" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Engin" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS eftir tengingu" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL á frátekinni gátt" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Heiti" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "_IMAP miðlari" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "_SMTP miðlari" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "Á_fram" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Villa í tengingu við IMAP miðlara" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Villa í tengingu við SMTP miðlara" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "Tölvupóstur" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Nafn" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Innskráning í fyrirtæki (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:227 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:252 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" + +#: ../src/goabackend/goakerberosprovider.c:265 +#, c-format +#| msgid "Did not find password with identity ‘%s’ in credentials" +msgid "Did not find password for principal “%s” in credentials" +msgstr "Fann ekki lykilorð með auðkenninu ‘%s’ í aðgangsupplýsingum" + +#: ../src/goabackend/goakerberosprovider.c:565 +msgid "_Principal" +msgstr "_Aðal" + +#: ../src/goabackend/goakerberosprovider.c:799 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Skrá inn á svæði" + +#: ../src/goabackend/goakerberosprovider.c:800 +msgid "Please enter your password below." +msgstr "Sláðu inn lykilorðið þitt hér fyrir neðan." + +#: ../src/goabackend/goakerberosprovider.c:801 +msgid "Remember this password" +msgstr "Muna þetta lykilorð" + +#: ../src/goabackend/goakerberosprovider.c:952 +msgid "Error connecting to enterprise identity server" +msgstr "Villa við tengingu við aukennismiðlara fyrirtækis" + +#: ../src/goabackend/goakerberosprovider.c:1290 +#, c-format +msgid "Identity service returned invalid key" +msgstr "" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 +#: ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Villa í tengingu við Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Margmiðlunarþjónn" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Tiltækir margmiðlunarþjónar" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Engir margmiðlunarþjónar fundust" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 +#: ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "Svar við auðkenningu: " + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "Svar við auðkenningu: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 +#: ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Villa við að ná í aðgangsteikn: " + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Villa við að ná í auðkenni: " + +#: ../src/goabackend/goaoauth2provider.c:1321 +#: ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Auðkenni innihalda ekki aðgangsteikn" + +#: ../src/goabackend/goaoauth2provider.c:1512 +#: ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Mistókst að endurlesa aðgangsteikn (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "Villa við tengingu við ownCloud miðlara" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "Ekkert notandanafn eða aðgangsteikn" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "Tölvu_póst" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "_Dagatal" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "Ten_giliði" + +#: ../src/goabackend/goaprovider.c:134 +#: ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "S_pjall" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "S_kjöl" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "_Tónlist" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_Myndir" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_Skrár" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "Tilföng _netkerfis" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "Lesa síða_r" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "Pren_tarar" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "_Landakort" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "Ver_kefni" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 +#: ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Nota fyrir" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "Notandaaðgangur er óvirkur" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "Óþekkt villa" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "TLS er ekki tiltækt" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Óþekkt auðkenningaraðferð" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Mistókst að búa til notandaviðmót fyrir %s" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Valkostir tengingar" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Persónuupplýsingar" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "Í _lagi" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Valkostir tengingar" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Persónuupplýsingar" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Villa við innskráningu á aðganginn" + +#: ../src/goabackend/goautils.c:140 +#| msgid "Credentials have expired." +msgid "Credentials have expired" +msgstr "Auðkennin eru útrunnin" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Skráðu þig inn til að virkja þennan aðgang." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Skrá inn" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s aðgangur er þegar til fyrir %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +#| msgid "%s account" +msgid "%s Account" +msgstr "%s aðgangur" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "" + +#: ../src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Tókst ekki að greina vélarheiti" + +#: ../src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Tókst ekki að greina vélarheiti milliþjóns" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Finn ekki WebDAV-endapunkt" + +#: ../src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kóði: %u — Óvænt svar frá þjóni" + +#: ../src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Undirritari (CA) skilríkis er óþekktur." + +#: ../src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" + +#: ../src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Virkjunartími skilríkisins er ennþá í framtíðinni." + +#: ../src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Skilríkið er útrunnið." + +#: ../src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Skilríkið hefur veriið afturkallað." + +#: ../src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Reiknirit skilríkisins er talið óöruggt." + +#: ../src/goabackend/goautils.c:924 +msgid "Invalid certificate." +msgstr "Ógilt skilríki." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:959 +#, c-format +#| msgid "Did not find %s with identity ‘%s’ in credentials" +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Fann ekki %s með auðkenninu ‘%s’ í aðgangsupplýsingum" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Hleð inn %s" + +#: ../src/goabackend/goawindowsliveprovider.c:56 +#| msgid "Microsoft Account" +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "Upphaflegur leynilykill er ógildur" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Gat ekki fundið auðkenni" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "" + +#~ msgid "_Domain" +#~ msgstr "_Lén" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Fyrirtækislén eða heiti svæðis" + +#~ msgid "The domain is not valid" +#~ msgstr "Þetta lén er ekki gilt" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail er ekki tiltækt" + +#~ msgid "Failed to parse email address" +#~ msgstr "Gat ekki þáttað tölvupóstfang" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Get ekki auðkennt SMTP án léns" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Fann ekki smtp-lykilorð í aðgangsupplýsingum" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Get ekki auðkennt SMTP án lykilorðs" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" diff --git a/po/it.gmo b/po/it.gmo new file mode 100644 index 0000000..c7f9226 Binary files /dev/null and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..9edabd1 --- /dev/null +++ b/po/it.po @@ -0,0 +1,899 @@ +# Italian translation for gnome-online-accounts +# Copyright (C) 2011 - 2015 Free Software Foundation, Inc. +# Copyright (C) 2016, 2017, 2018 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# Luca Ferretti , 2011. +# Milo Casagrande , 2012, 2018. +# Gianvito Cavasoli , 2016. +# Claudio Arseni , 2011, 2012, 2013, 2014, 2015, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-03-01 16:52+0100\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Elenco di provider che è possibile caricare" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Un elenco di stringe che rappresentano i provider che è possibile caricare " +"(predefinito a \"all\"). Viene letta solamente in fase di avvio." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Ricerca di un provider non riuscita: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Proprietà IsLocked impostata per l'account" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Proprietà ProviderType non impostata per l'account" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Analisi del contenuto XML nella risposta autodiscover non riuscita" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Ricerca dell'elemento «%s» non riuscita" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Ricerca di ASUrl e OABUrl nella risposta autodiscover non riuscita" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Password non valida per il nome utente «%s» (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Email" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Password" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalizza" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Nome _utente" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "A_nnulla" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "C_onnetti" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Connessione…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Il dialogo è stato respinto" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Il dialogo è stato respinto (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignora" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Riprova" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Errore durante la connessione al server Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Atteso stato 200 durante la richiesta dell'identità, ottenuto invece lo " +"stato %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Impossibile elaborare la risposta" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Ora di sistema non valida. Controllare le impostazioni di data e ora." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Servizio non disponibile" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Autenticazione non riuscita" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Il server non supporta PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Il server non supporta STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP e SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Campo %s non valido per il nome utente «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "Ci_fratura" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Nessuna" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS dopo la connessione" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL su porta dedicata" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nome" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Server IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Server SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Inoltra" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Errore durante la connessione al server IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Errore durante la connessione al server SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Email" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Nome" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Accesso aziendale (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Il ticketing non è abilitato per l'account" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Impossibile trovare nel portachiavi credenziali salvate per il principale " +"«%s»" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"Non è stata trovata la password per il principale «%s» nelle credenziali" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principale" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "L'operazione è stata annullata" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Accesso a realm" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Inserire qui sotto la propria password." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Ricorda questa password" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Errore durante la connessione al server aziendale dell'identità" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Il servizio di identità ha restituito una chiave non valida" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Errore durante la connessione a Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Server multimediale" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"I contenuti personali possono essere aggiunti alle applicazioni attraverso " +"un account di un server multimediale." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Server multimediali disponibili" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nessun server mutlimediale trovato" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Atteso stato 200 durante la richiesta del token di accesso, ottenuto invece " +"lo stato %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Risposta di autorizzazione: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Risposta di autorizzazione: «%s»" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Errore nell'ottenere il token di accesso: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Errore nell'ottenere l'identità: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "È stato richiesto di accedere come %s, ma l'accesso è avvenuto come %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Le credenziali non contengono access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Aggiornamento del token di accesso non riuscito (%s, %d):" + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Nella risposta manca l'intestazione access_token o access_token_secret" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Errore nell'ottenere un token di richiesta:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Atteso stato 200 per l'ottenimento di un token di richiesta, ottenuto invece " +"lo stato %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Nella risposta manca l'intestazione request_token o request_token_secret" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Le credenziali non contengono access_token o access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Errore durante la connessione al server ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nessun nome utente o token di accesso" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "E_mail" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Ca_lendario" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "Con_tatti" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Con_versazione" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documenti" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usica" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografie" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_File" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Ri_sorse di rete" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Le_ggi dopo" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "S_tampanti" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mappe" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Usa per" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "L'account è disabilitato" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Errore sconosciuto" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync non è implementato sul tipo %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS non disponibile" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Meccanismo di autenticazione sconosciuto" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Account chat Telepathy non trovato" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Creazione di una interfaccia utente per %s non riuscita" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Impostazioni connessione" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Dettagli personali" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Impossibile salvare i parametri di connessione" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Impossibile salvare le informazioni personali sul server" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Impostazioni _connessione" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Dettagli _personali" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Errore durante l'accesso all'account" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Le credenziali sono scadute" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Eseguire l'accesso per abilitare questo account." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Accedi" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Esiste già un account %s per %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Account %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Eliminazione delle credenziali dal portachiavi non riuscita" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Recupero delle credenziali dal portachiavi non riuscito" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nessuna credenziale trovata nel portachiavi" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Errore nell'analisi del risultato ottenuto dal portachiavi: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credenziali GOA %s per l'identità %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Archiviazione delle credenziali nel portachiavi non riuscita" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Impossibile risolvere il nome host" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Impossibile risolvere il nome host del proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Impossibile trovare l'endpoint di WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Codice: %u — risposta dal server inattesa" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "La firma dell'autorità di certificazione è sconosciuta." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Il certificato non corrisponde all'identità attesa del sito da cui è stato " +"ricevuto." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Il periodo di attivazione del certificato non è ancora attivo." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Il certificato è scaduto." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Il certificato è stato revocato." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "L'algoritmo del certificato è considerato non sicuro." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Certificato non valido." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "" +"Non è stato trovato il campo %s associato all'identità «%s» nelle credenziali" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Caricamento di «%s»…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Chiave segreta iniziale non valida" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Il realm di rete %s necessita di alcune informazioni per consentire " +"l'accesso." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Impossibile trovare l'identità nella cache delle credenziali: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Impossibile trovare le credenziali dell'identità nella cache: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Impossibile esaminare le credenziali dell'identità nella cache: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Impossibile completare l'esame delle credenziali dell'identità nella cache: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Non è stata trovata alcuna identificazione associata" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Impossibile creare la cache delle credenziali: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Impossibile inizializzare la cache delle credenziali: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Impossibile archiviare le nuove credenziali nella cache: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Impossibile rinnovare l'identità: accesso non eseguito" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Impossibile rinnovare l'identità: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Impossibile ottenere nuove credenziali per rinnovare l'identità %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Impossibile cancellare l'identità: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Impossibile trovare l'identità" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Impossibile creare la cache delle credenziali per l'identità" + +#~ msgid "_Domain" +#~ msgstr "_Dominio" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Dominio aziendale o nome realm" + +#~ msgid "The domain is not valid" +#~ msgstr "Il dominio non è valido" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail non è disponibile" + +#~ msgid "Failed to parse email address" +#~ msgstr "Analisi del contenuto dell'indirizzo email non riuscita" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Impossibile eseguire l'autenticazione SMTP senza un dominio" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Non è stata trovata la password smtp nelle credenziali" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Impossibile eseguire l'autenticazione SMTP senza una password" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "segreto iniziale inserito prima dello scambio della chiave segreta" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Inizializzazione di un client GOA non riuscita" diff --git a/po/ja.gmo b/po/ja.gmo new file mode 100644 index 0000000..cf21285 Binary files /dev/null and b/po/ja.gmo differ diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..10c9e26 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,1057 @@ +# gnome-online-accounts ja.po. +# Copyright (C) 2011,2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Takeshi AIHANA , 2011. +# Hajime Taira , 2012. +# Shuuji Takahashi , 2012. +# Noriko Mizumoto , 2012. +# Takayuki KUSANO , 2012. +# Jiro Matsuzawa , 2013, 2014, 2015. +# Ikuya Awashiro , 2014. +# Kento Tsuji , 2014. +# IWAI, Masaharu , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-04-11 15:52+0000\n" +"PO-Revision-Date: 2016-03-28 16:34+0900\n" +"Last-Translator: Hajime Taira \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.6\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:842 ../src/daemon/goadaemon.c:1100 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "次のプロバイダーが見つかりません: %s" + +#: ../src/daemon/goadaemon.c:1028 +msgid "IsLocked property is set for account" +msgstr "IsLocked プロパティーがアカウントに設定されています" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1088 +msgid "ProviderType property is not set for account" +msgstr "ProviderType プロパティーがアカウントに設定されていません" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "自動検出の応答 XML の解析に失敗しました" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:261 ../src/goabackend/goaewsclient.c:276 +#: ../src/goabackend/goaewsclient.c:291 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’エレメントの検出に失敗しました" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:312 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "自動検出の応答内での ASUrl と OABUrl の検出に失敗しました" + +#: ../src/goabackend/goaexchangeprovider.c:74 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:283 +#: ../src/goabackend/goalastfmprovider.c:280 +#: ../src/goabackend/goaowncloudprovider.c:314 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "ユーザー名‘%s’のパスワードが不正です (%s, %d):" + +#: ../src/goabackend/goaexchangeprovider.c:436 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "メール(_E)" + +#: ../src/goabackend/goaexchangeprovider.c:437 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:420 +#: ../src/goabackend/goaowncloudprovider.c:560 +msgid "_Password" +msgstr "パスワード(_P)" + +#: ../src/goabackend/goaexchangeprovider.c:440 +msgid "_Custom" +msgstr "カスタム(_C)" + +#: ../src/goabackend/goaexchangeprovider.c:451 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:734 +#: ../src/goabackend/goalastfmprovider.c:419 +#: ../src/goabackend/goaowncloudprovider.c:559 +msgid "User_name" +msgstr "ユーザー名(_N)" + +#: ../src/goabackend/goaexchangeprovider.c:452 +#: ../src/goabackend/goaowncloudprovider.c:558 +msgid "_Server" +msgstr "サーバー(_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:462 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:569 +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_Cancel" +msgstr "キャンセル(_C)" + +#: ../src/goabackend/goaexchangeprovider.c:463 +#: ../src/goabackend/goakerberosprovider.c:740 +#: ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:570 +msgid "C_onnect" +msgstr "接続(_O)" + +#: ../src/goabackend/goaexchangeprovider.c:479 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:756 +#: ../src/goabackend/goalastfmprovider.c:445 +#: ../src/goabackend/goaowncloudprovider.c:585 +msgid "Connecting…" +msgstr "接続中…" + +#: ../src/goabackend/goaexchangeprovider.c:584 +#: ../src/goabackend/goaexchangeprovider.c:779 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1039 +#: ../src/goabackend/goaimapsmtpprovider.c:1302 +#: ../src/goabackend/goaimapsmtpprovider.c:1375 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:640 +#: ../src/goabackend/goalastfmprovider.c:806 +#: ../src/goabackend/goamediaserverprovider.c:459 +#: ../src/goabackend/goaoauth2provider.c:1033 +#: ../src/goabackend/goaoauthprovider.c:862 +#: ../src/goabackend/goaowncloudprovider.c:696 +#: ../src/goabackend/goaowncloudprovider.c:910 +#: ../src/goabackend/goatelepathyprovider.c:460 +#: ../src/goabackend/goatelepathyprovider.c:509 +#: ../src/goabackend/goatelepathyprovider.c:684 +#, c-format +msgid "Dialog was dismissed" +msgstr "ダイアログが閉じられました" + +#: ../src/goabackend/goaexchangeprovider.c:622 +#: ../src/goabackend/goaexchangeprovider.c:807 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1074 +#: ../src/goabackend/goaimapsmtpprovider.c:1326 +#: ../src/goabackend/goaimapsmtpprovider.c:1400 +#: ../src/goabackend/goalastfmprovider.c:674 +#: ../src/goabackend/goalastfmprovider.c:825 +#: ../src/goabackend/goaowncloudprovider.c:738 +#: ../src/goabackend/goaowncloudprovider.c:931 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "ダイアログが閉じられました (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:635 +#: ../src/goabackend/goaimapsmtpprovider.c:994 +#: ../src/goabackend/goaimapsmtpprovider.c:1087 +#: ../src/goabackend/goaowncloudprovider.c:751 +msgid "_Ignore" +msgstr "無視する(_I)" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:826 +#: ../src/goabackend/goaimapsmtpprovider.c:999 +#: ../src/goabackend/goaimapsmtpprovider.c:1092 +#: ../src/goabackend/goaimapsmtpprovider.c:1345 +#: ../src/goabackend/goaimapsmtpprovider.c:1419 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:686 +#: ../src/goabackend/goalastfmprovider.c:842 +#: ../src/goabackend/goaowncloudprovider.c:756 +#: ../src/goabackend/goaowncloudprovider.c:950 +msgid "_Try Again" +msgstr "やり直す(_T)" + +#: ../src/goabackend/goaexchangeprovider.c:645 +#: ../src/goabackend/goaexchangeprovider.c:819 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft Exchange サーバーへの接続に失敗しました" + +#: ../src/goabackend/goafacebookprovider.c:77 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:216 +#: ../src/goabackend/goaflickrprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:190 +#: ../src/goabackend/goagoogleprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:196 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"識別子を要求した時に返されるステータスは 200 を期待していましたが、代わりに受" +"け取ったステータスは %d (%s) でした" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:235 +#: ../src/goabackend/goafacebookprovider.c:247 +#: ../src/goabackend/goafacebookprovider.c:260 +#: ../src/goabackend/goaflickrprovider.c:203 +#: ../src/goabackend/goaflickrprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:225 +#: ../src/goabackend/goaflickrprovider.c:235 +#: ../src/goabackend/goaflickrprovider.c:245 +#: ../src/goabackend/goafoursquareprovider.c:209 +#: ../src/goabackend/goafoursquareprovider.c:221 +#: ../src/goabackend/goafoursquareprovider.c:232 +#: ../src/goabackend/goafoursquareprovider.c:243 +#: ../src/goabackend/goafoursquareprovider.c:254 +#: ../src/goabackend/goafoursquareprovider.c:265 +#: ../src/goabackend/goagoogleprovider.c:245 +#: ../src/goabackend/goagoogleprovider.c:257 +#: ../src/goabackend/goalastfmprovider.c:211 +#: ../src/goabackend/goalastfmprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:237 +#: ../src/goabackend/goalastfmprovider.c:503 +#: ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:527 +#: ../src/goabackend/goalastfmprovider.c:534 +#: ../src/goabackend/goaoauth2provider.c:699 +#: ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 ../src/goabackend/goautils.c:153 +#: ../src/goabackend/goawindowsliveprovider.c:215 +#: ../src/goabackend/goawindowsliveprovider.c:227 +#: ../src/goabackend/goawindowsliveprovider.c:239 +#, c-format +msgid "Could not parse response" +msgstr "応答を解析できませんでした" + +#: ../src/goabackend/goaflickrprovider.c:78 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:322 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"お使いのシステムの時刻が正しくありません。日付と時刻の設定を確認してくださ" +"い。" + +#: ../src/goabackend/goafoursquareprovider.c:78 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:77 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "サービスは利用できません" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goalastfmprovider.c:520 +#: ../src/goabackend/goasmtpauth.c:113 ../src/goabackend/goautils.c:584 +#, c-format +msgid "Authentication failed" +msgstr "認証失敗" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "サーバーが PLAIN をサポートしていません" + +#: ../src/goabackend/goaimapauthlogin.c:194 ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "サーバーが STARTTLS をサポートしていません" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP と SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "ユーザー名‘%2$s’の %1$s が不正です (%3$s, %4$d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "暗号化(_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "なし" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "接続後に STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "専用のポートで SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "名前(_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP サーバー(_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "SMTP サーバー(_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1020 +#: ../src/goabackend/goaimapsmtpprovider.c:1355 +msgid "_Forward" +msgstr "次へ(_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1004 +#: ../src/goabackend/goaimapsmtpprovider.c:1338 +msgid "Error connecting to IMAP server" +msgstr "IMAP サーバーへの接続に失敗しました" + +#: ../src/goabackend/goaimapsmtpprovider.c:1097 +#: ../src/goabackend/goaimapsmtpprovider.c:1412 +msgid "Error connecting to SMTP server" +msgstr "SMTP サーバーへの接続に失敗しました" + +#: ../src/goabackend/goaimapsmtpprovider.c:1510 +msgid "E-mail" +msgstr "メール" + +#: ../src/goabackend/goaimapsmtpprovider.c:1514 +msgid "Name" +msgstr "名前" + +#: ../src/goabackend/goaimapsmtpprovider.c:1524 +#: ../src/goabackend/goaimapsmtpprovider.c:1528 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1539 +#: ../src/goabackend/goaimapsmtpprovider.c:1543 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:99 +msgid "Enterprise Login (Kerberos)" +msgstr "企業向けログイン (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:293 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "このアカウントのチケッティングは無効化されています" + +#: ../src/goabackend/goakerberosprovider.c:318 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "キーリングにユーザー‘%s’用に保存した証明書が見つかりませんでした" + +#: ../src/goabackend/goakerberosprovider.c:331 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "証明書の中にユーザー‘%s’のパスワードが見つかりませんでした" + +#: ../src/goabackend/goakerberosprovider.c:726 +msgid "_Domain" +msgstr "ドメイン(_D)" + +#: ../src/goabackend/goakerberosprovider.c:727 +msgid "Enterprise domain or realm name" +msgstr "企業ドメイン名またはレルム名" + +#: ../src/goabackend/goakerberosprovider.c:963 +#: ../src/goaidentity/goaidentityservice.c:1126 +msgid "Log In to Realm" +msgstr "レルムへのログイン" + +#: ../src/goabackend/goakerberosprovider.c:964 +msgid "Please enter your password below." +msgstr "以下にパスワードを入力してください。" + +#: ../src/goabackend/goakerberosprovider.c:965 +msgid "Remember this password" +msgstr "このパスワードを記憶する" + +#: ../src/goabackend/goakerberosprovider.c:1107 +#, c-format +msgid "The domain is not valid" +msgstr "ドメインが正しくありません" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "企業アイデンティティサーバーへの接続中にエラーが発生しました" + +#: ../src/goabackend/goakerberosprovider.c:1522 +#, c-format +msgid "Identity service returned invalid key" +msgstr "アイデンティティサーバーより無効なキーが返されました" + +#: ../src/goabackend/goalastfmprovider.c:64 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:688 +#: ../src/goabackend/goalastfmprovider.c:836 +msgid "Error connecting to Last.fm" +msgstr "Last.fm への接続に失敗しました" + +#: ../src/goabackend/goamediaserverprovider.c:77 +msgid "Media Server" +msgstr "メディアサーバー" + +#: ../src/goabackend/goamediaserverprovider.c:355 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"メディアサーバーのアカウントを通じて個人のコンテンツをお使いのアプリケーショ" +"ンに追加できます。" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "Available Media Servers" +msgstr "利用できるメディアサーバー" + +#: ../src/goabackend/goamediaserverprovider.c:399 +msgid "No media servers found" +msgstr "メディアサーバーが見つかりませんでした" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"token を要求した時に返されるステータスは 200 を期待していましたが、代わりに受" +"け取ったステータスは %d (%s) でした" + +#: ../src/goabackend/goaoauth2provider.c:841 +msgid "Authorization response: " +msgstr "認証の応答:" + +#: ../src/goabackend/goaoauth2provider.c:911 +#, c-format +msgid "Authorization response: %s" +msgstr "認証の応答: %s" + +#: ../src/goabackend/goaoauth2provider.c:1059 +#: ../src/goabackend/goaoauthprovider.c:893 +msgid "Error getting an Access Token: " +msgstr "アクセス用トークンの取得エラー: " + +#: ../src/goabackend/goaoauth2provider.c:1074 +#: ../src/goabackend/goaoauthprovider.c:906 +msgid "Error getting identity: " +msgstr "識別情報の取得中にエラー発生: " + +#: ../src/goabackend/goaoauth2provider.c:1291 +#: ../src/goabackend/goaoauthprovider.c:1210 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s でログインしたものの最終的に %s でのログインになりました" + +#: ../src/goabackend/goaoauth2provider.c:1453 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "証明書に access_token が含まれていません" + +#: ../src/goabackend/goaoauth2provider.c:1492 +#: ../src/goabackend/goaoauthprovider.c:1438 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "アクセス用トークン (%s, %d) の更新エラー: " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"受信した応答の中に access_token または access_token_secret のヘッダーがありま" +"せん" + +#: ../src/goabackend/goaoauthprovider.c:774 +msgid "Error getting a Request Token: " +msgstr "リクエスト用トークンの取得エラー: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:807 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"リクエスト用トークンの取得で 200 のステータスを期待していましたが、代わりに受" +"け取ったのは %d (%s) でした" + +#: ../src/goabackend/goaoauthprovider.c:824 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"受信した応答の中に request_token または request_token_secret のヘッダーがあり" +"ません" + +#: ../src/goabackend/goaoauthprovider.c:1394 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "証明書に access_token や access_token_secret が含まれていません" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:761 +#: ../src/goabackend/goaowncloudprovider.c:943 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud サーバーへの接続に失敗しました" + +#: ../src/goabackend/goapocketprovider.c:70 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:219 +#, c-format +msgid "No username or access_token" +msgstr "ユーザー名かアクセストークンがありません(_T)" + +#: ../src/goabackend/goaprovider.c:479 +msgid "_Mail" +msgstr "メール(_M)" + +#: ../src/goabackend/goaprovider.c:484 +msgid "Cale_ndar" +msgstr "カレンダー(_N)" + +#: ../src/goabackend/goaprovider.c:489 +msgid "_Contacts" +msgstr "連絡先(_C)" + +#: ../src/goabackend/goaprovider.c:494 +msgid "C_hat" +msgstr "チャット(_H)" + +#: ../src/goabackend/goaprovider.c:499 +msgid "_Documents" +msgstr "ドキュメント(_D)" + +#: ../src/goabackend/goaprovider.c:504 +msgid "M_usic" +msgstr "音楽(_U)" + +#: ../src/goabackend/goaprovider.c:509 +msgid "_Photos" +msgstr "写真(_P)" + +#: ../src/goabackend/goaprovider.c:514 +msgid "_Files" +msgstr "ファイル(_F)" + +#: ../src/goabackend/goaprovider.c:519 +msgid "Network _Resources" +msgstr "ネットワークリソース(_R)" + +#: ../src/goabackend/goaprovider.c:524 +msgid "_Read Later" +msgstr "あとで読む(_R)" + +#: ../src/goabackend/goaprovider.c:529 +msgid "Prin_ters" +msgstr "プリンター(_T)" + +#: ../src/goabackend/goaprovider.c:534 +msgid "_Maps" +msgstr "地図(_M)" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:563 +msgid "Use for" +msgstr "用途" + +#: ../src/goabackend/goaprovider.c:802 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "%s では ensure_credentials_sync は未だ利用できません" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS が利用できません" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:242 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail が利用できません" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:252 +#, c-format +msgid "Failed to parse email address" +msgstr "メールアドレスの解析に失敗しました" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:261 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "ドメインなしで SMTP 認証はできません" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "資格情報に SMTP パスワードが見つかりませんでした" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "パスワードなしで SMTP 認証はできません" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "不明な認証メカニズム" + +#: ../src/goabackend/goatelepathyprovider.c:181 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Telepathy チャットアカウントが見つかりませんでした" + +#: ../src/goabackend/goatelepathyprovider.c:381 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "GOA クライアントの初期化に失敗しました" + +#: ../src/goabackend/goatelepathyprovider.c:421 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s のユーザーインターフェース作成に失敗しました" + +#: ../src/goabackend/goatelepathyprovider.c:536 +msgid "Connection Settings" +msgstr "接続設定" + +#: ../src/goabackend/goatelepathyprovider.c:645 +msgid "Personal Details" +msgstr "個人情報" + +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_OK" +msgstr "_OK" + +#: ../src/goabackend/goatelepathyprovider.c:839 +msgid "Cannot save the connection parameters" +msgstr "接続パラメーターを保存できません" + +#: ../src/goabackend/goatelepathyprovider.c:852 +msgid "Cannot save your personal information on the server" +msgstr "個人情報をサーバーに保存できません" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:878 +msgid "_Connection Settings" +msgstr "接続設定(_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:882 +msgid "_Personal Details" +msgstr "個人情報(_P)" + +#: ../src/goabackend/goautils.c:120 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s アカウントは、すでに %s に使用されています。" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:170 +#, c-format +msgid "%s account" +msgstr "%s アカウント" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:214 +msgid "Failed to delete credentials from the keyring" +msgstr "キーリングから証明書の削除に失敗しました" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:266 +msgid "Failed to retrieve credentials from the keyring" +msgstr "キーリングから証明書の取得に失敗しました" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:276 +msgid "No credentials found in the keyring" +msgstr "キーリングに証明書が見つかりませんでした" + +#: ../src/goabackend/goautils.c:289 +msgid "Error parsing result obtained from the keyring: " +msgstr "キーリングから取得した結果の解析に失敗しました: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:332 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA の %s は %s を正しく認識しました" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:349 +msgid "Failed to store credentials in the keyring" +msgstr "キーリングへの証明書の保存に失敗しました" + +#: ../src/goabackend/goautils.c:571 +msgid "Cannot resolve hostname" +msgstr "ホスト名を解決できませんでした" + +#: ../src/goabackend/goautils.c:575 +msgid "Cannot resolve proxy hostname" +msgstr "プロキシのホスト名を解決できませんでした" + +#: ../src/goabackend/goautils.c:580 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV エンドポイントが見つかりませんでした" + +#: ../src/goabackend/goautils.c:589 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "コード: %u — サーバーからの予期しない応答" + +#: ../src/goabackend/goautils.c:605 +msgid "The signing certificate authority is not known." +msgstr "署名している認証局が未知です。" + +#: ../src/goabackend/goautils.c:609 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "証明書が予期した取得サイトの識別情報と一致しません。" + +#: ../src/goabackend/goautils.c:614 +msgid "The certificate’s activation time is still in the future." +msgstr "証明書の発効時刻が未来になっています。" + +#: ../src/goabackend/goautils.c:618 +msgid "The certificate has expired." +msgstr "証明書の有効期限が切れています。" + +#: ../src/goabackend/goautils.c:622 +msgid "The certificate has been revoked." +msgstr "証明書が失効しています。" + +#: ../src/goabackend/goautils.c:626 +msgid "The certificate’s algorithm is considered insecure." +msgstr "証明書のアルゴリズムは安全ではないものと見なされています。" + +#: ../src/goabackend/goautils.c:630 +msgid "Invalid certificate." +msgstr "不正な証明書です。" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:665 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "資格情報に識別子‘%2$s’の %1$s が見つかりませんでした。" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s”をロード中…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Microsoft Account" +msgstr "Microsoft アカウント" + +#: ../src/goaidentity/goaidentityservice.c:378 +msgid "initial secret passed before secret key exchange" +msgstr "" +"シークレットキーの交換が行われる前に初期設定のシークレットが渡されました" + +#: ../src/goaidentity/goaidentityservice.c:574 +msgid "Initial secret key is invalid" +msgstr "初期設定のシークレットキーが無効です" + +#: ../src/goaidentity/goaidentityservice.c:1131 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"ネットワークレルム %s にサインインを行うには、 何らかの情報を与える必要があり" +"ます。" + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "証明書キャッシュに識別情報が見つかりませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "キャッシュに識別情報の証明書が見つかりませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "キャッシュにある識別情報の証明書の選別ができませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "キャッシュにある識別情報の証明書の選別を終了できませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "関連のある ID が見つかりませんでした" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "証明書キャッシュを作成できませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "証明書用キャッシュを初期化できませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "証明書用キャッシュに新しい証明書を保存できませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "識別情報を更新できませんでした: サインインしていません" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "識別情報を更新できませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "識別情報 %s の更新に必要な新しい証明書が取得できませんでした: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "識別情報の消去ができませんでした: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "識別情報が見つかりませんでした" + +#: ../src/goaidentity/goakerberosidentitymanager.c:840 +msgid "Could not create credential cache for identity" +msgstr "識別情報用の証明書キャッシュを作成できませんでした" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "資格情報に識別子‘%s’のパスワードが見つかりませんでした。" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "name を要求した時に返されるステータスは 200 を期待していましたが、代わりに" +#~ "受け取ったステータスは %d (%s) でした" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "認証のページで得られた認証コードを入力してください:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "認証のページで得られたトークンを入力してください:" + +#~ msgid "Time" +#~ msgstr "時間" + +#~ msgid "Time to fire" +#~ msgstr "起動させる時間" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "自動検出エレメントの検出に失敗しました" + +#~ msgid "Failed to find Account element" +#~ msgstr "Account 要素が見つかりませんでした" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "guid を要求した時に返されるステータスは 200 を期待していましたが、代わりに" +#~ "受け取ったステータスは %d (%s) でした" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "資格情報に識別子 '%s' の IMAP パスワードが見つかりませんでした。" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "ユーザー名 '%s' の IMAP パスワードが不正です (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "資格情報に識別子 '%s' の SMTP パスワードが見つかりませんでした。" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "ユーザー名 '%s' の SMTP パスワードが不正です (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "オンラインアカウント" + +#~ msgid "An online account needs attention" +#~ msgstr "オンラインアカウントの利用には注意が必要です" + +#~ msgid "Open Online Accounts..." +#~ msgstr "オンラインアカウントを開く..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "キーリング (%s, %d) の中に証明書が見つかりませんでした: " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "JSON からの応答の解析に失敗しました: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON データの中に id メンバーがありませんでした" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON データの中に email メンバーがありませんでした" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON データの中に data メンバーがありませんでした" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "JSON 以外のデータの中に access_token がありませんでした" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON データの中に access_token がありませんでした" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "証明書をキーリングの (%s, %d) に保存できませんでした: " + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON データの中に id str メンバーがありませんでした" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON データの中に screen_name メンバーがありませんでした" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON データの中に email メンバーがありませんでした" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON データの中に guid メンバーがありませんでした" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON データの中に value メンバーがありませんでした" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "JSON からの usercard 応答の解析に失敗しました: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON データの中に profile メンバーがありませんでした" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON データの中に nickname メンバーがありませんでした" + +#~ msgid "Domain Administrator Login" +#~ msgstr "ドメイン管理者のログイン" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "この企業用の識別情報を使用する場合は、コンピューターをドメインに登録する必" +#~ "要があります。ネットワーク管理者の方にドメイン用のパスワードを入力しても" +#~ "らってください。" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "この企業用の識別情報を使用する場合は、コンピューターをドメインに登録する必" +#~ "要があります。ネットワーク管理者の方にドメイン用のユーザー名を入力しても" +#~ "らってください。" + +#~ msgid "No such domain or realm found" +#~ msgstr "そのようなドメインやレルムは見つかりませんでした" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%s として %s ドメインにはログインできません" + +#~ msgid "Invalid password, please try again" +#~ msgstr "無効なパスワードです、もう一度やり直してください" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "%s ドメインに接続できませんでした: %s" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Microsoft Exchange の新しいアカウント" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "新しい企業向けログイン (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "%s を追加する" + +#~ msgid "Refresh %s" +#~ msgstr "%s を更新する" + +#~ msgid "Email _Address" +#~ msgstr "メールアドレス(_A)" + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "JSON データの中に username メンバーが見つかりませんでした" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON データの中に name メンバーが見つかりませんでした" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "次の身元情報のアカウントは既に存在しています: %s" + +#~ msgid "Expected 200 for getting a Request Token, got %d (%s)" +#~ msgstr "" +#~ "リクエスト用のトークンの取得で返されるステータスは 200 を期待していました" +#~ "が、受け取ったステータスは %d (%s) でした" diff --git a/po/kk.gmo b/po/kk.gmo new file mode 100644 index 0000000..fd888dc Binary files /dev/null and b/po/kk.gmo differ diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..2bad07d --- /dev/null +++ b/po/kk.po @@ -0,0 +1,918 @@ +# Kazakh translation for gnome-online-accounts. +# Copyright (C) 2013 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Baurzhan Muftakhidinov , 2013-2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-02-18 09:24+0500\n" +"Last-Translator: Baurzhan Muftakhidinov \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.3\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Жүктелуге рұқсат етілген ұсынушылар тізімі" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Жүктелуге рұқсат етілген ұсынушылар тізімін сипаттайтын жолдар тізімі " +"(бастапқы мәні: 'all'). Бұл тек іске қосылғанда оқылады." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Келесі үшін ұсынушы табылмады: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Тіркелгі үшін IsLocked қасиеті орнатылған" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "ProviderType қасиеті тіркелгі үшін орнатылмаған" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Autodiscover жауап XML талдау сәтсіз аяқталды" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "\"%s\" элементін табу сәтсіз аяқталды" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Autodiscover жауабында ASUrl және OABUrl табу сәтсіз аяқталды" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "\"%s\" пайдаланушы аты үшін пароль қате (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Эл. пошта" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "Пар_оль" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "Таң_дауыңызша" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Па_йдаланушы аты" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "С_ервер" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "Ба_с тарту" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Ба_йланысу" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Байланысты орнату…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Сұхбат тайдырылды" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Сұхбат тайдырылды (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "Еле_меу" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Қай_тадан көру" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft Exchange серверіне байланысты орнату сәтсіз аяқталды" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "Идентификацияны сұрау кезінде 200 күйі күтілген, орнына %d (%s) алынды" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Жауапты талдау мүмкін емес" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Сіздің жүйелік уақытыңыз қате. Жүйенің күн мен уақыт баптауларын тексеріңіз." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Қызмет қолжетерсіз" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Аутентификация сәтсіз" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Сервер PLAIN тәсілін қолдамайды" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Сервер STARTTLS тәсілін қолдамайды" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP және SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Жарамсыз %s, пайдаланушы аты \"%s\" (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "Шифрл_еу" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ешнәрсе" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "Байланысудан кейінгі STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "Көрсетілген порттағы SSL" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Аты" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP с_ервері" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP с_ервері" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "А_лға" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "IMAP серверіне байланысты орнату қатесі" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "SMTP серверіне байланысты орнату қатесі" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Эл. пошта" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Аты" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Кәсіпорын тіркелгісі (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Тіркелгі үшін билет алу сөндірілген" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Кілттер бауында \"%s\" қатынау әкімшісі үшін сақталған тіркелу мәліметтері " +"табылмады" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Тіркелу мәліметтерінде \"%s\" қатынау әкімшісі үшін пароль табылмады" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "Қа_тынау әкімшісі" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Әрекеттен бас тартылды" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Желілік аймаққа кіру" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Төменде пароліңізді енгізіңіз." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Бұл парольді еске сақтау" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Кәсіпорын идентификаторлары серверіне байланысу қатесі" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Идентификация қызметі жарамсыз кілтті қайтарды" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Last.fm-ге байланысты орнату қатесі" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Медиа сервері" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Қолданбаларыңызға жеке құраманы медиа сервер тіркелгісі арқылы қосуға болады." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Қолжетерлік медиа серверлері" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Медиа серверлері табылмады" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Қатынау токенін алуда 200 қалып-күй коды күтілген, бірақ, %d (%s) коды " +"алынған" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Авторизация жауабы: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Авторизация жауабы: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Қатынау токенін алу қатесі: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Идентификаторды алу қатесі: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Біз %s ретінде кіруді сұрадық, бірақ %s ретінде кірдік" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Тіркелу мәліметтерінде access_token табылмады" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Қатынау токенін жаңарту қатесі (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Жауапта access_token не access_token_secret тақырыптамалары жоқ" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Сұраным токенін алу қатесі: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Сұраным токенін алуда 200 қалып-күй коды күтілген, бірақ, %d (%s) коды " +"алынған" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Жауапта request_token не request_token_secret тақырыптамалары жоқ" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Тіркелу мәліметтерінде access_token не access_token_secret жоқ" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud серверіне байланысты орнату қатесі" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Пайдаланушы аты не access_token жоқ" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Пошта" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Кү_нтізбе" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Контакттар" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Чат" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "Құ_жаттар" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "Му_зыка" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Фотолар" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "Фа_йлдар" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Желілік _ресурстар" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Кейінірек оқу" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Прин_терлер" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Карталар" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Не үшін қолдану" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Тіркелгі сөндірілген" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Белгісіз қате" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync %s түрі үшін іске асырылмаған" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS қолжетерсіз" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Аутентификация механизмі белгісіз" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Telepathy чат тіркелгісі табылмады" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s үшін пайдаланушы интерфейсін жасау сәтсіз" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Байланыс баптаулары" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Жеке ақпарат" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_ОК" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Байланыс баптауларын сақтау мүмкін емес" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Жеке ақпаратыңызды серверде сақтау мүмкін емес" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Байланы_с баптаулары" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Же_ке ақпарат" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Тіркелгіге кіру қатесі" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Тіркелу мәліметтерінің мерзімі аяқталған" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Бұл тіркелгіні іске қосу үшін кіріңіз." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Кіру" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s тіркелгісі %s үшін бар болып тұр" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s тіркелгісі" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Тіркелу мәліметтерін кілттер бауынан өшіру қатесі" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Тіркелу мәліметтерін кілттер бауынан алу қатесі" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Кілттер бауында тіркелу мәліметтері табылмады" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Кілттер бауынан алынған нәтижені талдау қатесі: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s тіркелу мәліметтері, %s идентификаторы үшін" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Тіркелу мәліметтерін кілттер бауында сақтау қатесі" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Хост атын шешу мүмкін емес" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Прокси хост атын шешу мүмкін емес" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV түпкі нүктесін табу мүмкін емес" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Коды: %u — Серверден күтпеген жауап алынды" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Қолтаңба қойған сертификаттың сертификаттау орталығы белгісіз." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Сертификат өзі алынған сайттың күтілген анықтағышына сәйкес келмейді." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Сертификатты белсендіру уақыты әлі болашақта." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Сертификаттың мерзімі аяқталған." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Сертификат қайта шақырылған." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Сертификат алгоритмі қауіпсіз емес ретінде саналады." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Қате сертификат." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Тіркелу мәліметтерінде \"%2$s\" идентификаторы бар \"%1$s\" табылмады" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "\"%s\" жүктеу…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Бастапқы құпия кілті жарамсыз" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "%s желілік аймаққа кіру үшін біршама ақпарат керек." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Идентификаторды тіркелу мәліметтері кэшінен табу мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Идентификатордың тіркелу мәліметтерін кэш ішіненмүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Кэште тіркелу мәліметтерін қарау мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Кэште тіркелу мәліметтерін қарауды аяқтау мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Сәйкестелген идентификация табылмады" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Тіркелу мәліметтері кэшін жасау мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Тіркелу мәліметтері кэшін инициялизациялау мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Тіркелу мәліметтерін кэште сақтау мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Идентификаторды жаңарту мүмкін емес: Кіру орындалмаған" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Идентификаторды жаңарту мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"%s идентификаторын жаңарту үшін жаңа тіркелу мәліметтерін алу мүмкін емес: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Идентификаторды өшіру мүмкін емес: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Идентификаторды табу мүмкін емес" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Идентификатор үшін тіркелу мәліметтері кэшін жасау мүмкін емес" + +#~ msgid "_Domain" +#~ msgstr "До_мен" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Кәсіпорын домені не желілік аймақ атауы" + +#~ msgid "The domain is not valid" +#~ msgstr "Домен қате" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail қолжетерсіз" + +#~ msgid "Failed to parse email address" +#~ msgstr "Эл. пошта адресін талдау сәтсіз" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "SMTP аутентификациясын доменсіз жасау мүмкін емес" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Тіркелу мәліметтерінде парольді (smtp) табу мүмкін емес" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "SMTP аутентификациясын парольсіз жасау мүмкін емес" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "бастапқы құпия кілті құпия кілттермен алмасуға дейін берілді" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "GOA клиентін іске қосу сәтсіз аяқталды" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Тіркелу мәліметтерінде \"%s\" идентификаторы бар пароль табылмады" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "Атын сұрау кезінде 200 күй күтілген, орнына %d (%s) алынды" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Autodiscover элементін табу сәтсіз аяқталды" + +#~ msgid "Failed to find Account element" +#~ msgstr "Account элементін табу сәтсіз аяқталды" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Уақыт" + +#~ msgid "Online Accounts" +#~ msgstr "Желідегі тіркелгілер" + +#~ msgid "An online account needs attention" +#~ msgstr "Желідегі тіркелгі назарыңызды сұрап тұр" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Желідегі тіркелгілерді ашу..." diff --git a/po/km.gmo b/po/km.gmo new file mode 100644 index 0000000..fa02a1e Binary files /dev/null and b/po/km.gmo differ diff --git a/po/km.po b/po/km.po new file mode 100644 index 0000000..160b8ca --- /dev/null +++ b/po/km.po @@ -0,0 +1,943 @@ +# translation of gnome-online-accounts.master.po to Khmer +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Khoem Sokhem , 2012. +# Morn Met , 2012. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-04-02 07:23+0000\n" +"PO-Revision-Date: 2012-03-01 11:43+0700\n" +"Last-Translator: Morn Met \n" +"Language-Team: Khmer \n" +"Language: km\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: WordForge 0.8 RC1\n" +"X-Language: km-KH\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:785 ../src/daemon/goadaemon.c:1031 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​រក​ក្រុមហ៊ុន​ផ្ដល់​សម្រាប់៖ %s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1019 +msgid "ProviderType property is not set for account" +msgstr "លក្ខណសម្បត្តិ​ប្រភេទ​ក្រុមហ៊ុន​ផ្ដល់​មិន​ត្រូវ​បាន​កំណត់​សម្រាប់គណនី" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:231 ../src/goabackend/goahttpclient.c:172 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "កូដ​៖ %u — ការ​ឆ្លើយតប​មិន​រំពឹង​ទុក​ពី​ម៉ាស៊ីន​មេ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:247 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ញែក​ការ​ឆ្លើយតប​រក​ឃើញ​ស្វ័យ​ប្រវត្តិ​ XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:258 ../src/goabackend/goaewsclient.c:273 +#: ../src/goabackend/goaewsclient.c:288 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​រក​ធាតុ ‘%s’" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:305 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"បាន​បរាជ័យ​ក្នុង​ការ​រក ASUrl និង OABUrl " +"ក្នុង​ការ​ឆ្លើយតប​​រក​ឃើញ​ស្វ័យ​ប្រវត្តិ" + +#: ../src/goabackend/goaexchangeprovider.c:75 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:313 +#: ../src/goabackend/goaexchangeprovider.c:1024 +#: ../src/goabackend/goaowncloudprovider.c:400 +#: ../src/goabackend/goaowncloudprovider.c:1187 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "កុំ​រក​ពាក្យ​សម្ងាត់​មាន​អត្តសញ្ញាណ ‘%s’ ក្នុង​ព័ត៌មាន​សម្ងាត់" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:341 +#: ../src/goabackend/goaowncloudprovider.c:423 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ​ជា​មួយ​ឈ្មោះអ្នកប្រើ ‘%s’ (%s, %d) ៖ " + +#: ../src/goabackend/goaexchangeprovider.c:495 +#: ../src/goabackend/goaimapsmtpprovider.c:719 +msgid "_E-mail" +msgstr "អ៊ីមែល" + +#: ../src/goabackend/goaexchangeprovider.c:496 +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:759 +#: ../src/goabackend/goaowncloudprovider.c:652 +msgid "_Password" +msgstr "ពាក្យសម្ងាត់" + +#: ../src/goabackend/goaexchangeprovider.c:499 +msgid "_Custom" +msgstr "ផ្ទាល់ខ្លួន" + +#: ../src/goabackend/goaexchangeprovider.c:510 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goaimapsmtpprovider.c:758 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:651 +#| msgid "User Name" +msgid "User_name" +msgstr "ឈ្មោះ​អ្នកប្រើ" + +#: ../src/goabackend/goaexchangeprovider.c:511 +#: ../src/goabackend/goaowncloudprovider.c:650 +msgid "_Server" +msgstr "ម៉ាស៊ីន​មេ" + +#: ../src/goabackend/goaexchangeprovider.c:521 +#: ../src/goabackend/goakerberosprovider.c:1133 +#: ../src/goabackend/goaowncloudprovider.c:661 +msgid "C_onnect" +msgstr "តភ្ជាប់" + +#: ../src/goabackend/goaexchangeprovider.c:541 +#: ../src/goabackend/goaimapsmtpprovider.c:791 +#: ../src/goabackend/goakerberosprovider.c:1153 +#: ../src/goabackend/goaowncloudprovider.c:681 +msgid "Connecting…" +msgstr "កំពុង​តភ្ជាប់..." + +#: ../src/goabackend/goaexchangeprovider.c:646 +#: ../src/goabackend/goaexchangeprovider.c:841 +#: ../src/goabackend/goaimapsmtpprovider.c:953 +#: ../src/goabackend/goaimapsmtpprovider.c:988 +#: ../src/goabackend/goaimapsmtpprovider.c:1076 +#: ../src/goabackend/goaimapsmtpprovider.c:1338 +#: ../src/goabackend/goaimapsmtpprovider.c:1411 +#: ../src/goabackend/goakerberosprovider.c:1544 +#: ../src/goabackend/goaoauth2provider.c:1207 +#: ../src/goabackend/goaoauthprovider.c:1041 +#: ../src/goabackend/goaowncloudprovider.c:792 +#: ../src/goabackend/goaowncloudprovider.c:1005 +#: ../src/goabackend/goatelepathyprovider.c:485 +#: ../src/goabackend/goatelepathyprovider.c:534 +#: ../src/goabackend/goatelepathyprovider.c:708 +#, c-format +msgid "Dialog was dismissed" +msgstr "ប្រអប់​ត្រូវ​បាន​បដិសេធ" + +#: ../src/goabackend/goaexchangeprovider.c:684 +#: ../src/goabackend/goaexchangeprovider.c:869 +#: ../src/goabackend/goaimapsmtpprovider.c:1018 +#: ../src/goabackend/goaimapsmtpprovider.c:1111 +#: ../src/goabackend/goaimapsmtpprovider.c:1362 +#: ../src/goabackend/goaimapsmtpprovider.c:1436 +#: ../src/goabackend/goaowncloudprovider.c:834 +#: ../src/goabackend/goaowncloudprovider.c:1026 +#, c-format +#| msgid "Dialog was dismissed" +msgid "Dialog was dismissed (%s, %d): " +msgstr "បាន​បដិសេធ​ប្រអប់ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:697 +#: ../src/goabackend/goaimapsmtpprovider.c:1031 +#: ../src/goabackend/goaimapsmtpprovider.c:1124 +#: ../src/goabackend/goaowncloudprovider.c:847 +msgid "_Ignore" +msgstr "មិន​អើពើ" + +#: ../src/goabackend/goaexchangeprovider.c:702 +#: ../src/goabackend/goaexchangeprovider.c:888 +#: ../src/goabackend/goaimapsmtpprovider.c:1036 +#: ../src/goabackend/goaimapsmtpprovider.c:1129 +#: ../src/goabackend/goaimapsmtpprovider.c:1381 +#: ../src/goabackend/goaimapsmtpprovider.c:1455 +#: ../src/goabackend/goakerberosprovider.c:1654 +#: ../src/goabackend/goaowncloudprovider.c:852 +#: ../src/goabackend/goaowncloudprovider.c:1045 +msgid "_Try Again" +msgstr "ព្យាយាម​ម្ដង​ទៀត" + +#: ../src/goabackend/goaexchangeprovider.c:707 +#: ../src/goabackend/goaexchangeprovider.c:881 +msgid "Error connecting to Microsoft Exchange server" +msgstr "កំហុស​ក្នុង​ការ​ភ្ជាប់​ទៅ​ម៉ាស៊ីន​មេ Microsoft Exchange" + +#: ../src/goabackend/goaexchangeprovider.c:807 +#: ../src/goabackend/goaimapsmtpprovider.c:1276 +#: ../src/goabackend/goaoauth2provider.c:1430 +#: ../src/goabackend/goaoauthprovider.c:1352 +#: ../src/goabackend/goaowncloudprovider.c:965 +#: ../src/goabackend/goatelepathyprovider.c:673 +msgid "_Cancel" +msgstr "បោះបង់" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:943 +#: ../src/goabackend/goafacebookprovider.c:434 +#: ../src/goabackend/goaflickrprovider.c:424 +#: ../src/goabackend/goagoogleprovider.c:563 +#: ../src/goabackend/goakerberosprovider.c:1727 +#: ../src/goabackend/goaowncloudprovider.c:1101 +#: ../src/goabackend/goapocketprovider.c:425 +#: ../src/goabackend/goatelepathyprovider.c:915 +#: ../src/goabackend/goawindowsliveprovider.c:453 +msgid "Use for" +msgstr "ប្រើសម្រាប់" + +#: ../src/goabackend/goaexchangeprovider.c:945 +#: ../src/goabackend/goagoogleprovider.c:565 +#: ../src/goabackend/goawindowsliveprovider.c:455 +#| msgid "Mail" +msgid "_Mail" +msgstr "សំបុត្រ" + +#: ../src/goabackend/goaexchangeprovider.c:950 +#: ../src/goabackend/goagoogleprovider.c:570 +#: ../src/goabackend/goaowncloudprovider.c:1103 +#| msgid "Calendar" +msgid "Cale_ndar" +msgstr "ប្រតិទិន" + +#: ../src/goabackend/goaexchangeprovider.c:955 +#: ../src/goabackend/goagoogleprovider.c:575 +#: ../src/goabackend/goaowncloudprovider.c:1108 +#| msgid "Contacts" +msgid "_Contacts" +msgstr "ទំនាក់ទំនង" + +#: ../src/goabackend/goafacebookprovider.c:79 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:216 +#: ../src/goabackend/goaflickrprovider.c:186 +#: ../src/goabackend/goagoogleprovider.c:214 +#: ../src/goabackend/goawindowsliveprovider.c:194 +#: ../src/goabackend/goayahooprovider.c:184 +#, c-format +#| msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"បាន​រំពឹង​ស្ថានភាព ២០០​ ពេល​ស្នើ​អត្តសញ្ញាណ​របស់​អ្នក " +"ជំនួស​ឲ្យ​ទទួល​ស្ថានភាព %d (%s)" + +#: ../src/goabackend/goafacebookprovider.c:235 +#: ../src/goabackend/goafacebookprovider.c:247 +#: ../src/goabackend/goafacebookprovider.c:257 +#: ../src/goabackend/goaflickrprovider.c:205 +#: ../src/goabackend/goaflickrprovider.c:217 +#: ../src/goabackend/goaflickrprovider.c:227 +#: ../src/goabackend/goaflickrprovider.c:237 +#: ../src/goabackend/goaflickrprovider.c:247 +#: ../src/goabackend/goagoogleprovider.c:233 +#: ../src/goabackend/goagoogleprovider.c:245 +#: ../src/goabackend/goaoauth2provider.c:728 +#: ../src/goabackend/goaoauth2provider.c:758 +#: ../src/goabackend/goaoauth2provider.c:770 +#: ../src/goabackend/goawindowsliveprovider.c:213 +#: ../src/goabackend/goawindowsliveprovider.c:225 +#: ../src/goabackend/goawindowsliveprovider.c:237 +#: ../src/goabackend/goayahooprovider.c:203 +#: ../src/goabackend/goayahooprovider.c:215 +#: ../src/goabackend/goayahooprovider.c:226 +#: ../src/goabackend/goayahooprovider.c:272 +#: ../src/goabackend/goayahooprovider.c:284 +#: ../src/goabackend/goayahooprovider.c:295 +#, c-format +msgid "Could not parse response" +msgstr "មិន​អាច​ញែក​ការ​ឆ្លើយតប" + +#: ../src/goabackend/goafacebookprovider.c:436 +#: ../src/goabackend/goagoogleprovider.c:580 +#: ../src/goabackend/goatelepathyprovider.c:917 +#: ../src/goabackend/goawindowsliveprovider.c:460 +msgid "C_hat" +msgstr "ជជែក" + +#: ../src/goabackend/goafacebookprovider.c:441 +#: ../src/goabackend/goaflickrprovider.c:426 +msgid "_Photos" +msgstr "រូបថត" + +#: ../src/goabackend/goaflickrprovider.c:80 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:325 +#: ../src/goabackend/goayahooprovider.c:347 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"ពេលវេលា​ប្រព័ន្ធ​របស់​អ្នក​មិន​ត្រឹមត្រូវ។ ពិនិត្យ​ការ​កំណត់​ពេលវេលា " +"និងកាលបរិច្ឆេទ។" + +#: ../src/goabackend/goagoogleprovider.c:79 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:585 +#: ../src/goabackend/goaowncloudprovider.c:1113 +#: ../src/goabackend/goawindowsliveprovider.c:465 +#| msgid "Documents" +msgid "_Documents" +msgstr "ឯកសារ" + +#: ../src/goabackend/goagoogleprovider.c:590 +msgid "_Printers" +msgstr "ម៉ាស៊ីន​បោះពុម្ព" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:97 ../src/goabackend/goasmtpauth.c:163 +#, c-format +msgid "Service not available" +msgstr "សេវាកម្ម​មិន​អាច​ប្រើ​បាន" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:118 +#: ../src/goabackend/goasmtpauth.c:116 +#, c-format +msgid "Authentication failed" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ផ្ទៀងផ្ទាត់" + +#: ../src/goabackend/goaimapauthlogin.c:143 +#, c-format +msgid "Server does not support PLAIN" +msgstr "ម៉ាស៊ីន​មេ​មិន​គាំទ្រ PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:197 +#: ../src/goabackend/goasmtpauth.c:821 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "ម៉ាស៊ីន​មេ​មិន​គាំទ្រ STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:79 +msgid "IMAP and SMTP" +msgstr "IMAP និង SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:376 +#: ../src/goabackend/goaimapsmtpprovider.c:434 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "មិន​បាន​រក %s ជា​មួយ​អត្តសញ្ញាណ ‘%s’ ក្នុង​ព័ត៌មាន​សម្ងាត់" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:407 +#: ../src/goabackend/goaimapsmtpprovider.c:467 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s មិន​ត្រឹមត្រូវ​ជា​មួយ​ឈ្មោះ​អ្នក​ប្រើ ‘%s’ (%s, %d) ៖ " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "_Encryption" +msgstr "ការ​អ៊ីនគ្រិប" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "None" +msgstr "គ្មាន" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "STARTTLS after connecting" +msgstr "STARTTLS បន្ទាប់​ពី​ភ្ជាប់" + +#: ../src/goabackend/goaimapsmtpprovider.c:663 +msgid "SSL on a dedicated port" +msgstr "SSL លើ​ច្រក​បាន​ផ្ដល់" + +#: ../src/goabackend/goaimapsmtpprovider.c:720 +#| msgid "Name" +msgid "_Name" +msgstr "ឈ្មោះ" + +#: ../src/goabackend/goaimapsmtpprovider.c:737 +msgid "IMAP _Server" +msgstr "ម៉ាស៊ីន IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:757 +msgid "SMTP _Server" +msgstr "ម៉ាស៊ីន​មេ SMTP" + +#. -- +#: ../src/goabackend/goaimapsmtpprovider.c:771 +#: ../src/goabackend/goaimapsmtpprovider.c:1057 +#: ../src/goabackend/goaimapsmtpprovider.c:1391 +msgid "_Forward" +msgstr "បញ្ជូន​បន្ត" + +#: ../src/goabackend/goaimapsmtpprovider.c:1041 +#: ../src/goabackend/goaimapsmtpprovider.c:1374 +msgid "Error connecting to IMAP server" +msgstr "កំហុស​ក្នុង​ការ​ភ្ជាប់​ម៉ាស៊ីន​មេ IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1134 +#: ../src/goabackend/goaimapsmtpprovider.c:1448 +msgid "Error connecting to SMTP server" +msgstr "កំហុស​ក្នុង​ការ​ភ្ជាប់​ម៉ាស៊ីន​មេ SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1547 +msgid "E-mail" +msgstr "អ៊ីមែល" + +#: ../src/goabackend/goaimapsmtpprovider.c:1551 +msgid "Name" +msgstr "ឈ្មោះ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1561 +#: ../src/goabackend/goaimapsmtpprovider.c:1564 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1575 +#: ../src/goabackend/goaimapsmtpprovider.c:1578 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:83 +msgid "Enterprise Login (Kerberos)" +msgstr "ការ​ចូល​ជា​សហគ្រាស (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:451 +msgid "Identity service returned invalid key" +msgstr "សេវាកម្ម​អត្តសញ្ញាណ​បាន​ត្រឡប់​សោ​មិន​ត្រឹមត្រូវ" + +#: ../src/goabackend/goakerberosprovider.c:723 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"មិន​អាច​រក​ព័ត៌មាន​សម្ងាត់​បាន​រក្សាទុក​សម្រាប់​គោលការណ៍ ‘%s’ ក្នុង keyring" + +#: ../src/goabackend/goakerberosprovider.c:736 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "មិន​រក​ពាក្យ​សម្ងាត់​សម្រាប់​គោលការណ៍ ‘%s’ ក្នុង​ព័ត៌មាន​សម្ងាត់" + +#: ../src/goabackend/goakerberosprovider.c:1120 +msgid "_Domain" +msgstr "ដែន" + +#: ../src/goabackend/goakerberosprovider.c:1121 +msgid "Enterprise domain or realm name" +msgstr "ដែន​ ឬ​ឈ្មោះ​តំបន់​សហគ្រាស" + +#: ../src/goabackend/goakerberosprovider.c:1353 +#: ../src/goaidentity/goaidentityservice.c:1112 +msgid "Log In to Realm" +msgstr "ចូល​ទៅតំបន់" + +#: ../src/goabackend/goakerberosprovider.c:1354 +msgid "Please enter your password below." +msgstr "សូម​បញ្ចូល​ពាក្យ​សម្ងាត់​របស់​អ្នក​ខាង​ក្រោម។" + +#: ../src/goabackend/goakerberosprovider.c:1355 +msgid "Remember this password" +msgstr "ចងចាំ​ពាក្យ​សម្ងាត់​នេះ" + +#: ../src/goabackend/goakerberosprovider.c:1494 +#, c-format +msgid "The domain is not valid" +msgstr "ដែន​មិន​ត្រឹមត្រូវ" + +#: ../src/goabackend/goakerberosprovider.c:1649 +#| msgid "Error getting identity: " +msgid "Error connecting to enterprise identity server" +msgstr "កំហុស​ក្នុង​ការ​ភ្ជាប់​ទៅ​ម៉ាស៊ីន​មេ​អត្តសញ្ញាណ" + +#: ../src/goabackend/goakerberosprovider.c:1729 +msgid "Network _Resources" +msgstr "ធនធាន​បណ្ដាញ" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:704 +#: ../src/goabackend/goaoauthprovider.c:586 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "រំពឹង​ស្ថានភាព ២០០ នៅ​ពេល​ស្នើ​ថូខឹន​ចូល​ដំណើរការ ប៉ុន្តែ​ទទួលបានស្ថានភាព %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:961 +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: " +msgstr "ការ​ឆ្លើយតប​អនុញ្ញាត៖" + +#: ../src/goabackend/goaoauth2provider.c:1031 +#, c-format +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: %s" +msgstr "ការ​ឆ្លើយតប​អនុញ្ញាត៖ %s" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:1133 +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr "បិទភ្ជាប់​កូដ​របស់​សេចក្ដីអនុញ្ញាត​ដែល​ទទួល​បាន​ពី ទំព័រ​សេចក្ដីអនុញ្ញាត ៖" + +#: ../src/goabackend/goaoauth2provider.c:1147 +#: ../src/goabackend/goaoauthprovider.c:992 +#: ../src/goabackend/goatelepathyprovider.c:674 +msgid "_OK" +msgstr "យល់ព្រម" + +#: ../src/goabackend/goaoauth2provider.c:1233 +#: ../src/goabackend/goaoauthprovider.c:1072 +msgid "Error getting an Access Token: " +msgstr "កំហុស​ក្នុង​ការ​ទទួល​យក​ថូខឹន​ចូល​ដំណើរការ ៖" + +#: ../src/goabackend/goaoauth2provider.c:1248 +#: ../src/goabackend/goaoauthprovider.c:1085 +msgid "Error getting identity: " +msgstr "កំហុស​ក្នុង​ការ​ទទួលយក​អត្តសញ្ញាណ ៖" + +#: ../src/goabackend/goaoauth2provider.c:1460 +#: ../src/goabackend/goaoauthprovider.c:1391 +#, c-format +#| msgid "Was asked to login as %s, but logged in as %s" +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "ស្នើ​ឲ្យ​ចូល​ជា %s, ប៉ុន្តែ​បាន​ចូលជា %s" + +#: ../src/goabackend/goaoauth2provider.c:1619 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "លិខិត​សម្គាល់​មិន​មាន​ថូខឹន​ចូល​ដំណើរការ​ទេ" + +#: ../src/goabackend/goaoauth2provider.c:1658 +#: ../src/goabackend/goaoauthprovider.c:1619 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ធ្វើឲ្យ​ស្រស់​ថូខឹន​ចូល​ដំណើរការ (%s, %d) ៖ " + +#: ../src/goabackend/goaoauthprovider.c:609 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "បាត់​បឋមកថា​របស់ access_token ឬ access_token_secret នៅ​ក្នុង​ចម្លើយ​តប" + +#: ../src/goabackend/goaoauthprovider.c:911 +msgid "Error getting a Request Token: " +msgstr "កំហុស​ក្នុង​ការ​ទទួល​យក​ថូខឹន​ដែល​បាន​ស្នើ ៖" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:944 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "រំពឹង​ស្ថានភាព ២០០ ក្នុង​ការ​ទទួល​យក​ថូខឹន​ដែល​បាន​ស្នើ ប៉ុន្តែ​ទទួល​បាន​ស្ថានភាព %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:961 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "បាត់​បឋមកថា​របស់ request_token ឬ request_token_secret headers នៅ​ក្នុង​ចម្លើយ​តប" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:978 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr "បិទ​ភ្ជាប់​ថូខឹន​ដែល​ទទួល​បាន​ពី ទំព័រ​សេចក្ដីអនុញ្ញាត ៖" + +#: ../src/goabackend/goaoauthprovider.c:1575 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "លិខិត​សម្គាល់​មិន​មាន access_token ឬ access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:84 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:857 +#: ../src/goabackend/goaowncloudprovider.c:1038 +msgid "Error connecting to ownCloud server" +msgstr "កំហុស​ក្នុង​ភ្ជាប់​ទៅ​ម៉ាស៊ីន​មេ ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:1118 +msgid "_Files" +msgstr "ឯកសារ" + +#: ../src/goabackend/goapocketprovider.c:86 +msgid "Pocket" +msgstr "រន្ត" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:235 +#, c-format +msgid "No username or access_token" +msgstr "គ្មាន​ឈ្មោះ​អ្នក​ប្រើ ឬ​និមិត្ត​សញ្ញា​ចូល" + +#: ../src/goabackend/goapocketprovider.c:427 +msgid "_Read Later" +msgstr "អាន​ពេល​ក្រោយ" + +#: ../src/goabackend/goaprovider.c:684 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync មិន​ត្រូវ​បាន​អនុវត្ត​លើ​ប្រភេទ %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:178 +#, c-format +msgid "TLS not available" +msgstr "TLS មិន​អាច​ប្រើ​បាន" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:244 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail មិន​អាច​ប្រើ​បាន" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:254 +#, c-format +msgid "Failed to parse email address" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ញែក​អាសយដ្ឋាន​អ៊ីមែល" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:266 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "មិន​អាច​ធ្វើ​ការ​ផ្ទៀងផ្ទាត់ SMTP ដោយ​គ្មាន​ដែន" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:304 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "មិន​អាច​រក​ smtp-password ក្នុង​ព័ត៌មាន​សម្ងាត់" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:315 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "មិន​អាច​ធ្វើការ​ផ្ទៀងផ្ទាត់ SMTP ដោយ​គ្មាន​ពាក្យ​សម្ងាត់" + +#: ../src/goabackend/goasmtpauth.c:677 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "មិន​ស្គាល់​យន្តការ​ផ្ទៀងផ្ទាត់" + +#: ../src/goabackend/goatelepathyprovider.c:182 +#, c-format +msgid "Telepathy chat account not found" +msgstr "មិន​អាច​រក​គណនី​​ជជែក​តាម​ទូរស័ព្ទ" + +#: ../src/goabackend/goatelepathyprovider.c:391 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ចាប់ផ្ដើម​ម៉ាស៊ីន​កូន GOA" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +#| msgid "Failed to store credentials in the keyring: %s" +msgid "Failed to create a user interface for %s" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​បង្កើត​ចំណុច​ប្រទាក់​អ្នកប្រើ​សម្រាប់ %s" + +#: ../src/goabackend/goatelepathyprovider.c:561 +msgid "Connection Settings" +msgstr "កំណត់ការ​តភ្ជាប់" + +#: ../src/goabackend/goatelepathyprovider.c:670 +msgid "Personal Details" +msgstr "ព័ត៌មាន​លម្អិត​ផ្ទាល់ខ្លួន" + +#: ../src/goabackend/goatelepathyprovider.c:879 +msgid "Cannot save the connection parameters" +msgstr "មិន​អាច​រក្សាទុក​ប៉ារ៉ាម៉ែត្រ​តភ្ជាប់" + +#: ../src/goabackend/goatelepathyprovider.c:891 +msgid "Cannot save your personal information on the server" +msgstr "មិន​អាច​រក្សាទុក​ព័ត៌មាន​ផ្ទាល់​ខ្លួន​របស់​អ្នក​លើម៉ាស៊ីន​មេ" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:922 +msgid "_Connection Settings" +msgstr "កំណត់​ការ​តភ្ជាប់" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:926 +msgid "_Personal Details" +msgstr "ព័ត៌មាន​ផ្ទាល់ខ្លួន" + +#: ../src/goabackend/goautils.c:117 +#, c-format +msgid "A %s account already exists for %s" +msgstr "មាន​គណនី %s រួច​ហើយ​សម្រាប់ %s" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:139 +#, c-format +#| msgid "Use this account for" +msgid "%s account" +msgstr "គណនី %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:183 +#| msgid "Failed to retrieve credentials from the keyring: %s" +msgid "Failed to delete credentials from the keyring" +msgstr "បាន​បរាជ័យ​ក្នុង​ការ​លុប​ព័ត៌មាន​សម្ងាត់​ពី​ keyring" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:235 +#| msgid "Failed to retrieve credentials from the keyring: %s" +msgid "Failed to retrieve credentials from the keyring" +msgstr "បាន​បរាជ័យ​ក្នុងការ​ទៅ​យក​ព័ត៌មាន​សម្ងាត់​ពី keyring" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:245 +#| msgid "Credentials not found in keyring (%s, %d): " +msgid "No credentials found in the keyring" +msgstr "រក​មិន​ឃើញ​ព័ត៌មាន​សម្ងាត់​ក្នុង keyring" + +#: ../src/goabackend/goautils.c:258 +msgid "Error parsing result obtained from the keyring: " +msgstr "កំហុស​ក្នុង​ការ​ញែក​លទ្ធផល​ដែល​ទទួល​បាន​ពី keyring ៖ " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:301 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "លិខិត​សម្គាល់ GOA %s សម្រាប់​អត្តសញ្ញាណ %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:318 +#| msgid "Failed to store credentials in the keyring: %s" +msgid "Failed to store credentials in the keyring" +msgstr "បាន​បរាជ័យ​ក្នុងការ​ស្ដារ​ព័ត៌មាន​សម្ងាត់​ក្នុង keyring" + +#: ../src/goabackend/goautils.c:539 +msgid "The signing certificate authority is not known." +msgstr "មិន​ស្គាល់​ប្រភព​វិញ្ញាបនបត្រ​ចុះហត្ថលេខា។" + +#: ../src/goabackend/goautils.c:543 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"វិញ្ញាបនបត្រ​នេះ​មិន​ត្រូវ​គ្នា​នឹង​អត្តសញ្ញាណ​ដែលបាន​រំពឹងទុកនៃ​តំបន់​បណ្ដា" +"ញដែល​​វា​ត្រូវ​បាន​ទៅ​យក។" + +#: ../src/goabackend/goautils.c:548 +msgid "The certificate’s activation time is still in the future." +msgstr "ពេលវេលា​ធ្វើ​ឲ្យ​វិញ្ញាបនបត្រសកម្ម​នៅ​តែ​ស្ថិត​ក្នុងអនាគត។" + +#: ../src/goabackend/goautils.c:552 +msgid "The certificate has expired." +msgstr "វិញ្ញាបនបត្រ​បាន​ផុតកំណត់។" + +#: ../src/goabackend/goautils.c:556 +msgid "The certificate has been revoked." +msgstr "វិញ្ញាបនបត្រ​ត្រូវ​បាន​ដកហូត។" + +#: ../src/goabackend/goautils.c:560 +msgid "The certificate’s algorithm is considered insecure." +msgstr "អាល់កូរីត​របស់​វិញ្ញាបនបត្រ​ត្រូវ​បាន​គិត​ថា​គ្មាន​សុវត្ថិភាព។" + +#: ../src/goabackend/goautils.c:564 +msgid "Invalid certificate." +msgstr "វិញ្ញាបនបត្រ​មិន​ត្រឹមត្រូវ។" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:72 +#, c-format +msgid "Loading “%s”…" +msgstr "កំពុង​ផ្ទុក “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:81 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goayahooprovider.c:78 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:252 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "រំពឹង​ស្ថានភាព ២០០ នៅ​ពេល​ស្នើ​ឈ្មោះ ប៉ុន្តែ​ទទួល​បាន​ស្ថានភាព %d (%s)" + +#: ../src/goaidentity/goaalarm.c:212 +msgid "Time" +msgstr "ពេលវេលា" + +#: ../src/goaidentity/goaalarm.c:213 +msgid "Time to fire" +msgstr "ពេល​ត្រូវ​ចាប់ផ្ដើម" + +#: ../src/goaidentity/goaidentityservice.c:376 +msgid "initial secret passed before secret key exchange" +msgstr "ព័ត៌មាន​សំខាន់ដំបូងបាន​ចម្លង​មុន​ការ​ប្ដូរសោ​សម្ងាត់" + +#: ../src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "សោ​សម្ងាត់ដំបូង​មិន​ត្រឹមត្រូវ" + +#: ../src/goaidentity/goaidentityservice.c:1117 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "តំបន់បណ្ដាញ %s ត្រូវ​ការ​ព័ត៌មាន​មួយ​ចំនួន​ដើម្បីចូល។" + +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:270 +#: ../src/goaidentity/goakerberosidentity.c:598 +msgid "Could not find identity in credential cache: %k" +msgstr "មិន​អាច​រកអត្តសញ្ញាណ​ក្នុង​ឃ្លាំង​ព័ត៌មាន​សម្ងាត់៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:611 +msgid "Could not find identity credentials in cache: %k" +msgstr "មិន​អាច​រក​អត្តសញ្ញាណ​ព័ត៌មាន​សម្ងាត់​ក្នុង​ឃ្លាំង៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:651 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "មិន​អាច​រក​ប្ដូរ​កាត់​ព័ត៌មាន​សម្ងាត់អត្តសញ្ញាណ​ក្នុងឃ្លាំង៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:669 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"មិន​អាច​បញ្ចប់​ការ​ប្ដូរ​តាមរយៈ​ព័ត៌មាន​សម្ងាត់​អត្តសញ្ញាណ​ក្នុងឃ្លាំង៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:956 +#, c-format +msgid "No associated identification found" +msgstr "រកមិន​ឃើញ​ការកំណត់​អត្តសញ្ញាណ​ដែលបា​ន​ភ្ជាប់" + +#: ../src/goaidentity/goakerberosidentity.c:1037 +msgid "Could not create credential cache: %k" +msgstr "មិន​អាច​បង្កើត​ឃ្លាំង​ព័ត៌មាន​សម្ងាត់៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:1071 +msgid "Could not initialize credentials cache: %k" +msgstr "មិន​អាច​ចាប់ផ្ដើមឃ្លាំង​ព័ត៌មាន​សម្ងាត់៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:1088 +#| msgid "Failed to store credentials in the keyring: %s" +msgid "Could not store new credentials in credentials cache: %k" +msgstr "មិន​អាច​រក្សាទុក​ព័ត៌មាន​សម្ងាត់​ថ្មី​ក្នុងឃ្លាំង​ព័ត៌មាន​សម្ងាត់៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:1363 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "មិន​អាច​បន្ត​អត្តសញ្ញាណ​ឡើងវិញ៖ មិន​បាន​ចូល" + +#: ../src/goaidentity/goakerberosidentity.c:1375 +msgid "Could not renew identity: %k" +msgstr "មិន​អាច​បន្ត​អត្តសញ្ញាណ​ឡើងវិញ៖ %k" + +#: ../src/goaidentity/goakerberosidentity.c:1392 +#| msgid "GOA %s credentials for identity %s" +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "មិន​អាច​យក​ព័ត៌មាន​សម្ងាត់​ថ្មីដើម្បី​បន្តអត្តសញ្ញាណ​ឡើងវិញ %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1434 +msgid "Could not erase identity: %k" +msgstr "មិន​អាច​លុបអត្តសញ្ញាណ៖ %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:747 +msgid "Could not find identity" +msgstr "មិន​អាច​រក​អត្តសញ្ញាណ" + +#: ../src/goaidentity/goakerberosidentitymanager.c:843 +#| msgid "GOA %s credentials for identity %s" +msgid "Could not create credential cache for identity" +msgstr "មិន​អាច​បង្កើត​ឃ្លាំង​ព័ត៌មាន​សម្ងាត់​សម្រាប់​អត្តសញ្ញាណ" + +#~ msgid "An online account needs attention" +#~ msgstr "គណនី​លើ​បណ្ដាញ​ទាមទារ​ការ​ប្រុងប្រយ័ត្ន" + +#~ msgid "Open Online Accounts..." +#~ msgstr "បើក​គណនី​លើ​បណ្ដាញ..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "កំហុស​ក្នុង​ការ​ញែក​ចម្លើយ​តប​ជា JSON ៖ " + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិកឈ្មោះ​​អ្នកប្រើ​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "រក​មិន​ឃើញសមាជិក​ឈ្មោះ​​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Chat" +#~ msgstr "ជជែកកម្សាន្ត" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​ទិន្នន័យ​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​អ៊ីមែល​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Email Address" +#~ msgstr "អាសយដ្ឋាន​អ៊ីមែល" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​លេខ​សម្គាល់​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​គណនី​អ៊ីមែល​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "រក​មិន​ឃើញ​ថូខឹន​ចូល​ដំណើរការ​នៅ​ក្នុង​ទិន្នន័យ​ដែល​មិនមែន​ជា JSON ទេ" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "រក​មិន​ឃើញ​ថូខឹន​ចូល​ដំណើរការ​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "មាន​គណនី​សម្រាប់​អត្តសញ្ញាណ %s រួចហើយ" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "កំហុស​ក្នុង​ការ​រក្សាទុក​លិខិត​សម្គាល់​នៅ​ក្នុង keyring (%s, %d) ៖ " + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក id_str នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​ឈ្មោះ​អេក្រង់​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក guid នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​តម្លៃ​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "កំហុស​ក្នុង​ការ​ញែក​ចម្លើយ​តប​របស់​កាត​អ្នកប្រើ​ជា JSON ៖ " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​ទម្រង់​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "រក​មិន​ឃើញ​សមាជិក​សម្មតិនាម​នៅ​ក្នុង​ទិន្នន័យ JSON ទេ" diff --git a/po/kn.gmo b/po/kn.gmo new file mode 100644 index 0000000..db6a9ff Binary files /dev/null and b/po/kn.gmo differ diff --git a/po/kn.po b/po/kn.po new file mode 100644 index 0000000..c1994da --- /dev/null +++ b/po/kn.po @@ -0,0 +1,919 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Shankar Prasad , 2012, 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-09-17 07:03+0000\n" +"PO-Revision-Date: 2014-09-17 17:28+0530\n" +"Last-Translator: Shankar Prasad \n" +"Language-Team: Kannada \n" +"Language: kn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "ಇದನ್ನು ಒದಗಿಸುವವರು ಕಂಡುಬಂದಿಲ್ಲ: %s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "ಖಾತೆಗಾಗಿ ProviderType ಗುಣವನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +#| msgid "Code: %u - Unexpected response from server" +msgid "Code: %u — Unexpected response from server" +msgstr "ಸಂಕೇತ: %u - ಪೂರೈಕೆಗಣಕದಿಂದ ಅನಿರೀಕ್ಷಿತವಾದ ಪ್ರತಿಕ್ರಿಯೆ ಬಂದಿದೆ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "ಸ್ವಯಂಪತ್ತೆ ಪ್ರತಿಕ್ರಿಯೆ XML ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +#| msgid "Failed to find Response element" +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ ಘಟಕವನ್ನು ಪತ್ತೆ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"ASUrl ಮತ್ತು OABUrl ಅನ್ನು ಸ್ವಯಂಪತ್ತೆ ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ ಪತ್ತೆಮಾಡಲು ವಿಫಲಗೊಂಡಿದೆ" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "ರುಜುವಾತುಗಳಲ್ಲಿ ‘%s’ ಗುರುತಿಗೆ ಸಂಬಂಧಿಸಿದ ಗುಪ್ತಪದವು ಕಂಡುಬಂದಿಲ್ಲ" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "‘%s’ ಬಳಕೆದಾರ ಹೆಸರಿಗೆ ಸಂಬಂಧಿಸಿದ ಗುಪ್ತಪದವನ್ನು ಸರಿಯಾಗಿಲ್ಲ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "ವಿ-ಅಂಚೆ (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "ಗುಪ್ತಪದ (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "ಅಗತ್ಯಾನುಗುಣ (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "ಬಳಕೆದಾರ ಹೆಸರು (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "ಪೂರೈಕೆಗಣಕ (_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "ರದ್ದುಗೊಳಿಸು (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +#| msgid "Connecting…" +msgid "C_onnect" +msgstr "ಸಂಪರ್ಕ ಜೋಡಿಸು (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "ಸಂಪರ್ಕ ಹೊಂದಲಾಗುತ್ತಿದೆ..." + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "ಸಂವಾದವನ್ನು ವಜಾಗೊಳಿಸಲಾಗಿದೆ" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "ಸಂವಾದವನ್ನು ವಜಾಗೊಳಿಸಲಾಗಿದೆ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "ಕಡೆಗಣಿಸು (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "ಇನ್ನೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft Exchange ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕ ಹೊಂದುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "ಇದಕ್ಕಾಗಿ ಬಳಸು" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "ಅಂಚೆ (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "ಕ್ಯಾಲೆಂಡರ್ (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "ಸಂಪರ್ಕಗಳು (_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "ಫೇಸ್‌ಬುಕ್‌" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +#| msgid "" +#| "Expected status 200 when requesting user id, instead got status %d (%s)" +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"ನಿಮ್ಮ ಗುರುತಿಗಾಗಿ ಯನ್ನು ಮನವಿ ಮಾಡುವಾಗ 200 ಸ್ಥಿತಿಯನ್ನು ನಿರೀಕ್ಷಿಸಲಾಗಿತ್ತು, ಬದಲಿಗೆ " +"%d (%s)" +"ಸ್ಥಿತಿಯು ದೊರೆತಿದೆ" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "ಪ್ರತ್ಯುತ್ತರವನ್ನು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿಲ್ಲ" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "ಹರಟೆ (_h)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "ಚಿತ್ರಗಳು (_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "ನಕ್ಷೆಗಳು (_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಯ ಸಮಯವು ಅಮಾನ್ಯವಾಗಿದೆ. ನಿಮ್ಮ ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಸಿದ್ಧತೆಗಳನ್ನು " +"ಪರಿಶೀಲಿಸಿ." + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "ಗೂಗಲ್" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "ದಸ್ತಾವೇಜುಗಳು (_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +msgid "Prin_ters" +msgstr "ಮುದ್ರಕಗಳು (_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "ಸೇವೆಯು ಲಭ್ಯವಿಲ್ಲ" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "ದೃಢೀಕರಣವು ವಿಫಲಗೊಂಡಿದೆ" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "ಪೂರೈಕೆಗಣಕವು PLAIN ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "ಪೂರೈಕೆಗಣಕವು STARTTLS ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP ಮತ್ತು SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "ರುಜುವಾತುಗಳಲ್ಲಿ %s ಕಂಡುಬಂದಿಲ್ಲ (‘%s’ ಗುರುತನ್ನು ಹೊಂದಿರುವ)" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s ತಪ್ಪಾಗಿದೆ (‘%s’ ಬಳಕೆದಾರ ಹೆಸರಿಗೆ ಸಂಬಂಧಿಸಿದ) (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "ಗೂಢಲಿಪೀಕರಣ (_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "ಯಾವುದೂ ಇಲ್ಲ" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "ಸಂಪರ್ಕ ಹೊಂದಿದ ನಂತರ STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "ಒಂದು ಮೀಸಲು ಸಂಪರ್ಕಸ್ಥಾನದಲ್ಲಿ SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "ಹೆಸರು (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "IMAP ಪೂರೈಕೆಗಣಕ (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "_SMTP ಪೂರೈಕೆಗಣಕ" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "ಮುಂದಕ್ಕೆ (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "IMAP ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "SMTP ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "ವಿ-ಅಂಚೆ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "ಹೆಸರು" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "ಎಂಟರ್ಪ್ರೈಸ್ ಪ್ರವೇಶ (ಕರ್ಬರೋಸ್)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "ಗುರುತಿನ ಸೇವೆಯು ಅಮಾನ್ಯವಾದ ಕೀಲಿಯನ್ನು ಒಳಗೊಂಡಿದೆ" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +#| msgid "Could not find saved credentials for principal `%s' in keyring" +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "ಕೀರಿಂಗ್‌ನಲ್ಲಿ ಪ್ರಮುಖ ‘%s’ ಕ್ಕಾಗಿ ಉಳಿಸಲಾದ ರುಜುವಾತುಗಳು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +#| msgid "Did not find password for principal `%s' in credentials" +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "ರುಜುವಾತುಗಳಲ್ಲಿ ಪ್ರಮುಖ ‘%s’ ಕ್ಕಾಗಿ ಗುಪ್ತಪದವು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "ಕ್ಷೇತ್ರ (_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "ಎಂಟರ್ಪ್ರೈಸ್ ಡೊಮೈನ್ ಅಥವ ಕ್ಷೇತ್ರದ ಹೆಸರು" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "ಕ್ಷೇತ್ರಕ್ಕೆ ಪ್ರವೇಶಿಸು" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "ದಯವಿಟ್ಟು ಕೆಳಗೆ ನಿಮ್ಮ ಗುಪ್ತಪದವನ್ನು ನಮೂದಿಸಿ." + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "ಈ ಗುಪ್ತಪದವನ್ನು ನೆನಪಿನಲ್ಲಿಡು" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "ಡೊಮೈನ್ ಮಾನ್ಯವಾದುದಲ್ಲ" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "ಎಂಟರ್ಪ್ರೈಸ್ ಗುರುತಿನ ಪೂರೈಕೆಗಣಕಕ್ಕೆ ಸಂಪರ್ಕಸಾಧಿಸುವಲ್ಲಿ ದೋಷ" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "ಜಾಲಬಂಧ ಸಂಪನ್ಮೂಲಗಳು (_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "IMAP _Server" +msgid "Media Server" +msgstr "ಮಾಧ್ಯಮ ಪೂರೈಕೆಗಣಕ" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"ಒಂದು ಮಾಧ್ಯಮ ಪೂರೈಕೆಗಣಕದ ಮುಖಾಂತರ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ನಿಮ್ಮ ಅನ್ವಯಗಳಿಗೆ ಸೇರಿಸಲು " +"ಸಾಧ್ಯವಿರುತ್ತದೆ." + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "ಲಭ್ಯವಿರುವ ಮಾಧ್ಯಮ ಪೂರೈಕೆಗಣಕಗಳು" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "ಯಾವುದೆ ಮಾಧ್ಯಮ ಪೂರೈಕೆಗಣಕಗಳು ಕಂಡುಬಂದಿಲ್ಲ" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"ನಿಲುಕು ಟೋಕನ್‌ಗಾಗಿ ಮನವಿ ಮಾಡುವಾಗ 200 ಸ್ಥಿತಿಯನ್ನು ನಿರೀಕ್ಷಿಸಲಾಗಿತ್ತು, ಬದಲಿಗೆ %d " +"ಸ್ಥಿತಿಯು ದೊರೆತಿದೆ (%s)" + +#: ../src/goabackend/goaoauth2provider.c:888 +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: " +msgstr "ದೃಢೀಕರಣದ ಪ್ರತಿಕ್ರಿಯೆ:" + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: %s" +msgstr "ದೃಢೀಕರಣದ ಪ್ರತಿಕ್ರಿಯೆ:: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "ನಿಲುಕು ಟೋಕನ್ ಅನ್ನು ಪಡೆಯುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ: " + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "ಗುರುತನ್ನು ಪಡೆಯುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ: " + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +#| msgid "Was asked to login as %s, but logged in as %s" +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s ಆಗಿ ಪ್ರವೇಶಿಸುವಂತೆ ಕೋರಲಾಗಿತ್ತು, ಆದರೆ %s ಆಗಿ ಪ್ರವೇಶಿಸಲಾಗಿದೆ" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "ರುಜುವಾತುಗಳು access_token ಅನ್ನು ಹೊಂದಿಲ್ಲ" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "ನಿಲುಕು ಟೋಕನ್ ಅನ್ನು ಪುನಶ್ಚೇತನಗೊಳಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ access_token ಅಥವ access_token_secret ಅನ್ನು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "ಮನವಿ ಟೋಕನ್ ಅನ್ನು ಪಡೆಯುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"ಮನವಿ ಟೋಕನ್‌ ಅನ್ನು ಪಡೆಯುವಾಗ 200 ಸ್ಥಿತಿಯನ್ನು ನಿರೀಕ್ಷಿಸಲಾಗಿತ್ತು, ಬದಲಿಗೆ %d " +"ಸ್ಥಿತಿಯು " +"ದೊರೆತಿದೆ (%s)" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ request_token or request_token_secret ಹೆಡರುಗಳು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "ರುಜುವಾತುಗಳು access_token ಅಥವ access_token_secret ಅನ್ನು ಹೊಂದಿಲ್ಲ" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud ಪೂರೈಕೆಗಣಕದೊಂದಿಗೆ ಸಂಪರ್ಕಸಾಧಿಸುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "ಕಡತಗಳು (_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "ಪಾಕೆಟ್‌" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "ಯಾವುದೆ ಬಳಕೆದಾರ ಹೆಸರು ಅಥವ access_token ಇಲ್ಲ" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "ಆಮೇಲೆ ಓದು (_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync ಎನ್ನುವುದು %s ಬಗೆಯಲ್ಲಿ ಇನ್ನೂ ಸಹ ಅಳವಡಿಸಲಾಗಿಲ್ಲ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TSL ಲಭ್ಯವಿಲ್ಲ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail ಲಭ್ಯವಿಲ್ಲ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "ವಿಅಂಚೆ ವಿಳಾಸವನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a domain" +msgid "Cannot do SMTP authentication without a domain" +msgstr "ಒಂದು ಡೊಮೈನ್ ಇಲ್ಲದೆ SMTP ದೃಢೀಕರಣವನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "ರುಜುವಾತುಗಳಲ್ಲಿ smtp-ಗುಪ್ತಪದವು ಕಂಡುಬಂದಿಲ್ಲ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a password" +msgid "Cannot do SMTP authentication without a password" +msgstr "ಒಂದು ಗುಪ್ತಪದವಿಲ್ಲದೆ SMTP ದೃಢೀಕರಣವನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +#| msgid "Authentication failed" +msgid "Unknown authentication mechanism" +msgstr "ಬೆಂಬಲವಿರದ ದೃಢೀಕರಣ ವ್ಯವಸ್ಥೆ" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "ಟೆಲಿಪತಿ ಚಾಟ್ ಖಾತೆಯು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +#| msgid "Failed to find Account element" +msgid "Failed to initialize a GOA client" +msgstr "GOA ಕ್ಲೈಂಟ್ ಅನ್ನು ಆರಂಭಿಸುವಲ್ಲಿ ವಿಫಲತೆ ಎದುರಾಗಿದೆ" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +#| msgid "Failed to find a provider for: %s" +msgid "Failed to create a user interface for %s" +msgstr "%s ಗಾಗಿ ಬಳಕೆದಾರ ಸಂಪರ್ಕಸಾಧನವನ್ನು ರಚಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#: ../src/goabackend/goatelepathyprovider.c:535 +#| msgid "Connecting…" +msgid "Connection Settings" +msgstr "ಸಂಪರ್ಕ ಸಿದ್ಧತೆಗಳು" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "ವೈಯಕ್ತಿಕ ವಿವರಗಳು" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "ಸರಿ (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "ಸಂಪರ್ಕದ ನಿಯತಾಂಕಗಳನ್ನು ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಪೂರೈಕೆಗಣಕದಲ್ಲಿ ಉಳಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +#| msgid "Connecting…" +msgid "_Connection Settings" +msgstr "ಸಂಪರ್ಕ ಸಿದ್ಧತೆಗಳು (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "ವೈಯಕ್ತಿಕ ವಿವರಗಳು (_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s ಖಾತೆಯು %s ಗಾಗಿ ಈಗಾಗಲೆ ಪೂರೈಕೆಗಣಕದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s ಖಾತೆ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "ರುಜುವಾತುಗಳನ್ನು ಕೀಲಿಗೊಂಚಲಿನಿಂದ ಅಳಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "ರುಜುವಾತುಗಳನ್ನು ಕೀಲಿಗೊಂಚಲಿನಿಂದ ಪಡೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "ಕೀಲಿಗೊಂಚಲಿನಲ್ಲಿ ಯಾವುದೆ ರುಜುವಾತುಗಳು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "ಈ ಕೀಲಿಗೊಂಚಲಿನಿಂದ ಪಡೆಯಲಾದ ಫಲಿತಾಂಶವನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s ರುಜುವಾತುಗಳು, %s ಗುರುತಿಗಾಗಿ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "ರುಜುವಾತುಗಳನ್ನು ಕೀಲಿಗೊಂಚಲಿನಲ್ಲಿ ಶೇಖರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "ಸಹಿ ಮಾಡುವ ಪ್ರಮಾಣಿಪತ್ರ ಅಥಾರಿಟಿಯು ಅಜ್ಞಾತವಾಗಿದೆ." + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"ಪ್ರಮಾಣಪತ್ರವನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾದ ತಾಣದ ನಿರೀಕ್ಷಿತವಾದ ಗುರುತಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ." + +#: ../src/goabackend/goautils.c:545 +#| msgid "The certificate's activation time is still in the future." +msgid "The certificate’s activation time is still in the future." +msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಕ್ರಿಯಗೊಳಿಕೆಯ ಸಮಯವು ಇನ್ನೂ ಸಹ ಭವಿಷ್ಯದಲ್ಲಿದೆ." + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾಲಾವಧಿ ತೀರಿದೆ." + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "ಪ್ರಮಾಣಪತ್ರವನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ." + +#: ../src/goabackend/goautils.c:557 +#| msgid "The certificate's algorithm is considered insecure." +msgid "The certificate’s algorithm is considered insecure." +msgstr "ಪ್ರಮಾಣಪತ್ರದ ಅಲ್ಗಾರಿದಮ್ ಅಸುರಕ್ಷಿತ ಎಂದು ಪರಿಗಣಿಸಲಾಗಿದೆ." + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "ಅಮಾನ್ಯವಾದ ಪ್ರಮಾಣಪತ್ರ." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "ವಿಂಡೋಸ್ ಲೈವ್" + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +#| msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"ಹೆಸರನ್ನು ಮನವಿ ಮಾಡುವಾಗ 200 ಸ್ಥಿತಿಯನ್ನು ನಿರೀಕ್ಷಿಸಲಾಗಿತ್ತು, ಬದಲಿಗೆ %d ಸ್ಥಿತಿಯು " +"ದೊರೆತಿದೆ (%s)" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "" +"ಸಿಕ್ರೆಟ್ ಕೀಲಿಯನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳುವ ಮೊದಲು ಆರಂಭಿಕ ಸಿಕ್ರೆಟ್ ಅನ್ನು ರವಾನಿಸಲಾಗಿದೆ" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "ಆರಂಭಿಕ ಸಿಕ್ರೆಟ್ ಕೀಲಿಯು ಅಮಾನ್ಯವಾಗಿದೆ" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"ಜಾಲಬಂಧ ಕ್ಷೇತ್ರವಾದ %s ಕ್ಕಾಗಿ ನಿಮ್ಮನ್ನು ಸೈನ್ ಇನ್ ಮಾಡಲು ಕೆಲವು ಮಾಹಿತಿಯ " +"ಅಗತ್ಯವಿರುತ್ತದೆ." + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "ರುಜುವಾತಿನ ಕ್ಯಾಶೆಯಲ್ಲಿ ಗುರುತು ಕಂಡುಬಂದಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "ರುಜುವಾತುಗಳ ಕ್ಯಾಶೆಯಲ್ಲಿ ಗುರುತು ಕಂಡುಬಂದಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "ಕ್ಯಾಶೆಯಲ್ಲಿನ ಗುರುತಿನ ರುಜುವಾತುಗಳ ಮುಖಾಂತರ ಸೂಕ್ಷ್ಮವಾಗಿ ಪರಿಶೀಲಸಲಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"ಕ್ಯಾಶೆಯಲ್ಲಿನ ಗುರುತಿನ ರುಜುವಾತುಗಳ ಮುಖಾಂತರ ಸೂಕ್ಷ್ಮವಾಗಿ ಪರಿಶೀಲಿಸುವಿಕೆಯನ್ನು " +"ಪೂರ್ಣಗೊಳಿಸಲಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "ಸಂಬಂಧಿಸಿದ ಯಾವುದೆ ಗುರುತು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "ರುಜುವಾತಿನ ಕ್ಯಾಶೆಯನ್ನು ರಚಿಸಲಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "ರುಜುವಾತುಗಳ ಕ್ಯಾಶೆಯನ್ನು ಆರಂಭಿಸಲಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "ರುಜುವಾತುಗಳ ಕ್ಯಾಶೆಯಲ್ಲಿ ಹೊಸ ರುಜುವಾತನ್ನು ಶೇಖರಿಸಿಡಲಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "ಗುರುತನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: ಸಹಿ ಮಾಡಲಾಗಿಲ್ಲ" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "ಗುರುತನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "%s ಗುರುತನ್ನು ನವೀಕರಣಗೊಳಿಸಲು ಹೊಸ ರುಜುವಾತುಗಳನ್ನು ಪಡೆಯಲಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "ಗುರುತನ್ನು ಅಳಿಸಲಾಗಿಲ್ಲ: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "ಗುರುತು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "ಗುರುತಿಗಾಗಿ ರುಜುವಾತಿನ ಕ್ಯಾಶೆಯನ್ನು ರಚಿಸಲಾಗಿಲ್ಲ" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "ಸ್ವಯಂಪತ್ತೆ ಘಟಕವನ್ನು ಪತ್ತೆ ಮಾಡುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "ರುಜುವಾತುಗಳಲ್ಲಿ `%s' ಗುರುತಿಗೆ ಸಂಬಂಧಿಸಿದ imap-ಗುಪ್ತಪದವು ಕಂಡುಬಂದಿಲ್ಲ" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "`%s' ಬಳಕೆದಾರ ಹೆಸರಿಗೆ ಸಂಬಂಧಿಸಿದ imap-ಗುಪ್ತಪದವನ್ನು ಸರಿಯಾಗಿಲ್ಲ (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "ರುಜುವಾತುಗಳಲ್ಲಿ `%s' ಗುರುತಿಗೆ ಸಂಬಂಧಿಸಿದ smtp-ಗುಪ್ತಪದವು ಕಂಡುಬಂದಿಲ್ಲ" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "`%s' ಬಳಕೆದಾರ ಹೆಸರಿಗೆ ಸಂಬಂಧಿಸಿದ smtp-ಗುಪ್ತಪದವು ಸರಿಯಾಗಿಲ್ಲ (%s, %d): " + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "ದೃಢೀಕರಣ ಪುಟದಿಂದ ಪಡೆಯಲಾದ ದೃಢೀಕರಣ ಸಂಕೇತವನ್ನು ಅಂಟಿಸು:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "ದೃಢೀಕರಣ ಪುಟದಿಂದ ಪಡೆಯಲಾದ ಟೋಕನ್ ಅನ್ನು ಅಂಟಿಸು:" + +#~ msgid "Time" +#~ msgstr "ಸಮಯ" + +#~ msgid "Time to fire" +#~ msgstr "ಫೈರ್ ಮಾಡುವ ಸಮಯ" diff --git a/po/ko.gmo b/po/ko.gmo new file mode 100644 index 0000000..4191041 Binary files /dev/null and b/po/ko.gmo differ diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..c0daf3e --- /dev/null +++ b/po/ko.po @@ -0,0 +1,888 @@ +# Korean translation for gnome-online-accounts. +# Copyright (C) 2011-2013 Seong-ho Cho et al. +# This file is distributed under the same license as the gnome-online-accounts package. +# Seong-ho Cho , 2011-2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-23 09:46+0000\n" +"PO-Revision-Date: 2018-02-25 11:52+0900\n" +"Last-Translator: Seong-ho Cho \n" +"Language-Team: 한국어 \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.7\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "불러오도록 허용한 제공자 목록" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"불러오도록 허용(기본값: ‘all’)한 제공자를 나타내는 문자열 목록입니다. 이 상태" +"는 시작할 때만 확인합니다." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "제공자 정보를 찾을 수 없습니다: %s" + +# ProviderType은 고유한 속성 변수이름입니다. +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "계정에 IsLocked 속성을 설정했습니다" + +# ProviderType은 고유한 속성 변수이름입니다. +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "계정에 ProviderType 속성에 값이 없습니다" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "자동 발견 응답 XML 해석에 실패했습니다" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "“%s” 요소 찾기에 실패했습니다" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "자동 발견 응답에서 ASUrl과 OABUrl을 찾는데 실패했습니다" + +# * NOTE: 그냥 음역할 것. +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "마이크로소프트 익스체인지" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "“%s” 사용자 이름의 암호가 잘못되었습니다(%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "전자메일(_E)" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "암호(_P)" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "사용자 정의(_C)" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "사용자 이름(_N)" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "서버(_S)" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "취소(_C)" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "연결(_O)" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "연결중…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "대화 상자가 닫혔습니다" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "대화 상자가 닫혔습니다(%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "무시(_I)" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "다시 시도(_T)" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "마이크로소프트 익스체인지 서버에 연결하는 도중 오류가 발생했습니다" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "페이스북" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"신원 인증을 요청할 때 상태 200을 기대했지만, %d 상태를 가져왔습니다(%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "응답을 해석할 수 없습니다" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "플리커" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "시스템 시간이 잘못되었습니다. 날짜와 시간 설정을 확인해보십시오." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "포스퀘어" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "구글" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "서비스를 사용할 수 없습니다" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "인증에 실패했습니다" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "서버에서 PLAIN을 지원하지 않습니다" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "서버에서 STARTTLS를 지원하지 않습니다" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP과 SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "“%2$s” 사용자 이름의 잘못된 %1$s입니다(%3$s, %4$d):" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "암호화(_E)" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "없음" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "연결 후 STARTTLS 처리" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "제공 포트를 통해 SSL 연결" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "이름(_N)" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP 서버(_S)" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP 서버(_S)" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "전달(_F)" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "IMAP 서버에 연결 중 오류가 발생했습니다" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "SMTP 서버에 연결 중 오류가 발생했습니다" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "전자메일" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "이름" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "기업 로그인(커베로스)" + +# ProviderType은 고유한 속성 변수이름입니다. +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "계정 티케팅을 비활성화했습니다" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "키 모음에 저장한 “%s” 본인의 자격 정보를 찾을 수 없습니다" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "“%s” 자격 정보에서 암호를 찾을 수 없습니다" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "본인 정보(_P)" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "작업을 취소했습니다" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "영역 로그인" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "아래에 암호를 입력하십시오." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "이 암호 저장" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "기업 신원 서버로 연결하는데 오류가 발생했습니다" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "인증 서비스에서 잘못된 키를 반환했습니다" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Last.fm에 연결 중 오류가 발생했습니다" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "미디어 서버" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "미디어 서버 계정을 통해 개인 컨텐트를 프로그램으로 추가할 수 있습니다." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "존재하는 미디어 서버" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "미디어 서버가 없습니다" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"접근 토큰을 요청하는데 상태 200을 기대했지만, %d 상태를 가져왔습니다(%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "인증 응답: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "인증 응답: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "접근 토큰을 가져오는데 오류가 발생했습니다:" + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "신원 정보를 가져오는데 오류가 발생했습니다:" + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s 계정 로그인을 요청받았지만, %s 계정으로 로그인했습니다." + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "자격 정보에 access_token이 없습니다" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "접근 토큰을 새로 고치는데 실패했습니다(%s, %d):" + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "응답에 access_token이나 access_token_secret 헤더가 빠졌습니다" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "요청 토큰을 가져오는데 오류가 발생했습니다:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"요청 토큰을 가져오는데 상태 200을 기대했지만, %d 상태를 가져왔습니다(%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "응답애 request_token이나 request_token_secret 헤더가 빠졌습니다" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "자격 정보에 access_token이나 access_token_secret이 없습니다" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud 서버에 연결하는 중 오류가 발생했습니다" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "포켓" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "사용자 이름 또는 access_token이 없습니다" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "메일(_M)" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "달력(_N)" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "연락처(_C)" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "대화(_H)" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "문서(_D)" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "음악(_U)" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "사진(_P)" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "파일(_F)" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "네트워크 자원(_R)" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "다음에 읽음(_R)" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "프린터(_T)" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "지도(_M)" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "일정(_O)" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "사용 목적" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "비활성화 계정입니다" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "알 수 없는 오류" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "%s 형식에 ensure_credentials_sync를 구현하지 않았습니다" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS를 사용할 수 없습니다" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "알 수 없는 인증 매커니즘입니다" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "텔레파시 대화 계정을 찾지 못했습니다" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s의 사용자 인터페이스를 만드는데 실패했습니다" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "연결 설정" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "자세한 개인 정보" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "확인(_O)" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "연결 인자를 저장할 수 없습니다" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "서버에 개인 정보를 저장할 수 없습니다" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "연결 설정(_C)" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "자세한 개인 정보(_P)" + +# # https://en.todoist.com/ 참고. +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "계정 로그인 오류" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "인증서 기한이 끝났습니다" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "이 계정을 활성화하려면 접속하십시오." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "접속(_S)" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%2$s에 대한 %1$s계정이 이미 있습니다" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s 계정" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "키 모음에서 자격 정보 삭제에 실패했습니다" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "키 모음에서 자격 정보 가져오기에 실패했습니다" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "키 모음에서 자격 정보를 찾을 수 없습니다" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "키 모음에서 가져온 결과를 해석하는데 오류가 있습니다:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%s 그놈 온라인 계정이 %s 신원 정보에 대한 자격을 부여합니다" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "키 모음에 자격 정보를 저장하는데 실패했습니다" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "호스트 이름을 해석할 수 없습니다" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "프록시 호스트 이름을 해석할 수 없습니다" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV 종단점을 찾을 수 없습니다" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "코드: %u — 서버에서 예상치 못한 응답" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "알 수 없는 서명 인증 기관 입니다." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "인증서가 가져온 사이트에서 기대한 신원 정보와 일치하지 않습니다." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "아직 인증서 활성 시기가 아닙니다." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "인증서의 기한이 끝났습니다." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "파기된 인증서입니다." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "인증서 알고리즘이 안전하지 않습니다." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "인증서가 잘못되었습니다." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "인증에서 “%2$s” 자격 정보의 %1$s을(를) 찾지 못했습니다" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” 불러오는 중…" + +# * NOTE: 그냥 음역할 것. +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "마이크로소프트" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "초기 비밀 키가 잘못되었습니다" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "%s 네트워크 영역에 접속하려면 약간의 정보가 더 필요합니다." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "자격 정보 캐시에서 신원 정보를 찾을 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "캐시에서 신원 자격 정보를 찾을 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "캐시의 신원 자격 정보로 검토할 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "캐시에서의 신원 자격 정보로 검토를 끝낼 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "관련된 신분 증명을 찾지 못했습니다" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "자격 정보 캐시를 만들 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "자격 정보 캐시를 초기화 할 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "자격 정보 캐시에 새로운 자격 정보를 저장할 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "신원 정보를 새로 고칠 수 없습니다: 접속하지 않았습니다" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "신원 정보를 새로 고칠 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "%s 신원 정보를 새로 고칠 때 활용할 새 자격 정보를 가져올 수 없습니다: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "신원 정보를 지울 수 없습니다: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "신원 정보를 찾을 수 없습니다" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "신원에 대한 자격 정보 캐시를 만들 수 없습니다" + +#~ msgid "_Domain" +#~ msgstr "도메인(_D)" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "기업 도메인 또는 영역 이름" + +#~ msgid "The domain is not valid" +#~ msgstr "도메인이 유효하지 않습니다" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail 설정이 없습니다" + +#~ msgid "Failed to parse email address" +#~ msgstr "전자메일 주소를 해석하는데 실패했습니다" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "도메인 정보 없이 SMTP 인증을 처리할 수 없습니다" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "자격 정보에서 SMTP 암호를 찾을 수 없습니다" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "암호 없이 SMTP 인증을 처리할 수 없습니다" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "비밀 키를 교환하기 전에 초기 비밀 키를 넘겼습니다" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "그놈 온라인 계정 클라이언트 초기화에 실패했습니다" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "자격 정보에 ‘%s’ 신원 정보의 암호가 없습니다" diff --git a/po/lt.gmo b/po/lt.gmo new file mode 100644 index 0000000..a11bb7c Binary files /dev/null and b/po/lt.gmo differ diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..56cc632 --- /dev/null +++ b/po/lt.po @@ -0,0 +1,898 @@ +# Lithuanian translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Aurimas Černius , 2011, 2013, 2014, 2015, 2016, 2017, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-26 12:18+0000\n" +"PO-Revision-Date: 2018-02-28 23:33+0200\n" +"Last-Translator: Aurimas Černius \n" +"Language-Team: Lietuvių \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Sąrašas tiekėjų, kuriuos leidžiama įkelti" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Simbolių eilučių sąrašas, nusakantis tiekėjus, kuriuos leidžiama įkelti " +"(numatyta: „all“). Yra tikrinamas tik paleidimo metu." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Nepavyko rasti tiekėjo: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "IsLocked savybė nenustatyta paskyrai" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "ProviderType savybė nenustatyta paskyrai" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Nepavyko perskaityti automatinio aptikimo atsakymo XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Nepavyko rasti „%s“ elemento" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Nepavyko rasti ASUrl ir OABUrl automatinio aptikimo atsakyme" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Netinkamas slaptažodis naudotojo vardui „%s“ (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_El. pašas" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "Sla_ptažodis" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "P_asirinktinis" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Naudotojo vardas" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Serveris" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Atsisakyti" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Prisi_jungti" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Jungiamasi..." + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialogas buvo uždarytas" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialogas buvo uždarytas (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Nepaisyti" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Bandy_ti dar kartą" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Klaida jungiantis prie Microsoft Exchange serverio" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "Tikėtasi būsenos 200 prašant jūsų identiteto, bet gauta būsena %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Nepavyko perskaityti atsakymo" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Jūsų sistemos laikas yra netinkamas. Patikrinkite datos ir laiko nustatymus." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Tarnyba nepasiekiama" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Nepavyko patvirtinti tapatybės" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Serveris nepalaiko GRYNOJO" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Serveris nepalaiko STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP ir SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Netinkamas %s naudotojo vardui „%s“ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "Ši_fravimas" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Joks" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS po prisijungimo" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL dedikuotame prievade" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Vardas" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP _Serveris" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP _Serveris" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Pirmyn" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Klaida jungiantis prie IMAP serverio" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Klaida jungiantis prie SMTP serverio" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "El. pašas" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Vardas" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Kompanijos prisijungimas (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Aprūpinimas bilietais paskyrai yra išjungtas" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Nepavyko rasti raktinėje įrašytų įgaliojimų pagrindui „%s“" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Įgaliojimuose nerastas slaptažodis pagrindui „%s“" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "Į_staiga" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Veiksmo buvo atsisakyta" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Prisijungti prie srities" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Įveskite savo slaptažodį žemiau." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Prisiminti šį slaptažodį" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Klaida jungiantis prie kompanijos identitetų serverio" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identiteto tarnyba grąžino netinkamą raktą" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Klaida jungiantis prie Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Daugialypės terpės serveris" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Asmeninį turinį galima pridėti į programas per daugialypės terpės serverio " +"paskyrą." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Galimi daugialypės terpės serveriai" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nerasta daugialypės terpės serverių" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Tikėtasi statuso 200 prašant prieigos leksemos, tačiau gautas statusas %d " +"(%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Autorizacijos atsakymas: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Autorizacijos atsakymas: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Klaida gaunant prieigos leksemą: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Klaida gaunant identifikatorių: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Prašyta prisijungti kaip %s, bet prisijungta kaip %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Įgaliojimai neturi access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Nepavyko atnaujinti prieigos leksemos (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Atsakyme trūksta access_token arba access_token_secret antraščių" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Klaida gaunant užklausos leksemą: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Tikėtasi statuso 200 užklausos leksemos gavimui, tačiau gautas statusas %d " +"(%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Atsakyme trūksta request_token arba request_token_secret antraščių" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Įgaliojimai neturi access_token arba access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Klaida jungiantis prie ownCloud serverio" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Kišenė" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nėra naudotojo vardo ar prieigos _leksemos" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Paštas" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_ndorius" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontaktai" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Po_kalbiai" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumentai" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_uzika" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografijos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Failai" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Tinklo _resursai" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Skaityti _vėliau" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "S_pausdintuvai" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Žemėlapiai" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_Darbai" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Naudotina" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Paskyra išjungta" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Nežinoma klaida" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "%s nerealizuoja ensure_credentials_sync" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS neprieinamas" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Nežinomas tapatybės patvirtinimo mechanizmas" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Telepathy pokalbių paskyra nerasta" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Nepavyko sukurti %s naudotojo sąsajos" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Ryšio nustatymai" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Asmeninė informacija" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Gerai" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Nepavyko įrašyti ryšio parametrų" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Nepavyko įrašyti asmeninės informacijos serveryje" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Ryšio nustatymai" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Asmeninė informacija" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Darbų programa" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Klaida jungiantis prie paskyros" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Įgaliojimų galiojimas baigėsi" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Prisijunkite šiai paskyrai įjungti." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Prisijungti" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s paskyra jau yra %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s paskyra" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Nepavyko ištrinti įgaliojimų iš raktinės" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Nepavyko gauti įgaliojimų iš raktinės" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nepavyko rasti įgaliojimų raktinėje" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Klaida skaitant iš raktinės gautą rezultatą: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s įgaliojimai identifikatoriui %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Nepavyko įrašyti įgaliojimų į raktinę" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Nepavyko rasti serverio" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Nepavyko rasti tarpinio serverio" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Nepavyko rasti WebDAV vietos" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kodas: %u - nelaukas atsakymas iš serverio" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Nežinoma pasirašanti liudijimų įstaiga." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Liudijimas neatitinka laukto tinklalapio, iš kurio jis gautas, identiteto." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Liudijimo aktyvavimo laikas vis dar ateityje." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Liudijimo galiojimas baigėsi." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Liudijimas buvo atšauktas." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Liudijimo algoritmas laikomas nesaugiu." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Netinkamas liudijimas." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Įgaliojimuose nerastas %s su tapatybe „%s“" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Įkeliama „%s“..." + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Pradinis paslapties raktas netinkamas" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Tinklo sritis %s reikalauja kai kurios informacijos jūsų prisijungimui." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Nepavyko rasti identiteto įgaliojimų podėlyje: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Nepavyko rasti identiteto įgaliojimų podėlyje: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Nepavyko persijoti identitetų įgaliojimų podėlyje: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Nepavyko baigti identitetų įgaliojimų podėlio sijojimo: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nerastas susietas idetitetas" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Nepavyko sukurti įgaliojimų podėlio: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Nepavyko inicijuoti įgaliojimų podėlio: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Nepavyko įrašyti įgaliojimų į podėlį: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nepavyko atnaujinti identitetų: neprisijungta" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Nepavyko atnaujinti identiteto: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Nepavyko gauti naujų įgaliojimų jūsų identitetui %s atnaujinti: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Nepavyko ištrinti identiteto: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nepavyko rasti identiteto" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Nepavyko sukurti įgaliojimų podėlio identitetui" + +#~ msgid "_Domain" +#~ msgstr "_Domenas" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Kompanijos domenas arba srities pavadinimas" + +#~ msgid "The domain is not valid" +#~ msgstr "Šis domenas yra netinkamas" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail nepasiekiama" + +#~ msgid "Failed to parse email address" +#~ msgstr "Nepavyko perskaityti el. pašto adreso" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Negalima atlikti grynojo SMTP tapatybės patvirtinimo be domeno" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Įgaliojimuose nerastas smtp slaptažodis" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Negalima atlikti SMTP tapatybės patvirtinimo be slaptažodžio" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "pradinė paslaptis perduota prie apsikeičiant slaptais raktais" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Nepavyko inicijuoti GOA kliento" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Įgaliojimuose nerastas slaptažodis su identitetu „%s“" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "Tikėtasi statuso 200 prašant vardo, tačiau gautas statusas %d (%s)" diff --git a/po/lv.gmo b/po/lv.gmo new file mode 100644 index 0000000..a783ea2 Binary files /dev/null and b/po/lv.gmo differ diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..75497cb --- /dev/null +++ b/po/lv.po @@ -0,0 +1,868 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Rūdofls Mazurs , 2011, 2012. +# Rūdolfs Mazurs , 2012, 2013, 2014, 2015, 2016, 2017, 2018. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-o" +"nline-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-03-04 21:14+0200\n" +"Last-Translator: Rūdolfs Mazurs \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 2.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :" +" 2);\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Saraksts ar pakalpojumu sniedzējiem, kurus drīkst ielādēt" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Saraksts ar virknēm, kas reprezentē pakalpojumu sniedzējus, kurus drīkst" +" ielādēt " +"(noklusējuma — “all”). Tie tiek pārbaudīti tikai ielādējot." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Neizdevās atrast %s piegādātāju" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Kontam ir iestatīta IsLocked īpašība" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Kontam nav iestatīta ProviderType īpašība" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Neizdevās saprast automātiskās atklāšanas atbildes XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Neizdevās atrast “%s” elementu" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Neizdevās atrast ASUrl un OABUrl automātiskās atklāšanas atbildē" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Nederīga parole lietotājam “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-pasts" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Parole" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Pielāgots" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Lietotājvārds" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Serveris" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "At_celt" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Savien_oties" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Savienojas…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialoglodziņš tika atmests" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialoglodziņš tika atmests (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorēt" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Mēģinā_t vēlreiz" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Kļūda savienojoties ar Microsoft Exchange serveri" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Kad pieprasīja jūsu, tika gaidīts statuss 200, tā vietā saņēma statusu %d " +"(%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Neizdevās parsēt atbildi" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Sistēmas laiks nav derīgs. Pārbaudiet datuma un laika iestatījumus." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Serviss nav pieejams" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Neizdevās autentificēties" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Serveris neatbalsta PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Serveris neatbalsta STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP un SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Nederīgs %s lietotājam “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "Šif_rēšana" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Nav" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS pēc savienošanās" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL uz atsevišķa porta" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nosaukums" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP _serveris" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP _serveris" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "Uz _priekšu" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Kļūda savienojoties ar IMAP serveri" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Kļūda savienojoties ar SMTP serveri" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-pasts" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Vārds" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Uzņēmuma lietotājvārds (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Kontam ir izslēgta biļetēšana" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Atslēgu saišķī netika atrasti akreditācijas dati vadītājam “%s”" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Akreditācijas datos neatrada paroli vadītājam “%s”" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Identitāte" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Darbība tika atcelta" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Ierakstīties nogabalā" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Lūdzu, ievadiet savu paroli zemāk." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Atcerēties šo paroli" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Kļūda savienojoties ar uzņēmuma identitātes serveri" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identitātes serviss atgrieza nederīgu atslēgu" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Kļūda savienojoties ar Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Mediju serveris" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Personālo saturu var pievienot pie savas lietotnes caur mediju servera kontu." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Pieejamie mediju serveri" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nav atrastu mediju serveru" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Kad pieprasīja piekļuves marķieri, tika gaidīts statuss 200, tā vietā saņēma " +"statusu %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Pilnvarošanas atbilde:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Pilnvarošanas atbilde: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Kļūda, saņemto pieejas marķieri: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Kļūda, saņemot identitāti: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Tika prasīts, lai ierakstās kā %s, bet ierakstījās kā %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Akreditācijas dati nesatur access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Neizdevās atsvaidzināt piekļuves marķieri (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Atbildē trūkts access_token vai access_token_secret galveņu" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Kļūda, saņemot pieprasījuma marķieri: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Saņemot pieprasījuma marķieri, gaidīja rezultātu 200, tā vietā saņēma " +"statusu %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Atbildē trūkts request_token vai request_token_secret galveņu" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Akreditācijas dati nesatur access_token vai access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Kļūda savienojoties ar ownCloud serveri" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nav lietotājvārda vai piekļuves marķiera" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "Pasta_m" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_ndāram" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontaktiem" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Tē_rzēšanai" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumentiem" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "Mū_zika" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotogrāfijām" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Datnēm" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Tīkla _resursi" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Lasīt vēlāk" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Prin_teri" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Kartes" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_Darāmie darbi" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Izmantot" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Konts ir izslēgts" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Nezināma kļūda" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync nav implementēta tipam %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS nav pieejams" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Nezināms autentifikācijas mehānisms" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Nav atrasts Telepathy tērzēšanas konts" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Neizdevās izveidot %s lietotāja saskarni" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Savienojuma iestatījumi" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Personīgā informācija" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Labi" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Nevar saglabāt savienojuma parametrus" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Uz servera nevar saglabāt jūsu personīgo informāciju" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Savienojuma iestatījumi" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Personīgā informācija" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Kļūda, ierakstoties kontā" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Pilnvaras termiņš ir beidzies" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Ierakstieties, lai aktivētu šo kontu." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Ierak_stīties" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s konts jau eksistē priekš %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s konts" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Neizdevās izdzēst akreditācijas datus no atslēgu saišķa" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Neizdevās saņemt akreditācijas datus no atslēgu saišķa" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Neizdevās atrast akreditācijas datus atslēgu saišķī" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Kļūda, pasējot rezultātu, kas iegūts no atslēgu saišķa: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s akreditācijas dati identitātei %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Neizdevās noglabāt akreditācijas datus atslēgu saišķī" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Nevar atšķetināt resursdatora nosaukumu" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Nevar atšķetināt starpnieka servera nosaukumu" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Nevar atrast WebDAV beigu punktu" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kods: %u — negaidīta atbilde no servera" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Parakstošā sertifikātu institūcija nav zināma." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Sertifikāts neatbilst gaidītajai vietnes identitātei, no kuras tas tika " +"saņemts." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Sertifikāta aktivizēšanas laiks vēl aizvien ir nākotnē." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Sertifikāta derīgums ir beidzies." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Sertifikāts tika atsaukts." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Sertifikāta algoritms tiek uzskatīts par nedrošu." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Nederīgs sertifikāts." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Akreditācijas datos neizdevās atrast %s ar identitāti “%s”" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Ielādē “%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Sākotnējā slepenā atslēga nav derīga" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Lai jūs varētu ierakstīties, tīkla nogabalam %s vajag papildu informāciju" + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +#| msgid "Could not find identity in credential cache: %k" +msgid "Could not find identity in credential cache: " +msgstr "Nevarēja atrast identitāti akreditācijas datu kešā: " + +#: src/goaidentity/goakerberosidentity.c:720 +#| msgid "Could not find identity credentials in cache: %k" +msgid "Could not find identity credentials in cache: " +msgstr "Nevarēja atrast identitātes akreditācijas datus kešā: " + +#: src/goaidentity/goakerberosidentity.c:771 +#| msgid "Could not sift through identity credentials in cache: %k" +msgid "Could not sift through identity credentials in cache: " +msgstr "Nevarēja iziet cauri identitātes akreditācijas datiem kešā: " + +#: src/goaidentity/goakerberosidentity.c:788 +#| msgid "" +#| "Could not finish up sifting through identity credentials in cache: %k" +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Nevarēja pabeigt iziet cauri identitātes akreditācijas datiem kešā: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nav atrasta saistīta identitāte" + +#: src/goaidentity/goakerberosidentity.c:1186 +#| msgid "Could not create credential cache: %k" +msgid "Could not create credential cache: " +msgstr "Neizdevās izveidot akreditācijas datu kešu: " + +#: src/goaidentity/goakerberosidentity.c:1220 +#| msgid "Could not initialize credentials cache: %k" +msgid "Could not initialize credentials cache: " +msgstr "Nevarēja inicializēt akreditācijas datu kešu: " + +#: src/goaidentity/goakerberosidentity.c:1236 +#| msgid "Could not store new credentials in credentials cache: %k" +msgid "Could not store new credentials in credentials cache: " +msgstr "Neizdevās noglabāt jaunus akreditācijas datus kešā: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nevarēja atjaunot identitāti — nav ierakstījies" + +#: src/goaidentity/goakerberosidentity.c:1546 +#| msgid "Could not renew identity: %k" +msgid "Could not renew identity: " +msgstr "Nevarēja atjaunot identitāti: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +#| msgid "Could not get new credentials to renew identity %s: %k" +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Nevarēja saņemt jaunus akreditācijas datus, lai atjaunotu identitāti %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +#| msgid "Could not erase identity: %k" +msgid "Could not erase identity: " +msgstr "Nevarēja izdzēst identitāti: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nevarēja atrast identitāti" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Neizdevās izveidot akreditācijas datu kešu identitātei" diff --git a/po/mk.gmo b/po/mk.gmo new file mode 100644 index 0000000..1ba725c Binary files /dev/null and b/po/mk.gmo differ diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 0000000..835afff --- /dev/null +++ b/po/mk.po @@ -0,0 +1,312 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: 3.4\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-12-31 16:35+0000\n" +"PO-Revision-Date: 2012-01-06 03:17+0100\n" +"Last-Translator: Jovan N\n" +"Language-Team: LANGUAGE \n" +"Language: mk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/daemon/goadaemon.c:871 +msgid "An online account needs attention" +msgstr "Некоја онлајн сметка бара внимание" + +#: ../src/daemon/goadaemon.c:878 +msgid "Open Online Accounts..." +msgstr "Отвори ги онлајн сметките..." + +#: ../src/goabackend/goafacebookprovider.c:78 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:162 +#: ../src/goabackend/goagoogleprovider.c:195 +#: ../src/goabackend/goawindowsliveprovider.c:170 +#: ../src/goabackend/goatwitterprovider.c:160 +#: ../src/goabackend/goayahooprovider.c:163 +#, c-format +msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgstr "Очекуван е статус 200 при барање на guid, но добив статус %d (%s)" + +#: ../src/goabackend/goafacebookprovider.c:174 +#: ../src/goabackend/goagoogleprovider.c:207 +#: ../src/goabackend/goawindowsliveprovider.c:182 +#: ../src/goabackend/goaoauth2provider.c:478 +#: ../src/goabackend/goatwitterprovider.c:172 +#: ../src/goabackend/goayahooprovider.c:175 +msgid "Error parsing response as JSON: " +msgstr "Грешка при парсирањето на одговорот како JSON: " + +#: ../src/goabackend/goafacebookprovider.c:185 +#, c-format +msgid "Didn't find username member in JSON data" +msgstr "Не најдов член за корисничко име во JSON податоците" + +#: ../src/goabackend/goafacebookprovider.c:194 +#, c-format +msgid "Didn't find name member in JSON data" +msgstr "Не најдов член за име име во JSON податоците" + +#: ../src/goabackend/goafacebookprovider.c:282 +#: ../src/goabackend/goawindowsliveprovider.c:292 +#: ../src/goabackend/goatwitterprovider.c:260 +msgid "User Name" +msgstr "Корисничко име" + +#: ../src/goabackend/goafacebookprovider.c:283 +#: ../src/goabackend/goagoogleprovider.c:430 +#: ../src/goabackend/goawindowsliveprovider.c:293 +msgid "Chat" +msgstr "Разговор" + +#: ../src/goabackend/goagoogleprovider.c:78 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:218 +#, c-format +msgid "Didn't find data member in JSON data" +msgstr "Не најдов член за кориснички податоци во JSON податоците" + +#: ../src/goabackend/goagoogleprovider.c:228 +#, c-format +msgid "Didn't find email member in JSON data" +msgstr "Не најдов член за е-пошта во JSON податоците" + +#: ../src/goabackend/goagoogleprovider.c:425 +msgid "Email Address" +msgstr "Адреса за е-пошта" + +#: ../src/goabackend/goagoogleprovider.c:426 +msgid "Use this account for" +msgstr "Користи ја оваа сметка за" + +#: ../src/goabackend/goagoogleprovider.c:427 +msgid "Mail" +msgstr "Пошта" + +#: ../src/goabackend/goagoogleprovider.c:428 +msgid "Calendar" +msgstr "Календар" + +#: ../src/goabackend/goagoogleprovider.c:429 +msgid "Contacts" +msgstr "Контакти" + +#: ../src/goabackend/goagoogleprovider.c:431 +msgid "Documents" +msgstr "Документи" + +#: ../src/goabackend/goawindowsliveprovider.c:82 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goawindowsliveprovider.c:193 +#, c-format +msgid "Didn't find id member in JSON data" +msgstr "Не најдов член за id во JSON податоците" + +#: ../src/goabackend/goawindowsliveprovider.c:204 +#, c-format +msgid "Didn't find account email member in JSON data" +msgstr "Не најдов член за е-пошта на сметката во JSON податоците" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:435 +#: ../src/goabackend/goaoauthprovider.c:440 +#, c-format +msgid "Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "Очекуван е статус 200 при барање на жетонот за пристап, но добив %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:455 +#, c-format +msgid "Didn't find access_token in non-JSON data" +msgstr "Не најдов access_toke во не-JSON податоците" + +#: ../src/goabackend/goaoauth2provider.c:489 +#, c-format +msgid "Didn't find access_token in JSON data" +msgstr "Не најдов access_toke во JSON податоците" + +#: ../src/goabackend/goaoauth2provider.c:573 +#, c-format +msgid "Authorization response was \"%s\"" +msgstr "Одговорот за авторизација беше „%s“" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:654 +#, c-format +msgid "Paste authorization code obtained from the authorization page:" +msgstr "Вметнете го кодот за авторизација добиен од страницата за авторизација:" + +#: ../src/goabackend/goaoauth2provider.c:728 +#: ../src/goabackend/goaoauthprovider.c:751 +#, c-format +msgid "Dialog was dismissed" +msgstr "Дијалогот беше отфрлен" + +#: ../src/goabackend/goaoauth2provider.c:752 +#: ../src/goabackend/goaoauthprovider.c:782 +msgid "Error getting an Access Token: " +msgstr "Грешка при добивањето на жетон за пристап:" + +#: ../src/goabackend/goaoauth2provider.c:764 +#: ../src/goabackend/goaoauthprovider.c:795 +msgid "Error getting identity: " +msgstr "Грешка при добивањето на идентитет:" + +#: ../src/goabackend/goaoauth2provider.c:929 +#: ../src/goabackend/goaoauthprovider.c:972 +#, c-format +msgid "There is already an account for the identity %s" +msgstr "Веќе постои сметка за идентитетот %s" + +#: ../src/goabackend/goaoauth2provider.c:1054 +#: ../src/goabackend/goaoauthprovider.c:1102 +#, c-format +msgid "Was asked to login as %s, but logged in as %s" +msgstr "Му беше побарано да се најави како %s, но се најави како %s" + +#: ../src/goabackend/goaoauth2provider.c:1190 +#: ../src/goabackend/goaoauthprovider.c:1250 +#, c-format +msgid "Credentials not found in keyring (%s, %d): " +msgstr "Не се пронајдени акредитиви во приврзокот (%s, %d): " + +#: ../src/goabackend/goaoauth2provider.c:1217 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Акредитивите не содржат access_token" + +#: ../src/goabackend/goaoauth2provider.c:1256 +#: ../src/goabackend/goaoauthprovider.c:1323 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Не успеав да го освежам жетонот за пристап (%s, %d): " + +#: ../src/goabackend/goaoauth2provider.c:1291 +#: ../src/goabackend/goaoauthprovider.c:1353 +#, c-format +msgid "Error storing credentials in keyring (%s, %d): " +msgstr "Грешка при зачувувањето на акредитивите во приврзок (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:463 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Недостасуваат заглавја за access_token или access_token_secret во одговорот" + +#: ../src/goabackend/goaoauthprovider.c:636 +msgid "Error getting a Request Token: " +msgstr "Грешка во добивањето на жетон за барање: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:645 +#, c-format +msgid "Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "Се очекуваше статус 200 за добивање на жетонот за барање, но добив %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:659 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Недостасуваат заглавија за request_token или request_token_secret во одговорот" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:676 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr "Вметнете го жетонот добиен од страницата за авторизација:" + +#: ../src/goabackend/goaoauthprovider.c:1279 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Акредитивите не содржат access_token или access_token_secret" + +#: ../src/goabackend/goaprovider.c:523 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync не е имплементиран на типот %s" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goaprovider.c:742 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s акредитиви за идентитетот %s" + +#. TODO: more specific +#: ../src/goabackend/goaprovider.c:756 +#, c-format +msgid "Failed to store credentials in the keyring: %s" +msgstr "Не успеав да ги зачувам акредитивите во приврзокот: %s" + +#. TODO: more specific +#: ../src/goabackend/goaprovider.c:827 +#, c-format +msgid "Failed to retrieve credentials from the keyring: %s" +msgstr "Не успеав да добијам акредитиви од приврзокот: %s" + +#: ../src/goabackend/goaprovider.c:839 +msgid "Error parsing result obtained from the keyring: " +msgstr "Грешка при парсирање на резултатот добиен од приврзокот:" + +#: ../src/goabackend/goatwitterprovider.c:78 +msgid "Twitter" +msgstr "Twitter" + +#: ../src/goabackend/goatwitterprovider.c:183 +#, c-format +msgid "Didn't find id_str member in JSON data" +msgstr "Не најдов find id_str член во JSON податоците" + +#: ../src/goabackend/goatwitterprovider.c:192 +#, c-format +msgid "Didn't find screen_name member in JSON data" +msgstr "Не најдов screen_name член во JSON податоците" + +#: ../src/goabackend/goayahooprovider.c:78 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:186 +#, c-format +msgid "Didn't find guid member in JSON data" +msgstr "Не најдов guid член во JSON податоците" + +#: ../src/goabackend/goayahooprovider.c:196 +#, c-format +msgid "Didn't find value member in JSON data" +msgstr "Не најдов член за вредност во JSON податоците" + +#: ../src/goabackend/goayahooprovider.c:222 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "Очекував статус 200 при барањето на името, но добив статус %d (%s)" + +#: ../src/goabackend/goayahooprovider.c:235 +msgid "Error parsing usercard response as JSON: " +msgstr "Грешка во парсирањето на одговорот како JSON: " + +#: ../src/goabackend/goayahooprovider.c:246 +#, c-format +msgid "Didn't find profile member in JSON data" +msgstr "Не најдов член за профил во JSON податоците" + +#: ../src/goabackend/goayahooprovider.c:256 +#, c-format +msgid "Didn't find nickname member in JSON data" +msgstr "Не најдов член за прекар во JSON податоците" + +#. TODO: look up email address / screenname from GUID +#: ../src/goabackend/goayahooprovider.c:324 +msgid "Name" +msgstr "Име" + diff --git a/po/ml.gmo b/po/ml.gmo new file mode 100644 index 0000000..f42c3ce Binary files /dev/null and b/po/ml.gmo differ diff --git a/po/ml.po b/po/ml.po new file mode 100644 index 0000000..bb73526 --- /dev/null +++ b/po/ml.po @@ -0,0 +1,972 @@ +# Malayalam translation of gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Jishnu Mohan , 2012. +# Reviewed by Praveen Arimbrathodiyil , 2012. +# Ani Peter , 2012. +# Mohammed Sadiq , 2012. +# Anish A , 2013. +# Akhilan , 2013 +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts&keywords=I18N" +"+L10N&component=general\n" +"POT-Creation-Date: 2017-08-05 20:13+0000\n" +"PO-Revision-Date: 2017-08-08 18:01+0530\n" +"Last-Translator: ബാലശങ്കർ സി \n" +"Language-Team: Swatantra Malayalam Computing\n" +"Language: ml\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.2\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "ദേതാവിനെ കണ്ടുപിടിക്കുന്നതിൽ പരാജയം: %s" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "IsLocked വിശേഷത അക്കൌണ്ടിനു് സജ്ജമാക്കിയിട്ടുണ്ട്" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "ProviderType വിശേഷത അക്കൌണ്ടിനു് സജ്ജമാക്കിയിട്ടില്ല" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "ഓട്ടോഡിസ്കവര്‍ മറുപടി എക്സ്എംഎല്‍ പാഴ്സ് ചെയ്യുന്നതില്‍ പരാജയം" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "\"%s\" എലമെന്റ് കണ്ടുപിടിയ്ക്കുന്നതില്‍ പരാജയം" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ഓട്ടോഡിസ്കവര്‍ റസ്പോണ്‍സില്‍ ASUrl, OABUrl എന്നിവ കണ്ടുപിടിയ്ക്കുന്നതില്‍ പരാജയം" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "മൈക്രോസോഫ്റ്റ് എക്സ്ചെയിഞ്ച്" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "\"%s\" (%s, %d) ഉപയോക്താവിനുള്ള രഹസ്യവാക്ക് തെറ്റ്: " + +#: ../src/goabackend/goaexchangeprovider.c:396 ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_ഈമെയില്‍" + +#: ../src/goabackend/goaexchangeprovider.c:397 ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_രഹസ്യവാക്ക്" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_യഥേഷ്ടം" + +#: ../src/goabackend/goaexchangeprovider.c:411 ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:428 ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "ഉപയോക്തൃ_നാമം" + +#: ../src/goabackend/goaexchangeprovider.c:412 ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_സര്‍വര്‍" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:744 ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "റദ്ദാക്കുക (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:423 ../src/goabackend/goakerberosprovider.c:745 +#: ../src/goabackend/goalastfmprovider.c:438 ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "ബന്ധിപ്പിയ്ക്കുക (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:439 ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:761 ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "ബന്ധിപ്പിച്ചുകൊണ്ടിരിയ്ക്കുന്നു…" + +#: ../src/goabackend/goaexchangeprovider.c:539 ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:652 ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 ../src/goabackend/goaoauth2provider.c:1062 +#: ../src/goabackend/goaoauthprovider.c:832 ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "സംവാദം വേണ്ടെന്ന് വെച്ചു" + +#: ../src/goabackend/goaexchangeprovider.c:577 ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "സംവാദം വേണ്ടെന്ന് വെച്ചു (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "_അവഗണിക്കുക" + +#: ../src/goabackend/goaexchangeprovider.c:595 ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1262 ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_വീണ്ടും ശ്രമിയ്ക്കുക" + +#: ../src/goabackend/goaexchangeprovider.c:600 ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "മൈക്രോസോഫ്റ്റ് എക്സ്ചെയിഞ്ച് സര്‍വറിലേക്കു് കണക്ട് ചെയ്യുമ്പോള്‍ പിശക്" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "ഫേസ്ബുക്ക്" + +#: ../src/goabackend/goafacebookprovider.c:183 ../src/goabackend/goaflickrprovider.c:146 +#: ../src/goabackend/goafoursquareprovider.c:154 ../src/goabackend/goagoogleprovider.c:191 +#: ../src/goabackend/goatodoistprovider.c:193 ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "താങ്കൾ ആരാണെന്നറിയാനുള്ള അപേക്ഷയുടെ മറുപടിയ്ക്ക് പ്രതീക്ഷിച്ച സ്ഥിതി 200, പക്ഷേ ലഭിച്ചത് സ്ഥിതി %d (%s) ആണ്" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 ../src/goabackend/goaflickrprovider.c:165 +#: ../src/goabackend/goaflickrprovider.c:176 ../src/goabackend/goaflickrprovider.c:187 +#: ../src/goabackend/goaflickrprovider.c:196 ../src/goabackend/goaflickrprovider.c:209 +#: ../src/goabackend/goafoursquareprovider.c:173 ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "മറുപടി പാഴ്സ് ചെയ്യുവാന്‍ സാധ്യമായില്ല" + +#: ../src/goabackend/goaflickrprovider.c:55 +msgid "Flickr" +msgstr "ഫ്ലിക്കര്‍" + +#: ../src/goabackend/goaflickrprovider.c:283 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "നിങ്ങളുടെ സിസ്റ്റത്തിലെ സമയം തെറ്റാണു്. തീയതി, സമയ ക്രമീകരണങ്ങള്‍ പരിശോധിയ്ക്കുക." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "ഫോർസ്ക്വയർ" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "ഗൂഗിള്‍" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "സേവനം ലഭ്യമല്ല" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 ../src/goabackend/goalastfmprovider.c:529 ../src/goabackend/goasmtpauth.c:108 +#: ../src/goabackend/goautils.c:883 +#, c-format +msgid "Authentication failed" +msgstr "ആധികാരത ഉറപ്പാക്കൽ പരാജയപ്പെട്ടു" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "സെർവർ PLAIN പിന്തുണയ്ക്കുന്നില്ല" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "സെർവർ STARTTLS പിന്തുണയ്ക്കുന്നില്ല" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP ഉം SMTP ഉം" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "ഉപയോക്താവിനുള്ള %s അസാധുവാണ് - “%s” (%s, %d) : " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_രഹസ്യകോഡിംഗ്" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "ഒന്നുമില്ല" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "കണക്ട് ചെയ്ത ശേഷം STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL ഒരു പ്രത്യേക പോർട്ടിൽ" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_പേര്" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP _സര്‍വര്‍" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "SMTP _സര്‍വര്‍" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "മുമ്പോട്ട് (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "IMAP സര്‍വറിലേക്കു് ബന്ധിപ്പിക്കുമ്പോള്‍ ചെയ്യുമ്പോള്‍ പിശക്" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "SMTP സര്‍വറിലേക്കു് ബന്ധിപ്പിക്കുമ്പോള്‍ ചെയ്യുമ്പോള്‍ പിശക്" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "ഈമെയില്‍" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "പേര്" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:102 +msgid "Enterprise Login (Kerberos)" +msgstr "എന്റര്‍പ്രൈസ് പ്രവേശനം (കര്‍ബറോസ്)" + +#: ../src/goabackend/goakerberosprovider.c:300 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "ഈ അക്കൗണ്ടിന് ടിക്കറ്റിങ്ങ് അനുവദിച്ചിട്ടില്ല" + +#: ../src/goabackend/goakerberosprovider.c:325 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "താക്കോൽക്കൂട്ടത്തിൽ പ്രധാന `%s'-നു് സൂക്ഷിച്ച യോഗ്യതകൾ ലഭ്യമായില്ല" + +#: ../src/goabackend/goakerberosprovider.c:338 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "പ്രധാന \"%s\"നുള്ള രഹസ്യവാക്ക് യോഗ്യതകളിൽ ലഭ്യമായില്ല" + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "_Domain" +msgstr "_ഡൊമെയിന്‍" + +#: ../src/goabackend/goakerberosprovider.c:732 +msgid "Enterprise domain or realm name" +msgstr "എന്റര്‍പ്രൈസ് ഡൊമെയിന്‍ അല്ലെങ്കില്‍ സാമ്രാജ്യത്തിന്റെ പേരു്" + +#: ../src/goabackend/goakerberosprovider.c:974 ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "സാമ്രാജ്യത്തിലേക്കു് പ്രവേശിയ്ക്കുക" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Please enter your password below." +msgstr "ദയവായി താഴെ നിങ്ങളുടെ രഹസ്യവാക്ക് നല്‍കുക." + +#: ../src/goabackend/goakerberosprovider.c:976 +msgid "Remember this password" +msgstr "ഈ രഹസ്യവാക്ക് ഓര്‍ത്തു്വയ്ക്കുക" + +#: ../src/goabackend/goakerberosprovider.c:1110 +#, c-format +msgid "The domain is not valid" +msgstr "ഈ ഡൊമൈന്‍ സാധുവല്ല" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "എന്റര്‍പ്രൈസ് ഐഡന്റി സര്‍വറിലേക്കു് കണക്ട് ചെയ്യുന്നതില്‍ പിശക്" + +#: ../src/goabackend/goakerberosprovider.c:1604 +#, c-format +msgid "Identity service returned invalid key" +msgstr "ഐ‍ഡന്റിറ്റി സര്‍വീസ് തെറ്റായ കീ ലഭ്യമാക്കി" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "ലാസ്റ്റ്.എഫെം" + +#: ../src/goabackend/goalastfmprovider.c:700 ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "ലാസ്റ്റ്.എഫെമിലേക്ക് ബന്ധിപ്പിക്കുന്നതിൽ പിഴവ്" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "മീഡിയ സര്‍വര്‍" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "Personal content can be added to your applications through a media server account." +msgstr "ഒരു മീഡിയ സെർവർ അക്കൗണ്ടിലൂടെ താങ്കളുടെ പ്രയോഗങ്ങളിലേക്ക് വ്യക്തിഗതവിവരങ്ങൾ ചേർക്കാവുന്നതാണ്." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "ലഭ്യമായ മീഡിയ സെർവറുകൾ" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "മീഡിയ സെർവറുകളൊന്നും കണ്ടെത്തിയില്ല" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 ../src/goabackend/goaoauthprovider.c:538 +#, c-format +msgid "Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "ടോക്കണിന് അപേക്ഷിച്ചപ്പോള്‍ പ്രതീക്ഷിച്ച സ്ഥിതി 200 ന് പകരം ലഭിച്ചത് %d (%s) ആണ്" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "അനുമതി ചോദിച്ചപ്പോൾ കിട്ടിയ മറുപടി: " + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "അനുമതി ചോദിച്ചപ്പോള്‍ കിട്ടിയ മറുപടി: %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 ../src/goabackend/goaoauthprovider.c:863 +msgid "Error getting an Access Token: " +msgstr "പ്രവേശന ടൊക്കണ്‍ ലഭ്യമാക്കുന്നതില്‍ പിശക്: " + +#: ../src/goabackend/goaoauth2provider.c:1103 ../src/goabackend/goaoauthprovider.c:876 +msgid "Error getting identity: " +msgstr "തിരിച്ചറിയല്‍ ലഭ്യമാക്കുന്നതില്‍ പിശക്: " + +#: ../src/goabackend/goaoauth2provider.c:1321 ../src/goabackend/goaoauthprovider.c:1164 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s ആയാണു് പ്രവേശിക്കാൻ ആവശ്യപ്പെട്ടെങ്കിലും %s ആയാണ് പ്രവേശിച്ചത്" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "അടയാളവാക്കുകളില്‍ access_token ഇല്ല" + +#: ../src/goabackend/goaoauth2provider.c:1512 ../src/goabackend/goaoauthprovider.c:1379 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "പ്രവേശന ടോക്കണ്‍ പുതുക്കുന്നതില്‍ പിശക് (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:561 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "മറുപടി തലക്കെട്ടില്‍ acees_token ഉം access_token_secret ഉം കാണ്മാനില്ല" + +#: ../src/goabackend/goaoauthprovider.c:746 +msgid "Error getting a Request Token: " +msgstr "അപേക്ഷാ ടോക്കണ്‍ ലഭിക്കുന്നതില്‍ പിശക്: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:777 +#, c-format +msgid "Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "അപേക്ഷാ ടോക്കണ്‍ ലഭിക്കുന്നതിനു് പ്രതീക്ഷിച്ച അവസ്ഥ 200, പക്ഷേ ലഭിച്ചത് %d (%s) ആണ്" + +#: ../src/goabackend/goaoauthprovider.c:794 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "മറുപടി തലക്കെട്ടില്‍ request_token ഉം request_token_secret ഉം കാണ്മാനില്ല" + +#: ../src/goabackend/goaoauthprovider.c:1335 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "access_token ഉം access_token_secret ഉം അടയാളവാക്കുകളിലില്ല" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "നെക്സ്റ്റ്ക്ലൗഡ്" + +#: ../src/goabackend/goaowncloudprovider.c:736 ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "ഔണ്‍ ക്ലൌഡ് സര്‍വറിലേക്കു് ബന്ധിപ്പിക്കുമ്പോള്‍ ചെയ്യുമ്പോള്‍ പിശക്" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "പോക്കറ്റ്" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "ഉപയോക്തൃനാമമോ ആക്സസ് ടോക്കണോ ഇല്ല" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "_മെയില്‍" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "_കലണ്ടര്‍" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "_വിലാസങ്ങള്‍" + +#: ../src/goabackend/goaprovider.c:134 ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_സല്ലാപ്പം" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "_രേഖകള്‍" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "സംഗീതം (_u)" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "_ചിത്രങ്ങള്‍" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "_ഫയലുകള്‍" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "നെറ്റ്‌വര്‍ക്ക് സ്രോ_തസ്സുകള്‍" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "പിന്നീട് വായിക്കുക (_R)" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "പ്രിന്ററുകൾ (_t)" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "ഭൂപടങ്ങൾ (_M)" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "ചെയ്യാനുള്ളവ (_o)" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "എന്തിനുപയോഗിയ്ക്കുന്നു" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "അക്കൗണ്ട് പ്രവർത്തനരഹിതമാണ്" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "അറിയാത്ത പിഴവ്" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "%s ല്‍ ensure_credentials_sync ലഭ്യമാക്കിയിട്ടില്ല" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "TLS ലഭ്യമല്ല" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "അജ്ഞാതമായ ആധികാരികത ഉറപ്പാക്കൽ പ്രക്രിയ" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "ടെലിപ്പതി ചാറ്റ് അക്കൗണ്ട് കണ്ടെത്താനായില്ല" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s നു് വേണ്ടി ഒരു ഉപയോക്തൃ സമ്പർക്കമുഖം സൃഷ്ടിക്കാനായില്ല" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "ബന്ധത്തിന്റെ ക്രമീകരണങ്ങൾ" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "സ്വകാര്യവിവരങ്ങൾ" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "ശരി (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "ബന്ധപ്പെടാനുള്ള വിവരങ്ങൾ സംരക്ഷിക്കാനായില്ല" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "സ്വകാര്യവിവരങ്ങൾ സെർവ്വറിൽ സംരക്ഷിക്കാനായില്ല" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "ബന്ധത്തിന്റെ ക്രമീകരണങ്ങൾ (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "സ്വകാര്യവിവരങ്ങൾ" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "ടുഡൂയിസ്റ്റ്" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "അക്കൗണ്ടിലേക്ക് പ്രവേശിക്കുന്നതിൽ പിഴവ്" + +#: ../src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "യോഗ്യതകളുടെ കാലാവധി കഴിഞ്ഞിരിക്കുന്നു." + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "ഈ അക്കൗണ്ട് പ്രവർത്തനസജ്ജമാക്കാൻ പ്രവേശിക്കുക." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "പ്രവേശിക്കുക (_S)" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "ഒരു %s അക്കൌണ്ട് %s-നു് നിലവിലുണ്ടു്" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s അക്കൌണ്ട്" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "കീറിങില്‍ നിന്നും ആധികാരികത ഉറപ്പാക്കുന്ന വിവരങ്ങള്‍ വെട്ടി നീക്കുന്നതില്‍ പരാജയം" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "കീറിങില്‍ നിന്നും ആധികാരികത ഉറപ്പാക്കുന്ന വിവരങ്ങള്‍ ലഭ്യമാക്കുന്നതില്‍ പരാജയം" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "താക്കോല്‍കൂട്ടത്തില്‍ ആധികാരികത ഉറപ്പാക്കുന്ന വിവരങ്ങള്‍ ഒന്നുമില്ല" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "ചാവിക്കൂട്ടത്തില്‍ നിന്ന് ഫലം കണ്ടുപിടിക്കുന്നതില്‍ പിശക്: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%2$s തിരിച്ചറിയലിന്റെ GOA %1$s അടയാളവാക്കുകള്‍" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "കീറിങില്‍ നിന്നും ആധികാരികത ഉറപ്പാക്കുന്ന വിവരങ്ങള്‍ സൂക്ഷിക്കുന്നതില്‍ പരാജയം" + +#: ../src/goabackend/goautils.c:870 +msgid "Cannot resolve hostname" +msgstr "ഹോസ്റ്റ്നെയിം കണ്ടെത്താനായില്ല" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot resolve proxy hostname" +msgstr "പ്രോക്സി ഹോസ്റ്റ്നെയിം കണ്ടെത്താനായില്ല" + +#: ../src/goabackend/goautils.c:879 +msgid "Cannot find WebDAV endpoint" +msgstr "വെബ്ഡാവ് വിലാസം കണ്ടെത്താനായില്ല" + +#: ../src/goabackend/goautils.c:888 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "കോഡ്: %u - സെര്‍വറില്‍ നിന്നും അപ്രതീക്ഷിതമായ മറുപടി" + +#: ../src/goabackend/goautils.c:904 +msgid "The signing certificate authority is not known." +msgstr "സാക്ഷ്യപത്രം സാക്ഷ്യപ്പെടുത്തിയ ആളിനെ അറിയില്ല." + +#: ../src/goabackend/goautils.c:908 +msgid "The certificate does not match the expected identity of the site that it was retrieved from." +msgstr "സാക്ഷ്യപത്രം കിട്ടിയ സൈറ്റിന്റെ തിരിച്ചറിയല്‍ സാക്ഷ്യപത്രവുമായി ചേരുന്നില്ല." + +#: ../src/goabackend/goautils.c:913 +msgid "The certificate’s activation time is still in the future." +msgstr "ഈ സാക്ഷ്യപത്രത്തിന്റെ ആരംഭ സമയം ഭാവിയിലാണ്." + +#: ../src/goabackend/goautils.c:917 +msgid "The certificate has expired." +msgstr "സാക്ഷ്യപത്രത്തിന്റെ കാലാവധി കഴിഞ്ഞിരിക്കുന്നു." + +#: ../src/goabackend/goautils.c:921 +msgid "The certificate has been revoked." +msgstr "ഈ സാക്ഷ്യപത്രം പിന്‍വലിച്ചതാണു്." + +#: ../src/goabackend/goautils.c:925 +msgid "The certificate’s algorithm is considered insecure." +msgstr "സാക്ഷ്യപത്രത്തിനുപയോഗിച്ചിരിക്കുന്ന അല്‍ഗോരിതം സുരക്ഷിതമല്ല." + +#: ../src/goabackend/goautils.c:929 +msgid "Invalid certificate." +msgstr "അസാധുവായ സാക്ഷ്യപത്രം." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:964 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "\"%s\" എന്ന വ്യക്തിത്വമുള്ള %sനെ യോഗ്യതകളിൽ കണ്ടെത്തിയില്ല" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” ലഭ്യമാക്കുന്നു…" + +#: ../src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "മൈക്രോസോഫ്റ്റ്" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "പ്രാരംഭ രഹസ്യ കീ അസാധുവാണു്" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "നെറ്റ്‌വര്‍ക്ക് സാമ്രാജ്യം %s-നു് പ്രവേശനത്തിനു് ചില വിവരങ്ങള്‍ ആവശ്യമുണ്ടു്." + +#: ../src/goaidentity/goakerberosidentity.c:276 ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "ക്യാഷില്‍ തിരിച്ചറിയുന്നതിനുള്ള ആധികാരികത കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല : %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "ക്യാഷില്‍ തിരിച്ചറിയുന്നതിനുള്ള ആധികാരികത കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല : %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "ക്യാഷില്‍ തിരിച്ചറിയുന്നതിനുള്ള ആധികാരികത നീക്കുവാന്‍ സാധ്യമല്ല : %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "ക്യാഷില്‍ തിരിച്ചറിയുന്നതിനുള്ള ആധികാരികത സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "ബന്ധമുള്ള തിരിച്ചറിയല്‍ ലഭ്യമായി" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "ആധികാരികത ക്യാഷ് തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "ആധികാരികത ക്യാഷ് പ്രാരംഭത്തിനു് സാധ്യമല്ല: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "ക്യാഷില്‍ തിരിച്ചറിയുന്നതിനുള്ള ആധികാരികത സൂക്ഷിയ്ക്കുവാന്‍ സാധ്യമല്ല : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "തിരിച്ചറിയല്‍ പുതുക്കുവാന്‍ സാധ്യമല്ല: ഒപ്പിട്ടില്ല" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "തിരിച്ചറിയല്‍ പുതുക്കുവാന്‍ സാധ്യമല്ല: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "%s തിരിച്ചറിയല്‍ പുതുക്കുന്നതിനായി പുതിയ ആധികാരികതകള്‍ ലഭ്യമല്ല: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "തിരിച്ചറിയില്‍ മായിയ്ക്കുവാന്‍ സാധ്യമല്ല: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "തിരിച്ചറിയല്‍ കണ്ടുപിടിയ്ക്കുവാനായില്ല" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "തിരിച്ചറിയുന്നതിനായി ആധികാരികത ക്യാഷ് തയ്യാറാക്കുവാന്‍ സാധ്യമല്ല" + +#, fuzzy +#~| msgid "Did not find password with identity `%s' in credentials" +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "`%s' ഉപയോക്താവിനുള്ള രഹസ്യവാക്ക് കണ്ടുപിടിക്കുവാനായില്ല" + +#~ msgid "Paste authorization code obtained from the authorization page:" +#~ msgstr "അനുമതി താളില്‍ നിന്നും ലഭിച്ച കോഡ് നൽകുക:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "അനുമതി താളില്‍ നിന്നും ലഭിച്ച ടോക്കണ്‍ നൽകുക:" + +#~ msgid "ownCloud" +#~ msgstr "ഔണ്‍ ക്ലൌഡ്" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail ലഭ്യമല്ല" + +#~ msgid "Failed to parse email address" +#~ msgstr "ഇമെയില്‍ പാഴ്സ് ചെയ്യുന്നതില്‍ പരാജയം" + +#~ msgid "Cannot do SMTP PLAIN without a domain" +#~ msgstr "ഡൊമയ്ൻ ഇല്ലാതെ SMTP PLAIN ചെയ്യാൻ സാധ്യമല്ല" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "smtp രഹസ്യവാക്ക് കണ്ടുപിടിക്കുവാനായില്ല" + +#~ msgid "Cannot do SMTP PLAIN without a password" +#~ msgstr "രഹസ്യവാക്ക് ഇല്ലാതെ ഇത്ചെയ്യാൻ സാധ്യമല്ല" + +#, fuzzy +#~| msgid "Failed to find Account element" +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "അക്കൌണ്ട് എലമെന്റ് കണ്ടുപിടിയ്ക്കുന്നതില്‍ പരാജയം" + +#~ msgid "Twitter" +#~ msgstr "ട്വിറ്റര്‍" + +#~ msgid "Windows Live" +#~ msgstr "വിന്‍ഡോസ് ലൈവ്" + +#~ msgid "Yahoo" +#~ msgstr "യാഹൂ" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "പേര് അപേക്ഷിച്ചപ്പോള്‍ പ്രതീക്ഷിച്ച സ്ഥിതി 200 ന് പകരം ലഭിച്ചത് %d (%s) ആണ്" + +#~ msgid "Time" +#~ msgstr "സമയം" + +#~ msgid "Time to fire" +#~ msgstr "ലഭ്യമാക്കുന്നതിനുള്ള സമയം" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "രഹസ്യ കീ കൈമാറ്റത്തിനു് പകരം പ്രാരംഭ രഹസ്യം നല്‍കിയിരിയ്ക്കുന്നു" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "ഓട്ടോഡിസ്കവര്‍ എലമെന്റ് കണ്ടുപിടിയ്ക്കുന്നതില്‍ പരാജയം" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "Guid ന് അപേക്ഷിച്ചപ്പോള്‍ പ്രതീക്ഷിച്ച സ്ഥിതി 200 പകരം ലഭിച്ചത് സ്ഥിതി %d (%s) ആണ്" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "`%s' ഉപയോക്താവിനുള്ള imap രഹസ്യവാക്ക് കണ്ടുപിടിക്കുവാനായില്ല" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "`%s' (%s, %d) ഉപയോക്താവിനുള്ള imap രഹസ്യവാക്ക് തെറ്റ്: " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "`%s' ഉപയോക്താവിനുള്ള smtp രഹസ്യവാക്ക് കണ്ടുപിടിക്കുവാനായില്ല" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "`%s' (%s, %d) ഉപയോക്താവിനുള്ള smtp രഹസ്യവാക്ക് തെറ്റ്: " + +#~ msgid "Online Accounts" +#~ msgstr "ഓണ്‍ലൈന്‍ അക്കൗണ്ടുകള്‍" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "org.gnome.OnlinesAccounts പേര് സെഷന്‍ ബസ്സില്‍ കൊടുക്കുന്നു" + +#~ msgid "An online account needs attention" +#~ msgstr "ഈ ഓണ്‍ലൈന്‍ അക്കൗണ്ടിലൊന്നു് ശ്രദ്ധിയ്ക്കൂ" + +#~ msgid "Open Online Accounts..." +#~ msgstr "ഓണ്‍ലൈന്‍ അക്കൌണ്ടുകള്‍ തുറക്കുക..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "ചാവിക്കൂട്ടത്തില്‍ അടയാളവാക്കുകള്‍ കണ്ടെത്താനായില്ല (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "JSON റെസ്പോണ്‍സ് പാഴ്സ് ചെയ്യുന്നതില്‍ പിശക്: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ ഐഡി കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ ഇമെയില്‍ കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ ഉപയോക്തൃ അംഗം കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ user.id അംഗം കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ user.username അംഗം കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ user.username._content അംഗം കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "നോണ്‍-JSON ഡേറ്റയില്‍ access_token കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ access_token കണ്ടെത്താനായില്ല" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "ചാവിക്കൂട്ടത്തില്‍ ചാവി സംഭരിക്കുന്നതില്‍ പിശക് (%s, %d): " + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ id_str കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ screen_name കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ അക്കൗണ്ട് ഇമെയില്‍ കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ guid കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ മൂല്യം അംഗത്തെ കണ്ടെത്താനായില്ല" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "യൂസര്‍കാര്‍ഡ് മറുപടിയെ JSON ആയി പാഴ്സ്ചെയ്യുന്നതില്‍ പിശക്: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON ഡേറ്റയിയില്‍ പ്രൊഫൈല്‍ കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ വിളിപ്പേര് കണ്ടെത്താനായില്ല" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ ഡേറ്റാ അംഗത്തെ കണ്ടെത്താനയില്ല" + +#~ msgid "Chat" +#~ msgstr "സല്ലാപം" + +#~ msgid "Domain Administrator Login" +#~ msgstr "ഡൊമെയിന്‍ അഡ്മിനിസ്ട്രേറ്റര്‍ പ്രവേശനം" + +#~ msgid "Could not find supported credentials" +#~ msgstr "പിന്തുണയ്ക്കുന്ന ആധികാരികത ഉറപ്പാക്കല്‍ വിവരങ്ങള്‍ ലഭ്യമാക്കുവാനായില്ല" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be enrolled in the domain. Please have your network " +#~ "administrator type their domain password here." +#~ msgstr "" +#~ "ഈ എന്റര്‍പ്രൈസ് തിരിച്ചറിയല്‍ ഉപയോഗിയ്ക്കുന്നതിനായി, കമ്പ്യൂട്ടര്‍ ഡൊമെയിനില്‍ നല്‍കേണ്ടതുണ്ടു്. ദയവായി ഇവിടെ ഡൊമെയിന്‍ രഹസ്യവാക്ക് ടൈപ്പ് ചെയ്യുവാന്‍ " +#~ "നെറ്റ്‌വര്‍ക്ക് അഡ്മിനിസ്ട്രേറ്ററിനെ അനുവദിയ്ക്കുക." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be enrolled in the domain. Please have your network " +#~ "administrator type their domain username here." +#~ msgstr "" +#~ "ഈ എന്റര്‍പ്രൈസ് തിരിച്ചറിയല്‍ ഉപയോഗിയ്ക്കുന്നതിനായി, കമ്പ്യൂട്ടര്‍ ഡൊമെയിനില്‍ നല്‍കേണ്ടതുണ്ടു്. ദയവായി ഇവിടെ ഡൊമെയിന്‍ ഉപയോക്തൃനാമം ടൈപ്പ് ചെയ്യുവാന്‍ " +#~ "നെറ്റ്‌വര്‍ക്ക് അഡ്മിനിസ്ട്രേറ്ററിനെ അനുവദിയ്ക്കുക." + +#~ msgid "No such domain or realm found" +#~ msgstr "അത്തരം ഡൊമെയിന്‍ അല്ലെങ്കില്‍ സാമ്രാജ്യം ലഭ്യമല്ല" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%s ആയി, %s ഡൊമെയിനിലേക്കു് പ്രവേശിയ്ക്കുവാന്‍ സാധ്യമല്ല" + +#~ msgid "Invalid password, please try again" +#~ msgstr "തെറ്റായ രഹസ്യവാക്ക്, വീണ്ടും ശ്രമിയ്ക്കുക" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "%s ഡൊമെയിനിലേക്കു് കണക്ട് ചെയ്യുവാന്‍ സാധ്യമല്ല: %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON ഡേറ്റയില്‍ പേര് കണ്ടെത്താനായില്ല" + +#~ msgid "Email Address" +#~ msgstr "ഇമെയില്‍ വിലാസം" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "%s എന്ന പേരില്‍ ഒരു അക്കൗണ്ട് നിലവിലുണ്ട് " diff --git a/po/mr.gmo b/po/mr.gmo new file mode 100644 index 0000000..1efcebb Binary files /dev/null and b/po/mr.gmo differ diff --git a/po/mr.po b/po/mr.po new file mode 100644 index 0000000..22ceba0 --- /dev/null +++ b/po/mr.po @@ -0,0 +1,1008 @@ +# Marathi translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Sandeep Shedmake , 2012, 2014. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-09-15 18:59+0000\n" +"PO-Revision-Date: 2014-09-16 10:56+0530\n" +"Last-Translator: Sandeep Shedmake \n" +"Language-Team: Marathi \n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "%s करीता प्रोव्हाइडर शोधणे अपयशी" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "ProviderType गुणधर्म खात्याकरीता सेट केले नाही" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +#| msgid "Code: %u - Unexpected response from server" +msgid "Code: %u — Unexpected response from server" +msgstr "कोड: %u — सर्व्हरकडून अनपेक्षित प्रतिसाद प्राप्त झाले" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "ऑटोडिस्कवर रेसपाँस् XML वाचण्यास अपयशी" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +#| msgid "Failed to find Response element" +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ एलिमेंट शोधण्यास अपयशी" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ऑटोडिस्कवर रेसपाँसमध्ये ASUrl व OABUrl शोधण्यास अपयशी" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "माइक्रोसॉक्ट एक्सचेंज" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +#| msgid "Did not find password with username `%s' in credentials" +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "श्रेय अंतर्गत ओळख ‘%s’ सह पासवर्ड आढळले नाही" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +#| msgid "Did not find password with username `%s' in credentials" +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "वापरकर्तानाव ‘%s’ (%s, %d) सह पासवर्ड आढळले नाही: " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "ईमेल (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "पासवर्ड (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "पसंतीचे (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "वापरकर्तानाव (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "सर्व्हर (_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "रद्द करा (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +msgid "C_onnect" +msgstr "जोडणी करा (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "जोडणी करत आहे…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "संवाद खंडीत केले" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +#| msgid "Dialog was dismissed" +msgid "Dialog was dismissed (%s, %d): " +msgstr "संवाद खंडीत केले (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "दुर्लक्ष करा (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "पुनः प्रयत्न करा (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "माइक्रोसॉक्ट एक्सचेंज सर्व्हरशी जोडणी करतेवेळी त्रुटी" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "याकरीता वापर करा" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +#| msgid "Mail" +msgid "_Mail" +msgstr "मेल (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +#| msgid "Calendar" +msgid "Cale_ndar" +msgstr "दिनदर्शिका (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +#| msgid "Contacts" +msgid "_Contacts" +msgstr "संपर्क (_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "फेसबूक" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +#| msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"ओळखकरिता विनंती करतेवेळी अपेक्षित स्थिती 200 आहे, त्याऐवजी स्थिती %d (%s) " +"आढळली" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +#| msgid "Could not erase identity: %k" +msgid "Could not parse response" +msgstr "प्रतिसाद वाचणे अशक्य" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "गप्पा (_h)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "फोटोज (_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "मॅप्स (_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "फ्लिकर" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "प्रणालीची वेळ अवैध आहे. दिनांक व वेळ सेटिंग्स् बदला." + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "गूगल" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +#| msgid "Documents" +msgid "_Documents" +msgstr "दस्तऐवज (_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +msgid "Prin_ters" +msgstr "छपाईयंत्र (_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "सर्व्हिस उपलब्ध नाही" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "ओळख अपयशी" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "सर्व्हर PLAIN करिता समर्थन पुरवत नाही" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "सर्व्हर STARTTLS करिता समर्थन पुरवत नाही" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP आणि SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +#| msgid "Did not find password with username `%s' in credentials" +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "श्रेय अंतर्गत ओळख ‘%2$s’ सह, %1$s आढळले नाही" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "अवैध %s, वापरकर्तानाव ‘%s’ (%s, %d) सह: " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "एनक्रिप्शन (_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "काहिही नाही" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr " जोडणी नंतर STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "समर्पित पोर्टवरील SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "नाव (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +#| msgid "_Server" +msgid "IMAP _Server" +msgstr "IMAP सर्व्हर (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +#| msgid "_Server" +msgid "SMTP _Server" +msgstr "SMTP सर्व्हर (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "पुढे (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +#| msgid "Error connecting to Microsoft Exchange server" +msgid "Error connecting to IMAP server" +msgstr "IMAP सर्व्हरशी जोडणी करतेवेळी त्रुटी" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +#| msgid "Error connecting to Microsoft Exchange server" +msgid "Error connecting to SMTP server" +msgstr "SMTP सर्व्हर जोडणी करतेवेळी त्रुटी" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +#| msgid "_E-mail" +msgid "E-mail" +msgstr "ईमेल" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "नाव" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "एंटरप्राइज प्रवेश (कर्बेरोज्)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "आइडेंटिटि सर्व्हिसने अवैध कि पुरवली" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +#| msgid "Could not find saved credentials for principal `%s' in keyring" +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "किरिंगमध्ये प्रिंसिपल ‘%s’ करीता साठवलेले श्रेय आढळले नाही" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +#| msgid "Did not find password for principal `%s' in credentials" +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "श्रेयमध्ये प्रिंसिपल ‘%s’ करीता पासवर्ड आढळले नाही" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "डोमैन (_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "एंटरप्राइज डोमेन किंवा रिअल्म नाव" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "रिअल्ममध्ये प्रवेश करा " + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "कृपया पासवर्ड द्या." + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "पासवर्ड लक्षात ठेवा" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "डोमेन वैध नाही" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "एंटरप्राइज आइडेंटिटि सर्व्हरशी जोडणी करतेवेळी त्रुटी" + +#: ../src/goabackend/goakerberosprovider.c:1721 +#| msgid "Network Resources" +msgid "Network _Resources" +msgstr "नेटवर्क स्रोत (_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "_Server" +msgid "Media Server" +msgstr "मिडीया सर्व्हर" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"मिडीया सर्व्हर खातेेद्वारे व्यक्तिगत अंतर्भुत माहितीला ॲप्लिकेशन्समध्ये " +"समाविष्ट करणे शक्य आहे." + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "उपलब्ध मिडीया सर्व्हर्स" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "मिडीया सर्व्हर्स आढळले नाही" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"ॲक्सेसकरीता विनंती करतेवेळी स्थिती 200 अपेक्षित, त्याऐवजी %d (%s) स्थिती आढळली" + +#: ../src/goabackend/goaoauth2provider.c:888 +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: " +msgstr "ओळखकरिता प्रतिसाद: " + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: %s" +msgstr "ऑथराइजेशन प्रतिसाद: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "ॲक्सेस टोकन प्राप्त करतेवेळी त्रुटी: " + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "ओळख प्राप्त करतेवेळी त्रुटी: " + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +#| msgid "Was asked to login as %s, but logged in as %s" +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s म्हणून प्रवेशकरिता विनंती केली, परंतु %s म्हणून प्रवेश केले" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "श्रेयमध्ये access_token समाविष्टीत नाही" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "ॲक्सेस् टोकन (%s, %d) पुनः ताजे करण्यास अपयशी: " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "प्रतिसादमध्ये access_token किंवा access_token_secret शीर्षक आढळले नाही" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "रिक्वेस्ट टोकन प्राप्त करतेवेळी त्रुटी: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"रिक्वेस्ट टोकन प्राप्त करतेवेळी स्थिती 200 अपेक्षित, त्याऐवजी %d (%s) स्थिती " +"आढळली" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"रेसपाँसमध्ये request_token किंवा request_token_secret शीर्षके आढळले नाही" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "श्रेयमध्ये access_token किंवा access_token_secret समाविष्टीत नाही" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +#| msgid "Error connecting to Microsoft Exchange server" +msgid "Error connecting to ownCloud server" +msgstr "ownCloud सर्व्हरशी जोडणी करतेवेळी त्रुटी" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "फाइल्स (_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "पॉकेट" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "वापरकर्तानाव किंवा access_token नाही" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "नंतर वाचा (_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync प्रकार %s करीता लागू केले नाही" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS अनुपलब्ध" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail उपलब्ध नाही" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +#| msgid "Failed to parse autodiscover response XML" +msgid "Failed to parse email address" +msgstr "ईमेल पत्ते वाचण्यास अपयशी" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "डोमेनविना SMTP ओळख अशक्य" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +#| msgid "Could not find supported credentials" +msgid "Did not find smtp-password in credentials" +msgstr "श्रेयमध्ये smtp-password आढळले नाही" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "पासवर्डविना SMTP ओळख पटवणे अशक्य" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "अपरिचीत ओळख पद्धती" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "टेलिपथि गप्पा खाते आढळले नाही" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +#| msgid "Failed to find Account element" +msgid "Failed to initialize a GOA client" +msgstr "GOA क्लाएंट सुरू करण्यास अपयशी" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +#| msgid "Failed to find a provider for: %s" +msgid "Failed to create a user interface for %s" +msgstr "%s करिता वापरकर्ता संवाद शोधण्यास अपयशी" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "जोडणी सेटिंग्ज" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "वैयक्तिक तपाशील" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "ठिक आहे (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "जोडणी बाबी साठवणे अशक्य" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "सर्व्हरवर वैयक्तिक माहिती साठवणे अशक्य" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "जोडणी सेटिंग्ज (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "वैयक्तिक तपशील (_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "A %s खाते आधिपासूनच %s करीता अस्तित्वात आहे" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s खाते" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "किरिंगपासून श्रेय नष्ट करण्यास अपयशी" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "किरिंगपासून श्रेय प्राप्त करण्यास अपयशी" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +#| msgid "Failed to store credentials in the keyring" +msgid "No credentials found in the keyring" +msgstr "किरिंगमध्ये श्रेय आढळले नाही" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "किरिंगपासून परिणाम प्राप्त करतेवेळी त्रुटी: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "ओळख %2$s करीता GOA %1$s श्रेय" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "किरिंगपासून श्रेय साठवण्यास अपयशी" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "स्वाक्षरी सर्टिफिकेट अथॉरिटि परचिती नाही." + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"सर्टिफिकेट स्थळाच्या अपेक्षित ओळखसह जुळत नाही, जेथून त्याला प्राप्त केले गेले." + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "प्रमाणपत्रची सक्रीयता वेळ अजूनही भावी आहे." + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "प्रमाणपत्राची वेळसमाप्ति आढळली." + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "प्रमाणपत्र रद्द केले." + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "सर्टिफिकेटचे अल्गोरिदम असुरक्षित ठरवले जाते." + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "अवैध प्रमाणपत्र." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” लोड करत आहे…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "विंडोज लाइव्ह" + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "याहू" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"नावकरीता विनंती करतेवेळी स्थिती 200 अपेक्षित, त्याऐवजी %d (%s) स्थिती आढळली" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "सिक्रेट कि एक्सचेंजपूर्वी प्रारंभिक गोपणीयता पुरवले" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "प्रारंभिक सिक्रेट कि अवैध आहे" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "नेटवर्क रिअल्म %s ला काहिक माहिती आवश्यक आहे." + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "श्रेय कॅशे: %k मध्ये आइडेंटिटि शोधणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "कॅशे: %k मध्ये आइडेंटिटि श्रेय शोधणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "कॅशे: %k मध्ये आइडेंटिटि श्रेयची चाळणी अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "कॅशे: %k मध्ये आइडेंटिटि श्रेयतर्फे चाळणी पूर्ण करणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "संबंधित ओळख पटवणे आढळले नाही" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "श्रेय कॅशे: %k निर्माण करणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "श्रेय कॅशे: %k सुरू करणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "श्रेय कॅशे: %k मध्ये नवीन श्रेय साठवणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "आइडेंटिटिचे पुनःसुरू करणे अशक्य: स्वाक्षरि केले नाही" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "आइडेंटिटि: %k पुनःसुरू करणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "ओळख %s: %k चे पुनःनामांकन करण्यासाठी नवीन श्रेय प्राप्त करणे अशक्य" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "आइडेंटिटि: %k नष्ट करणे अशक्य" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "आइडेंटिटि शोधणे अशक्य" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "आइडेंटिटिकरीता श्रेय कॅशे निर्माण करणे अशक्य" + +#~ msgid "Online Accounts" +#~ msgstr "ऑनलाइन खाते" + +#~ msgid "An online account needs attention" +#~ msgstr "ऑनलाइन खात्याला लक्ष देणे आवश्यक" + +#~ msgid "Open Online Accounts..." +#~ msgstr "ऑनलाइन खाती उघडा..." + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "ऑटोडिस्कवर एलिमेंट शोधण्यास अपयशी" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "किरिंग (%s, %d) मध्ये श्रेय आढळले नाही: " + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "नवीन माइक्रोसॉक्ट एक्सचेंज खाते" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "माइक्रोसॉक्ट एक्सचेंज खाते" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "JSON स्वरूपात प्रतिसाद वाचतेवेळी त्रुटी: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON डाटामध्ये id सदस्य शोधणे अशक्य" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON डाटामध्ये ईमेल सदस्य आढळले नाही" + +#~ msgid "Chat" +#~ msgstr "गप्पा" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON डाटामध्ये डाटा सदस्य आढळले नाही" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "नवीन एंटरप्राइज प्रवेश (कर्बेरोज्)" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "विना-JSON डाटामध्ये access_token आढळले नाही" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON डाटामध्ये access_token आढळले नाही" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "ऑथराइजेशन पृष्ठपासून प्राप्त ऑथराइजेशन कोड चिकटवा:" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "किरिंग (%s, %d) मध्ये श्रेय साठवतेवेळी त्रुटी: " + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "ऑथराइजेशन पृष्ठ पासून प्राप्त टोकन चिकटवा:" + +#~ msgid "Add %s" +#~ msgstr "%s समाविष्ट करा" + +#~ msgid "Refresh %s" +#~ msgstr "%s पुनःताजे करा" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON डाटामध्ये खाते ईमेल सदस्य आढळले नाही" + +#~ msgid "Time" +#~ msgstr "वेळ" + +#~ msgid "Time to fire" +#~ msgstr "टाइम टू फायर" + +#~ msgid "Domain Administrator Login" +#~ msgstr "डोमैन प्रशासक प्रवेश" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "ह्या एंटरप्राइज आइडेंटिटिचा वापर करण्यासाठी, संगणकाची डोमेनसह नोंदणी करणे आवश्यक आहे. " +#~ "कृपया नेटवर्क प्रशासकने डोमेन पासवर्ड येथे टाइप करावा." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "ह्या एंटरप्राइज आइडेंटिटिचा वापर करण्यासाठी, संगणकाची डोमेनसह नोंदणी करणे आवश्यक आहे. " +#~ "कृपया नेटवर्क प्रशासकने डोमेन वापरकर्तानाव येथे टाइप करावा." + +#~ msgid "No such domain or realm found" +#~ msgstr "या प्रकारचे डोमैन किंवा रिअल्म आढळले नाही" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%2$s डोमैनकरीता %1$s प्रमाणे प्रवेश करणे अशक्य" + +#~ msgid "Invalid password, please try again" +#~ msgstr "अवैध पासवर्ड, कृपया पुनः प्रयत्न करा" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "%s डोमैन: %s सह जोडणी अशक्य" + +#~ msgid "Twitter" +#~ msgstr "ट्विटर" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON डाटामध्ये id_str सदस्य आढळले नाही" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON डाटामध्ये screen_name सदस्य शोधणे अशक्य" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON डाटामध्ये guid सदस्य आढळले नाही" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON डाटामध्ये मूल्य सदस्य आढळले नाही" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "JSON स्वरूपात युजरकार्ड प्रतिसाद वाचतेवेळी त्रुटी: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON डाटामध्ये प्रोफाइल सदस्य आढळले नाही" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON डाटामध्ये टोपननाव सदस्य आढळले नाही" diff --git a/po/ms.gmo b/po/ms.gmo new file mode 100644 index 0000000..733a40a Binary files /dev/null and b/po/ms.gmo differ diff --git a/po/ms.po b/po/ms.po new file mode 100644 index 0000000..0866d96 --- /dev/null +++ b/po/ms.po @@ -0,0 +1,314 @@ +# Malay translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Ahmed Noor Kader Mustajir Md Eusoff , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-11-13 10:00+0000\n" +"PO-Revision-Date: 2011-11-15 23:28+0730\n" +"Last-Translator: Umarzuki Bin Mochlis Moktar \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Malay\n" +"X-Poedit-Country: MALAYSIA\n" + +#: ../src/daemon/goadaemon.c:871 +msgid "An online account needs attention" +msgstr "Akaun dalam talian memerlukan perhatian" + +#: ../src/daemon/goadaemon.c:878 +msgid "Open Online Accounts..." +msgstr "Buka Akaun Atas Talian..." + +#: ../src/goabackend/goafacebookprovider.c:78 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:162 +#: ../src/goabackend/goagoogleprovider.c:195 +#: ../src/goabackend/goatwitterprovider.c:160 +#: ../src/goabackend/goayahooprovider.c:163 +#, c-format +msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgstr "" +"Dijangka mendapat status 200 apabila meminta guid, tetapi mendapat status %d " +"(%s)" + +#: ../src/goabackend/goafacebookprovider.c:174 +#: ../src/goabackend/goagoogleprovider.c:207 +#: ../src/goabackend/goaoauth2provider.c:475 +#: ../src/goabackend/goatwitterprovider.c:172 +#: ../src/goabackend/goayahooprovider.c:175 +msgid "Error parsing response as JSON: " +msgstr "Ralat respons parsing sebagai JSON:" + +#: ../src/goabackend/goafacebookprovider.c:185 +#, c-format +msgid "Didn't find username member in JSON data" +msgstr "Tidak menjumpai nama pengguna ahli di dalam data JSON" + +#: ../src/goabackend/goafacebookprovider.c:194 +#, c-format +msgid "Didn't find name member in JSON data" +msgstr "Tidak dapat mencari nama ahli di dalam data JSON " + +#: ../src/goabackend/goafacebookprovider.c:282 +#: ../src/goabackend/goatwitterprovider.c:260 +msgid "User Name" +msgstr "Nama Pengguna" + +#: ../src/goabackend/goafacebookprovider.c:283 +#: ../src/goabackend/goagoogleprovider.c:430 +msgid "Chat" +msgstr "Sembang" + +#: ../src/goabackend/goagoogleprovider.c:78 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:218 +#, c-format +msgid "Didn't find data member in JSON data" +msgstr "Tidak menjumpai data ahli di dalam data JSON" + +#: ../src/goabackend/goagoogleprovider.c:228 +#, c-format +msgid "Didn't find email member in JSON data" +msgstr "Tidak menjumpai email ahli di dalam data JSON" + +#: ../src/goabackend/goagoogleprovider.c:425 +msgid "Email Address" +msgstr "Alamat Email" + +#: ../src/goabackend/goagoogleprovider.c:426 +msgid "Use this account for" +msgstr "Guna akaun ini untuk" + +#: ../src/goabackend/goagoogleprovider.c:427 +msgid "Mail" +msgstr "Surat" + +#: ../src/goabackend/goagoogleprovider.c:428 +msgid "Calendar" +msgstr "Kalendar" + +#: ../src/goabackend/goagoogleprovider.c:429 +msgid "Contacts" +msgstr "Kenalan" + +#: ../src/goabackend/goagoogleprovider.c:431 +msgid "Documents" +msgstr "Dokumen-dokumen" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:432 +#: ../src/goabackend/goaoauthprovider.c:440 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Dijangka mendapat status 200 apabila meminta token akses, tetapi mendapat " +"status%d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:452 +#, c-format +msgid "Didn't find access_token in non-JSON data" +msgstr "Tidak menjumpai token_akses dalam data bukan JSON" + +#: ../src/goabackend/goaoauth2provider.c:486 +#, c-format +msgid "Didn't find access_token in JSON data" +msgstr "Tidak menjumpai token_akses dalam data JSON" + +#: ../src/goabackend/goaoauth2provider.c:570 +#, c-format +msgid "Authorization response was \"%s\"" +msgstr "Respon kebenaran adalah \"%s\"" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:651 +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr "" +"Tampalkan kod kebenaran yang diperolehi dari laman laman " +"kebenaran:" + +#: ../src/goabackend/goaoauth2provider.c:725 +#: ../src/goabackend/goaoauthprovider.c:751 +#, c-format +msgid "Dialog was dismissed" +msgstr "Dialog telah ditolak" + +#: ../src/goabackend/goaoauth2provider.c:749 +#: ../src/goabackend/goaoauthprovider.c:782 +msgid "Error getting an Access Token: " +msgstr "Ralat mendapatkan satu Token Akses:" + +#: ../src/goabackend/goaoauth2provider.c:761 +#: ../src/goabackend/goaoauthprovider.c:795 +msgid "Error getting identity: " +msgstr "Ralat mendapatkan identiti:" + +#: ../src/goabackend/goaoauth2provider.c:926 +#: ../src/goabackend/goaoauthprovider.c:972 +#, c-format +msgid "There is already an account for the identity %s" +msgstr "Telah terdapat satu akaun untuk identiti %s" + +#: ../src/goabackend/goaoauth2provider.c:1051 +#: ../src/goabackend/goaoauthprovider.c:1102 +#, c-format +msgid "Was asked to login as %s, but logged in as %s" +msgstr "Telah diminta untuk log masuk sebagai %s, tetapi log masuk sebagai %s" + +#: ../src/goabackend/goaoauth2provider.c:1187 +#: ../src/goabackend/goaoauthprovider.c:1250 +#, c-format +msgid "Credentials not found in keyring (%s, %d): " +msgstr "Bukti kelayakan tidak dijumpai dalam gegelang kunci (%s, %d):" + +#: ../src/goabackend/goaoauth2provider.c:1214 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Bukti kelayakan tidak mengandungi token_akses" + +#: ../src/goabackend/goaoauth2provider.c:1253 +#: ../src/goabackend/goaoauthprovider.c:1323 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Gagal untuk menyegarkan token akses (%s,%d):" + +#: ../src/goabackend/goaoauth2provider.c:1288 +#: ../src/goabackend/goaoauthprovider.c:1353 +#, c-format +msgid "Error storing credentials in keyring (%s, %d): " +msgstr "Ralat menyimpan kelayakan dalam gegelang kunci (%s,%d):" + +#: ../src/goabackend/goaoauthprovider.c:463 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Akses hilang_tanda atau pengepala akses_rahsia _token sebagai tindak balas" + +#: ../src/goabackend/goaoauthprovider.c:636 +msgid "Error getting a Request Token: " +msgstr "Ralat mendapat Token Permintaan:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:645 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Status 200 dijangka untuk mendapatkan Token Permintaan, sebaliknya mendapat " +"status %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:659 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Hilang token_permintaan atau kepala permintaan_rahsia_token di dalam tindak " +"balas" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:676 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr "" +"Tampalkan token yang diperolehi daripada laman kebenaran:" + +#: ../src/goabackend/goaoauthprovider.c:1279 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Bukti kelayakan tidak mengandungi token_akses atau akses_rahsia_token" + +#: ../src/goabackend/goaprovider.c:522 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "memastikan_selari_kelayakan tidak dilaksanakan pada jenis %s" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goaprovider.c:737 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s bukti kelayakan untuk identiti %s" + +#. TODO: more specific +#: ../src/goabackend/goaprovider.c:751 +#, c-format +msgid "Failed to store credentials in the keyring: %s" +msgstr "Gagal untuk menyimpan bukti kelayakan di dalam gegelang kunci: %s" + +#. TODO: more specific +#: ../src/goabackend/goaprovider.c:822 +#, c-format +msgid "Failed to retrieve credentials from the keyring: %s" +msgstr "Gagal untuk mendapatkan bukti kelayakan daripada gegelang kunci: %s" + +#: ../src/goabackend/goaprovider.c:834 +msgid "Error parsing result obtained from the keyring: " +msgstr "Ralat parsing hasil yang diperolehi dari gegelang kunci:" + +#: ../src/goabackend/goatwitterprovider.c:78 +msgid "Twitter" +msgstr "Twitter" + +#: ../src/goabackend/goatwitterprovider.c:183 +#, c-format +msgid "Didn't find id_str member in JSON data" +msgstr "Tidak menjumpai ahli id_str dalam data JSON" + +#: ../src/goabackend/goatwitterprovider.c:192 +#, c-format +msgid "Didn't find screen_name member in JSON data" +msgstr "Tidak menjumpai nama_skrin ahli di dalam data JSON" + +#: ../src/goabackend/goayahooprovider.c:78 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:186 +#, c-format +msgid "Didn't find guid member in JSON data" +msgstr "Tidak menjumpai ahli guid di dalam data JSON" + +#: ../src/goabackend/goayahooprovider.c:196 +#, c-format +msgid "Didn't find value member in JSON data" +msgstr "Tidak menjumpai nilai ahli di dalam data JSON" + +#: ../src/goabackend/goayahooprovider.c:222 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"Dijangka status 200 apabila meminta nama, sebaliknya mendapat status %d (%s)" + +#: ../src/goabackend/goayahooprovider.c:235 +msgid "Error parsing usercard response as JSON: " +msgstr "Ralat menghuraikan pengguna kad jawapan sebagai JSON:" + +#: ../src/goabackend/goayahooprovider.c:246 +#, c-format +msgid "Didn't find profile member in JSON data" +msgstr "Tidak menjumpai profile ahli dalam data JSON" + +#: ../src/goabackend/goayahooprovider.c:256 +#, c-format +msgid "Didn't find nickname member in JSON data" +msgstr "Tidak menjumpai nama samaran ahli di dalam data JSON" + +#. TODO: look up email address / screenname from GUID +#: ../src/goabackend/goayahooprovider.c:324 +msgid "Name" +msgstr "Nama" + diff --git a/po/nb.gmo b/po/nb.gmo new file mode 100644 index 0000000..0971696 Binary files /dev/null and b/po/nb.gmo differ diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..e2abe35 --- /dev/null +++ b/po/nb.po @@ -0,0 +1,850 @@ +# Norwegian bokmål translation of gnome-online-accounts. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Kjartan Maraas , 2011-2017. +# Åka Sikrom , 2014. +# haarek , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts 3.27.x\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-11-09 15:18+0000\n" +"PO-Revision-Date: 2017-11-09 20:17+0100\n" +"Last-Translator: Kjartan Maraas \n" +"Language-Team: Norwegian bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.5\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Klarte ikke å finne en tilbyder for: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Egenskap IsLocked er satt for kontoen" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Egenskap ProviderType er ikke satt for kontoen" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Klarte ikke å lese XML-svar for automatisk gjenkjenning" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Klarte ikke å finne element «%s»" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Klarte ikke å finne ASUrl og OABUrl i svar for automatisk gjenkjenning" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Ugyldig passord med brukernavn «%s» (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_E-post" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:706 +#: src/goabackend/goaimapsmtpprovider.c:726 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Passord" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "E_gendefinert" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:705 +#: src/goabackend/goaimapsmtpprovider.c:725 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "Br_ukernavn" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Tjener" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:738 +#: src/goabackend/goakerberosprovider.c:570 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:552 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "A_vbryt" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:571 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "K_oble til" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:754 +#: src/goabackend/goakerberosprovider.c:586 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Kobler til …" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:916 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaimapsmtpprovider.c:1312 +#: src/goabackend/goaimapsmtpprovider.c:1388 +#: src/goabackend/goakerberosprovider.c:877 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:671 +#: src/goabackend/goaowncloudprovider.c:888 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialogen ble forkastet" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:984 +#: src/goabackend/goaimapsmtpprovider.c:1081 +#: src/goabackend/goaimapsmtpprovider.c:1339 +#: src/goabackend/goaimapsmtpprovider.c:1416 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:713 +#: src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialogen ble forkastet (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:997 +#: src/goabackend/goaimapsmtpprovider.c:1094 +#: src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "_Ignorer" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:1002 +#: src/goabackend/goaimapsmtpprovider.c:1099 +#: src/goabackend/goaimapsmtpprovider.c:1358 +#: src/goabackend/goaimapsmtpprovider.c:1435 +#: src/goabackend/goakerberosprovider.c:957 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "_Prøv igjen" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Feil ved tilkobling til Microsoft Exchange tjener" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Forventet statuskode 200 ved forespørsel om identiteten din. Mottok status " +"%d (%s) i stedet" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Klarte ikke å lese svar" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Systemklokken er ugyldig. Sjekk dine innstillinger for dato og klokkeslett." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:89 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Tjenesten er ikke tilgjengelig" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:109 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Autentisering feilet" + +#: src/goabackend/goaimapauthlogin.c:134 +msgid "Server does not support PLAIN" +msgstr "Tjener støtter ikke PLAIN" + +#: src/goabackend/goaimapauthlogin.c:186 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Tjener støtter ikke STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP og SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:364 +#: src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Ugyldig %s med brukernavn «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "Krypt_ering" + +#: src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Ingen" + +#: src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLES etter tilkobling" + +#: src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL på en dedikert port" + +#: src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Navn" + +#: src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP-_tjener" + +#: src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "SMTP-_tjener" + +#: src/goabackend/goaimapsmtpprovider.c:739 +#: src/goabackend/goaimapsmtpprovider.c:1023 +#: src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Fremover" + +#: src/goabackend/goaimapsmtpprovider.c:1007 +#: src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Feil ved tilkobling til IMAP-tjener" + +#: src/goabackend/goaimapsmtpprovider.c:1104 +#: src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Feil ved tilkobling til SMTP-tjener" + +#: src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "E-post" + +#: src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "Navn" + +#: src/goabackend/goaimapsmtpprovider.c:1555 +#: src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1570 +#: src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Bedriftspålogging (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:227 +msgid "Ticketing is disabled for account" +msgstr "Ticketing er slått av for kontoen" + +#: src/goabackend/goakerberosprovider.c:252 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Fant ikke lagret påloggingsinformasjon for identitet «%s» på nøkkelring" + +#: src/goabackend/goakerberosprovider.c:265 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Fant ikke passord for hovedidentitet «%s» i påloggingsinformasjon" + +#: src/goabackend/goakerberosprovider.c:565 +msgid "_Principal" +msgstr "_Hovedidentitet" + +#: src/goabackend/goakerberosprovider.c:799 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Logg inn i område" + +#: src/goabackend/goakerberosprovider.c:800 +msgid "Please enter your password below." +msgstr "Vennligst oppgi ditt passord under." + +#: src/goabackend/goakerberosprovider.c:801 +msgid "Remember this password" +msgstr "Husk dette passordet" + +#: src/goabackend/goakerberosprovider.c:952 +msgid "Error connecting to enterprise identity server" +msgstr "Feil ved tilkobling til bedriftens identitetstjener" + +#: src/goabackend/goakerberosprovider.c:1290 +msgid "Identity service returned invalid key" +msgstr "Identitetstjenesten returnerte en ugyldig nøkkel" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Feil ved tilkobling til Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Medie-tjener" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Personlig innhold kan legges til i dine programmer gjennom en " +"medietjenerkonto." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Tilgjengelige medietjenere" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Fant ingen medietjenere" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Forventet statuskode 200 ved forespørsel om tilgangsnøkkel. Mottok status %d " +"(%s) i stedet" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Autoriseringssvar: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Autoriseringssvar: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Feil ved henting av tilgangskode: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Feil ved henting av identitet: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Ble spurt om å logge inn som %s, men logget inn som %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Påloggingsinformasjon inneholder ikke access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Klarte ikke å oppdatere tilgangstoken (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Mangler access_token eller access_token_secret hoder i svar" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Feil ved henting av forespørselstoken: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Forventet statuskode 200 ved mottak av forespørselsnøkkel. Mottok status %d " +"(%s) i stedet" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Mangler request_token eller request_token_secret hoder i svar" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Påloggingsinformasjon inneholder ikke access_token eller access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:736 +#: src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "Feil ved tilkobling til ownCloud-tjener" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Lomme" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Ingen brukernavn eller tilgangstegn" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "E-_post" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_nder" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontakter" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Prat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenter" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usikk" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Bilder" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Filer" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Nettverks_ressurser" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Les sene_re" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Skrivere" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Kart" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_Oppgaver" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Bruk for" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Kontoen er deaktivert" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Ukjent feil" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync er ikke implementert på type %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS er ikke tilgjengelig" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Ukjent autentiseringsmekanisme" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Lynmeldingskonto for Telepathy ble ikke funnet" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Klarte ikke å lage brukergrensesnitt for %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Innstillinger for tilkobling" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Personlige detaljer" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Klarte ikke å lagre tilkoblingsparametere" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Klarte ikke å lagre din personlige informasjon på tjeneren" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Innstillinger for tilkobling …" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Personlige detaljer" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Feil ved innlogging til kontoen" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Påloggingsinformasjonen har utløpt" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Logg inn for å aktivere denne kontoen." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Logg inn" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Det finnes allerede en %s-konto for %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s-konto" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Klarte ikke å slette påloggingsinformasjon fra nøkkelringen" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Klarte ikke å hente påloggingsinformasjon fra nøkkelringen" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Fant ingen påloggingsinformasjon på nøkkelringen" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Feil ved lesing av resultat fra nøkkelring: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s påloggingsinformasjon for identitet %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Klarte ikke å lagre påloggingsinformasjon på nøkkelringen" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Klarte ikke å slå opp navn" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Kan ikke slå opp navn for proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Fant ikke WebDAV-endepunkt" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kode: %u - Uventet svar fra tjener" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Signerende sertifikatautoritet er ikke kjent." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Sertifikatet stemmer ikke overens med forventet identitet for nettstedet det " +"ble hentet fra." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Sertifikatets aktiviseringstidspunkt er fortsatt i fremtiden." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Sertifikatet har utløpt." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Sertifikatet har blitt tilbaketrukket." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Sertifikatets algoritme blir sett på som usikker." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Ugyldig sertifikat." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Fant ikke %s med identitet «%s» i påloggingsinformasjonen" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Laster «%s» …" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Opprinnelig hemmelig nøkkel er ugyldig" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Nettverksområde %s trenger informasjon for å logge deg inn." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Fant ikke identiteten i mellomlager for påloggingsinformasjon: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Fant ikke påloggingsinformasjon for identiteten i mellomlager: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Klarte ikke å se se gjennom akkreditiver i mellomlager: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Klarte ikke å gå gjennom akkreditiver i mellomlager: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Ingen assosiert identifikasjon funnet" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Klarte ikke å lage mellomlager for akkreditiver: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Klarte ikke å laste inn akkreditiv-mellomlager: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Klarte ikke å lagre ny påloggingsinformasjon i mellomlager: %k" + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Klarte ikke å fornye identitet: Du er ikke logget inn" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Klarte ikke å fornye identitet: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Klarte ikke å hente nye akkreditiver for å fornye identiteten %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Klarte ikke å slette identitet: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Fant ikke identitet" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Klarte ikke å lage akkreditiv-mellomlager" diff --git a/po/ne.gmo b/po/ne.gmo new file mode 100644 index 0000000..fb0332f Binary files /dev/null and b/po/ne.gmo differ diff --git a/po/ne.po b/po/ne.po new file mode 100644 index 0000000..0983ee4 --- /dev/null +++ b/po/ne.po @@ -0,0 +1,851 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Gnome Nepali Translation Project\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-" +"accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-11-08 09:43+0000\n" +"PO-Revision-Date: 2017-11-10 11:18+0545\n" +"Last-Translator: Pawan Chitrakar \n" +"Language-Team: Nepali Translation Team \n" +"Language: ne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1172 ../src/daemon/goadaemon.c:1456 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "%s का लागि प्रोभाईडर असफल भयो" + +#: ../src/daemon/goadaemon.c:1399 +msgid "IsLocked property is set for account" +msgstr "IsLocked गुण खाताको लागि सेट गर्नुहोस्" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1444 +msgid "ProviderType property is not set for account" +msgstr "ProviderType गुण खाताको लागि सेट गरिएको छैन" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "स्वत: खोज प्रतिक्रिया एक्सएमएल पार्स गर्न असफल भयो" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "\"%s\" तत्त्व फेला पार्न असफल भयो" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "स्वत: खोज प्रतिक्रियामा ASUrl र OABUrl फेला पार्न असफल" + +#: ../src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "माइक्रोसफ्ट एक्सचेञ्ज" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:248 ../src/goabackend/goalastfmprovider.c:287 +#: ../src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "अवैध पासवर्ड र प्रोयोगकर्ता नाम “%s” (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:396 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "इमेल" + +#: ../src/goabackend/goaexchangeprovider.c:397 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 ../src/goabackend/goalastfmprovider.c:429 +#: ../src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "पासवर्ड" + +#: ../src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "अनुकुलन" + +#: ../src/goabackend/goaexchangeprovider.c:411 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 ../src/goabackend/goalastfmprovider.c:428 +#: ../src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "प्रयोगकर्ता नाम" + +#: ../src/goabackend/goaexchangeprovider.c:412 +#: ../src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "सर्भर" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:422 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:570 ../src/goabackend/goalastfmprovider.c:437 +#: ../src/goabackend/goaowncloudprovider.c:552 +#: ../src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_रद्द" + +#: ../src/goabackend/goaexchangeprovider.c:423 +#: ../src/goabackend/goakerberosprovider.c:571 ../src/goabackend/goalastfmprovider.c:438 +#: ../src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "जडान गर्नुहोस्" + +#: ../src/goabackend/goaexchangeprovider.c:439 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:586 ../src/goabackend/goalastfmprovider.c:454 +#: ../src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "जडान गर्दै…" + +#: ../src/goabackend/goaexchangeprovider.c:539 +#: ../src/goabackend/goaexchangeprovider.c:733 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:877 ../src/goabackend/goalastfmprovider.c:652 +#: ../src/goabackend/goalastfmprovider.c:820 +#: ../src/goabackend/goamediaserverprovider.c:420 +#: ../src/goabackend/goaoauth2provider.c:1062 ../src/goabackend/goaoauthprovider.c:859 +#: ../src/goabackend/goaowncloudprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:888 +#: ../src/goabackend/goatelepathyprovider.c:475 +#: ../src/goabackend/goatelepathyprovider.c:514 +#: ../src/goabackend/goatelepathyprovider.c:682 +#, c-format +msgid "Dialog was dismissed" +msgstr "संवाद त्यागियो" + +#: ../src/goabackend/goaexchangeprovider.c:577 +#: ../src/goabackend/goaexchangeprovider.c:761 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:686 ../src/goabackend/goalastfmprovider.c:839 +#: ../src/goabackend/goaowncloudprovider.c:713 +#: ../src/goabackend/goaowncloudprovider.c:912 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "संवाद त्यागियो (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:590 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:726 +msgid "_Ignore" +msgstr "उपेक्षा गर्नुहोस्" + +#: ../src/goabackend/goaexchangeprovider.c:595 +#: ../src/goabackend/goaexchangeprovider.c:780 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:957 ../src/goabackend/goalastfmprovider.c:698 +#: ../src/goabackend/goalastfmprovider.c:856 ../src/goabackend/goaowncloudprovider.c:731 +#: ../src/goabackend/goaowncloudprovider.c:931 +msgid "_Try Again" +msgstr "पुन: प्रयास गर्नुहोस्" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "माईक्रोसफ्ट एक्सचेञ्ज सर्भर जडानमा त्रुति" + +#: ../src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "फेसबुक" + +#: ../src/goabackend/goafacebookprovider.c:183 ../src/goabackend/goaflickrprovider.c:155 +#: ../src/goabackend/goafoursquareprovider.c:154 +#: ../src/goabackend/goagoogleprovider.c:191 ../src/goabackend/goatodoistprovider.c:193 +#: ../src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "तपाईंको पहिचान अनुरोध गर्दा अपेक्षित स्थिति २००, बरु स्थिति %d (%s) प्राप्त भयो" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:202 +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goafacebookprovider.c:219 ../src/goabackend/goaflickrprovider.c:174 +#: ../src/goabackend/goaflickrprovider.c:185 ../src/goabackend/goaflickrprovider.c:196 +#: ../src/goabackend/goaflickrprovider.c:205 ../src/goabackend/goaflickrprovider.c:218 +#: ../src/goabackend/goafoursquareprovider.c:173 +#: ../src/goabackend/goafoursquareprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:195 +#: ../src/goabackend/goafoursquareprovider.c:206 +#: ../src/goabackend/goafoursquareprovider.c:215 +#: ../src/goabackend/goafoursquareprovider.c:228 +#: ../src/goabackend/goagoogleprovider.c:210 ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:212 ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:230 ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:244 ../src/goabackend/goalastfmprovider.c:512 +#: ../src/goabackend/goalastfmprovider.c:521 ../src/goabackend/goalastfmprovider.c:538 +#: ../src/goabackend/goalastfmprovider.c:544 ../src/goabackend/goaoauth2provider.c:716 +#: ../src/goabackend/goaoauth2provider.c:746 ../src/goabackend/goaoauth2provider.c:757 +#: ../src/goabackend/goatodoistprovider.c:212 ../src/goabackend/goatodoistprovider.c:223 +#: ../src/goabackend/goatodoistprovider.c:234 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:178 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:211 +#, c-format +msgid "Could not parse response" +msgstr "प्रत्त्योतर पदवर्णन गर्न सकेन" + +#: ../src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "फ्लिकर" + +#: ../src/goabackend/goaflickrprovider.c:293 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "प्रणाली समय अवैध छ। कृपया मिति र समय सेटिङ्ग जाचगर्नुहोस् ।." + +#: ../src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "फोरस्क्वायर" + +#: ../src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "गुगल" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:89 ../src/goabackend/goasmtpauth.c:155 +#, c-format +msgid "Service not available" +msgstr "सेवा उपलब्ध छैन" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:109 ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goasmtpauth.c:108 ../src/goabackend/goautils.c:878 +#, c-format +msgid "Authentication failed" +msgstr "प्रमाणीकरण असफल भयो" + +#: ../src/goabackend/goaimapauthlogin.c:134 +#, c-format +msgid "Server does not support PLAIN" +msgstr "यो सर्भरले PLAIN सूचनाको समर्थन गर्दैन" + +#: ../src/goabackend/goaimapauthlogin.c:186 ../src/goabackend/goasmtpauth.c:606 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "यो सर्भरले STARTTLS समर्थन गर्दैन" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP र SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "अवैध %s प्रोयोगकर्ता नाम “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "गुप्तीकरण" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "कुनै पनि होइन" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "जडान पछि STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "एक समर्पित पोर्टमा एसएसएल" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "नाम" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "IMAP सर्भर" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "एसएमटीपी _सर्भर" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "अगाडि पठाउनुहोस्" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "IMAP सर्भर जडानमा त्रुटि भयो" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "SMTP सर्भर जडानमा त्रुति" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +msgid "E-mail" +msgstr "इमेल" + +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "Name" +msgstr "नाम" + +#: ../src/goabackend/goaimapsmtpprovider.c:1555 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1574 +msgid "SMTP" +msgstr "एसएमटीपी" + +#: ../src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "इन्टरप्राइज लगइन" + +#: ../src/goabackend/goakerberosprovider.c:227 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "टिकेटको लागि खाता अक्षम पारिएको" + +#: ../src/goabackend/goakerberosprovider.c:252 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "किरिङ्गमा मूल \"%s\" को लागि सुरक्षित प्रमाणहरू फेला पार्न सकिएन" + +#: ../src/goabackend/goakerberosprovider.c:265 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "प्रमाणपत्रहरूमा मूल \"%s\" को लागि पासवर्ड भेटिएन" + +#: ../src/goabackend/goakerberosprovider.c:565 +msgid "_Principal" +msgstr "प्रधान" + +#: ../src/goabackend/goakerberosprovider.c:799 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Realm मा लगईन गर्नुस्" + +#: ../src/goabackend/goakerberosprovider.c:800 +msgid "Please enter your password below." +msgstr "पासवर्ड प्रवेश गर्नुहोस् ।." + +#: ../src/goabackend/goakerberosprovider.c:801 +msgid "Remember this password" +msgstr "पासवर्ड सम्झनुहोस्" + +#: ../src/goabackend/goakerberosprovider.c:952 +msgid "Error connecting to enterprise identity server" +msgstr "इन्टरप्राइज पहिचान सर्भरमा जडान त्रुटि" + +#: ../src/goabackend/goakerberosprovider.c:1290 +#, c-format +msgid "Identity service returned invalid key" +msgstr "पहिचान सेवा अवैध कुञ्जि फर्काईयो" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:700 ../src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Last.fm जडानमा त्रुटि" + +#: ../src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "मिडिया सर्भर" + +#: ../src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server account." +msgstr "व्यक्तिगत सामग्री तपाईंको अनुप्रयोगहरूमा मिडिया सर्भर खाता मार्फत थप्न सकिन्छ।." + +#: ../src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "उपलब्ध मेडिया सर्भरहरू" + +#: ../src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "मिडिया सर्भर भेटिएन" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:692 ../src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "पहुँच टोकन अनुरोध गर्दा अपेक्षित स्थिति २००, बरु स्थिति %d (%s) प्राप्त भयो" + +#: ../src/goabackend/goaoauth2provider.c:874 +msgid "Authorization response: " +msgstr "प्रमाणिकरण प्रतिक्रिया " + +#: ../src/goabackend/goaoauth2provider.c:944 +#, c-format +msgid "Authorization response: %s" +msgstr "प्रमाणिकरण प्रतिक्रिया : %s" + +#: ../src/goabackend/goaoauth2provider.c:1088 ../src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "प्रमाणिकरण टोकन पाउनमा त्रुटि " + +#: ../src/goabackend/goaoauth2provider.c:1103 ../src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "परिचय प्राप्तिमा त्रुटि: " + +#: ../src/goabackend/goaoauth2provider.c:1321 ../src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s लगईन गर्नुप‌र्‌थ्यो तर %s लगईन गरियो" + +#: ../src/goabackend/goaoauth2provider.c:1473 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "प्रमाणपत्रहरूमा पहुँच टोकन समावेश छैन" + +#: ../src/goabackend/goaoauth2provider.c:1512 ../src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "पहुँच टोकन ताजा गर्न असफल (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:565 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "प्रतिक्रियामा पहुँच-टोकन वा पहुँच-टोकन-गोप्य हेडरहरू छुटेको छ" + +#: ../src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "आबेदन टोकन पाउनमा त्रुटि " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "अनुरोध टोकन प्राप्त गर्न अपेक्षित स्थिति २००, बरु स्थिति %d (%s) प्राप्त भयो" + +#: ../src/goabackend/goaoauthprovider.c:821 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "प्रतिक्रियामा अनुरोध-टोकन वा अनुरोध-टोकन-गोप्य हेडरहरू छुटेको छ" + +#: ../src/goabackend/goaoauthprovider.c:1363 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "प्रमाणपत्रहरूमा पहुँच-टोकन वा पहुँच-टोकन-गोप्य समावेश छैन" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:924 +msgid "Error connecting to ownCloud server" +msgstr "सर्भर ownCloud जडानमा त्रुति" + +#: ../src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "खल्ति" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:249 +#, c-format +msgid "No username or access_token" +msgstr "प्रयोगकर्ता नाम: अथवा प्रमाणिकरण टोकन नरहेको" + +#: ../src/goabackend/goaprovider.c:119 +msgid "_Mail" +msgstr "पत्र" + +#: ../src/goabackend/goaprovider.c:124 +msgid "Cale_ndar" +msgstr "पात्रो" + +#: ../src/goabackend/goaprovider.c:129 +msgid "_Contacts" +msgstr "सम्पर्कहरू" + +#: ../src/goabackend/goaprovider.c:134 ../src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "च्याट(कुराकानि)" + +#: ../src/goabackend/goaprovider.c:139 +msgid "_Documents" +msgstr "कागजात" + +#: ../src/goabackend/goaprovider.c:144 +msgid "M_usic" +msgstr "सङ्गित" + +#: ../src/goabackend/goaprovider.c:149 +msgid "_Photos" +msgstr "फोटो" + +#: ../src/goabackend/goaprovider.c:154 +msgid "_Files" +msgstr "फाइलहरू" + +#: ../src/goabackend/goaprovider.c:159 +msgid "Network _Resources" +msgstr "स‌ञ्जाल संसाधन" + +#: ../src/goabackend/goaprovider.c:164 +msgid "_Read Later" +msgstr "पछि पढ्नुहोस्" + +#: ../src/goabackend/goaprovider.c:169 +msgid "Prin_ters" +msgstr "मुद्रणयन्त्र" + +#: ../src/goabackend/goaprovider.c:174 +msgid "_Maps" +msgstr "मानचित्र" + +#: ../src/goabackend/goaprovider.c:179 +msgid "T_o Do" +msgstr "गर्नुपर्ने" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:613 ../src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "प्रयोगको लागि" + +#: ../src/goabackend/goaprovider.c:868 +msgid "Account is disabled" +msgstr "खाता अक्षम पारिएको" + +#: ../src/goabackend/goaprovider.c:881 +msgid "Unknown error" +msgstr "अज्ञात त्रुटी" + +#: ../src/goabackend/goaprovider.c:900 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "सुनिश्चित-प्रमाणहरू-समिकरण प्रकार %s मा कार्यान्वयन गरिएको छैन" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:170 +#, c-format +msgid "TLS not available" +msgstr "TLS उपलब्ध छैन" + +#: ../src/goabackend/goasmtpauth.c:476 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "अपरिचित प्रमाणीकरण संयन्त्र" + +#: ../src/goabackend/goatelepathyprovider.c:172 +#, c-format +msgid "Telepathy chat account not found" +msgstr "टेलिप्याठि कुराकानि खाता भेटिएन" + +#: ../src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s को लागि प्रयोगकर्ता इन्टरफेस सिर्जना गर्न असफल भयो" + +#: ../src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "जडान सेटिङ" + +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "व्यक्तिगत विबरण" + +#: ../src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "ठिक छ" + +#: ../src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "जडान मानकहरू सुरक्षित गर्न सक्दैन" + +#: ../src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "ब्यक्तिगत बिवरण सर्भरमा बचत गर्नसकिदैन" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "जडान सेटिङ" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "व्यक्तिगत विबरण" + +#: ../src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: ../src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "खाता मा लग इन गर्न त्रुटि" + +#: ../src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "प्रमाणपत्रहरू म्याद समाप्ति भएको छ" + +#: ../src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "लग ईन गरि खातालाई पुन: सक्रिय पार्नुहोस् ।." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "साइन ईन" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s खाता पहिले नै अवस्थित छ %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s खाता" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "किरिङ्गबाट प्रमाणपत्र मेटाउन असफल भयो" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "सक्रिय सर्भरबाट टर्मिनल सर्भर पुन: प्राप्त गर्न असफल" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "किरिङ्गमा कुनै प्रमाणपत्र भेटिएन" + +#: ../src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "किरिङ्ग बाट प्राप्त परिणाम पार्स गर्दा त्रुटि भयो: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s प्रमाणपत्रहरूमा पहिचान %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "किरिंङ्गमा प्रमाणपत्रहरू भण्डार गर्न असफल भयो" + +#: ../src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "होस्टनाम समाधान गर्न सक्दैन" + +#: ../src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "प्रोक्सी होस्टनाम समाधान गर्न सक्दैन" + +#: ../src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV अन्तिमबिन्दु फेला पार्न सकिँदैन" + +#: ../src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "कोडः %u - सर्भरबाट अनपेक्षित प्रत्त्योतर" + +#: ../src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "साइनिङ प्रमाणपत्र फेला परेन साइन प्रमाणपत्र प्रमाणिकरण अज्ञात छ ।." + +#: ../src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "प्रमाणपत्रले साइटबाट अपेक्षित पहिचानको पहिचान गर्दैन।." + +#: ../src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "प्रमाणपत्रको सक्रियता समय अझै भविष्यमा छ।." + +#: ../src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "प्रमाणपत्र म्याद समाप्त भएको छ ।." + +#: ../src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "सर्भर प्रमाणपत्र खारेज गरिएको छ।." + +#: ../src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "प्रमाणपत्रको तार्किक क्रम असुरक्षित मानिन्छ।." + +#: ../src/goabackend/goautils.c:924 +msgid "Invalid certificate." +msgstr "अवैध प्रमाणपत्र ." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:959 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "प्रमाणपत्रहरूमा %s को साथ पहिचान \"%s\" फेला परेन" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” लोड हुँदैछ…" + +#: ../src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "माइक्रोसफ्ट" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "सुरुआतको एउटा अवैध सुरक्षा कुञ्जि" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "सञ्जाल %s मा प्रवेशको लागि विवरणको आवश्यकता छ ।." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "प्रमाणपत्र क्यासमा पहिचान पाउन सकेन: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "क्यासमा पहिचान प्रमाणहरू फेला पार्न सकेन:%k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "क्यासमा पहिचान प्रमाणपत्रहरू द्वारा सिफ्ट गर्न सकेन:%k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "क्यासमा पहिचान प्रमाणपत्रहरू मार्फत सिफ्टिंग समाप्त गर्न सकिएन:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "कुनै सम्बद्ध पहिचान फेला परेन" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "प्रमाणिक क्यास सिर्जना गर्न सकेन:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "प्रमाणपत्र क्यास प्रारम्भ गर्न सकेन:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "प्रमाणपत्र क्यासमा नयाँ प्रमाणपत्र भण्डारण गर्न सकिएन:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "पहिचान नविकरण गर्न सकिएन : लगईन भएन" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "पहिचान नविकरण गर्न सकिएन : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "Could not get new credentials to renew identity %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "परिचय मेट्न सकिएन : %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "परिचय प्राप्त भएन" + +#: ../src/goaidentity/goakerberosidentitymanager.c:842 +msgid "Could not create credential cache for identity" +msgstr "परिचयको लागि प्रमाणपत्र क्यास सिर्जना गर्न सकिएन" + +#~ msgid "_Domain" +#~ msgstr "डोमेन" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "ईन्टरप्राईज डोमेन वा रियालम नाम" + +#~ msgid "The domain is not valid" +#~ msgstr "डोमेन अवैधनिक छ" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail उपलब्ध छैन" + +#, fuzzy +#~ msgid "Failed to parse email address" +#~ msgstr "XML फाइल \"%s\" पार्स गर्न असफल" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "डोमेन बिना SMTP प्रमाणीकरण गर्नसकिदैन" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "क्रडेन्सियलमा एसमटिपि पासवर्ड भेटिएन" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "पासवर्ड बिना SMTP प्रमाणीकरण गर्नसकिदैन" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "GOA client सुरु गर्न असफल भयो" + +#~ msgid "Windows Live" +#~ msgstr "लाईभ सञ्झ्याल" + +#~ msgid "Yahoo" +#~ msgstr "याहू" diff --git a/po/nl.gmo b/po/nl.gmo new file mode 100644 index 0000000..67ea94a Binary files /dev/null and b/po/nl.gmo differ diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..4e7af99 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,1035 @@ +# Dutch translation for gnome-online-accounts. +# Copyright (C) 2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Rachid , 2012. +# Reinout van Schouwen , 2012, 2013, 2014. +# Erwin Poeze , 2013. +# Nathan Follens , 2015-2017. +# Hannie Dumoleyn , 2015, 2017. +# Justin van Steijn , 2016, 2017. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts gnome-3-4\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-14 16:40+0000\n" +"PO-Revision-Date: 2018-02-23 20:29+0100\n" +"Last-Translator: Justin van Steijn \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.11\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Lijst van providers die geladen mogen worden" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Een lijst van tekenreeksen, die de providers die geladen mogen worden " +"vertegenwoordigt (standaard: ‘all’). Dit wordt alleen ingelezen bij het " +"opstarten." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Provider voor %s niet gevonden" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "IsLocked-eigenschap is ingesteld voor account" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "ProviderType-eigenschap is niet ingesteld voor account" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Interpreteren van XML auto-ontdek-antwoord mislukt" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Element “%s” niet gevonden" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "De elementen ASUrl en OABUrl in auto-ontdek-antwoord ontbreken" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Ongeldig wachtwoord bij gebruikersnaam “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Wachtwoord" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Aangepast" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Gebruikers_naam" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Annuleren" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Ver_binden" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Verbinden…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialoogvenster werd gesloten" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialoogvenster werd gesloten (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Negeren" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Opnieuw _proberen" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Fout bij het verbinden met de Microsoft Exchange-server" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Bij het opvragen van uw identiteit werd status 200 verwacht; ontving in " +"plaats daarvan status %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Antwoord kon niet worden verwerkt" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Uw systeemtijd is ongeldig. Controleer uw datum- en tijdinstellingen." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Dienst is niet beschikbaar" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Aanmelden mislukt" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Server ondersteunt geen PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server ondersteunt STARTTLS niet" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP en SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Ongeldig %s bij gebruikersnaam “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "Ver_sleuteling" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Geen" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS na verbinden" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL op een specifieke poort" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Naam" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP-_server" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP-_server" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Volgende" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Fout bij verbinden met IMAP-server" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Fout bij het verbinden met SMTP-server" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Naam" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Enterprise-aanmelding (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Ticketing is uitgeschakeld voor account" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Opgeslagen aanmeldgegevens voor principal “%s” niet gevonden in sleutelbos" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Wachtwoord bij principal “%s” ontbreekt in aanmeldgegevens" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Bewerking geannuleerd" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Aanmelden op realm" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Voer hieronder uw wachtwoord in." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Dit wachtwoord onthouden" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Fout bij het verbinden met de enterprise-identiteitsserver" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identiteitsdienst gaf ongeldige sleutel terug" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Fout bij verbinden met Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Mediaserver" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Persoonlijke inhoud kan worden toegevoegd aan uw toepassingen via een " +"mediaserveraccount." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Beschikbare mediaservers" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Geen mediaservers gevonden" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Bij het opvragen van het toegangsbewijs werd status 200 verwacht. In plaats " +"daarvan werd status %d (%s) ontvangen." + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Autorisatieantwoord:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Autorisatieantwoord: ‘%s’" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Fout bij het ophalen van het toegangsbewijs: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Fout bij ophalen identiteit: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"Er werd verzocht om aan te melden als %s, maar er werd aangemeld als %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Aanmeldgegevens bevatten geen access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Vernieuwen van toegangsbewijs mislukt (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Het element access_token of access_token_secret ontbreekt in het antwoord" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Fout bij het verkrijgen van verzoek-token: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Bij het opvragen van de verzoek-token werd status 200 verwacht. In plaats " +"daarvan werd status %d (%s) ontvangen." + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Het element request_token of request_token_secret ontbreekt in het antwoord" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Aanmeldgegevens bevatten niet het element contain access_token of " +"access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Fout bij het verbinden met de ownCloud-server" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Gebruikersnaam of _toegangsbewijs ontbreekt" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_E-mail" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "A_genda" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Contacten" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Chatten" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documenten" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_uziek" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Foto's" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Bestanden" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Netwerkb_ronnen" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Later lezen" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Prin_ters" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Kaarten" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Te _doen" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Gebruiken voor" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Account is uitgeschakeld" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Onbekende fout" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync is niet geïmplementeerd op type %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS is niet beschikbaar" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Onbekende authenticatiemethode" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Telepathy-chataccount niet gevonden" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Aanmaken van een gebruikersinterface voor %s is mislukt" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Verbindingsinstellingen" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Persoonlijke details" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Ok" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Kan de verbindingsparameters niet opslaan" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Kan uw persoonlijke informatie niet op de server opslaan" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Verbindingsinstellingen" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Persoonlijke details" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Fout bij het aanmelden bij dit account" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Aanmeldgegevens zijn verlopen" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Meld u aan om dit account in te schakelen." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Aanmelden" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Een %s-account bestaat al voor %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s-account" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Verwijderen van de aanmeldgegevens uit de sleutelbos mislukt" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Ophalen van de aanmeldgegevens uit de sleutelbos mislukt" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Aanmeldgegevens ontbreken in de sleutelbos" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Fout tijdens ontleden van het resultaat van de sleutelbos: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s aanmeldgegevens voor identiteit %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Fout bij het opslaan van de aanmeldgegevens in de sleutelbos" + +# opzoeken is logischer in dit geval +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Kan hostnaam niet opzoeken" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Kan proxy-hostnaam niet opzoeken" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Kan WebDAV-eindpunt niet vinden" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Code: %u — Onverwacht antwoord van server" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "De autoriteit voor het ondertekenen van het certificaat is onbekend." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Het certificaat komt niet overeen met de verwachte identiteit van de website " +"waar hij van is opgehaald." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "De activeringsdatum van het certificaat ligt in de toekomst." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Het certificaat is verlopen." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Het certificaat is ingetrokken." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Het algoritme van het certificaat wordt beschouwd als onveilig." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Ongeldig certificaat." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "%s bij identiteit “%s” ontbreekt in aanmeldgegevens" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Laden van ‘%s’…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Begingeheim-sleutel is ongeldig" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Het netwerkrealm %s heeft wat informatie nodig om u te kunnen aanmelden." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Kan identiteit niet vinden in aanmeldgegevensbuffer: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Kan aanmeldgegevens voor identiteit niet vinden in buffer: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Het uitfilteren van identiteitsgegevens in de buffer is mislukt: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Het afmaken van het uitfilteren van identiteitsgegevens in de buffer is " +"mislukt: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Geen geassocieerde identificatie gevonden" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Het aanmaken van een buffer voor identiteitsgegevens is mislukt: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Het initialiseren van de identiteitsgegevensbuffer is mislukt: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"Fout bij het opslaan van de nieuwe aanmeldgegevens in de " +"aanmeldgegevensbuffer: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Kan identiteit niet verversen: niet aangemeld" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Kan identiteit niet verversen: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Kan geen nieuwe aanmeldgegevens verkrijgen om identiteit %s te verversen: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Kan identiteit niet wissen: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Kan identiteit niet vinden" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Kan aanmeldgegevensbuffer voor identiteit niet aanmaken" + +#~ msgid "_Domain" +#~ msgstr "_Domein" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Enterprisedomein– of realmnaam" + +#~ msgid "The domain is not valid" +#~ msgstr "Het domein is ongeldig" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail is niet beschikbaar" + +#~ msgid "Failed to parse email address" +#~ msgstr "Analyseren van e-mailadres mislukt" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "SMTP-authenticatie zonder een domein niet mogelijk" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "SMTP-wachtwoord ontbreekt in aanmeldgegevens" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "SMTP-authenticatie zonder een wachtwoord niet mogelijk" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "begingeheim doorgegeven vóór de geheime sleuteluitwisseling" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Initialiseren van een GOA-client is mislukt" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Wachtwoord bij identiteit ‘%s’ ontbreekt in aanmeldgegevens" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Bij het opvragen van name werd status 200 verwacht. In plaats daarvan " +#~ "werd status %d (%s) ontvangen." + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Plak de autorisatiecode verkregen van de autorisatiepagina:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Plak de token verkregen van de autorisatiepagina:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Tijd" + +#~ msgid "Time to fire" +#~ msgstr "Tijd tot aflopen" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Het element Autodiscover ontbrak in de JSON-gegevens" + +#~ msgid "Failed to find Account element" +#~ msgstr "Het element Account ontbrak" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Bij het opvragen van de guid werd status 200 verwacht. Ontving in plaats " +#~ "daarvan status %d (%s)." + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "IMAP-wachtwoord bij identiteit ‘%s’ ontbreekt in aanmeldgegevens" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Ongeldig IMAP-wachtwoord bij gebruikersnaam ‘%s’ (%s, %d):" + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "SMTP-wachtwoord bij identiteit ‘%s’ ontbreekt in aanmeldgegevens" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Ongeldig SMTP-wachtwoord bij gebruikersnaam ‘%s’ (%s, %d):" + +#~ msgid "Online Accounts" +#~ msgstr "Online-accounts" + +#~ msgid "An online account needs attention" +#~ msgstr "Een online account vraagt de aandacht" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Online accounts openen…" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Nieuw Microsoft Exchange-Account" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Fout bij het verwerken van het antwoord als JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Het element id ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Het element email ontbrak in de JSON-gegevens" + +#~ msgid "Chat" +#~ msgstr "Chat" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Het element data ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Het element email ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Het element access_token ontbrak in de niet-JSON-gegevens" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Het element access_token ontbrak in de JSON-gegevens" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "" +#~ "Fout bij het opslaan van aanmeldgegevens in de sleutelbos (%s, %d): " + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Het element id_str ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Het element screen_name ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Het element guid ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Het element value ontbrak in de JSON-gegevens" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Fout tijdens ontleden van het gebruikerskaart-antwoord als JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Het element profiel ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Het element nickname ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "Het username-element ontbrak in de JSON-gegevens" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Het name-element ontbrak in de JSON-gegevens" + +#~ msgid "Email Address" +#~ msgstr "E-mailadres" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Er is al een account voor de identiteit %s" diff --git a/po/oc.gmo b/po/oc.gmo new file mode 100644 index 0000000..5bc67b8 Binary files /dev/null and b/po/oc.gmo differ diff --git a/po/oc.po b/po/oc.po new file mode 100644 index 0000000..f014723 --- /dev/null +++ b/po/oc.po @@ -0,0 +1,1110 @@ +# Occitan translation for gnome-online-accounts. +# Copyright (C) 2011-2012 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Cédric Valmary (Tot en Òc) , 2015. +# Cédric Valmary (totenoc.eu) , 2016. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-05-09 17:57+0000\n" +"PO-Revision-Date: 2016-05-09 19:22+0200\n" +"Last-Translator: Cédric Valmary (totenoc.eu) \n" +"Language-Team: Tot En Òc\n" +"Language: oc\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:857 ../src/daemon/goadaemon.c:1083 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Impossible de trobar un provesidor per : %s" + +#: ../src/daemon/goadaemon.c:1025 +msgid "IsLocked property is set for account" +msgstr "La proprietat IsLocked es definida per aqueste compte" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1071 +msgid "ProviderType property is not set for account" +msgstr "La proprietat ProviderType es pas definida per aqueste compte" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Fracàs de l'analisi XML de la responsa autodiscover" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:261 ../src/goabackend/goaewsclient.c:276 +#: ../src/goabackend/goaewsclient.c:291 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "Impossible de trobar l'element %s" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:312 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Impossible de trobar ASUrl e OABUrl dins la responsa autodiscover" + +#: ../src/goabackend/goaexchangeprovider.c:74 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:283 +#: ../src/goabackend/goalastfmprovider.c:280 +#: ../src/goabackend/goaowncloudprovider.c:314 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "Senhal invalid per l'utilizaire « %s » (%s, %d) : " + +#: ../src/goabackend/goaexchangeprovider.c:436 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_Corrièr electronic" + +#: ../src/goabackend/goaexchangeprovider.c:437 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:422 +#: ../src/goabackend/goaowncloudprovider.c:560 +msgid "_Password" +msgstr "_Senhal" + +#: ../src/goabackend/goaexchangeprovider.c:440 +msgid "_Custom" +msgstr "_Personalizar" + +#: ../src/goabackend/goaexchangeprovider.c:451 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:734 +#: ../src/goabackend/goalastfmprovider.c:421 +#: ../src/goabackend/goaowncloudprovider.c:559 +msgid "User_name" +msgstr "_Nom d'utilizaire" + +#: ../src/goabackend/goaexchangeprovider.c:452 +#: ../src/goabackend/goaowncloudprovider.c:558 +msgid "_Server" +msgstr "_Servidor" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:462 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:430 +#: ../src/goabackend/goaowncloudprovider.c:569 +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "_Cancel" +msgstr "_Anullar" + +#: ../src/goabackend/goaexchangeprovider.c:463 +#: ../src/goabackend/goakerberosprovider.c:740 +#: ../src/goabackend/goalastfmprovider.c:431 +#: ../src/goabackend/goaowncloudprovider.c:570 +msgid "C_onnect" +msgstr "C_onnexion" + +#: ../src/goabackend/goaexchangeprovider.c:479 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:756 +#: ../src/goabackend/goalastfmprovider.c:447 +#: ../src/goabackend/goaowncloudprovider.c:585 +msgid "Connecting…" +msgstr "Connexion…" + +#: ../src/goabackend/goaexchangeprovider.c:584 +#: ../src/goabackend/goaexchangeprovider.c:779 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1310 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:642 +#: ../src/goabackend/goalastfmprovider.c:808 +#: ../src/goabackend/goamediaserverprovider.c:434 +#: ../src/goabackend/goaoauth2provider.c:1033 +#: ../src/goabackend/goaoauthprovider.c:862 +#: ../src/goabackend/goaowncloudprovider.c:696 +#: ../src/goabackend/goaowncloudprovider.c:910 +#: ../src/goabackend/goatelepathyprovider.c:460 +#: ../src/goabackend/goatelepathyprovider.c:509 +#: ../src/goabackend/goatelepathyprovider.c:677 +#, c-format +msgid "Dialog was dismissed" +msgstr "Lo dialòg es estat regetat" + +#: ../src/goabackend/goaexchangeprovider.c:622 +#: ../src/goabackend/goaexchangeprovider.c:807 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1337 +#: ../src/goabackend/goaimapsmtpprovider.c:1414 +#: ../src/goabackend/goalastfmprovider.c:676 +#: ../src/goabackend/goalastfmprovider.c:827 +#: ../src/goabackend/goaowncloudprovider.c:738 +#: ../src/goabackend/goaowncloudprovider.c:931 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Lo dialòg es estat regetat (%s, %d) : " + +#: ../src/goabackend/goaexchangeprovider.c:635 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:751 +msgid "_Ignore" +msgstr "_Ignorar" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:826 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1356 +#: ../src/goabackend/goaimapsmtpprovider.c:1433 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:688 +#: ../src/goabackend/goalastfmprovider.c:844 +#: ../src/goabackend/goaowncloudprovider.c:756 +#: ../src/goabackend/goaowncloudprovider.c:950 +msgid "_Try Again" +msgstr "_Ensajatz tornamai" + +#: ../src/goabackend/goaexchangeprovider.c:645 +#: ../src/goabackend/goaexchangeprovider.c:819 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Error de connexion al servidor Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:77 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:216 +#: ../src/goabackend/goaflickrprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:190 +#: ../src/goabackend/goagoogleprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:196 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Estat 200 esperat al moment de la raquèsta de vòstra identitat, estat %d " +"(%s) recebut a la plaça" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:235 +#: ../src/goabackend/goafacebookprovider.c:247 +#: ../src/goabackend/goafacebookprovider.c:260 +#: ../src/goabackend/goaflickrprovider.c:203 +#: ../src/goabackend/goaflickrprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:225 +#: ../src/goabackend/goaflickrprovider.c:235 +#: ../src/goabackend/goaflickrprovider.c:245 +#: ../src/goabackend/goafoursquareprovider.c:209 +#: ../src/goabackend/goafoursquareprovider.c:221 +#: ../src/goabackend/goafoursquareprovider.c:232 +#: ../src/goabackend/goafoursquareprovider.c:243 +#: ../src/goabackend/goafoursquareprovider.c:254 +#: ../src/goabackend/goafoursquareprovider.c:265 +#: ../src/goabackend/goagoogleprovider.c:245 +#: ../src/goabackend/goagoogleprovider.c:257 +#: ../src/goabackend/goalastfmprovider.c:211 +#: ../src/goabackend/goalastfmprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:237 +#: ../src/goabackend/goalastfmprovider.c:505 +#: ../src/goabackend/goalastfmprovider.c:514 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goalastfmprovider.c:536 +#: ../src/goabackend/goaoauth2provider.c:699 +#: ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 ../src/goabackend/goautils.c:153 +#: ../src/goabackend/goawindowsliveprovider.c:215 +#: ../src/goabackend/goawindowsliveprovider.c:227 +#: ../src/goabackend/goawindowsliveprovider.c:239 +#, c-format +msgid "Could not parse response" +msgstr "Impossible d'analisar la responsa" + +#: ../src/goabackend/goaflickrprovider.c:78 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:322 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"La data de vòstre sistèma es pas valida. Verificatz vòstres paramètres de " +"data e ora." + +#: ../src/goabackend/goafoursquareprovider.c:78 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:77 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "Servici indisponible" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goalastfmprovider.c:522 +#: ../src/goabackend/goasmtpauth.c:113 ../src/goabackend/goautils.c:566 +#, c-format +msgid "Authentication failed" +msgstr "Fracàs d'autentificacion" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Lo servidor pren pas en carga PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:194 ../src/goabackend/goasmtpauth.c:816 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Lo servidor pren pas en carga STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP e SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s invalid per l'utilizaire « %s » (%s, %d) : " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Chiframent" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Pas cap" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS aprèp la connexion" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL sus un pòrt dedicat" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Nom" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "_Servidor IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "_Servidor SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1366 +msgid "_Forward" +msgstr "_Seguent" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1349 +msgid "Error connecting to IMAP server" +msgstr "Error de connexion al servidor IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1426 +msgid "Error connecting to SMTP server" +msgstr "Error de connexion al servidor SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1525 +msgid "E-mail" +msgstr "Corrièr electronic" + +#: ../src/goabackend/goaimapsmtpprovider.c:1529 +msgid "Name" +msgstr "Nom" + +#: ../src/goabackend/goaimapsmtpprovider.c:1539 +#: ../src/goabackend/goaimapsmtpprovider.c:1543 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1554 +#: ../src/goabackend/goaimapsmtpprovider.c:1558 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:99 +msgid "Enterprise Login (Kerberos)" +msgstr "Connexion d'entrepresa (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:293 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "La proprietat Ticketing es definida per aqueste compte" + +#: ../src/goabackend/goakerberosprovider.c:318 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"Impossible de trobar las donadas d'autentificacion del principal « %s » " +"enregistradas dins lo trossèl de claus" + +#: ../src/goabackend/goakerberosprovider.c:331 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "" +"Impossible de trobar lo senhal del principal « %s » dins las donadas " +"d'autentificacion" + +#: ../src/goabackend/goakerberosprovider.c:726 +msgid "_Domain" +msgstr "_Domeni" + +#: ../src/goabackend/goakerberosprovider.c:727 +msgid "Enterprise domain or realm name" +msgstr "Domeni d'entrepresa o nom de domeni" + +#: ../src/goabackend/goakerberosprovider.c:963 +#: ../src/goaidentity/goaidentityservice.c:1126 +msgid "Log In to Realm" +msgstr "Connexion al nom de domeni" + +#: ../src/goabackend/goakerberosprovider.c:964 +msgid "Please enter your password below." +msgstr "Picatz vòstre senhal çaijós." + +#: ../src/goabackend/goakerberosprovider.c:965 +msgid "Remember this password" +msgstr "Se remembrar d'aqueste senhal" + +#: ../src/goabackend/goakerberosprovider.c:1107 +#, c-format +msgid "The domain is not valid" +msgstr "Lo domeni es pas valid" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "Error de connexion al servidor d'identitat de l'entrepresa" + +#: ../src/goabackend/goakerberosprovider.c:1524 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Lo servici d'autentificacion a renviat « clau invalida »" + +#: ../src/goabackend/goalastfmprovider.c:64 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:690 +#: ../src/goabackend/goalastfmprovider.c:838 +msgid "Error connecting to Last.fm" +msgstr "Error de connexion a Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:77 +msgid "Media Server" +msgstr "Servidor multimèdia" + +#: ../src/goabackend/goamediaserverprovider.c:330 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"De donadas personalas pòdon èsser apondudas a vòstra aplicacion via un " +"compte de servidor multimèdia." + +#: ../src/goabackend/goamediaserverprovider.c:343 +msgid "Available Media Servers" +msgstr "Servidor multimèdias disponibles" + +#: ../src/goabackend/goamediaserverprovider.c:374 +msgid "No media servers found" +msgstr "Cap de servidor multimèdia trobat" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Estat 200 esperat al moment de la requèsta del geton d'accès, estat %d (%s) " +"recebut a la plaça" + +#: ../src/goabackend/goaoauth2provider.c:841 +msgid "Authorization response: " +msgstr "Responsa d'autorization : " + +#: ../src/goabackend/goaoauth2provider.c:911 +#, c-format +msgid "Authorization response: %s" +msgstr "Responsa d'autorization : %s" + +#: ../src/goabackend/goaoauth2provider.c:1059 +#: ../src/goabackend/goaoauthprovider.c:893 +msgid "Error getting an Access Token: " +msgstr "Error al moment de l'obtencion del geton d'accès : " + +#: ../src/goabackend/goaoauth2provider.c:1074 +#: ../src/goabackend/goaoauthprovider.c:906 +msgid "Error getting identity: " +msgstr "Error al moment de l'obtencion d'una identitat : " + +#: ../src/goabackend/goaoauth2provider.c:1291 +#: ../src/goabackend/goaoauthprovider.c:1210 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"Èra demandat de se connectar en tant que %s, mas la connexion es estada " +"establida en tant que %s" + +#: ../src/goabackend/goaoauth2provider.c:1453 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Las donadas d'autentificacion contenon pas access_token" + +#: ../src/goabackend/goaoauth2provider.c:1492 +#: ../src/goabackend/goaoauthprovider.c:1438 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Fracàs de l'actualizacion del geton d'accès (%s, %d) : " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Entèstas access_token o access_token_secret mancants dins la responsa" + +#: ../src/goabackend/goaoauthprovider.c:774 +msgid "Error getting a Request Token: " +msgstr "Error d'obtencion d'un geton de requèsta : " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:807 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Estat 200 esperat al moment de l'obtencion d'un geton de requèsta, estat %d " +"(%s) recebut a la plaça" + +#: ../src/goabackend/goaoauthprovider.c:824 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Entèstas request_token o request_token_secret mancantas dins la responsa" + +#: ../src/goabackend/goaoauthprovider.c:1394 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Las donadas d'autentificacion contenon pas access_token o access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:761 +#: ../src/goabackend/goaowncloudprovider.c:943 +msgid "Error connecting to ownCloud server" +msgstr "Error de connexion al servidor ownCloud" + +#: ../src/goabackend/goapocketprovider.c:70 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:219 +#, c-format +msgid "No username or access_token" +msgstr "Pas de nom d'utilizaire o de jeton d'accès" + +#: ../src/goabackend/goaprovider.c:107 +msgid "_Mail" +msgstr "Co_rrièr electronic" + +#: ../src/goabackend/goaprovider.c:112 +msgid "Cale_ndar" +msgstr "Age_nda" + +#: ../src/goabackend/goaprovider.c:117 +msgid "_Contacts" +msgstr "_Contactes" + +#: ../src/goabackend/goaprovider.c:122 +msgid "C_hat" +msgstr "D_iscussion" + +#: ../src/goabackend/goaprovider.c:127 +msgid "_Documents" +msgstr "_Documents" + +#: ../src/goabackend/goaprovider.c:132 +msgid "M_usic" +msgstr "M_usica" + +#: ../src/goabackend/goaprovider.c:137 +msgid "_Photos" +msgstr "_Fòtos" + +#: ../src/goabackend/goaprovider.c:142 +msgid "_Files" +msgstr "_Fichièrs" + +#: ../src/goabackend/goaprovider.c:147 +msgid "Network _Resources" +msgstr "_Ressorsas de la ret" + +#: ../src/goabackend/goaprovider.c:152 +msgid "_Read Later" +msgstr "_Legir pus tard" + +#: ../src/goabackend/goaprovider.c:157 +msgid "Prin_ters" +msgstr "Imprimen_tas" + +#: ../src/goabackend/goaprovider.c:162 +msgid "_Maps" +msgstr "_Mapas" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:563 +msgid "Use for" +msgstr "Utilizar per" + +#: ../src/goabackend/goaprovider.c:823 +msgid "Account is disabled" +msgstr "" + +#: ../src/goabackend/goaprovider.c:846 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync es pas implementat pel tipe %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS indisponible" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail es pas disponible" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "Fracàs de l'analisi de l'adreça corrièr electronic" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:260 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "Impossible de far una autentificacion SMTP sens domeni" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:299 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "Impossible de trobar un senhal SMTP dins las donadas d'autentificacion" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:310 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "Impossible de far una autentificacion SMTP sens senhal" + +#: ../src/goabackend/goasmtpauth.c:672 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Metòde d'autentificacion desconegut" + +#: ../src/goabackend/goatelepathyprovider.c:181 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Cap de compte de discussion Telepathy pas trobat" + +#: ../src/goabackend/goatelepathyprovider.c:381 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "Impossible d'inicializar un compte en linha" + +#: ../src/goabackend/goatelepathyprovider.c:421 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Impossible de crear una interfàcia utilizaire per %s" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "Paramètres de connexion" + +#: ../src/goabackend/goatelepathyprovider.c:641 +msgid "Personal Details" +msgstr "Informacions personalas" + +#: ../src/goabackend/goatelepathyprovider.c:647 +msgid "_OK" +msgstr "_Validar" + +#: ../src/goabackend/goatelepathyprovider.c:832 +msgid "Cannot save the connection parameters" +msgstr "Impossible d'enregistrar los paramètres de connexion" + +#: ../src/goabackend/goatelepathyprovider.c:845 +msgid "Cannot save your personal information on the server" +msgstr "Impossible d'enregistrar vòstras informacions personalas sul servidor" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:871 +msgid "_Connection Settings" +msgstr "_Paramètres de connexion" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:875 +msgid "_Personal Details" +msgstr "_Informacions personalas" + +#: ../src/goabackend/goautils.c:120 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Un compte %s existís ja per %s" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:170 +#, c-format +msgid "%s account" +msgstr "Compte %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:214 +msgid "Failed to delete credentials from the keyring" +msgstr "" +"Fracàs de supression de las donadas d'autentificacion del trossèl de claus" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:266 +msgid "Failed to retrieve credentials from the keyring" +msgstr "" +"Fracàs al moment de la recuperacion de las donadas d'autentificacion dempuèi " +"lo trossèl de claus" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:276 +msgid "No credentials found in the keyring" +msgstr "Cap de donada d'autentificacion pas trobada dins lo trossèl de claus" + +#: ../src/goabackend/goautils.c:289 +msgid "Error parsing result obtained from the keyring: " +msgstr "" +"Error al moment de l'analisi del resultat obtengut a partir del trossèl de " +"claus : " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:332 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Donadas d'autentificacion GOA %s per l'identitat %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:349 +msgid "Failed to store credentials in the keyring" +msgstr "" +"Fracàs al moment de l'emmagazinatge de las donadas d'autentificacion dins lo " +"trossèl de claus" + +#: ../src/goabackend/goautils.c:553 +msgid "Cannot resolve hostname" +msgstr "" + +#: ../src/goabackend/goautils.c:557 +msgid "Cannot resolve proxy hostname" +msgstr "" + +#: ../src/goabackend/goautils.c:562 +msgid "Cannot find WebDAV endpoint" +msgstr "" + +#: ../src/goabackend/goautils.c:571 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Còdi : %u — Responsa inesperada del servidor" + +#: ../src/goabackend/goautils.c:587 +msgid "The signing certificate authority is not known." +msgstr "L'autoritat de certificat de signatura es desconeguda." + +#: ../src/goabackend/goautils.c:591 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Lo certificat correspond pas a l'identitat esperada pel site d'ont proven." + +#: ../src/goabackend/goautils.c:596 +msgid "The certificate’s activation time is still in the future." +msgstr "La data d'activacion del certificat es totjorn dins lo futur." + +#: ../src/goabackend/goautils.c:600 +msgid "The certificate has expired." +msgstr "Lo certificat a expirat." + +#: ../src/goabackend/goautils.c:604 +msgid "The certificate has been revoked." +msgstr "Lo certificat es estat revocat." + +#: ../src/goabackend/goautils.c:608 +msgid "The certificate’s algorithm is considered insecure." +msgstr "L'algorithme del certificat es pas considéré comme sûr." + +#: ../src/goabackend/goautils.c:612 +msgid "Invalid certificate." +msgstr "Certificat invalid." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:647 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "" +"I a pas cap de %s amb l'identitat « %s » dins las donadas d'autentificacion" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Cargament de « %s »…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Microsoft Account" +msgstr "Compte Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:378 +msgid "initial secret passed before secret key exchange" +msgstr "secret inicial provesit abans l'escambi de la clau secreta" + +#: ../src/goaidentity/goaidentityservice.c:574 +msgid "Initial secret key is invalid" +msgstr "La clau secreta iniciala es pas valida" + +#: ../src/goaidentity/goaidentityservice.c:1131 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Lo nom de domeni de la ret %s a besonh de qualques informacions per vos " +"connectar." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "" +"Impossible de trobar l'identitat dins lo cache de la donada " +"d'autentificacion : %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "" +"Impossible de trobar las donadas d'autentificacion de l'identitat dins lo " +"cache : %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "" +"Impossible d'espepissar las donadas d'autentificacion de l'identitat dins lo " +"cache : %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"Impossible d'acabar l'espepissatge de las donadas d'autentificacion de " +"l'identitat dins lo cache : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Cap d'autentificacion associada pas trobada" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Impossible de crear lo cache de las donadas d'autentificacion : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "" +"Impossible d'inicializar lo cache de las donadas d'autentificacion : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "" +"Impossible d'emmagazinar de donadas novèlas d'autentificacion dins lo cache " +"de las donadas d'autentificacion : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Impossible de renovelar l'identitat : sètz pas connectat" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Impossible de renovelar l'identitat : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Impossible d'obténer de donadas novèlas d'autentificacion per renovelar " +"l'identitat %s : %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Impossible d'escafar l'identitat : %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Impossible de trobar l'identitat" + +#: ../src/goaidentity/goakerberosidentitymanager.c:840 +msgid "Could not create credential cache for identity" +msgstr "" +"Impossible de crear lo cache de la donada d'autentificacion per l'identitat" + +#~ msgid "Code: %u - Unexpected response from server" +#~ msgstr "Còdi : %u - Responsa inesperada del servidor" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Impossible de trobar l'element Autodiscover" + +#~ msgid "Failed to find Response element" +#~ msgstr "Impossible de trobar l'element Response" + +#~ msgid "Failed to find Account element" +#~ msgstr "Impossible de trobar l'element Account" + +#~ msgid "Did not find password with identity `%s' in credentials" +#~ msgstr "" +#~ "I a pas cap de senhal amb l'identitat « %s » dins las donadas " +#~ "d'autentificacion" + +#~ msgid "Invalid password with username `%s' (%s, %d): " +#~ msgstr "Senhal invalid per l'utilizaire « %s » (%s, %d) : " + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Estat 200 esperat al moment de la requèsta del guid, estat %d (%s) " +#~ "recebut a la plaça" + +#~ msgid "" +#~ "Expected status 200 when requesting user id, instead got status %d (%s)" +#~ msgstr "" +#~ "Estat 200 esperat al moment de la requèsta de l'identificant utilizaire, " +#~ "estat %d (%s) recebut a la plaça" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "I a pas cap de senhal IMAP amb l'identitat « %s » dins las donadas " +#~ "d'autentificacion" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Senhal IMAP invalid per l'utilizaire « %s » (%s, %d) : " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "I a pas cap de senhal SMTP amb l'identitat « %s » dins las donadas " +#~ "d'autentificacion" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Senhal SMTP invalid per l'utilizaire « %s » (%s, %d) : " + +#~ msgid "Could not find saved credentials for principal `%s' in keyring" +#~ msgstr "" +#~ "Impossible de trobar las donadas d'autentificacion del principal « %s » " +#~ "enregistradas dins lo trossèl de claus" + +#~ msgid "Did not find password for principal `%s' in credentials" +#~ msgstr "" +#~ "Impossible de trobar lo senhal del principal « %s » dins las donadas " +#~ "d'autentificacion" + +#~ msgid "Authorization response was \"%s\"" +#~ msgstr "La responsa d'autorizacion èra « %s »" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Pegar lo còdi d'autorizacion obtengut dempuèi la pagina " +#~ "d'autorizacion :" + +#~ msgid "Was asked to login as %s, but logged in as %s" +#~ msgstr "" +#~ "Èra demandat de se connectar en tant que %s, mas la connexion es estada " +#~ "establida en tant que %s" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Pegar lo geton obtengut dempuèi la pagina d'autorizacion :" + +#~ msgid "Cannot do SMTP PLAIN without a domain" +#~ msgstr "Impossible de far de SMTP PLAIN sens domeni" + +#~ msgid "Cannot do SMTP PLAIN without a password" +#~ msgstr "Impossible de far de SMTP PLAIN sens senhal" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "The certificate's activation time is still in the future." +#~ msgstr "La data d'activacion del certificat es totjorn dins l'avenidor." + +#~ msgid "The certificate's algorithm is considered insecure." +#~ msgstr "L'algoritme del certificat es pas considerat coma segur." + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Estat 200 esperat al moment de la requèsta del nom, estat %d (%s) recebut " +#~ "a la plaça" + +#~ msgid "Time" +#~ msgstr "Temps" + +#~ msgid "Time to fire" +#~ msgstr "Temps d'activacion" + +#~ msgid "Online Accounts" +#~ msgstr "Comptes en linha" + +#~ msgid "An online account needs atencion" +#~ msgstr "Un compte en linha requerís vòstra atencion" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Dobrir los comptes en linha..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "" +#~ "Donadas d'autentificacion introuvables dins lo trossèl de claus (%s, " +#~ "%d) : " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Error d'analyse de la responsa al format JSON : " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Impossible de trobar lo membre id dins las donadas JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Impossible de trobar lo membre email dins las donadas JSON" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Impossible de trobar lo membre data dins las donadas JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Impossible de trobar access_token dins las donadas non-JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Impossible de trobar access_token dins las donadas JSON" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "" +#~ "Error al moment de l'emmagazinatge de las donadas d'autentificacion dins " +#~ "lo trossèl de claus (%s, %d) : " + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Impossible de trobar lo membre account email dins las donadas JSON" + +#~ msgid "Domain Administrator Login" +#~ msgstr "Identificacion de l'administrator del domeni" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "Per poder utilizar aquesta identitat d'entrepresa, aqueste ordenador deu " +#~ "èsser inscrit al domeni. Vòstre administrator ret deu sasir son senhal de " +#~ "domeni aicí." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "Per poder utilizar aquesta identitat d'entrepresa, aqueste ordenador deu " +#~ "èsser inscrit al domeni. Vòstre administrator ret deu sasir son nom " +#~ "d'utilizaire de domeni aicí." + +#~ msgid "No such domain or realm found" +#~ msgstr "Cap de domeni o nom de domeni correspondent pas trobat" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Impossible de se connectar en tant que %s al domeni %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Senhal invalid, ensajatz tornamai" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Impossible de se connectar al domeni %s : %s" + +#~ msgid "Chat" +#~ msgstr "Discussion" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Novèl compte Microsoft Exchange" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "Compte Microsoft Exchange" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Novèla connexion d'entrepresa (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "Apondre %s" + +#~ msgid "Refresh %s" +#~ msgstr "Actualizar %s" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "I a pas cap de senhal amb l'identitat « %s » dins las donadas " +#~ "d'autentificacion" diff --git a/po/or.gmo b/po/or.gmo new file mode 100644 index 0000000..b6979f0 Binary files /dev/null and b/po/or.gmo differ diff --git a/po/or.po b/po/or.po new file mode 100644 index 0000000..ea5802e --- /dev/null +++ b/po/or.po @@ -0,0 +1,910 @@ +# Oriya translation for gnome-online-accounts. +# Copyright (C) 2013 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Manoj Kumar Giri , 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts gnome-3-8\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-08-22 12:55+0000\n" +"PO-Revision-Date: 2014-08-22 18:37+0530\n" +"Last-Translator: Manoj Kumar Giri \n" +"Language-Team: Oriya \n" +"Language: or\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "ଏହା ପାଇଁ ପ୍ରଦାତା ପାଇବାରେ ବିଫଳ: %s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "ପ୍ରଦାତା ପ୍ରକାର ଗୁଣଧର୍ମକୁ ଖାତା ପାଇଁ ସେଟ ହୋଇ ନାହିଁ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +#| msgid "Code: %u - Unexpected response from server" +msgid "Code: %u — Unexpected response from server" +msgstr "ସଂକେତ: %u — ସର୍ଭରରୁ ଅପ୍ରତ୍ୟାଶିତ ଉତ୍ତର" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "ସ୍ୱୟଂ ଆବିଷ୍କାର ଉତ୍ତର XML ବିଶ୍ଳେଷଣ କରିବାରେ ବିଫଳ" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +#| msgid "Failed to find Response element" +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ ଉପାଦାନ ଖୋଜିବାରେ ବିଫଳ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ASUrl ଏବଂ OABUrl କୁ ସ୍ୱୟଂଆବିଷ୍କାର ଉତ୍ତରରେ ଖୋଜିବାରେ ବିଫଳ" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "‘%s’ ପରିଚୟ ସହିତ ପ୍ରବେଶ ସଂକେତକୁ ପରଚୟ ପତ୍ରରେ ଖାଜି ପାଇଲା ନାହିଁ" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "ବ୍ୟବହାରକାରୀ ନାମ ‘%s’ ପାଇଁ ଅବୈଧ ପ୍ରବେଶ ସଂକେତ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "ଇ-ମେଲ (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "ପ୍ରବେଶ ସଂଙ୍କେତ (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "ଇଚ୍ଛାରୂପଣ (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "ବ୍ୟବହାରକାରୀ ନାମ (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "ସର୍ଭର (_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "ବାତିଲ କରନ୍ତୁ (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +#| msgid "Connecting…" +msgid "C_onnect" +msgstr "ସଂଯୋଗ କରନ୍ତୁ (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "ସଂଯୋଗ କରୁଅଛି…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "ସଂଳାପକୁ ଖାରଜ କରାଯାଇଛି" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "ସଂଳାପକୁ ଖାରଜ କରାଯାଇଛି (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "ଅଗ୍ରାହ୍ଯ କରନ୍ତୁ (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "ପୁଣିଥରେ ଚେଷ୍ଟାକରନ୍ତୁ (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft Exchange ସର୍ଭର ସହିତ ସଂଯୋଗ କରିବା ସମୟରେ ତ୍ରୁଟି" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "ଏହା ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "ମେଲ (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "କ୍ଯାଲେଣ୍ଡର (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "ସମ୍ପର୍କଗୁଡ଼ିକ (_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +#| msgid "" +#| "Expected status 200 when requesting user id, instead got status %d (%s)" +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"ଆପଣଙ୍କର ପରଚୟ ଅନୁରୋଧ କରିବା ସମୟରେ ଆଶାକରାଯାଇଥିବା ସ୍ଥିତି 200, ଏହା ପରିବର୍ତ୍ତେ " +"ସ୍ଥିତି %d (%s) ପାଇଛି" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "ଉତ୍ତର ବିଶ୍ଳେଷଣ କରିପାରିବେ ନାହିଁ" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "ଆଳାପ (_h)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "ଫୋଟୋଗୁଡ଼ିକ (_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "ମେଳକଗୁଡ଼ିକ (_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"ଆପଣଙ୍କର ତନ୍ତ୍ର ସମୟ ଅବୈଧ ଅଟେ। ଆପଣଙ୍କର ତାରିଖ ଏବଂ ସମୟ ବିନ୍ୟାସ ଯାଞ୍ଚ କରନ୍ତୁ।" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "ଦଲିଲଗୁଡ଼ିକ (_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +msgid "Prin_ters" +msgstr "ମୁଦ୍ରଣୀଗୁଡ଼ିକ (_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "ସର୍ଭିସ ଉପଲବ୍ଧ ନାହିଁ" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "ବୈଧିକରଣ ବିଫଳ" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "ସର୍ଭର PLAIN କୁ ସହାୟତା କରିନଥାଏ" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "ସର୍ଭର STARTTLS କୁ ସହାୟତା କରିନଥାଏ" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP ଏବଂ SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +#| msgid "Did not find password with identity `%s' in credentials" +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "‘%s’ ପରିଚୟ ସହିତ %s କୁ ପରଚୟ ପତ୍ରରେ ଖାଜି ପାଇଲା ନାହିଁ" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "ବ୍ୟବହାରକାରୀ ନାମ ‘%s’ ପାଇଁ ଅବୈଧ %s (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "ସଂଗୁପ୍ତକରଣ (_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "କିଛି ନାହିଁ" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "ସଂଯୋଗ ପରେ STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "ନିର୍ଦ୍ଦିଷ୍ଟ ପୋର୍ଟ ଉପରେ SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "ନାମ (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "IMAP ସର୍ଭର (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "SMTP ସର୍ଭର (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "ଆଗକୁ (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "IMAP ସର୍ଭର ସହିତ ସଂଯୋଗ କରିବା ସମୟରେ ତ୍ରୁଟି" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "SMTP ସର୍ଭର ସହିତ ସଂଯୋଗ କରିବା ସମୟରେ ତ୍ରୁଟି" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "ଇ-ମେଲ୍" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "ନାମ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "ଆନୁଷ୍ଠାନିକ ଲଗଇନ୍‌ (କର୍ବୋରୋସ୍‌)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "ପରିଚୟ ସର୍ଭିସ ଅବୈଧ ଚାବି ଦେଇଥାଏ" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +#| msgid "Could not find saved credentials for principal `%s' in keyring" +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "ମୂଖ୍ୟ ‘%s’ ପାଇଁ କିରିଙ୍ଗ୍‌ ରେ ସଂରକ୍ଷିତ ପରିଚୟପତ୍ର ପାଇଲା ନାହିଁ" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +#| msgid "Did not find password for principal `%s' in credentials" +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "ମୂଖ୍ୟ ‘%s’ ପାଇଁ ପରିଚୟପତ୍ରରେ ପ୍ରବେଶ ସଂକେତ ପାଇଲା ନାହିଁ" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "ଡମେନ (_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "ଆନୁଷ୍ଠାନିକ ଡମେନ ଅଥବା realm ନାମ" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "Realm ରେ ଲଗଇନ୍‌ କରନ୍ତୁ" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "ଦୟାକରି ତଳେ ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣ କରନ୍ତୁ।" + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "ପ୍ରବେଶ ସଂକେତ ମନେରଖନ୍ତୁ" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "ଡମେନ୍‌ଟି ବୈଧ ନୁହଁ" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "ଆନୁଷ୍ଠାନିକ ପରିଚୟ ସର୍ଭର ସହିତ ସଂଯୋଗ କରିବା ସମୟରେ ତ୍ରୁଟି" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "ନେଟୱର୍କ୍‌ ଉତ୍ସ (_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "IMAP _Server" +msgid "Media Server" +msgstr "ମେଡିଆ ସର୍ଭର" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"ମେଡିଆ ସର୍ଭର ଖାତା ମାଧ୍ଯମରେ ବ୍ୟକ୍ତିଗତ ବିଷୟବସ୍ତୁକୁ ଆପଣଙ୍କର ପ୍ରୟୋଗଗୁଡ଼ିକରେ " +"ଯୋଡ଼ାଯାଇପାରିବ।" + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "ଉପଲବ୍ଧ ମେଡିଆ ସର୍ଭରଗୁଡ଼ିକ" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "କୌଣସି ମେଡିଆ ସରଭର ମିଳିଲା ନାହିଁ" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"ଅଭିଗମ୍ୟ ଟକେନ ଅନୁରୋଧ ସମୟରେ ଆଶାତିତ ସ୍ଥିତି 200, ଏହା ପରିବର୍ତ୍ତେ ସ୍ଥିତି %d (%s) " +"ମିଳିଛି" + +#: ../src/goabackend/goaoauth2provider.c:888 +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: " +msgstr "ବୈଧିକରଣ ଉତ୍ତର:" + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +#| msgid "Authorization response was \"%s\"" +msgid "Authorization response: %s" +msgstr "ବୈଧିକରଣ ଉତ୍ତର: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "ଅଭିଗମ୍ୟ ଟକେନ ପାଇବାରେ ତ୍ରୁଟି: " + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "ପରିଚୟ ପାଇବାରେ ତ୍ରୁଟି: " + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +#| msgid "Was asked to login as %s, but logged in as %s" +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s ଭାବରେ ଲଗଇନ ହେବା ପାଇଁ ପଚରାଯାଇଛି, କିନ୍ତୁ %s ଭାବରେ ଲଗଇନ ହୋଇଛି" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "ପରିଚୟପତ୍ରରେ access_token ନଥାଏ" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "ଅଭିଗମ୍ୟ ଟକେନକୁ ସତେଜ କରିବାରେ ବିଫଳ (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "ଉତ୍ତରରେ access_token କିମ୍ବା access_token_secret ଶୀର୍ଷକ ଅନୁପସ୍ଥିତ" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "ଅନୁରୋଧ ଟକେନ ପାଇବାରେ ତ୍ରୁଟି: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"ଅନୁରୋଧ ଟକେନ ପାଇବା ପାଇଁ ଆଶାକରାଯାଇଥିବା ସ୍ଥିତି ହେଉଛି 200, ଏହା ପରିବର୍ତ୍ତେ ସ୍ଥିତି %" +"d (%s) ମିଳିଛି" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "ଉତ୍ତରରେ request_token କିମ୍ବା request_token_secret ଶୀର୍ଷକ ଅନୁପସ୍ଥିତ" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "ପରିଚୟ ପତ୍ରରେ access_token କିମ୍ବା access_token_secret ନାହିଁ" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud ସର୍ଭର ସହିତ ସଂଯୋଗ କରିବା ସମୟରେ ତ୍ରୁଟି" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "ଫାଇଲ (_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "ପକେଟ" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "କୌଣସି ବ୍ୟବହାରକାରୀ ନାମ କିମ୍ବା access_token ନାହିଁ" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "ପରେ ପଢନ୍ତୁ (_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync କୁ ପ୍ରକାର %s ରେ ନିୟୋଜନ କରାଯାଇ ନାହିଁ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS ଉପଲବ୍ଧ ନାହିଁ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail ଉପଲବ୍ଧ ନାହିଁ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "ଇମେଲ ଠିକଣା ବିଶ୍ଳେଷଣ କରିବାରେ ବିଫଳ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a domain" +msgid "Cannot do SMTP authentication without a domain" +msgstr "ଡମେନ ବିନା SMTP ବୈଧିକରଣ କରିପାରିବେ ନାହିଁ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "ପରିଚୟ ପତ୍ରରେ smtp-ପ୍ରବେଶ ସଂକେତ ପାଇଲା ନାହିଁ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a password" +msgid "Cannot do SMTP authentication without a password" +msgstr "ବିନା ପ୍ରବେଶ ସଂକେତରେ SMTP ବୈଧିକରଣ କରିପାରିବେ ନାହିଁ" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +#| msgid "Authentication failed" +msgid "Unknown authentication mechanism" +msgstr "ଅଜଣା ବୈଧିକରଣ କୌଶଳ" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "ଟେଲିପାଥି ଚାର୍ଟ ଖାତା ମିଳୁ ନାହିଁ" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +#| msgid "Failed to find Account element" +msgid "Failed to initialize a GOA client" +msgstr "GOA କ୍ଲାଏଣ୍ଟକୁ ସକ୍ରିୟ କରିବାରେ ବିଫଳ" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +#| msgid "Failed to find a provider for: %s" +msgid "Failed to create a user interface for %s" +msgstr "%s ପାଇଁ ବ୍ୟବହାରକାରୀ ଅନ୍ତରାପୃଷ୍ଠ ନିର୍ମାଣ କରିବାରେ ବିଫଳ" + +#: ../src/goabackend/goatelepathyprovider.c:535 +#| msgid "Connecting…" +msgid "Connection Settings" +msgstr "ସଂଯୋଗ ସଂରଚନା" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "ବ୍ଯକ୍ତିଗତ ବିବରଣୀ" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "ଠିକ ଅଛି (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "ସଂଯୋଗ ପ୍ରାଚଳଗୁଡ଼ିକୁ ସଂରକ୍ଷଣ କରିପାରିବେ ନାହିଁ" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "ସର୍ଭର ଉପରେ ଆପଣଙ୍କର ବ୍ୟକ୍ତିଗତ ସୂଚନାକୁ ସଂରକ୍ଷଣ କରିପାରିବେ ନାହିଁ" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +#| msgid "Connecting…" +msgid "_Connection Settings" +msgstr "ସଂଯୋଗ ସଂରଚନା (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "ବ୍ୟକ୍ତିଗତ ବିବରଣୀ (_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "ଏକ %s ଖାତା ପୂର୍ବରୁ %s ପାଇଁ ଅଛି" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s ଖାତା" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "କିରିଙ୍ଗରୁ ପରିଚୟ ପତ୍ର ଅପସାରଣ କରିବାରେ ବିଫଳ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "କିରିଙ୍ଗରୁ ପରିଚୟ ପତ୍ର ବାହାର କରିବାରେ ବିଫଳ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "କିରିଙ୍ଗରେ କୌଣସି ପରିଚୟପତ୍ର ମିଳିଲା ନାହିଁ" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "କିରିଙ୍ଗରୁ ମିଳିଥିବା ଫଳାଫଳକୁ ବିଶ୍ଳେଷଣ କରିବାରେ ତ୍ରୁଟି: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "ପରିଚୟ %s ପାଇଁ GOA %s ପରିଚୟ ପତ୍ର" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "କିରିଙ୍ଗରେ ପରିଚୟପତ୍ର ଯୋଗ କରିବାରେ ବିଫଳ" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "ପ୍ରମାଣପତ୍ର ହସ୍ତାକ୍ଷର ଅଧିକାରୀଟି ଜଣା ନାହିଁ।" + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"ପ୍ରମାଣପତ୍ରଟି ଆଶାକରାଯାଇଥିବା ସାଇଟ ପରିଚୟ ସହିତ ମେଳ ଖାଉ ନାହିଁ ଯେଉଁଥିରୁ ଏହାକୁ ବାହାର " +"କରାଯାଇଥିଲା।" + +#: ../src/goabackend/goautils.c:545 +#| msgid "The certificate's activation time is still in the future." +msgid "The certificate’s activation time is still in the future." +msgstr "ପ୍ରମାଣପତ୍ର ସକ୍ରିୟଣ ସମୟ ଏପର୍ଯ୍ୟନ୍ତ ଭବିଷ୍ୟତରେ ଅଛି।" + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "ପ୍ରମାଣପତ୍ରର ସମୟ ସମାପ୍ତ" + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "ପ୍ରମାଣପତ୍ରଟିର ସମୟ ସମାପ୍ତ ହୋଇଛି" + +#: ../src/goabackend/goautils.c:557 +#| msgid "The certificate's algorithm is considered insecure." +msgid "The certificate’s algorithm is considered insecure." +msgstr "ପ୍ରମାଣପତ୍ର ଆଲଗୋରିଦମ୍‌କୁ ଅସୁରକ୍ଷିତ ଭାବରେ ଗ୍ରହଣ କରାଯାଇଛି।" + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "ଅବୈଧ ପ୍ରମାଣପତ୍ର।" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” କୁ ଧାରଣ କରୁଅଛି…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +#| msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"ନାମ ଅନୁରୋଧ କରିବା ସମୟରେ ଆଶାକରାଯାଇଥିବା ସ୍ଥିତି 200, ଏହା ପରିବର୍ତ୍ତେ ସ୍ଥିତି %d (%" +"s) ପାଇଛି" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "ପ୍ରାରମ୍ଭିକ ଗୋପନିୟତାଟି ଗୁପ୍ତ ଚାବି ଆଦାନ ପ୍ରଦାନ ପୂର୍ବରୁ ପାସ ହୋଇଛି" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "ପ୍ରାରମ୍ଭିକ ଗୁପ୍ତ ଚାବିଟି ଅବୈଧ ଅଟେ" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"ନେଟୱର୍କ୍‌ realm %s ଆପଣଙ୍କୁ ସାଇନ୍‌ ଇନ୍‌ କରିବା ପୂର୍ବରୁ କିଛି ସୂଚନା ଆବଶ୍ୟକ କରିଥାଏ।" + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "ପରିଚୟ ପତ୍ର କ୍ୟାଶେରେ ପରିଚୟ ପାଇଲା ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "କ୍ୟାଶେରେ ପରିଚୟ ପତ୍ର ପାଇଲା ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "କ୍ୟାଶେରେ ପରିଚୟ ପତ୍ର ମାଧ୍ଯମରେ ଯାଇ ପାରିବେ ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "କ୍ୟାଶେରେ ପରିଚୟ ପତ୍ର ମାଧ୍ଯମରେ ସ୍ଥାନାନ୍ତରିତ ହୋଇପାରିବେ ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "କୌଣସି ସମ୍ପୃକ୍ତ ପରିଚୟ ମିଳିଲା ନାହିଁ" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "ପରିଚୟ କ୍ୟାଶେ ସୃଷ୍ଟି କରିପାରିବେ ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "ପରିଚୟ ପତ୍ର କ୍ୟାଶେକୁ ଆରମ୍ଭ କରିପାରିଲା ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "କ୍ୟାଶେରେ ନୂତନ ପରିଚୟପତ୍ର ରଖିପାରିଲା ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "ନୂତନ ପରିଚୟ ସୃଷ୍ଟି କରିପାରିଲା ନାହିଁ: ସାଇନ୍‌ ଇନ୍‌ ହୋଇନାହିଁ" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "ନୂତନ ପରିଚୟ ସୃଷ୍ଟି କରିପାରିଲା ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "%s ପାଇଁ ନୂତନ ପରିଚୟ ସୃଷ୍ଟି କରିବାକୁ ନୂତନ ପରିଚୟ ପତ୍ର ପାଇଲା ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "ପରିଚୟକୁ ଲିଭାଇ ପାରିଲା ନାହିଁ: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "ପରିଚୟକୁ ଖୋଜି ପାଇଲା ନାହିଁ" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "ପରିଚୟ ପାଇଁ ପରିଚୟ ପତ୍ର କ୍ୟାଶେ ସୃଷ୍ଟି କରିପାରିଲା ନାହିଁ" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "ସ୍ୱୟଂଆବିଷ୍କାର ଉପାଦାନ ଖୋଜିବାରେ ବିଫଳ" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "ପରିଚୟ `%s' ସହିତ imap-ପ୍ରବେଶ ସଂକେତକୁ ପରିଚୟ ପତ୍ରରେ ପାଇଲା ନାହିଁ" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "ବ୍ୟବହାରକାରୀ ନାମ `%s' (%s, %d) ସହିତ ଅବୈଧ imap-ପ୍ରବେଶ ସଂକେତ: " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "ପରିଚୟ ପତ୍ରରେ ପରିଚୟ `%s' ସହିତ smtp-ପ୍ରବେଶ ସଂକେତ ପାଇଲା ନାହିଁ" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "ବ୍ୟବହାରକାରୀ ନାମ `%s' (%s, %d) ସହିତ ଅବୈଧ smtp-ପ୍ରବେଶ ସଂକେତ: " + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "ବୈଧିକରଣ ପୃଷ୍ଠା ରୁ ମିଳିଥିବା ବୈଧିକରଣ ସଂକେତକୁ ଲଗାନ୍ତୁ:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "ବୈଧିକରଣ ପୃଷ୍ଠା ରୁ ମିଳିଥିବା ଟକେନକୁ ଲଗାନ୍ତୁ:" + +#~ msgid "Time" +#~ msgstr "ସମୟ" + +#~ msgid "Time to fire" +#~ msgstr "ବାହାର କରିବା ସମୟ" diff --git a/po/pa.gmo b/po/pa.gmo new file mode 100644 index 0000000..4a9e6d2 Binary files /dev/null and b/po/pa.gmo differ diff --git a/po/pa.po b/po/pa.po new file mode 100644 index 0000000..35399e8 --- /dev/null +++ b/po/pa.po @@ -0,0 +1,1036 @@ +# Punjabi translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# A S Alam , 2011, 2012, 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-09-08 19:00+0000\n" +"PO-Revision-Date: 2014-09-08 19:24-0500\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi/Panjabi \n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "%s: ਲਈ ਪ੍ਰੋਵਾਈਡਰ ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "ProviderType ਵਿਸ਼ੇਸ਼ਤਾ ਅਕਾਊਂਟ ਲਈ ਸੈੱਟ ਨਹੀਂ ਹੈ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "ਕੋਡ: %u — ਸਰਵਰ ਤੋਂ ਅਣਜਾਣ ਜਵਾਬ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "ਆਟੋਡਿਸਕਵਰ ਜਵਾਬ XML ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ ਐਲੀਮੈਂਟ ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ਆਟੋਡਿਸਕਵਰ ਜਵਾਬ ਵਿੱਚ ASUrl and OABUrl ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "ਮਾਈਕਰੋਸਾਫਟ ਐਕਸਚੇਜ਼" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "ਸਨਦ ਵਿੱਚ ‘%s’ ਪਛਾਣ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "ਯੂਜ਼ਰ-ਨਾਂ ‘%s’ ਲਈ ਗਲਤ ਪਾਸਵਰਡ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "_ਈਮੇਲ" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "_ਪਾਸਵਰਡ" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "ਕਸਟਮ(_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "ਯੂਜ਼ਰ _ਨਾਂ" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "ਸਰਵਰ(_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "ਰੱਦ ਕਰੋ(_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +msgid "C_onnect" +msgstr "ਕੁਨੈਕਟ ਕਰੋ(_o)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "…ਕੁਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "ਡਾਈਲਾਗ ਰੱਦ ਕੀਤਾ ਗਿਆ ਸੀ" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "ਡਾਈਲਾਗ ਰੱਦ ਕੀਤਾ ਗਿਆ ਸੀ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "ਅਣਡਿੱਠਾ(_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "_ਮੁੜ ਕੋਸ਼ਿਸ਼" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "ਮਾਈਕਰੋਸਾਫਟ ਐਕਸਚੇਜ਼ ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "ਇਸ ਲਈ ਵਰਤੋਂ" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "ਮੇਲ(_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "ਕੈਲੰਡਰ(_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "ਸੰਪਰਕ(_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "ਫੇਸਬੁੱਕ" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"ਜਦੋਂ ਤੁਹਾਡੀ ਪਛਾਣ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਹਾਲਤ 200 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਮਿਲਿਆ " +"ਹੈ %d (%s)" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "ਜਵਾਬ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "ਗੱਲਬਾਤ(_h)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "ਫੋਟੋ(_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "ਨਕਸ਼ਾ(_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "ਫਲਿੱਕਰ" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "ਤੁਹਾਡੇ ਸਿਸਟਮ ਦਾ ਸਮਾਂ ਗਲਤ ਹੈ। ਆਪਣੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ ਸੈਟਿੰਗ ਜਾਂਚੋ।" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "ਗੂਗਲ" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "ਡੌਕੂਮੈਂਟ(_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +#| msgid "_Printers" +msgid "Prin_ters" +msgstr "ਪਰਿੰਟਰ(_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "ਸੇਵਾ ਉਪਲੱਬਧ ਨਹੀਂ" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "ਪਰਮਾਣਕਿਤਾ ਫੇਲ੍ਹ ਹੋਈ" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "ਸਰਵਰ PLAIN ਲਈ ਸਹਾਇਕ ਨਹੀਂ" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "ਸਰਵਰ STARTTLS ਲਈ ਸਹਾਇਕ ਨਹੀਂ" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP ਅਤੇ SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "ਸਨਦ ਵਿੱਚ ‘%2$s’ ਪਛਾਣ ਲਈ %1$s ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "ਯੂਜ਼ਰ-ਨਾਂ '%2$s' ਲਈ ਗਲਤ %1$s (%3$s, %4$d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ(_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "ਕੋਈ ਨਹੀਂ" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "ਕੁਨੈਕਟ ਕਰਨ ਦੇ ਬਾਅਦ STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "ਖਾਸ ਪੋਰਟ ਉੱਤੇ SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "ਨਾਂ(_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "I_MAP ਸਰਵਰ" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "_SMTP ਸਰਵਰ" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "ਅੱਗੇ(_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "IMAP ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "SMTP ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ।" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "ਈ-ਮੇਲ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "ਨਾਂ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "ਇੰਟਰਪਰਾਈਜ਼ ਲਾਗਇਨ (ਕਰਬਰੋਸ)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "ਪਛਾਣ ਸਰਵਿਸ ਨੇ ਗਲਤੀ ਕੁੰਜੀ ਵਾਪਸ ਕੀਤੀ" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "ਕੀਰਿੰਗ ਵਿੱਚ ‘%s’ ਪ੍ਰਿਸੀਪਲ ਲਈ ਸੰਭਾਲੀ ਹੋਈ ਸਨਦ ਨਹੀਂ ਲੱਭੀ ਜਾ ਸਕੀ" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "ਸਨਦ ਵਿੱਚ ‘%s’ ਪ੍ਰਿਸੀਪਲ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "ਡੋਮੇਨ(_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "ਇੰਟਰਪਰਾਈਜ਼ ਡੋਮੇਨ ਜਾਂ ਰੀਲੇਮ ਨਾਂ" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "ਰੀਲੇਮ ਲਈ ਲਾਗਇਨ" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "ਆਪਣਾ ਪਾਸਵਰਡ ਹੇਠਾਂ ਦਿਓ ਜੀ।" + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "ਇਹ ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "ਡੋਮੇਨ ਠੀਕ ਨਹੀਂ ਹੈ" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "ਇੰਟਰਪ੍ਰਾਈਜ਼ ਪਛਾਣ ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "ਨੈੱਟਵਰਕ ਸਰੋਤ(_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "IMAP _Server" +msgid "Media Server" +msgstr "ਮੀਡਿਆ ਸਰਵਰ" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"ਨਿੱਜੀ ਸਮੱਗਰੀ ਨੂੰ ਮੀਡਿਆ ਸਰਵਰ ਖਾਤੇ ਰਾਹੀਂ ਤੁਹਾਡੇ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ।" + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "ਉਪਲੱਬਧ ਮੀਡਿਆ ਸਰਵਰ" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "ਕੋਈ ਮੀਡਿਆ ਸਰਵਰ ਨਹੀਂ ਲੱਭਿਆ" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"ਜਦੋਂ ਅਸੈਸ ਟੋਕਨ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਹਾਲਤ 200 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਮਿਲਿਆ ਹੈ " +"%d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:888 +msgid "Authorization response: " +msgstr "ਪਰਮਾਣਕਿਤਾ ਜਵਾਬ: " + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +msgid "Authorization response: %s" +msgstr "ਪਰਮਾਣਕਿਤਾ ਜਵਾਬ: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "ਅਸੈਸ ਟੋਕਨ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ: " + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "ਪਛਾਣ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ: " + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s ਵਜੋਂ ਲਾਗਇਨ ਕਰਨ ਲਈ ਕਿਹਾ ਗਿਆ ਸੀ, ਪਰ %s ਵਜੋਂ ਲਾਗਇਨ ਹੈ" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "ਸਨਦ (credentials) ਅਸੈਸ ਟੋਕਨ ਨਹੀਂ ਲੈ ਸਕਦੀ(_t)" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "ਅਸੈਸ ਟੋਕਨ (%s, %d) ਤਾਜ਼ਾ ਕਰਨ ਲਈ ਫੇਲ੍ਹ: " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"ਜਵਾਬ ਵਿੱਚ ਅਸੈਸ ਟੋਕਨ (access_token) ਜਾਂ ਅਸੈਸ ਟੋਕਨ ਭੇਦ (access_token_secret) " +"ਗੁੰਮ ਹੈ" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "ਮੰਗਿਆ ਗਿਆ ਟੋਕਨ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"ਮੰਗ ਗਏ ਟੋਕਨ ਨੂੰ ਲੈਣ ਦੌਰਾਨ ਹਾਲਤ 200 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਮਿਲਿਆ ਹੈ %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"ਜਵਾਬ ਵਿੱਚ ਮੰਗੇ ਟੋਕਨ (request_token) ਜਾਂ ਮੰਗ ਟੋਕਨ ਭੇਦ (request_token_secret) " +"ਗੁੰਮ ਹੈ" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"ਸਨਦ ਵਿੱਚ ਅਸੈਸ ਟੋਕਨ (access_token) ਜਾਂ ਅਸੈਸ ਟੋਕਨ ਭੇਦ (access_token_secret) " +"ਨਹੀਂ ਮਿਲਿਆ" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "ਫਾਇਲਾਂ(_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "ਜੇਬ" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "ਕੋਈ ਯੂਜ਼ਰ-ਨਾਂ ਜਾਂ ਵਰਤੋਂ_ਟੋਕਨ ਨਹੀਂ" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "ਬਾਅਦ ਵਿੱਚ ਪੜ੍ਹੋ(_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ਕਿਸਮ %s ਲਈ ensure_credentials_sync ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਹੈ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS ਉਪਲੱਬਧ ਨਹੀਂ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "ਈਮੇਲ ਐਡਰੈਸ ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "ਡੋਮੇਨ ਬਿਨਾਂ SMTP ਪਰਮਾਣਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "ਸਨਦ ਵਿੱਚ smtp-ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "ਪਾਸਵਰਡ ਬਿਨਾਂ SMTP ਪਰਮਾਣਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "ਅਣਜਾਣ ਪ੍ਰਮਾਣਕਿਤਾ ਢੰਗ" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "ਟੈਲੀਪੈਥੀ ਗੱਲਬਾਤ ਖਾਤਾ ਨਹੀਂ ਲੱਭਿਆ" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "GOA ਕਲਾਇਟ ਸ਼ੁਰੂ ਕਰਨ ਵਾਸਤੇ ਫੇਲ੍ਹ" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s ਲਈ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸੈਟਿੰਗ" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "ਨਿੱਜੀ ਵੇਰਵਾ" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "ਠੀਕ ਹੈ(_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "ਕੁਨੈਕਸ਼ਨ ਮੁੱਲ ਸੰਭਾਲੇ ਨਹੀਂ ਜਾ ਸਕਦੇ" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "ਤੁਹਾਡੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਸਰਵਰ ਉੱਤੇ ਨਹੀਂ ਸੰਭਾਲੀ ਜਾ ਸਕਦੀ" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "ਕੁਨੈਕਸ਼ਨ ਸੈਟਿੰਗ(_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "ਨਿੱਜੀ ਵੇਰਵਾ(_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s ਅਕਾਊਂਟ ਪਹਿਲਾਂ ਹੀ %s ਲਈ ਮੌਜੂਦ ਹੈ" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s ਅਕਾਊਂਟ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "ਕੀਰਿੰਗ ਤੋਂ ਸਨਦ ਹਟਾਉਣ ਲਈ ਫੇਲ੍ਹ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "ਕੀਰਿੰਗ ਤੋਂ ਸਨਦ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "ਕੋਈ ਕੀਰਿੰਗ ਵਿੱਚ ਸਨਦ ਸਟੋਰ ਕਰਨ ਲਈ ਨਹੀਂ ਹੈ" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "ਕੀਰਿੰਗ ਤੋਂ ਮਿਲੇ ਨਤੀਜੇ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%2$s ਪਛਾਣ ਲਈ GOA %1$s ਸਨਦ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "ਕੀਰਿੰਗ ਵਿੱਚ ਸਨਦ ਸਟੋਰ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "ਦਸਤਖਤੀ ਸਰਟੀਫਿਕੇਟ ਅਥਾਰਟੀ ਅਣਜਾਣ ਹੈ।" + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"ਸਰਟੀਫਿਕੇਟ ਸਾਈਟ ਦੀ ਪਛਾਣ ਦੀ ਚਾਹੀਦੀ ਪਛਾਣ ਨਾਲ ਮਿਲਦਾ ਨਹੀਂ ਹੈ, ਜਿਸ ਤੋਂ ਇਹ ਪ੍ਰਾਪਤ " +"ਕੀਤਾ ਹੈ।" + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "ਸਰਟੀਫਿਕੇਟ ਦਾ ਸਰਗਰਮੀ ਸਮਾਂ ਭਵਿੱਖ ਦਾ ਹੈ।" + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "ਸਰਟੀਫਿਕੇਟ ਦੀ ਮਿਆਦ ਪੁੱਗੀ ਹੈ।" + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "ਸਰਟੀਫਿਕੇਟ ਮਨਸੂਖ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।" + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "ਸਰਟੀਫਿਕੇਟ ਦਾ ਐਲੋਗਰਿਥਮ ਅਸੁਰੱਖਿਅਤ ਮੰਨਿਆ ਹੋਇਆ ਹੈ।" + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "ਗਲਤ ਸਰਟੀਫਿਕੇਟ" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "\"%s\" ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "ਵਿੰਡੋਜ਼ ਲਾਈਵ" + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "ਯਾਹੂ" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"ਜਦੋਂ ਨਾਂ ਦੀ ਮੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਹਾਲਤ 200 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਮਿਲਿਆ ਹੈ %d (%" +"s)" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "ਗੁਪਤ ਭੇਦ ਕੁੰਜੀ ਵਟਾਂਦਰੇ ਤੋਂ ਪਹਿਲਾਂ ਸ਼ੁਰੂਆਤੀ ਗੁਪਤ ਭੇਦ ਦਿੱਤਾ ਗਿਆ" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "ਸ਼ੁਰੂਆਤੀ ਗੁਪਤ ਕੁੰਜੀ ਗਲਤ ਹੈ" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "ਨੈੱਟਵਰਕ ਰੀਲੇਮ %s ਨੂੰ ਤੁਹਾਨੂੰ ਸਾਈਨ ਇਨ ਕਰਨ ਲਈ ਕੁਝ ਜਾਣਕਾਰੀ ਦੀ ਲੋੜ ਹੈ।" + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "ਸਨਦ ਕੈਸ਼ ਵਿੱਚ ਪਛਾਣ ਨਹੀਂ ਲੱਭੀ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "ਕੈਸ਼ ਵਿੱਚ ਪਛਾਣ ਸਨਦ ਨਹੀਂ ਲੱਭੀ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "ਕੈਸ਼ ਵਿੱਚ ਪਛਾਣ ਸਨਦ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "ਕੈਸ਼ ਵਿੱਚ ਪਛਾਣ ਸਨਦ ਬਦਲਣ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "ਕੋਈ ਸਬੰਧਿਤ ਪਛਾਣ ਨਹੀਂ ਲੱਭੀ" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "ਸਨਦ ਕੈਸ਼ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "ਸਨਦ ਕੈਸ਼ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "ਨਵੀਂ ਸਨਦ ਸਨਦ ਕੈਸ਼ ਵਿੱਚ ਸਟੋਰ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "ਪਛਾਣ ਨਵਿਆਈ ਨਹੀਂ ਜਾ ਸਕੀ: ਸਾਈਨ ਇਨ ਨਹੀਂ" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "ਪਛਾਣ ਨਵਿਆਈ ਨਹੀਂ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "ਨਵਿਆਈ ਪਛਾਣ %s ਲਈ ਨਵੀਂ ਸਨਦ ਲਈ ਨਹੀਂ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "ਪਛਾਣ ਸਾਫ਼ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "ਪਛਾਣ ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "ਪਛਾਣ ਲਈ ਸਨਦ ਕੈਸ਼ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "ਪਰਮਾਣਕਿਤਾ (authorization) ਸਫ਼ੇ ਤੋਂ ਮਿਲੇ ਪਰਮਾਣਕਿਤਾ ਕੋਡ ਨੂੰ ਚੇਪੋ:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "ਪਰਮਾਣਕਿਤਾ (authorization) ਸਫ਼ੇ ਤੋਂ ਮਿਲੇ ਟੋਕਨ ਨੂੰ ਚੇਪੋ:" + +#~ msgid "Twitter" +#~ msgstr "ਟਵਿੱਟਰ" + +#~ msgid "Time" +#~ msgstr "ਸਮਾਂ" + +#~ msgid "Time to fire" +#~ msgstr "ਅੱਗ ਦਾ ਸਮਾਂ" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "ਆਟੋਡਿਸਕਵਰ ਭਾਗ ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" + +#~ msgid "Failed to find Account element" +#~ msgstr "ਅਕਾਊਂਟ ਐਲੀਮੈਂਟ ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "ਜਦੋਂ guid ਦੀ ਮੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਹਾਲਤ 200 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਮਿਲਿਆ ਹੈ %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "ਸਨਦ ਵਿੱਚ `%s' ਪਛਾਣ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "ਯੂਜ਼ਰ-ਨਾਂ `%s' ਲਈ ਗਲਤ imap-ਪਾਸਵਰਡ (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "ਸਨਦ ਵਿੱਚ `%s' ਯੂਜ਼ਰ-ਨਾਂ ਲਈ smtp-ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "ਯੂਜ਼ਰ-ਨਾਂ `%s' ਲਈ ਗਲਤ smtp-ਪਾਸਵਰਡ (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "ਆਨਲਾਈਨ ਅਕਾਊਂਟ" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "ਸ਼ੈਸ਼ਨ ਬੱਸ ਉੱਤੇ org.gnome.OnlinesAccounts ਨਾਂ ਦਿੰਦਾ ਹੈ" + +#~ msgid "An online account needs attention" +#~ msgstr "ਇੱਕ ਆਨਲਾਈਨ ਅਕਾਊਂਟ ਲਈ ਧਿਆਨ ਦੇਣ ਲੋੜ ਹੈ" + +#~ msgid "Open Online Accounts..." +#~ msgstr "ਆਨਲਾਈਨ ਅਕਾਊਂਟ ਖੋਲ੍ਹੋ..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "JSON ਵਜੋਂ ਪਾਰਸਿੰਗ ਜਵਾਬ ਗਲਤੀ: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ id ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਈਮੇਲ ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਯੂਜ਼ਰ ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ user.id ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ user.username ਮੈਂਬਰ ਨਹੀਂ ਲਿਆ" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ user.username._content ਮੈਂਬਰ ਨਹੀਂ ਲਿਆ" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "ਗ਼ੈਰ-JSON ਡਾਟੇ ਵਿੱਚ ਅਸੈਸ ਟੋਕਨ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ(_t)" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਅਸੈਸ ਟੋਕਨ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ(_t)" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ id_str ਮੈਂਬਰ ਨਹੀਂ ਮਿਲਿਆ" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਸਕਰੀਨ ਨਾਂ ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ(_n)" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਅਕਾਊਂਟ ਈਮੇਲ ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ guid ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਮੁੱਲ ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "ਯੂਜ਼ਰ ਕਾਰਡ ਜਵਾਬ ਨੂੰ JSON ਵਜੋਂ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਕੋਈ ਪ੍ਰੋਫਾਇਲ ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਗਿਆ" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਨਿਕ-ਨੇਮ (nickname) ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "ਕੀਰਿੰਗ (%s, %d) ਵਿੱਚ ਸਨਦ (credentials) ਨਹੀਂ ਲੱਭੀ: " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "ਕੀਰਿੰਗ (%s, %d) ਵਿੱਚ ਸਨਦ ਸੰਭਾਲਣ ਲਈ ਗਲਤੀ: " + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "ਨਵਾਂ ਮਾਈਕਰੋਸਾਫਟ ਐਕਸਚੇਜ਼ ਅਕਾਊਂਟ" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "ਮਾਈਕਰੋਸਾਫਟ ਐਕਸਚੇਜ਼ ਅਕਾਊਂਟ" + +#~ msgid "Chat" +#~ msgstr "ਗੱਲਬਾਤ" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਡਾਟਾ ਮੈਂਬਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "ਨਵਾਂ ਇੰਟਰਪਰਾਈਜ਼ ਲਾਗਇਨ (ਕਰਬਰੋਸ)" + +#~ msgid "Enterpise Login (Kerberos)" +#~ msgstr "ਇੰਟਰਪਰਾਈਜ਼ ਲਾਗਇਨ (ਕਰਬਰੋਸ)" + +#~ msgid "Add %s" +#~ msgstr "%s ਸ਼ਾਮਲ" + +#~ msgid "Refresh %s" +#~ msgstr "%s ਤਾਜ਼ਾ" + +#~ msgid "Domain Administrator Login" +#~ msgstr "ਡੋਮੇਨ ਪਰਸ਼ਾਸ਼ਕੀ ਲਾਗਇਨ" + +#~ msgid "Could not find supported credentials" +#~ msgstr "ਸਹਾਇਕ ਸਨਦਾਂ ਲੱਭੀਆਂ ਨਹੀਂ ਜਾ ਸਕੀਆਂ" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "ਇੰਟਰਪਰਾਈਜ਼ ਪਛਾਣ ਵਰਤਣ ਲਈ, ਉਹ ਕੰਪਿਊਟਰ ਨੂੰ ਡੋਮੇਨ ਵਰਤਣ ਦੀ ਲੋੜ ਹੈ। ਆਪਣੇ ਨੈੱਟਵਰਕ ਪਰਸ਼ਾਸ਼ਕ " +#~ "ਕਿਸਮ ਲਈ ਉਹਨਾਂ ਦਾ ਡੋਮੇਨ ਪਾਸਵਰਡ ਇੱਥੇ ਦਿਉ।" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "ਇੰਟਰਪਰਾਈਜ਼ ਪਛਾਣ ਵਰਤਣ ਲਈ, ਉਹ ਕੰਪਿਊਟਰ ਨੂੰ ਡੋਮੇਨ ਵਰਤਣ ਦੀ ਲੋੜ ਹੈ। ਆਪਣੇ ਨੈੱਟਵਰਕ ਪਰਸ਼ਾਸ਼ਕ " +#~ "ਕਿਸਮ ਲਈ ਉਹਨਾਂ ਦਾ ਡੋਮੇਨ ਯੂਜ਼ਰ-ਨਾਂ ਇੱਥੇ ਦਿਉ।" + +#~ msgid "No such domain or realm found" +#~ msgstr "ਕੋਈ ਡੋਮੇਨ ਜਾਂ ਰੀਲੇਮ ਨਹੀਂ ਲੱਭਿਆ" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%s ਵਜੋਂ %s ਡੋਮੇਨ ਵਿੱਚ ਲਾਗਇਨ ਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" + +#~ msgid "Invalid password, please try again" +#~ msgstr "ਗਲਤ ਪਾਸਵਰਡ, ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "%s ਡੋਮੇਨ ਨਾਲ ਕੁਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON ਡਾਟੇ ਵਿੱਚ ਨਾਂ ਮੈਂਬਰ ਨਹੀਂ ਲਿਆ ਜਾ ਸਕਿਆ" + +#~ msgid "Email Address" +#~ msgstr "ਈਮੇਲ ਐਡਰੈੱਸ" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "ਪਛਾਣ %s ਲਈ ਅਕਾਊਂਟ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ" diff --git a/po/pl.gmo b/po/pl.gmo new file mode 100644 index 0000000..f7f5e17 Binary files /dev/null and b/po/pl.gmo differ diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..ba76b6f --- /dev/null +++ b/po/pl.po @@ -0,0 +1,876 @@ +# Polish translation for gnome-online-accounts. +# Copyright © 2011-2018 the gnome-online-accounts authors. +# This file is distributed under the same license as the gnome-online-accounts package. +# Piotr Drąg , 2011-2018. +# Aviary.pl , 2011-2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-02-04 23:21+0100\n" +"Last-Translator: Piotr Drąg \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Lista dostawców, których można wczytać" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Lista ciągów reprezentujących dostawców, których można wczytać (domyślnie: " +"„all”, wszystkie). Jest sprawdzana tylko podczas uruchamiania." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Nie można odnaleźć dostawcy dla: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Dla konta ustawiono właściwość „IsLocked”" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Nie ustawiono własności typu dostawcy dla konta" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "" +"Przetworzenie kodu XML odpowiedzi automatycznego wykrywania się nie powiodło" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Odnalezienie elementu „%s” się nie powiodło" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Odnalezienie ASUrl i OABUrl w odpowiedzi automatycznego wykrywania się nie " +"powiodło" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Nieprawidłowe hasło dla nazwy użytkownika „%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Hasło" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Niestandardowe" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Nazwa użytkownika" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Serwer" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Anuluj" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "P_ołącz" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Łączenie…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Odrzucono okno dialogowe" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Odrzucono okno dialogowe (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "Z_ignoruj" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Spró_buj ponownie" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Błąd podczas łączenia z serwerem Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Oczekiwano stanu 200 podczas żądania tożsamości użytkownika, zamiast tego " +"otrzymano stan %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Nie można przetworzyć odpowiedzi" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Czas systemowy jest nieprawidłowy. Proszę sprawdzić ustawienia daty i czasu." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Usługa jest niedostępna" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Uwierzytelnienie się nie powiodło" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Serwer nie obsługuje PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Serwer nie obsługuje STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP i SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Nieprawidłowe %s dla nazwy użytkownika „%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Szyfrowanie" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Brak" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS po łączeniu" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL na dedykowanym porcie" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nazwa" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Serwer IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Serwer SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Dalej" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Błąd podczas łączenia z serwerem IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Błąd podczas łączenia z serwerem SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Nazwa" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Logowanie firmowe (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Dla konta wyłączono obsługę biletów" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Nie można odnaleźć zapisanych danych uwierzytelniających dla naczelnika „%s” " +"w bazie kluczy" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Nie odnaleziono hasła dla naczelnika „%s” w danych uwierzytelniających" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "Na_czelnik" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Anulowano działanie" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Zaloguj do obszaru" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Proszę wprowadzić hasło poniżej." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Zapamiętanie tego hasła" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Błąd podczas łączenia z serwerem tożsamości firmowej" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Usługa tożsamości zwróciła nieprawidłowy klucz" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Błąd podczas łączenia z serwisem Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Serwer multimediów" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Można dodać osobiste treści do programów przez konto serwera multimediów." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Dostępne serwery multimediów" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nie odnaleziono żadnych serwerów multimediów" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Oczekiwano stanu 200 podczas żądania tokenu dostępu, zamiast tego otrzymano " +"stan %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Odpowiedź upoważnienia: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Odpowiedź upoważnienia: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Błąd podczas pobierania tokenu dostępu: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Błąd podczas pobierania tożsamości: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Poproszono o zalogowanie jako %s, ale zalogowano jako %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Dane uwierzytelniające nie zawierają „access_token”" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Odświeżenie tokenu dostępu się nie powiodło (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Brak nagłówków „access_token” lub „access_token_secret” w odpowiedzi" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Błąd podczas pobierania tokenu żądania: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Oczekiwano stanu 200 podczas pobierania tokenu żądania, zamiast tego " +"otrzymano stan %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Brak nagłówków request_token lub request_token_secret w odpowiedzi" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Dane uwierzytelniające nie zawierają „access_token” lub „access_token_secret”" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Błąd podczas łączenia z serwerem ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Brak nazwy użytkownika lub „access_token”" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Poczta" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_ndarz" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "K_ontakty" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Komunikator" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenty" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_uzyka" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "Zdjęc_ia" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "P_liki" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Zasoby _sieciowe" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Prze_czytaj później" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "D_rukarki" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapy" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_Zadania" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Użycie dla" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Konto jest wyłączone" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Nieznany błąd" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "„ensure_credentials_sync” nie zostało zaimplementowanie na typie %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS jest niedostępne" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Nieznany mechanizm uwierzytelniania" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Nie odnaleziono konta komunikatora Telepathy" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Utworzenie interfejsu użytkownika dla %s się nie powiodło" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Ustawienia połączenia" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Informacje osobiste" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Nie można zapisać parametrów połączenia" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Nie można zapisać informacji osobistych na serwerze" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Ustawienia połączenia" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Informacje osobiste" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Błąd podczas logowania do konta" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Dane uwierzytelniające wygasły" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Proszę się zalogować, aby włączyć to konto." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Zaloguj" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Konto serwisu %s już istnieje dla %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Konto serwisu %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Usunięcie danych uwierzytelniających z bazy kluczy się nie powiodło" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Pobranie danych uwierzytelniających z bazy kluczy się nie powiodło" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nie odnaleziono danych uwierzytelniających w bazie kluczy" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Błąd podczas przetwarzania wyników uzyskanych z bazy kluczy: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Dane uwierzytelniające GOA %s dla tożsamości %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "" +"Przechowanie danych uwierzytelniających w bazie kluczy się nie powiodło" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Nie można rozwiązać nazwy komputera" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Nie można rozwiązać nazwy komputera pośrednika" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Nie można odnaleźć punktu końcowego WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kod: %u — nieoczekiwana odpowiedź od serwera" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Ośrodek podpisywania certyfikatów jest nieznany." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Certyfikat nie zgadza się z oczekiwaną tożsamością witryny, z której został " +"pobrany." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Czas aktywacji certyfikatu jest wciąż w przyszłości." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Certyfikat wygasł." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Certyfikat został odwołany." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algorytm certyfikatu jest uważany za niebezpieczny." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Nieprawidłowy certyfikat." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Nie odnaleziono %s z tożsamością „%s” w danych uwierzytelniających" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Wczytywanie strony „%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Początkowy tajny klucz jest nieprawidłowy" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Obszar sieciowy %s wymaga informacji do zalogowania." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "" +"Nie można odnaleźć tożsamości w pamięci podręcznej danych " +"uwierzytelniających: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "" +"Nie można odnaleźć danych uwierzytelniających tożsamości w pamięci " +"podręcznej: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"Nie można przesiać przez dane uwierzytelniające tożsamości w pamięci " +"podręcznej: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Nie można ukończyć przesiewania przez dane uwierzytelniające tożsamości " +"w pamięci podręcznej: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nie odnaleziono powiązanych identyfikacji" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Nie można utworzyć pamięci podręcznej danych uwierzytelniających: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "" +"Nie można zainicjować pamięci podręcznej danych uwierzytelniających: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"Nie można przechować nowych danych uwierzytelniających w pamięci podręcznej " +"danych uwierzytelniających: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nie można odnowić tożsamości: nie zalogowano" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Nie można odnowić tożsamości: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Nie można pobrać nowych danych uwierzytelniających, aby odnowić tożsamość " +"%s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Nie można wyczyścić tożsamości: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nie można odnaleźć tożsamości" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "" +"Nie można utworzyć pamięci podręcznej danych uwierzytelniających dla " +"tożsamości" diff --git a/po/pt.gmo b/po/pt.gmo new file mode 100644 index 0000000..74d378b Binary files /dev/null and b/po/pt.gmo differ diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..b70fef3 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,1060 @@ +# gnome-online-accounts' Portuguese translation. +# Copyright © 2011, 2012, 2013 gnome-online-accounts +# This file is distributed under the same license as the gnome-online-accounts package. +# Duarte Loreto , 2011, 2012, 2013. +# António Lima , 2013. +# Tiago Santos , 2014 - 2016. +# Bruno Ramalhete , 2014. +# Pedro Albuquerque , 2014, 2015. +# Sérgio Cardeira , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: 3.14\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-05-06 17:26+0000\n" +"PO-Revision-Date: 2016-05-10 19:34+0100\n" +"Last-Translator: Tiago Santos \n" +"Language-Team: Português \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:845 ../src/daemon/goadaemon.c:1103 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Falha ao procurar um fornecedor para: %s" + +#: ../src/daemon/goadaemon.c:1031 +msgid "IsLocked property is set for account" +msgstr "A propriedade IsLocked está definida para a conta" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1091 +msgid "ProviderType property is not set for account" +msgstr "A propriedade ProviderType não está definida para a conta" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Falha ao processar a resposta XML de autodescoberta" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:261 ../src/goabackend/goaewsclient.c:276 +#: ../src/goabackend/goaewsclient.c:291 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "Falha ao localizar elemento ‘%s’" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:312 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Falha ao procurar ASUrl e OABUrl na resposta de autodescoberta" + +#: ../src/goabackend/goaexchangeprovider.c:74 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:283 +#: ../src/goabackend/goalastfmprovider.c:280 +#: ../src/goabackend/goaowncloudprovider.c:314 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "Senha inválida para o utilizador `%s' (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:436 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_Email" + +#: ../src/goabackend/goaexchangeprovider.c:437 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:422 +#: ../src/goabackend/goaowncloudprovider.c:560 +msgid "_Password" +msgstr "_Senha" + +#: ../src/goabackend/goaexchangeprovider.c:440 +msgid "_Custom" +msgstr "_Personalizado" + +#: ../src/goabackend/goaexchangeprovider.c:451 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:734 +#: ../src/goabackend/goalastfmprovider.c:421 +#: ../src/goabackend/goaowncloudprovider.c:559 +msgid "User_name" +msgstr "_Utilizador" + +#: ../src/goabackend/goaexchangeprovider.c:452 +#: ../src/goabackend/goaowncloudprovider.c:558 +msgid "_Server" +msgstr "S_ervidor" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:462 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:739 +#: ../src/goabackend/goalastfmprovider.c:430 +#: ../src/goabackend/goaowncloudprovider.c:569 +#: ../src/goabackend/goatelepathyprovider.c:646 +msgid "_Cancel" +msgstr "_Cancelar" + +#: ../src/goabackend/goaexchangeprovider.c:463 +#: ../src/goabackend/goakerberosprovider.c:740 +#: ../src/goabackend/goalastfmprovider.c:431 +#: ../src/goabackend/goaowncloudprovider.c:570 +msgid "C_onnect" +msgstr "A li_gar" + +#: ../src/goabackend/goaexchangeprovider.c:479 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:756 +#: ../src/goabackend/goalastfmprovider.c:447 +#: ../src/goabackend/goaowncloudprovider.c:585 +msgid "Connecting…" +msgstr "A ligar…" + +#: ../src/goabackend/goaexchangeprovider.c:584 +#: ../src/goabackend/goaexchangeprovider.c:779 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1310 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +#: ../src/goabackend/goakerberosprovider.c:1155 +#: ../src/goabackend/goalastfmprovider.c:642 +#: ../src/goabackend/goalastfmprovider.c:808 +#: ../src/goabackend/goamediaserverprovider.c:459 +#: ../src/goabackend/goaoauth2provider.c:1033 +#: ../src/goabackend/goaoauthprovider.c:862 +#: ../src/goabackend/goaowncloudprovider.c:696 +#: ../src/goabackend/goaowncloudprovider.c:910 +#: ../src/goabackend/goatelepathyprovider.c:460 +#: ../src/goabackend/goatelepathyprovider.c:509 +#: ../src/goabackend/goatelepathyprovider.c:677 +#, c-format +msgid "Dialog was dismissed" +msgstr "O diálogo foi fechado" + +#: ../src/goabackend/goaexchangeprovider.c:622 +#: ../src/goabackend/goaexchangeprovider.c:807 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1337 +#: ../src/goabackend/goaimapsmtpprovider.c:1414 +#: ../src/goabackend/goalastfmprovider.c:676 +#: ../src/goabackend/goalastfmprovider.c:827 +#: ../src/goabackend/goaowncloudprovider.c:738 +#: ../src/goabackend/goaowncloudprovider.c:931 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "O diálogo foi fechado (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:635 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:751 +msgid "_Ignore" +msgstr "_Ignorar" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:826 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1356 +#: ../src/goabackend/goaimapsmtpprovider.c:1433 +#: ../src/goabackend/goakerberosprovider.c:1262 +#: ../src/goabackend/goalastfmprovider.c:688 +#: ../src/goabackend/goalastfmprovider.c:844 +#: ../src/goabackend/goaowncloudprovider.c:756 +#: ../src/goabackend/goaowncloudprovider.c:950 +msgid "_Try Again" +msgstr "_Tentar novamente" + +#: ../src/goabackend/goaexchangeprovider.c:645 +#: ../src/goabackend/goaexchangeprovider.c:819 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Erro ao ligar ao servidor Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:77 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:216 +#: ../src/goabackend/goaflickrprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:190 +#: ../src/goabackend/goagoogleprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:196 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "Esperado estado 200 ao pedir a sua identidade, obtido o estado %d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:235 +#: ../src/goabackend/goafacebookprovider.c:247 +#: ../src/goabackend/goafacebookprovider.c:260 +#: ../src/goabackend/goaflickrprovider.c:203 +#: ../src/goabackend/goaflickrprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:225 +#: ../src/goabackend/goaflickrprovider.c:235 +#: ../src/goabackend/goaflickrprovider.c:245 +#: ../src/goabackend/goafoursquareprovider.c:209 +#: ../src/goabackend/goafoursquareprovider.c:221 +#: ../src/goabackend/goafoursquareprovider.c:232 +#: ../src/goabackend/goafoursquareprovider.c:243 +#: ../src/goabackend/goafoursquareprovider.c:254 +#: ../src/goabackend/goafoursquareprovider.c:265 +#: ../src/goabackend/goagoogleprovider.c:245 +#: ../src/goabackend/goagoogleprovider.c:257 +#: ../src/goabackend/goalastfmprovider.c:211 +#: ../src/goabackend/goalastfmprovider.c:220 +#: ../src/goabackend/goalastfmprovider.c:230 +#: ../src/goabackend/goalastfmprovider.c:237 +#: ../src/goabackend/goalastfmprovider.c:505 +#: ../src/goabackend/goalastfmprovider.c:514 +#: ../src/goabackend/goalastfmprovider.c:529 +#: ../src/goabackend/goalastfmprovider.c:536 +#: ../src/goabackend/goaoauth2provider.c:699 +#: ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 ../src/goabackend/goautils.c:153 +#: ../src/goabackend/goawindowsliveprovider.c:215 +#: ../src/goabackend/goawindowsliveprovider.c:227 +#: ../src/goabackend/goawindowsliveprovider.c:239 +#, c-format +msgid "Could not parse response" +msgstr "Impossível processar resposta" + +#: ../src/goabackend/goaflickrprovider.c:78 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:322 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "A sua data de sistema é inválida. Verifique a sua data e hora." + +#: ../src/goabackend/goafoursquareprovider.c:78 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:77 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "Serviço indisponível" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goalastfmprovider.c:522 +#: ../src/goabackend/goasmtpauth.c:113 ../src/goabackend/goautils.c:584 +#, c-format +msgid "Authentication failed" +msgstr "Falha na autenticação" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "O servidor não suporta PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:816 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "O servidor não suporta STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP e SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s inválida para o utilizador \"%s\" (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Encriptação" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Nenhuma" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS após ligação" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL numa porta dedicada" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Nome" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "_Servidor IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "_Servidor SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1366 +msgid "_Forward" +msgstr "_Seguinte" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1349 +msgid "Error connecting to IMAP server" +msgstr "Erro ao ligar ao servidor IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1426 +msgid "Error connecting to SMTP server" +msgstr "Erro ao ligar ao servidor SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1525 +msgid "E-mail" +msgstr "Email" + +#: ../src/goabackend/goaimapsmtpprovider.c:1529 +msgid "Name" +msgstr "Nome" + +#: ../src/goabackend/goaimapsmtpprovider.c:1539 +#: ../src/goabackend/goaimapsmtpprovider.c:1543 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1554 +#: ../src/goabackend/goaimapsmtpprovider.c:1558 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:99 +msgid "Enterprise Login (Kerberos)" +msgstr "Autenticação empresarial (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:293 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "Criação de 'ticketis' está desativa nesta conta" + +#: ../src/goabackend/goakerberosprovider.c:318 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"Impossível encontrar as credenciais gravadas do \"%s\" principal no chaveiro" + +#: ../src/goabackend/goakerberosprovider.c:331 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "Impossível encontrar a senha do principal \"%s\" nas credenciais" + +#: ../src/goabackend/goakerberosprovider.c:726 +msgid "_Domain" +msgstr "_Domínio" + +#: ../src/goabackend/goakerberosprovider.c:727 +msgid "Enterprise domain or realm name" +msgstr "Domínio empresarial ou nome do reino" + +#: ../src/goabackend/goakerberosprovider.c:963 +#: ../src/goaidentity/goaidentityservice.c:1126 +msgid "Log In to Realm" +msgstr "Iniciar sessão no reino" + +#: ../src/goabackend/goakerberosprovider.c:964 +msgid "Please enter your password below." +msgstr "Introduza a sua senha abaixo." + +#: ../src/goabackend/goakerberosprovider.c:965 +msgid "Remember this password" +msgstr "Recordar esta senha" + +#: ../src/goabackend/goakerberosprovider.c:1107 +#, c-format +msgid "The domain is not valid" +msgstr "O domínio é inválido" + +#: ../src/goabackend/goakerberosprovider.c:1257 +msgid "Error connecting to enterprise identity server" +msgstr "Erro ao ligar ao servidor de identificação empresarial" + +#: ../src/goabackend/goakerberosprovider.c:1524 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Serviço de identificação devolveu chave inválida" + +#: ../src/goabackend/goalastfmprovider.c:64 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:690 +#: ../src/goabackend/goalastfmprovider.c:838 +msgid "Error connecting to Last.fm" +msgstr "Erro ao ligar a Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:77 +msgid "Media Server" +msgstr "Servidor multimédia" + +#: ../src/goabackend/goamediaserverprovider.c:355 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Pode adicionar conteúdo pessoal às suas aplicações através de uma conta num " +"servidor de multimédia." + +#: ../src/goabackend/goamediaserverprovider.c:368 +msgid "Available Media Servers" +msgstr "Servidores multimédia disponíveis" + +#: ../src/goabackend/goamediaserverprovider.c:399 +msgid "No media servers found" +msgstr "Não foram encontrados servidores" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Esperado estado 200 ao pedir o bloco de acesso, obtido o estado %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:841 +msgid "Authorization response: " +msgstr "A resposta de autorização foi: " + +#: ../src/goabackend/goaoauth2provider.c:911 +#, c-format +msgid "Authorization response: %s" +msgstr "A resposta de autorização foi: %s" + +#: ../src/goabackend/goaoauth2provider.c:1059 +#: ../src/goabackend/goaoauthprovider.c:893 +msgid "Error getting an Access Token: " +msgstr "Erro ao obter um símbolo de acesso: " + +#: ../src/goabackend/goaoauth2provider.c:1074 +#: ../src/goabackend/goaoauthprovider.c:906 +msgid "Error getting identity: " +msgstr "Erro ao obter identidade: " + +#: ../src/goabackend/goaoauth2provider.c:1291 +#: ../src/goabackend/goaoauthprovider.c:1210 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Foi pedido para iniciar sessão como %s mas iniciou sessão como %s" + +#: ../src/goabackend/goaoauth2provider.c:1453 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Credenciais não contêm \"access_token\"" + +#: ../src/goabackend/goaoauth2provider.c:1492 +#: ../src/goabackend/goaoauthprovider.c:1438 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Falha ao atualizar o símbolo de acesso (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Não foram recebidos os cabeçalhos \"access_token\" ou \"access_token_secret" +"\" na resposta" + +#: ../src/goabackend/goaoauthprovider.c:774 +msgid "Error getting a Request Token: " +msgstr "Erro ao obter um símbolo de pedido: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:807 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Esperado estado 200 ao obter um símbolo de pedido, obtido o estado %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:824 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Não foram recebidos os cabeçalhos \"request_token\" ou \"request_token_secret" +"\" na resposta" + +#: ../src/goabackend/goaoauthprovider.c:1394 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Credenciais não contêm \"access_token\" ou \"access_token_secret\"" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:761 +#: ../src/goabackend/goaowncloudprovider.c:943 +msgid "Error connecting to ownCloud server" +msgstr "Erro ao ligar ao servidor ownCloud" + +#: ../src/goabackend/goapocketprovider.c:70 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:219 +#, c-format +msgid "No username or access_token" +msgstr "Sem nome de utilizador ou símbolo de acesso" + +#: ../src/goabackend/goaprovider.c:107 +msgid "_Mail" +msgstr "_Correio" + +#: ../src/goabackend/goaprovider.c:112 +msgid "Cale_ndar" +msgstr "Cale_ndário" + +#: ../src/goabackend/goaprovider.c:117 +msgid "_Contacts" +msgstr "C_ontactos" + +#: ../src/goabackend/goaprovider.c:122 +msgid "C_hat" +msgstr "C_hat" + +#: ../src/goabackend/goaprovider.c:127 +msgid "_Documents" +msgstr "_Documentos" + +#: ../src/goabackend/goaprovider.c:132 +msgid "M_usic" +msgstr "Mú_sica" + +#: ../src/goabackend/goaprovider.c:137 +msgid "_Photos" +msgstr "_Fotografias" + +#: ../src/goabackend/goaprovider.c:142 +msgid "_Files" +msgstr "_Ficheiros" + +#: ../src/goabackend/goaprovider.c:147 +msgid "Network _Resources" +msgstr "_Recursos de rede" + +#: ../src/goabackend/goaprovider.c:152 +msgid "_Read Later" +msgstr "Le_r mais tarde" + +#: ../src/goabackend/goaprovider.c:157 +msgid "Prin_ters" +msgstr "I_mpressoras" + +#: ../src/goabackend/goaprovider.c:162 +msgid "_Maps" +msgstr "_Mapas" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:563 +msgid "Use for" +msgstr "Usar para" + +#: ../src/goabackend/goaprovider.c:823 +msgid "Account is disabled" +msgstr "A conta está inativa" + +#: ../src/goabackend/goaprovider.c:846 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync não está implementado no tipo %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS indisponível" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail indisponível" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "Falha ao processar o endereço eletrónico" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:260 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "Autenticação SMTP impossível sem um domínio" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:299 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "Impossível encontrar a senha smtp nas credenciais" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:310 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "Autenticação SMTP impossível sem uma senha" + +#: ../src/goabackend/goasmtpauth.c:672 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Mecanismo de autenticação desconhecido" + +#: ../src/goabackend/goatelepathyprovider.c:181 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Conta de diálogo do Telepathy não encontrada" + +#: ../src/goabackend/goatelepathyprovider.c:381 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "Falha ao iniciar o cliente GOA" + +#: ../src/goabackend/goatelepathyprovider.c:421 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Falha ao criar um ambiente de utilizador para %s" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "Definições de ligação" + +#: ../src/goabackend/goatelepathyprovider.c:641 +msgid "Personal Details" +msgstr "Detalhes pessoais" + +#: ../src/goabackend/goatelepathyprovider.c:647 +msgid "_OK" +msgstr "_Aceitar" + +#: ../src/goabackend/goatelepathyprovider.c:832 +msgid "Cannot save the connection parameters" +msgstr "Impossível gravar os parâmetros de ligação" + +#: ../src/goabackend/goatelepathyprovider.c:845 +msgid "Cannot save your personal information on the server" +msgstr "Impossível gravar a sua informação pessoal no servidor" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:871 +msgid "_Connection Settings" +msgstr "Definições de _Ligação" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:875 +msgid "_Personal Details" +msgstr "Detalhes _Pessoais" + +#: ../src/goabackend/goautils.c:120 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Já existe uma conta %s para %s" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:170 +#, c-format +msgid "%s account" +msgstr "Conta %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:214 +msgid "Failed to delete credentials from the keyring" +msgstr "Falha ao apagar as credenciais do chaveiro" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:266 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Falha ao obter as credenciais do chaveiro" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:276 +msgid "No credentials found in the keyring" +msgstr "Nenhumas credenciais encontradas no chaveiro" + +#: ../src/goabackend/goautils.c:289 +msgid "Error parsing result obtained from the keyring: " +msgstr "Erro ao processar o resultado obtido do chaveiro: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:332 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credenciais GOA %s para a identidade %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:349 +msgid "Failed to store credentials in the keyring" +msgstr "Falha ao armazenar as credenciais no chaveiro" + +#: ../src/goabackend/goautils.c:571 +msgid "Cannot resolve hostname" +msgstr "Impossível resolver o nome de máquina" + +#: ../src/goabackend/goautils.c:575 +msgid "Cannot resolve proxy hostname" +msgstr "Impossível resolver o nome de máquina do proxy" + +#: ../src/goabackend/goautils.c:580 +msgid "Cannot find WebDAV endpoint" +msgstr "Impossível encontrar o ponto final de WebDAV" + +#: ../src/goabackend/goautils.c:589 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Código: %u - resposta inesperada do servidor" + +#: ../src/goabackend/goautils.c:605 +msgid "The signing certificate authority is not known." +msgstr "A autoridade de certificação que assina é desconhecida." + +#: ../src/goabackend/goautils.c:609 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"O certificado não coincide com a identidade esperada do site do qual foi " +"obtido." + +#: ../src/goabackend/goautils.c:614 +msgid "The certificate’s activation time is still in the future." +msgstr "A data de ativação do certificado é no futuro." + +#: ../src/goabackend/goautils.c:618 +msgid "The certificate has expired." +msgstr "O certificado expirou." + +#: ../src/goabackend/goautils.c:622 +msgid "The certificate has been revoked." +msgstr "O certificado foi revogado." + +#: ../src/goabackend/goautils.c:626 +msgid "The certificate’s algorithm is considered insecure." +msgstr "O algoritmo do certificado é considerado inseguro." + +#: ../src/goabackend/goautils.c:630 +msgid "Invalid certificate." +msgstr "Certificado inválido." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:665 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "Impossível encontrar %s com a identidade \"%s\" nas credenciais" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "A carregar “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Microsoft Account" +msgstr "Conta Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:378 +msgid "initial secret passed before secret key exchange" +msgstr "segredo inicial transmitido antes da troca de chaves de segredo" + +#: ../src/goaidentity/goaidentityservice.c:574 +msgid "Initial secret key is invalid" +msgstr "Chave secreta inicial é inválida" + +#: ../src/goaidentity/goaidentityservice.c:1131 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "O reino de rede %s requer alguma informação para iniciar a sua sessão." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "Impossível encontrar a identidade na cache de credenciais: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "Impossível encontrar credenciais de identidade na cache: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Impossível percorrer as credenciais de identidade na cache: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"Impossível terminar de percorrer as credenciais de identidade na cache: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Não foi encontrada nenhuma identificação associada" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Impossível criar cache de credenciais: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "Impossível inicializar a cache de credenciais: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "Impossível armazenar as novas credenciais na cache de credenciais: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Impossível renovar a identidade: não tem uma sessão iniciada" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Impossível renovar a identidade: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "Impossível obter novas credenciais para renovar a identidade %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Impossível apagar a identidade: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Impossível encontrar a identidade" + +#: ../src/goaidentity/goakerberosidentitymanager.c:840 +msgid "Could not create credential cache for identity" +msgstr "Impossível criar a cache de credenciais para a identidade" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "Impossível encontrar a senha com a identidade \"%s\" nas credenciais" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "Esperado o estado 200 ao pedir o nome, obtido o estado %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Cole o código de autorização obtido na página de " +#~ "autorização:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Cole o bloco obtido na página de autorização:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Tempo" + +#~ msgid "Time to fire" +#~ msgstr "Tempo para despoletar" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Falha ao procurar elemento Autodiscover" + +#~ msgid "Failed to find Account element" +#~ msgstr "Falha ao procurar elemento Account" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "Esperado estado 200 ao pedir o guid, foi recebido o estado %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Incapaz de encontrar a senha-imap com a identidade `%s' nas credenciais" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Senha-imap inválida com o utilizador `%s' (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Incapaz de encontrar a senha-smtp com a identidade `%s' nas credenciais" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Senha-smtp inválida com o utilizador `%s' (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Erro ao processar a resposta como JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Não foi encontrado o membro \"id\" nos dados JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"email\" nos dados JSON" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Não foi encontrado o membro user nos dados JSON" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Não foi encontrado o membro user.id nos dados JSON" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Não foi encontrado o membro user.username nos dados JSON" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Não foi encontrado o membro user.username._content nos dados JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Não foi encontrado o elemento \"access_token\" nos dados não-JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Não foi encontrado o elemento \"access_token\" nos dados JSON" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"id_str\" nos dados JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"screen_name\" nos dados JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Não foi encontrado o membro \"email\" nos dados JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"guid\" nos dados JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"value\" nos dados JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Erro ao processar a resposta \"usercard\" como JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"profile\" nos dados JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"nickname\" nos dados JSON" + +#~ msgid "Online Accounts" +#~ msgstr "Contas Online" + +#~ msgid "An online account needs attention" +#~ msgstr "Uma conta online requer atenção" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Abrir Contas Online..." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Credenciais não foram encontradas no chaveiro (%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Erro ao armazenar as credenciais no chaveiro (%s, %d): " + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Nova Conta Microsoft Exchange" + +#~ msgid "Chat" +#~ msgstr "Diálogo" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"dados\" nos dados JSON" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Nova Autenticação Empresarial (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "Adicionar %s" + +#~ msgid "Refresh %s" +#~ msgstr "Atualizar %s" + +#~ msgid "Domain Administrator Login" +#~ msgstr "Iniciar Sessão de Administrador do Domínio" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "De forma a utilizar identificação empresarial, o computador tem de estar " +#~ "registado no domínio. Peça ao administrador da sua rede para introduzir " +#~ "aqui a sua senha de domínio." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "De forma a utilizar identificação empresarial, o computador tem de estar " +#~ "registado no domínio. Peça ao administrador da sua rede para introduzir " +#~ "aqui o seu utilizador de domínio." + +#~ msgid "No such domain or realm found" +#~ msgstr "Não foi encontrado o domínio ou rede" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Incapaz de iniciar sessão como %s no domínio %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Senha inválida, tente novamente" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Incapaz de se ligar ao domínio %s: %s" + +#~ msgid "Email Address" +#~ msgstr "Endereço de Email" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Já existe uma conta para a identidade %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Não foi encontrado o elemento \"nome\" nos dados JSON" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo new file mode 100644 index 0000000..23ab467 Binary files /dev/null and b/po/pt_BR.gmo differ diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..4386c35 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,962 @@ +# Brazilian Portuguese translation for gnome-online-accounts. +# Copyright (C) 2018 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Djavan Fagundes , 2011, 2012. +# Fábio Nogueira , 2012. +# Avelino , 2013. +# Felipe Braga , 2015. +# Gustavo Marques , 2015. +# Rafael Fontenelle , 2013, 2014, 2016, 2017. +# Enrico Nicoletto , 2013, 2014, 2015, 2016, 2018. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-02-07 20:44-0200\n" +"Last-Translator: Enrico Nicoletto \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.6\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Lista de provedores que possuem permissão para serem carregados" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Uma lista de strings representando os provedores que possuem permissão para " +"serem carregados (por padrão: todos, \"all\"). Isto é analisado somente na " +"inicialização." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Falha ao localizar um provedor para: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Propriedade IsLocked não foi definida para a conta" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Propriedade ProviderType não foi definida para a conta" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Falha ao analisar a resposta XML da descoberta automática" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Falha ao localizar o elemento XML “%s”" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Falha ao localizar ASUrl e OABUrl na resposta da auto-detecção" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Senha inválida para o nome de usuário “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "Sen_ha" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalizado" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Nome de usuário" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Servidor" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Cancelar" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "C_onectar" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Conectando…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "O diálogo foi fechado" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "O diálogo foi fechado (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorar" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Tentar novamente" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Erro ao conectar ao servidor do Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Era esperado status 200 ao solicitar sua identidade, ao invés disso obteve-" +"se status %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Não foi possível analisar resposta" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"A hora do seu sistema não é válida. Verifique suas configurações de data e " +"hora." + +# Nome do aplicativo Foursquare - sem tradução +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Serviço não disponível" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Autenticação falhou" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Servidor não tem suporte a PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "O servidor não possui suporte a STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP e SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s é inválido para o nome de usuário “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Criptografia" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Nenhuma" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS após conectar" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL em uma porta dedicada" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Nome" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Servidor IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Servidor SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Avançar" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Erro ao conectar ao servidor de IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Erro ao conectar ao servidor de SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Nome" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Início de sessão corporativa (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "A emissão de tickets está desabilitada para esta conta" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Não foi possível localizar credenciais salvas para o “%s” principal no " +"chaveiro" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"Não foi possível localizar a senha para o “%s” principal nas credenciais" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "A operação foi cancelada" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Iniciar sessão no domínio" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Por favor, digite sua senha abaixo." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Lembrar esta senha" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Erro ao conectar ao servidor de identidade corporativo" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "O serviço de identidade retornou uma chave inválida" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Erro ao conectar ao Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Servidor de mídia" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Conteúdo pessoal pode ser adicionado a seus aplicativos através de uma conta " +"de servidor de mídia." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Servidores de mídia disponíveis" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nenhum servidor de mídia localizado" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Era esperado status 200 ao solicitar token de acesso, ao invés disso obteve-" +"se status %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Resposta de autorização: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Resposta de autorização: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Erro ao obter um token de acesso: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Erro ao obter identidade: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"Solcitou-se iniciar sessão como %s, porém a sessão foi iniciada como %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "As credenciais não contêm access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Falha ao atualizar o token de acesso (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Faltando cabeçalhos access_token ou access_token_secret em resposta" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Erro ao obter uma token de solicitação: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Era esperado status 200 para obter um token de solicitação, ao invés disso " +"obteve-se status %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Faltando cabeçalhos request_token ou request_token_secret na resposta" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "As credenciais não contêm access_token ou access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Erro ao conectar ao servidor do ownCloud" + +# http://getpocket.com/developer/docs/authentication +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nenhum nome de usuário ou access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "Co_rreio" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Cale_ndário" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "C_ontatos" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Bate-papo" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documentos" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "Mú_sica" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotos" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Arquivos" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Recursos de rede" + +# Segui a ideia da opção de "ver mais tarde" do youtube. -- Rafael +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Ler mais tarde" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Im_pressoras" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapas" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Tar_efas" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Usar para" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "A conta está desabilitada" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Erro desconhecido" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync não está implementada no tipo %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS não está disponível" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Mecanismo de autenticação desconhecido" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Não foi localizada conta de bate-papo do Telepathy" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Ocorreu falha ao criar uma interface de usuário para %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Configurações de conexão" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Detalhes pessoais" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Não foi possível salvar os parâmetros da conexão" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Não foi possível salvar suas informações pessoais no servidor" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Configurações de conexão" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Detalhes _pessoais" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Erro ao iniciar sessão com a conta" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "As credenciais expiraram" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Autentique-se para habilitar esta conta." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Au_tenticar" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Uma conta %s já existe para %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Conta do(a) %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Falha ao excluir as credenciais do chaveiro" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Falha ao recuperar as credenciais do chaveiro" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nenhuma credencial encontrada no chaveiro" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Erro ao analisar o resultado obtido do chaveiro: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credenciais GOA %s para a identidade %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Falha ao armazenar credenciais no chaveiro" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Não foi possível resolver o nome de máquina" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Não foi possível resolver o nome de máquina do proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Não foi possível localizar o ponto de extremidade WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Código: %u — Resposta inesperada do servidor" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "A autoridade certificadora assinante não é conhecida." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"O certificado não corresponde à identidade esperada do site de onde foi " +"obtido." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "O horário da ativação do certificado ainda está no futuro." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "O certificado expirou." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "O certificado foi revogado." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "O algoritmo do certificado é considerado inseguro." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Certificado inválido." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Não foi possível localizar %s com a identidade “%s” nas credenciais" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Carregando “%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "A chave secreta inicial é inválida" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "O domínio de rede %s precisa de algumas informações para inscrevê-lo." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Não foi possível localizar identidade no cache de credenciais: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Não foi possível localizar as credenciais de identidade no cache: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Não foi possível filtrar credenciais de identidade no cache: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Não foi possível finalizar o filtro por credenciais de identidade no cache: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nenhuma identificação associada foi localizada" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Não foi possível criar o cache de credenciais: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Não foi possível inicializar o cache de credenciais: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"Não foi possível armazenar as novas credenciais no cache de credenciais: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Não foi possível renovar identidade: não inscrito" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Não foi possível renovar identidade: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Não foi possível obter novas credenciais para renovar identidade %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Não foi possível apagar identidade: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Não foi possível localizar identidade" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Não foi possível criar cache de credencial para a identidade" + +#~ msgid "_Domain" +#~ msgstr "_Domínio" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Domínio corporativo ou nome de domínio" + +#~ msgid "The domain is not valid" +#~ msgstr "O domínio não é válido" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail não está disponível" + +#~ msgid "Failed to parse email address" +#~ msgstr "Falha ao analisar endereço de e-mail" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Não foi possível realizar autenticação SMTP sem um domínio" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Senha SMTP não foi localizada nas credenciais" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Não foi possível realizar autenticação SMTP sem uma senha" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "segredo inicial foi passado antes da troca de chave secreta" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Ocorreu falha ao iniciar um cliente GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "Não foi possível localizar a senha com identidade \"%s\" nas credenciais" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Era esperado um status 200 ao solicitar nome, ao invés disso obteve-se " +#~ "status %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Cole o código de autorização obtido a partir da página de " +#~ "autorização:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Cole o token obtido a partir da página de autorização:" + +#~ msgid "Time" +#~ msgstr "Hora" + +#~ msgid "Time to fire" +#~ msgstr "Hora para acionar" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Falha ao localizar o elemento de descoberta automática" + +#~ msgid "Failed to find Account element" +#~ msgstr "Falha ao localizar o elemento de conta" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Era esperado status 200 ao solicitar guid, ao invés disso obteve-se " +#~ "status %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Senha IMAP não localizada com identidade \"%s\" nas credenciais" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Senha IMAP com o nome de usuário \"%s\" (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Senha SMTP não localizada com identidade \"%s\" nas credenciais" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Senha SMTP inválida com o nome de usuário \"%s\" (%s, %d): " diff --git a/po/quot.sed b/po/quot.sed new file mode 100644 index 0000000..0122c46 --- /dev/null +++ b/po/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin new file mode 100644 index 0000000..2436c49 --- /dev/null +++ b/po/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/ro.gmo b/po/ro.gmo new file mode 100644 index 0000000..c292302 Binary files /dev/null and b/po/ro.gmo differ diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..a0ea2a4 --- /dev/null +++ b/po/ro.po @@ -0,0 +1,1011 @@ +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# laurion <me_lawr@yahoo.com>, 2011. +# Ion Laurențiu Cristian , 2011. +# Lucian Adrian Grijincu , 2011. +# Daniel Șerbănescu , 2015, 2018. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-05 18:19+0000\n" +"PO-Revision-Date: 2018-01-08 19:03+0200\n" +"Last-Translator: Daniel Șerbănescu \n" +"Language-Team: Gnome Romanian Translation Team\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);;\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Lista furnizorilor cu permisiunea de a fi încărcați" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"O listă de șiruri reprezentând furnizori cu permisiunea de a fi încărcați " +"(implicit: 'toți'). Aceasta este evaluată numai la pornire." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Nu s-a putut găsi un furnizor pentru: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Proprietatea IsLocked a fost stabilită pentru cont" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Proprietatea ProviderType nu este stabilită pentru cont" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Parsare răspunsului de autodescoperire XML a eșuat" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +#| msgid "Failed to find ‘%s’ element" +msgid "Failed to find “%s” element" +msgstr "Eșec la găsirea elementului „%s”" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Eșec la găsirea ASUrl și OABUrl în răspunsul de autodescoperire" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:299 +#, c-format +#| msgid "Invalid password with username ‘%s’ (%s, %d): " +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Parolă nevalidă cu utilizatorul „%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:655 +msgid "_E-mail" +msgstr "_Email" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:675 +#: src/goabackend/goaimapsmtpprovider.c:695 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Parolă" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Personalizat" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:674 +#: src/goabackend/goaimapsmtpprovider.c:694 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "_Nume de utilizator" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:707 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:552 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Anulează" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "C_onectează" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:723 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Se conectează…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:873 +#: src/goabackend/goaimapsmtpprovider.c:908 +#: src/goabackend/goaimapsmtpprovider.c:1000 +#: src/goabackend/goaimapsmtpprovider.c:1257 +#: src/goabackend/goaimapsmtpprovider.c:1333 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:671 +#: src/goabackend/goaowncloudprovider.c:891 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Fereastra de dialog a fost închisă" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:941 +#: src/goabackend/goaimapsmtpprovider.c:1038 +#: src/goabackend/goaimapsmtpprovider.c:1284 +#: src/goabackend/goaimapsmtpprovider.c:1361 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:716 +#: src/goabackend/goaowncloudprovider.c:918 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Fereastra de dialog a fost închisă (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:954 +#: src/goabackend/goaimapsmtpprovider.c:1051 +#: src/goabackend/goaowncloudprovider.c:729 +msgid "_Ignore" +msgstr "_Ignoră" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:959 +#: src/goabackend/goaimapsmtpprovider.c:1056 +#: src/goabackend/goaimapsmtpprovider.c:1303 +#: src/goabackend/goaimapsmtpprovider.c:1380 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:734 +#: src/goabackend/goaowncloudprovider.c:937 +msgid "_Try Again" +msgstr "Î_ncearcă din nou" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Eroare la conectarea la serverul Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Status 200 așteptat la cererea identității dumneavoastră, dar în loc s-a " +"primit statusul %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Nu s-a putut parsa răspunsul" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Timpul sistemului este nevalid. Verificați configurările timpului și datei." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:89 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Serviciul nu ete disponibil" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:109 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Autentificare eșuată" + +#: src/goabackend/goaimapauthlogin.c:134 +msgid "Server does not support PLAIN" +msgstr "Serverul nu suportă PLAIN" + +#: src/goabackend/goaimapauthlogin.c:186 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Serverul nu suportă STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP și SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:335 +#: src/goabackend/goaimapsmtpprovider.c:386 +#, c-format +#| msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s nevalid cu numele de utilizator „%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:572 +msgid "_Encryption" +msgstr "Criptar_e" + +#: src/goabackend/goaimapsmtpprovider.c:575 +msgid "None" +msgstr "Nespecificat" + +#: src/goabackend/goaimapsmtpprovider.c:578 +msgid "STARTTLS after connecting" +msgstr "STARTTLS după conectare" + +#: src/goabackend/goaimapsmtpprovider.c:581 +msgid "SSL on a dedicated port" +msgstr "SSL pe un port dedicat" + +#: src/goabackend/goaimapsmtpprovider.c:656 +msgid "_Name" +msgstr "_Nume" + +#: src/goabackend/goaimapsmtpprovider.c:673 +msgid "IMAP _Server" +msgstr "_Server IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:693 +msgid "SMTP _Server" +msgstr "_Server SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:708 +#: src/goabackend/goaimapsmtpprovider.c:980 +#: src/goabackend/goaimapsmtpprovider.c:1313 +msgid "_Forward" +msgstr "Î_naintează" + +#: src/goabackend/goaimapsmtpprovider.c:964 +#: src/goabackend/goaimapsmtpprovider.c:1296 +msgid "Error connecting to IMAP server" +msgstr "Eroare de conectare la serverul IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1061 +#: src/goabackend/goaimapsmtpprovider.c:1373 +msgid "Error connecting to SMTP server" +msgstr "Eroare de conectare la serverul SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1484 +msgid "E-mail" +msgstr "Email" + +#: src/goabackend/goaimapsmtpprovider.c:1488 +msgid "Name" +msgstr "Nume" + +#: src/goabackend/goaimapsmtpprovider.c:1498 +#: src/goabackend/goaimapsmtpprovider.c:1502 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1513 +#: src/goabackend/goaimapsmtpprovider.c:1517 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Autentificare de întreprindere (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +#| msgid "IsLocked property is set for account" +msgid "Ticketing is disabled for account" +msgstr "Avizarea este dezactivată pentru acest cont" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +#| msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Nu s-au găsit credențiale salvate pentru principalul „%s” în inelul de chei" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +#| msgid "Did not find password for principal ‘%s’ in credentials" +msgid "Did not find password for principal “%s” in credentials" +msgstr "Nu s-a găsit parola pentru principalul „%s” în credențiale" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Operațiunea a fost anulată" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Autentificare la domeniu" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Introduceți parola dedesubt." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Memorează parola" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Eroare la conectarea la serverul de identități al întreprinderii" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Serviciul de identități a returnat o cheie invalidă" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +#| msgid "Error connecting to IMAP server" +msgid "Error connecting to Last.fm" +msgstr "Eroare de conectare Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Server media" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Conținutul personal poate fi adăugat aplicațiilor dumneavoastră printr-un " +"cont la server media." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Servere media disponibile" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nu s-au găsit servere media" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Status 200 așteptat la cererea identificatorului de acces, dar în loc s-a " +"primit statusul %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Răspuns de autorizare:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Răspuns de autorizare: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Eroare la primirea identificatorului de acces: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Eroare la primirea identității: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "S-a cerut autentificarea ca %s, dar s-a autentificat ca %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Credențialele nu conțin „access_token”" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Reîmprospătarea identificatorului de acces a eșuat (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Lipsesc din răspuns antetele pentru „access_token” sau „access_token_secret”" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Eroare la primirea identificatorului de cerere:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Status 200 așteptat la cererea identificatorului de cerere, dar în loc s-a " +"primit statusul %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Lipsesc din răspuns antetele pentru „request_token” sau " +"„request_token_secret”" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Credențialele nu conțin „access_token” sau „access_token_secret”" + +#: src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:739 +#: src/goabackend/goaowncloudprovider.c:930 +msgid "Error connecting to ownCloud server" +msgstr "Eroare de conectare la serverul ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Niciun nume de utilizator sau access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "E_mail" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Cale_ndar" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Contacte" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "C_hat" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Documente" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_uzică" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografii" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Fișiere" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Resursele rețelei" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Citește mai tâ_rziu" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Impriman_te" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Hărți" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Utilizează pentru" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Contul este dezactivat" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Eroare necunoscută" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "„ensure_credentials_sync” nu este implementată pe tipul %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS nu este disponibil" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Mecanism de autentificare necunoscut" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Contul de chat Telepathy nu a fost găsit" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Eșec la crearea unei interfețe pentru %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Configurări de conexiune" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Detalii personale" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Nu se pot salva parametrii de conexiune" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Nu se pot salva datele personale pe server" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Configurări de conexiune" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Detalii _Personale" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Eroare la autentificare" + +#: src/goabackend/goautils.c:140 +#| msgid "The certificate has expired." +msgid "Credentials have expired" +msgstr "Credențialele au expirat" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Autentificați-vă pentru a activa acest cont." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Autentifica_re" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Un cont %s există deja pentru %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +#| msgid "%s account" +msgid "%s Account" +msgstr "cont %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Ștergerea credențialelor din inelul de chei a eșuat" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Preluarea credențialelor din inelul de chei a eșuat" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nu s-au găsit credențialele în inelul de chei" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Eroare la parsarea rezultatului obținut de la inelul de chei: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Credențialele GOA %s pentru identitatea %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Stocarea credențialelor în inelul de chei a eșuat" + +#: src/goabackend/goautils.c:865 +#| msgid "Cannot save the connection parameters" +msgid "Cannot resolve hostname" +msgstr "Nu s-a putut rezolva numele gazdei" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Nu s-a putut rezolva proxy-ul gazdei" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Nu s-a putut găsi punctul final WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Cod: %u — Răspuns neașteptat de la server" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Autoritatea de certificare semnatară nu este cunoscută." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Certificatul nu se potrivește identității așteptate a sitului de unde a fost " +"preluată." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Timpul de activare al certificatului este încă în viitor." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Certificatul a expirat." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Certificatul a fost anulat." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algoritmul certificatului este considerat nesigur." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Certificat nevalid." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +#| msgid "Did not find %s with identity ‘%s’ in credentials" +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Nu s-a găsit %s cu identitatea „%s” în credențiale" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Se încarcă „%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +#| msgid "Microsoft Account" +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Cheia secretă inițială este nevalidă" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Domeniul rețelei %s necesită niște informații pentru a vă autentifica." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +#| msgid "Could not find identity in credential cache: %k" +msgid "Could not find identity in credential cache: " +msgstr "" +"Nu s-a putut găsi identitatea în spațiul de prestocare al credențialelor:" + +#: src/goaidentity/goakerberosidentity.c:720 +#| msgid "Could not find identity credentials in cache: %k" +msgid "Could not find identity credentials in cache: " +msgstr "Nu s-a putut găsi credențiale de identitate în spațiul de prestocare: " + +#: src/goaidentity/goakerberosidentity.c:771 +#| msgid "Could not sift through identity credentials in cache: %k" +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"Nu s-a putut examina printre credențialele de identitate în spațiul de " +"prestocare: " + +#: src/goaidentity/goakerberosidentity.c:788 +#| msgid "" +#| "Could not finish up sifting through identity credentials in cache: %k" +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Nu s-a putut finaliza examinarea printre credențialele de identitate în " +"spațiul de prestocare: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nicio identificare asociată găsită" + +#: src/goaidentity/goakerberosidentity.c:1186 +#| msgid "Could not create credential cache: %k" +msgid "Could not create credential cache: " +msgstr "Nu s-a putut creea spațiul de prestocare pentru credențiale: " + +#: src/goaidentity/goakerberosidentity.c:1220 +#| msgid "Could not initialize credentials cache: %k" +msgid "Could not initialize credentials cache: " +msgstr "Nu s-a putut inițializa spațiul de prestocare al credențialelor: " + +#: src/goaidentity/goakerberosidentity.c:1236 +#| msgid "Could not store new credentials in credentials cache: %k" +msgid "Could not store new credentials in credentials cache: " +msgstr "" +"Nu s-a putut stoca noile credențiale în spațiul de prestocare al " +"credențialelor: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nu s-a putut reînnoi identitatea: Neautentificat" + +#: src/goaidentity/goakerberosidentity.c:1546 +#| msgid "Could not renew identity: %k" +msgid "Could not renew identity: " +msgstr "Nu s-a putut reînnoi identitatea: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +#| msgid "Could not get new credentials to renew identity %s: %k" +msgid "Could not get new credentials to renew identity %s: " +msgstr "Nu s-a putut obține credențiale noi pentru a reînnoi identitatea %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +#| msgid "Could not erase identity: %k" +msgid "Could not erase identity: " +msgstr "Nu s-a putut șterge identitatea: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nu s-a putut găsi identitatea" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Nu s-a putut creea spațiul de prestocare pentru identitate" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Nu s-a găsit parola cu identitatea „%s” în credențiale" + +#~ msgid "_Domain" +#~ msgstr "_Domeniu" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Domaniu de întreprindere sau un nume de domeniu" + +#~ msgid "The domain is not valid" +#~ msgstr "Domeniul nu este valid" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail nu este disponibil" + +#~ msgid "Failed to parse email address" +#~ msgstr "Eșec la parsarea adresei de email" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Nu se poate autentifica la SMTP fără un domeniu" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Nu s-a găsit parola SMTP în credențiale" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Nu se poate autentifica la SMTP fără o parolă" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Eșec la inițializarea unui client GOA" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "secretul inițial a fost pasat înaintea schimbului secret de chei" + +#~ msgid "An online account needs attention" +#~ msgstr "Un cont online necesită atenție" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Deschide conturile online..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Eroare la parsarea răspunsului ca JSON: " + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "Nu s-a găsit membrul nume de utilizator în datele JSON" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Nu s-a găsit membrul nume în datele JSON" + +#~ msgid "Chat" +#~ msgstr "Chat" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Nu s-a găsit membrul de date în datele JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Nu s-a găsit membrul email în datele JSON" + +#~ msgid "Email Address" +#~ msgstr "Adresă de email" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Nu s-a găsit „access_token” în datele non-JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Nu s-a găsit „access_token” de acces în datele JSON" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Lipiți codul de autorizare obținut de pe pagina de " +#~ "autorizare:" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Deja există un cont pentru identitatea %s" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "" +#~ "A apărut o eroare la stocarea credențialelor în inelul de chei (%s, %d): " + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Lipiți identificatorul obținut de la pagina de autorizare:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Nu s-a găsit „id_str” în datele JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Nu s-a găsit „screen_name” în datele JSON" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Nu s-a găsit membrul guid în datele JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Nu s-a găsit membrul valoare în datele JSON" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Status 200 așteptat la cererea numelui, dar în loc s-a primit statusul %d " +#~ "(%s)" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Eroare la parsarea răspunsului cardului de utilizator ca JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Nu s-a găsit membrul profil în datele JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Nu s-a găsit membrul pseudonim în datele JSON" diff --git a/po/ru.gmo b/po/ru.gmo new file mode 100644 index 0000000..ceb1b92 Binary files /dev/null and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..20de7cb --- /dev/null +++ b/po/ru.po @@ -0,0 +1,908 @@ +# Russian translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Yuri Myasoedov , 2011, 2012, 2013, 2014. +# Andrew Razumnov , 2014. +# Mihail Gurin , 2014. +# Stas Solovey , 2011, 2012, 2013, 2014, 2015, 2017, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-03-13 19:02+0300\n" +"Last-Translator: Stas Solovey \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 2.0.6\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Список поставщиков, которые разрешены для загрузки" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Список строк, представляющих поставщиков, которые разрешено загружать (по " +"умолчанию: «all» (все)). Это оценивается только при запуске." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Не удалось найти провайдер для: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Для учётной записи установлено свойство IsLocked" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Свойство ProviderType не установлено для учётной записи" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Не удалось разобрать ответ автообнаружения XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Не удалось найти элемент «%s»" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Не удалось найти ASUrl и OABUrl в ответе автообнаружения" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Неверный пароль с именем пользователя «%s» (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-mail" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Пароль" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "П_ользовательский" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "И_мя пользователя" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Сервер" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Отмена" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "_Подключиться" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Подключение…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Диалог отклонён" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Диалог отклонён (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Игнорировать" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "Поп_робовать снова" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Ошибка подключения к серверу Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"При запросе идентификации ожидалось получить код состояния 200, но был " +"получен код %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Не удалось разобрать ответ" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Неправильное системное время. Проверьте параметры даты и времени." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Служба недоступна" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Сбой аутентификации" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Сервер не поддерживает аутентификацию PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Сервер не поддерживает STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP и SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Неверное поле %s с именем пользователя «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Шифрование" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Нет" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS после подключения" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "Порт для SSL" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Имя" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "Сервер _IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "Сервер _SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Далее" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Ошибка подключения к серверу IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Ошибка подключения к серверу SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-mail" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Имя" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Вход в систему (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Выдача билетов отключена для этой учётной записи" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Не удалось найти в связке ключей сохранённые учётные данные для " +"администратора доступа «%s»" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "" +"Не удалось найти в учётных данных пароль для администратора доступа «%s»" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Основной" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Операция была отменена" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Войти в область" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Введите ниже ваш пароль." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Запомнить пароль" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Ошибка подключения к корпоративному серверу идентификации" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Служба идентификации вернула неверный ключ" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Ошибка подключения к Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Медиасервер" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Личный контент можно добавить в ваши приложения через учётную запись на " +"медиасервере." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Доступные медиасерверы" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Медиасерверы не найдены" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"При запросе маркера доступа ожидалось получить код состояния 200, но был " +"получен код %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Ответ на авторизацию: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Ответ на авторизацию: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Ошибка при получении маркера доступа: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Ошибка получения идентификатора: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Вход запрошен от имени %s, но осуществлён от имени %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Учётные данные не содержат access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Сбой при обновлении маркера доступа (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "В ответе отсутствует заголовок access_token или access_token_secret" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Ошибка при получении маркера запроса: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"При запросе маркера запроса ожидалось получить код состояния 200, вместо " +"него был получен код %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "В ответе отсутствует заголовок request_token или request_token_secret" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Учётные данные не содержат contain access_token или access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Ошибка подключения к серверу ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Не указано имя пользователя или access_token" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Почта" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "_Календарь" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "Ко_нтакты" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Чат" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Документы" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "_Музыка" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Фотоснимки" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Файлы" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "_Сетевые ресурсы" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Прочитать позже" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Принтеры" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Карты" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Использовать для" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Учётная запись отключена" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Неизвестная ошибка" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync не реализован в типе %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS недоступен" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Неизвестный механизм аутентификации" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Учётная запись Telepathy не найдена" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Не удалось создать интерфейс пользователя для %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Параметры соединения" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Персональные данные" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Невозможно сохранить параметры соединения" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Невозможно сохранить вашу личную информацию на сервере" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Параметры соединения" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "П_ерсональные данные" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Ошибка при входе в учётную запись" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Истёк срок действия полномочий" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Войдите, чтобы включить эту учётную запись." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Войти" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Учётная запись %s уже существует для %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Учётная запись %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Не удалось удалить учётные данные из связки ключей" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Не удалось получить учётные данные из связки ключей" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Не удалось найти учётные данные в связке ключей" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Ошибка при разборе результатов, полученных из связки ключей: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Учётные данные GOA %s для идентификатора %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Не удалось сохранить учётные данные в связке ключей" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Не удается разрешить имя хоста" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Не удается разрешить имя хоста прокси" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Не удалось найти конечную точку WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Код: %u — неожиданный ответ от сервера" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Неизвестный центр сертификации." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Сертификат, полученный с сайта, не соответствует подлинности сайта." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Время активации сертификата ещё не наступило." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Сертификат устарел." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Сертификат был отозван." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Небезопасный алгоритм сертификата." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Неверный сертификат." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Не удалось найти поле %s с именем пользователя «%s» в учётных данных" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Загрузка «%s»…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Неверный исходный секретный ключ" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Для входа в сетевую область %s требуется некоторая информация." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Не удалось найти идентификатор в кэше учётных данных: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Не удалось найти идентификаторы учётных данных в кэше: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Не удалось просмотреть идентификационные учётные данные в кэше: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Не удалось завершить просмотр идентификационных учётных данных в кэше: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Связанные идентификаторы не найдены" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Не удалось создать кэш учётных данных: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Не удалось инициализировать кэш учётных данных: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Не удалось сохранить учётные данные в кэше: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Не удалось обновить идентификатор: не выполнен вход" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Не удалось обновить идентификатор: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Не удалось получить новые учётные данные для обновления идентификатора %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Не удалось стереть идентификатор: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Не удалось найти идентификатор" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Не удалось создать кэш учётных данных для идентификатора" + +#~ msgid "_Domain" +#~ msgstr "_Домен" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Корпоративный домен или имя области" + +#~ msgid "The domain is not valid" +#~ msgstr "Недопустимое имя домена" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "Объект org.gnome.OnlineAccounts.Mail недоступен" + +#~ msgid "Failed to parse email address" +#~ msgstr "Не удалось разобрать адрес эл. почты" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Невозможно выполнить SMTP-аутентификацию без домена" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Не удалось найти пароль (smtp) в учётных данных" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Невозможно выполнить SMTP-аутентификацию без пароля" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "исходный секрет передан до обмена секретными ключами" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Не удалось инициализировать клиент GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Не удалось найти пароль с именем пользователя «%s» в учётных данных" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "При запросе имени ожидалось получить код состояния 200, но был получен " +#~ "код %d (%s)" diff --git a/po/sk.gmo b/po/sk.gmo new file mode 100644 index 0000000..47fbe12 Binary files /dev/null and b/po/sk.gmo differ diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..b98d5bd --- /dev/null +++ b/po/sk.po @@ -0,0 +1,978 @@ +# Slovak translation for gnome-online-accounts. +# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# Marián Čavojský , 2011. +# Dušan Kazik , 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-01-22 12:36+0000\n" +"PO-Revision-Date: 2018-01-22 21:14+0100\n" +"Last-Translator: Dušan Kazik \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Poedit 2.0.5\n" +"X-Project-Style: gnome\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Zoznam poskytovateľov, ktoré majú povolené načítania" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Zoznam reťazcov reprezentujúcich poskytovateľov, ktoré majú povolené " +"načítanie (predvolená hodnota: „all“ - všetci). Táto voľba sa vyhodnotí iba " +"pri spúšťaní." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Zlyhalo nájdenie poskytovateľa pre: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Vlastnosť „IsLocked“ je nastavená pre účet" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Vlastnosť „ProviderType“ nie je pre účet nastavená" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Zlyhala analýza XML odpovede autopreskúmania" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Zlyhalo nájdenie prvku „%s“" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Zlyhalo nájdenie ASUrl a OABUrl v odpovedi automatického preskúmania" + +# provider name +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Neplatné heslo pre používateľské meno „%s“ (%s, %d): " + +# Label +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Email" + +# Label +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Heslo" + +# expander +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Vlastné" + +# Label +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Používateľské me_no" + +# Label +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Zrušiť" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "_Pripojiť" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Pripája sa…" + +# MČ: odhadujem na reakciu na nevyplnený autorizačný kód. +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialógové okno bolo odmietnuté" + +# MČ: odhadujem na reakciu na nevyplnený autorizačný kód. +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialógové okno bolo odmietnuté (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorovať" + +# goa_spinner_button label +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Skúsiť znovu" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Chyba počas pripájania k serveru Microsoft Exchange" + +# Provider name +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +# MČ: Našiel som čo znamená guid (http://developer.yahoo.com/social/rest_api_guide/introspective-guid-resource.html) asi by som to neprekladal. +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Bol očakávaný stav 200 pri požadovaní vašej identity, miesto toho prišiel " +"stav %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Nepodarilo sa analyzovať odpoveď" + +# provider name +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Váš systémový čas je neplatný. Skontrolujte vaše nastavenia dátumu a času." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +# provider name +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Služba nie je dostupná" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Zlyhalo overenie totožnosti" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Server nepodporuje obyčajné (PLAIN) overenie" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server nepodporuje STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP a SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Neplatné pole %s pre používateľské meno „%s“ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "Šifrovani_e" + +# DK: šifrovanie +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Žiadne" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS po pripojení" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL na dedikovanom porte" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Meno" + +# Label +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Server IMAP" + +# Label +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Server SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "Ď_alej" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Chyba počas pripájania k serveru IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Chyba počas pripájania k serveru SMTP" + +# Label +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Email" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Meno" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +# provider name +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Podnikové prihlásenie (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Vydávanie lístkov je pre tento účet zakázané" + +# PM: http://sospreskoly.org/kerberos principal = splnomocniteľ +# principal, http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-user/What-is-a-Kerberos-Principal_003f.html +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Nepodarilo sa nájsť uložené poverenia pre splnomocniteľa „%s“ v zväzku kľúčov" + +# PM: http://sospreskoly.org/kerberos principal = splnomocniteľ +# principal, http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-user/What-is-a-Kerberos-Principal_003f.html +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Nepodarilo sa nájsť heslo pre splnomocniteľa „%s“ v povereniach" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "S_plnomocniteľ" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Operácia bola zrušená" + +# PM: http://sospreskoly.org/kerberos realm = pôsobisko +# Realm je termin, http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-user/What-is-a-Kerberos-Principal_003f.html +#  prompt title +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Prihlásenie do pôsobiska" + +# prompt description +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Prosím, nižšie zadajte vaše heslo." + +# promt choice label +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Zapamätať toto heslo" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Chyba počas pripájania k podnikovému identifikačnému serveru" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identifikačná služba vrátila neplatný kľúč" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Chyba počas pripájania k službe Last.fm" + +# Label +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Multimediálny server" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Osobný obsah je možné pridať do vašich aplikácií prostredníctvom účtu " +"multimediálneho serveru." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Dostupné multimediálne servery" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nenašli sa žiadne multimediálne servery" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Bol očakávaný stav 200 pri požadovaní prístupového reťazca, miesto toho " +"prišiel stav %d (%s)" + +# PM: asi Odpoveď pri overení totožnosti bola, pokial viem snažíme sa vyhýbať cudzím slovám ako autorizačný, prejdite aj ostatné reťazce +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Odpoveď pri potvrdzovaní prístupu: " + +# PM: asi Odpoveď pri overení totožnosti bola, pokial viem snažíme sa vyhýbať cudzím slovám ako autorizačný, prejdite aj ostatné reťazce +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Odpoveď pri potvrdzovaní prístupu: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Chyba pri získavaní prístupového reťazca: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Chyba pri získavaní identity: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Bolo požadované prihlásenie ako %s, prihlásený ste ale ako %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Poverenia neobsahujú access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Zlyhalo obnovenie prístupového reťazca (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "V odpovedi chýba hlavička access_token alebo access_token_secret" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Chyba pri získavaní reťazca požiadavky: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Bol očakávaný stav 200 pri získavaní tokenu požiadavky, miesto toho prišiel " +"stav %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "V odpovedi chýba hlavička request_token alebo request_token_secret" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Poverenia neobsahujú access_token alebo access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Chyba počas pripájania k serveru služby ownCloud" + +# PM: Názov služby +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Žiadne používateľské meno ani prístupový token" + +# switch +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Pošta" + +# switch +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_ndár" + +# switch +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontakty" + +# PK: tu som dal pl. lebo to tam viac sedi +# switch +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Rozhovory" + +# switch +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenty" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "H_udba" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografie" + +# switch +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Súbory" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Sieťové _prostriedky" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Čítať _neskôr" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Tlačiarne" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Mapy" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Úlo_hy" + +# label nad switch butonmi +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Použiť pre" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Účet je zakázaný" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Neznáma chyba" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "" +"ensure_credentials_sync nie je implementovaný u poskytovateľa služby %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS nie je dostupné" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Neznámy mechanizmus overenia totožnosti" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Účet rozhovoru Telepathy sa nenašiel" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Zlyhalo vytvorenie používateľského rozhrania pre %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Nastavenia pripojenia" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Osobné podrobnosti" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Nedajú sa uložiť parametre pripojenia" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Nedajú sa uložiť vaše osobné informácie na server" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Nastavenia pripojenia" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Osobné podrobnosti" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Chyba pri prihlásení do účtu" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Platnosť poverení vypršala" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Keď chcete tento účet povoliť, prihláste sa." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Prihlásiť sa" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Účet %s už pre používateľa %s existuje" + +# PM: neviem či by nemalo byť Účet %s/Účet k (službe) %s +# dialog title +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Účet %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Zlyhalo odstránenie poverenia zo zväzku kľúčov" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Zlyhalo získanie poverenia zo zväzku kľúčov" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nenašli sa žiadne poverenia v zväzku kľúčov" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Chyba pri analýze výsledku získaného zo zväzku kľúčov: " + +# MČ: GOA znamená asi gnome-online-account. Tento reťazec sa vyskytuje hodne v neprekladaných reťazcoch identifikujúcich nejaké kľúče, alebo iné hodnoty. Asi by som to neprekladal, ale tento preklad je tým pádom trošku nezrozumiteľný. +# PM: tiež si nie som istý či preklad skratiek je najlepší nápad, pokiaľ skratk nie je zaužívaná, navyše je tu zlý slovosled dal by som Poverenia GOÚ %s pre identitu %s +# PK: necham GOA, lebo je to backend a vsade v docs je GOA (dev guide napr.) +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Poverenia GOA %s pre identitu %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Zlyhalo uloženie poverenia v zväzku kľúčov" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Nedá sa vyriešiť názov hostiteľa" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Nedá sa vyriešiť názov hostiteľa poskytovateľa proxy" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Nedá sa nájsť koncový bod protokolu WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kód: %u — Neočakávaná odpoveď od servera" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Autorita, ktorá podpísala certifikát nie je známa." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Certifikát sa nezhoduje s očakávanou identitou stránky, z ktorej bol " +"prevzatý." + +# DK: fraza pouzita v module Epiphany +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Doposiaľ nenastal čas aktivácie certifikátu." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Platnosť certifikátu skončila." + +# DK:odmietnutý=použité v module Epiphany +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Certifikát bol odmietnutý." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algoritmus certifikátu nie je považovaný za bezpečný." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Neplatný certifikát." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "V povereniach sa nenašlo pole %s pre identitu „%s“" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Načítava sa „%s“…" + +# provider name +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Počiatočný tajný kľúč je neplatný" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Sieťové pôsobisko %s vyžaduje nejaké informácie kvôli vášmu prihláseniu." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Nepodarilo sa nájsť identitu vo vyrovnávacej pamäti poverení: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Nepodarilo sa nájsť poverenia identity vo vyrovnávacej pamäti: " + +# PK: nahlasil som bug +# PM: zatiaľ to dáme takto, keď sa ku tomu vývojári vyjadria môžeme to zmenižť +# * https://bugzilla.gnome.org/show_bug.cgi?id=685750 +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"Nepodarilo sa vybrať spomedzi poverení identít uložených vo vyrovnávacej " +"pamäti: " + +# PK: nahlasil som bug +# * https://bugzilla.gnome.org/show_bug.cgi?id=685750 +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Nepodarilo sa dokončiť výber spomedzi poverení identít uložených vo " +"vyrovnávacej pamäti: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nenašla sa priradená identifikácia" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Nepodarilo sa vytvoriť vyrovnávaciu pamäť poverení: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Nepodarilo sa zaviesť vyrovnávaciu pamäť poverení: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Nepodarilo sa uložiť nové poverenia do vyrovnávacej pamäte poverení: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Nepodarilo sa obnoviť identitu: Neprihlásený" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Nepodarilo sa obnoviť identitu: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Nepodarilo sa získať nové poverenia na obnovenie identity %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Nepodarilo sa zmazať identitu: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Nepodarilo sa nájsť identitu" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Nepodarilo sa vytvoriť vyrovnávaciu pamäť poverení pre identitu" + +# combobox label +#~ msgid "_Domain" +#~ msgstr "_Doména" + +# combobox tooltip +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Podniková doména alebo názov pôsobiska" + +#~ msgid "The domain is not valid" +#~ msgstr "Doména nie je platná" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "Služba org.gnome.OnlineAccounts.Mail nie je dostupná" + +#~ msgid "Failed to parse email address" +#~ msgstr "Zlyhala analyzácia emailovej adresy" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Bez zadania domény sa nedá cez SMTP overiť totožnosť" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "V povereniach sa nenašlo heslo k serveru smtp" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Bez zadania hesla sa nedá cez SMTP overiť totožnosť" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "počiatočné poverenie bolo prevzaté pred výmenou tajného kľúča" + +# provider name +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Zlyhala inicializácia klienta GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "V povereniach sa nenašlo heslo pre identitu „%s“" + +# provider name +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Bol očakávaný stav 200 pri požadovaní mena, miesto toho prišiel stav %d " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Vložte kód získaný zo stránky pre potvrdenie prístupu:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Vložte reťazec získaný zo stránky pre potvrdenie prístupu:" diff --git a/po/sl.gmo b/po/sl.gmo new file mode 100644 index 0000000..cfda88a Binary files /dev/null and b/po/sl.gmo differ diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..492d71f --- /dev/null +++ b/po/sl.po @@ -0,0 +1,946 @@ +# Slovenian translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Matej Urbančič , 2011–2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-31 10:37+0000\n" +"PO-Revision-Date: 2017-12-31 12:37+0100\n" +"Last-Translator: Matej Urbančič \n" +"Language-Team: Slovenian GNOME Translation Team \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 2.0.4\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Seznam ponudnikov, ki naj bodo naloženi" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Seznam nizov ponudnikov, ki jih je mogoče naložiti (privzeto: »vsi«). Ta " +"nastavitev se preverja le med začenjanjem programa." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Iskanje ponudnika je spodletelo za: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Lastnost zaklepa je za ta račun nastavljena." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Lastnost vrste ponudnika za ta račun ni nastavljena." + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Razčlenjevanje predmeta XML samodejne zaznave je spodletelo" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Iskanje predmeta »%s« je spodletelo" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Iskanje predmetov ASUrl in OABUrl v odzivu samodejne zaznave je spodletelo" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Neveljavno geslo za uporabniško ime »%s« (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Elektronski naslov" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Geslo" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Po meri" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "_Uporabniško ime" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Strežnik" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Prekliči" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "_Poveži" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Vzpostavljanje povezave ..." + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Pogovorno okno je bilo opuščeno" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Pogovorno okno je bilo opuščeno (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Prezri" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Poskusi znova" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Prišlo je do napake med povezovanjem s strežnikom Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Pričakovano je stanje 200 pri pridobivanju vrednosti ID uporabnika, vrnjeno " +"pa je stanje %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Odgovora ni mogoče razčleniti" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Sistemski čas ni veljaven. Preverite nastavitve časa in datuma." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Storitev ni na vojo" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Overitev je spodletela" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Strežnik ne podpira protokola PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Strežnik ne podpira protokola STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP in SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Neveljavno %s za uporabniško ime »%s« (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Šifriranje" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Brez" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "Po povezavi začni STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "Protokol SSL na določenih vratih" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Ime" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Strežnik IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Strežnik SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Posreduj" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Napaka med povezovanjem s strežnikom IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Napaka med povezovanjem s strežnikom SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Elektronski naslov" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Ime" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Prijava v poslovno domeno (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Za ta račun je ustvarjanje kartic onemogočeno" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "Shranjenih poveril za »%s« v zbirki ključev ni mogoče najti" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Gesla za »%s« med poverili ni mogoče najti" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Poverila" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Opravilo je preklicano" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Prijava v področje" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Spodaj vnesite geslo." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Zapomni si geslo" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Prišlo je do napake med povezovanjem s strežnikom Microsoft Exchange" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Storitev istovetnosti je vrnila neveljaven ključ" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Napaka povezovanja z Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Predstavni strežnik" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Osebna vsebina je lahko dodana na namizje preko računa predstavnega " +"strežnika." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Razpoložljivi predstavni strežniki" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Ni najdenih predstavnih strežnikov" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Pričakovano je stanje 200 pri zahtevi žetona dostopa, vrnjeno pa je stanje " +"%d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Odziv overitve:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Odziv overitve: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Napaka pridobivanja žetona dostopa:" + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Napaka med pridobivanjem istovetnosti:" + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Zahtevana je prijava %s, prijavljen pa je uporabnik %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Poverila ne vključujejo žetona dostopa" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Osveževanje žetona dostopa je spodletelo (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Manjka glava žetona dostopa oziroma skritega žetona dostopa v odzivu" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Napaka pridobivanja žetona zahteve:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Pričakovano je stanje 200 pri pridobivanju žetona zahteve, vrnjeno pa je " +"stanje %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Manjka glava žetona zahteve oziroma skritega žetona zahteve v odzivu" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Poverila ne vsebujejo žetona dostopa oziroma skritega žetona dostopa" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Napaka povezave s strežnikom ownCloud..." + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Ni uporabniškega imena ali žetona za dostop" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Pošta" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "_Koledar" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Stiki" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "K_lepet" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenti" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "_Glasba" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografije" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Datoteke" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Omrežni _viri" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Preberi kasneje" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Tiskalniki" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Zemljevidi" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_Opravila" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Uporabi za" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Račun je onemogočen" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Neznana napaka" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "zahteva usklajevanja poverila ni podprta za vrsto %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS ni na voljo" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Neznan način overitve" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Računa za klepet Telepathy ni mogoče najti" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Ustvarjanje uporabniškega vmesnika za %s je spodletelo" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Nastavitve povezave" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Osebni podatki" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_V redu" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Ni mogoče shraniti parametrov povezave" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Ni mogoče shraniti osebnih podatkov na strežnik" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Nastavitve povezave" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Osebni podatki" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Napaka prijavljanja v račun" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Poverila so potekla" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Za omogočanje računa je zahtevana prijava." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Prijava" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Račun %s že obstaja za %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Račun %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Brisanje poveril iz zbirke ključev je spodletelo" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Pridobivanje poveril iz zbirke ključev je spodletelo" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "V zbirki ključev ni ustreznih poveril" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Napaka razčlenjevanja rezultatov pridobljenih preko zbirke ključev:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Poverila GOA %s za %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Shranjevanje poveril v zbirko ključev je spodletelo" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Ni mogoče razrešiti imena gostitelja" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Ni mogoče razrešiti posredniškega strežnika gostitelja" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Ni mogoče najti končne točke WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Koda: %u — Nepričakovan odziv strežnika" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Podpisnik potrdil ni znan." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Potrdilo ni skladno s pričakovano istovetnostjo strani, s katere je " +"pridobljen." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Čas omogočenosti potrdila je v prihodnosti." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Potrdilo je poteklo." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Potrdilo je bilo preklicano." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algoritem potrdila ni dovolj varen." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Neveljavno potrdilo." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "V poverilih %s za istovetnost »%s« ni mogoče najti gesla" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Nalaganje “%s” ..." + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Začetni skivni ključ ni veljaven!" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Omrežno področje %s zahteva dodatne podatke za prijavo." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Ni mogoče najti istovetnosti v predpomnilniku poveril: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Ni mogoče najti poveril istovetnosti v predpomnilniku: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Ni se mogoče premikati med poverili istovetnosti v predpomnilniku: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Ni mogoče prekiniti premikanja med poverili istovetnosti v predpomnilniku: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Ni najdene povezane istovetnosti" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Ni mogoče ustvariti predpomnilnika poverila: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Ni mogoče začeti predpomnilnika poverila: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Ni mogoče shraniti novih poveril v predpomnilnik: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Istovetnosti ni mogoče obnoviti: prijava ni uspela" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Ni mogoče obnoviti istovetnosti: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Ni mogoče pridobiti poveril za obnovitev istovetnosti %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Istovetnosti ni mogoče izbrisati: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Ni mogoče najti izbrane istovetnosti" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Ni mogoče ustvariti predpomnilnika poverila za izbrano istovetnost" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail ni na voljo" + +#~ msgid "Failed to parse email address" +#~ msgstr "Razčlenjevanje elektronskega naslova je spodletelo" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Overitev s SMTP brez domene ni mogoča" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "V poverilih ni mogoče najti gesla za SMTP" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Overitev s SMTP brez gesla ni mogoča" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "paket poslan pred izmenjavo skrivnega ključa" + +#~ msgid "_Domain" +#~ msgstr "_Domena" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Poslovna domena ali ime območja" + +#~ msgid "The domain is not valid" +#~ msgstr "Domena ni veljavna" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "V poverilih za istovetnost ‘%s’ ni mogoče najti gesla." + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Začenjanje odjemalca GOA je spodletelo" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Pričakovano je stanje 200 pri zahtevi podatka imena, vrnjeno pa je stanje " +#~ "%d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Prilepi kodo overitve pridobljeno preko strani overitve:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Prilepi žeton pridobljen preko strani overitve:" + +#~ msgid "Twitter" +#~ msgstr "Failed to find a provider for: %s" + +#~ msgid "Time" +#~ msgstr "Čas" + +#~ msgid "Time to fire" +#~ msgstr "Čas za izvedbo" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Iskanje predmeta samodejne zaznave je spodletelo" + +#~ msgid "Failed to find Account element" +#~ msgstr "Iskanje predmeta računa je spodletelo" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Pričakovano je stanje 200 pri zahtevi guid, vrnjeno pa je stanje %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "V poverilih za istovetnost `%s' ni mogoče najti gesla IMAP." + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Neveljavno geslo IMAP za uporabniško ime `%s' (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "V poverilih za istovetnost `%s' ni mogoče najti gesla SMTP." + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Neveljavno geslo SMTP za uporabniško ime `%s' (%s, %d): " diff --git a/po/sr.gmo b/po/sr.gmo new file mode 100644 index 0000000..19e2442 Binary files /dev/null and b/po/sr.gmo differ diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..80145ea --- /dev/null +++ b/po/sr.po @@ -0,0 +1,1006 @@ +# Serbian translation for gnome-online-accounts. +# Copyright © 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Мирослав Николић , 2011—2017. +# Милош Поповић , 2016. +# Борисав Живановић , 2017. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-18 04:25+0000\n" +"PO-Revision-Date: 2018-02-22 18:42+0100\n" +"Last-Translator: Марко М. Костић \n" +"Language-Team: српски \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" +"X-Generator: Poedit 2.0.6\n" +"X-Poedit-Bookmarks: -1,1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Списак достављача који се смеју учитати" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Листа ниски које представљају достављача који се смеју учитати " +"(подразумевано: „сви“). Ово се прегледа само приликом покретања." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Нисам успео да пронађем достављача за: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Својство „Закључано је“ је подешено за налог" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Врста достављача није подешена за налог" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Нисам успео да обрадим самооткривајући одговор ИксМЛ" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Нисам успео да пронађем елемент „%s“" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Нисам успео да пронађем АСадресу и ОАБадресу у одговору самооткривања" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Мајкрософт размена" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Неисправна лозинка са корисничким именом „%s“ (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Е-пошта" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Лозинка" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Произвољно" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Корисничко _име" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Сервер" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Откажи" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "П_овежи се" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Повезујем се…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Прозорче је смењено" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Прозорче је смењено (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Занемари" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Покушај опет" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Грешка повезивања на сервер Мајкрософт размене" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Фејсбук" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Очекивах стање 200 приликом потраживања вашег идентитета, али добих стање %d " +"(%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Не могу да обрадим одговор" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Фликр" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Ваше системско време је погрешно. Проверите ваша подешавања датума и времена." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Форсквер" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Гугл" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Услуга није доступна" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Потврђивање идентитета није успело" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Сервер не подржава „ОБИЧАН“" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Сервер не подржава СТАРТТЛС" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "ИМАП и СМТП" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Неисправна „%s“ са корисничким именом „%s“ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Шифровање" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ништа" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "СТАРТТЛС након повезивања" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "ССЛ на одређеном прикључнику" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Назив" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "ИМАП _сервер" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "СМТП _сервер" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Напред" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Грешка повезивања на ИМАП сервер" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Грешка повезивања на СМТП сервер" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Е-пошта" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Назив" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "ИМАП" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "СМТП" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Пословно пријављивање (Керберос)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Улазнице су онемогућене за овај налог" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Не могу да пронађем сачувана пуномоћства за начелника „%s“ у привеску кључева" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Нисам нашао лозинку за начелника „%s“ у пуномоћствима" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Начелник" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Радња је отказана" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Пријавите се на подручје" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Унесите вашу лозинку испод." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Запамти ову лозинку" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Грешка повезивања на сервер пословног идентитета" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Услуга идентитета је вратила неисправан кључ" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Ласт.фм" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Грешка приликом повезивања на Ласт.фм" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Медијски сервер" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Лични садржај може бити додат вашим програмима помоћу налога медијског " +"сервера." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Доступни медијски сервери" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Нисам нашао медијске сервере" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Очекивах стање 200 приликом потраживања чина приступа, али добих стање %d " +"(%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Одговор овлашћења: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Одговор овлашћења: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Грешка добављања чина приступа: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Грешка добављања идентитета: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Затражено је да се пријавите као %s, али сте се пријавили као %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Пуномоћства не садрже чин_приступа" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Нисам успео да освежим чин приступа (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Недостаје заглавље чина_приступа или тајна_чина_приступа у одговору" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Грешке добављања чина захтева: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "Очекивах стање 200 за добављање чина захтева, али добих стање %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Недостаје заглавље чина_захтева или тајна_чина_захтева у одговору" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Пуномоћства не садрже чин_приступа или тајну_чина_приступа" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Следећи облак" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Грешка повезивања на сервер могОблака" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Џеп" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Нема корисничког имена или модула приступа" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Пошта" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Кале_ндар" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Контакти" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Ћаскање" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Документи" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "М_узика" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Фотографије" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Датотеке" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Мрежна _изворишта" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Читај касније" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Штампачи" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Карте" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "За _урадити" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Користи за" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Налог је искључен" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Непозната грешка" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "осигурај_усаглашавање_пуномоћства није примењено на врсти %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "ТЛС није доступан" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Непознат начин потврђивања идентитета" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Нисам нашао налог ћаскања Телепатије" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Нисам успео да направим корисничко сучеље за „%s“" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Подешавања везе" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Лични подаци" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "У _реду" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Не могу да сачувам параметре везе" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Не могу да сачувам ваше личне податке на серверу" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Подешавања _везе" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Лични _подаци" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Роковник" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Грешка пријављивања на налог" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Пуномоћства су истекла" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Пријавите се да укључите овај налог." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Пријави ме" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Налог„%s“ већ постоји за %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s налог" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Нисам успео да обришем пуномоћства из привеска кључева" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Нисам успео да довучем пуномоћства из привеска кључева" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Нисам нашао пуномоћства у привеску кључева" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Грешка у анализи резултата добијених из привеска кључева: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "ГОА %s пуномоћства за идентитет %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Нисам успео да сачувам пуномоћства у привеску кључева" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Не могу да разрешим име домаћина" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Не могу да разрешим име посредника" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Не могу да нађем ВебДАВ излазну тачку" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Шифра: %u — Неочекивани одговор са сервера" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Издавач потписујућег уверења није познат." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Уверење не одговара очекиваном идентиттету сајта са кога је преузето." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Време покретања уверења је још увек у будућности." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Уверење је истекло." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Уверење је повучено." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Алгоритам уверења се сматра несигурним." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Неисправно уверење." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Нисам нашао „%s“ са идентитетом „%s“ у пуномоћствима" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Учитавам „%s“…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Мајкрософт" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Кључ почетне тајне је неисправан" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Мрежном подручју „%s“ су потребни неки подаци да би вас пријавио." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Не могу да пронађем идентитет у остави пуномоћства: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Не могу да пронађем пуномоћства идентитета у остави: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Не могу да прегледам пуномоћства идентитета у остави: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Не могу да завршим прегледање пуномоћства идентитета у остави: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Није пронађена придружена идентификација" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Не могу да направим оставу пуномоћства: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Не могу да започнем оставу пуномоћстава: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Не могу да сачувам нова пуномоћства у остави пуномоћстава: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Не могу да обновим идентитет: Нисте пријављени" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Не могу да обновим идентитет: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Не могу да добавим нова пуномоћства за обнављање идентитета %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Не могу да обришем идентитет: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Не могу да пронађем идентитет" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Не могу да направим оставу пуномоћства за идентитет" + +#~ msgid "_Domain" +#~ msgstr "_Домен" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Пословни домен или назив подручја" + +#~ msgid "The domain is not valid" +#~ msgstr "Домен није исправан" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "„орг.гном.Налози-на-мрежи.Пошта“ није доступно" + +#~ msgid "Failed to parse email address" +#~ msgstr "Нисам успео да обрадим адресу ел. поште" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Не могу да обавим СМТП потврђивање идентитета без домена" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Нисам нашао смтп-лозинку у пуномоћствима" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Не могу да обавим СМТП потврђивање идентитета без лозинке" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "почетна тајна је прослеђена пре размене тајног кључа" + +#~ msgid "ownCloud" +#~ msgstr "мојОблак" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Нисам успео да покренем клијента ГОА-е" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Нисам нашао лозинку са идентитетом „%s“ у пуномоћствима" + +#~ msgid "Windows Live" +#~ msgstr "Виндоуз уживо" + +#~ msgid "Yahoo" +#~ msgstr "Јаху" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Очекивах стање 200 приликом потраживања имена, али добих стање %d (%s)" + +#~ msgid "Online Accounts" +#~ msgstr "Налози на мрежи" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "Обезбеђује назив орг.гном.Налога-на-мрежи на сабирници сесије" + +#~ msgid "An online account needs attention" +#~ msgstr "Један налог на мрежи захтева пажњу" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Отвори налоге на мрежи..." + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Нисам успео да пронађем елемент самооткривања" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Очекивах стање 200 приликом потраживања гуиб-а, али добих стање %d (%s)" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Грешка у анализи одговора као ЈСОН: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Нисам нашао члана иб-а у ЈСОН подацима" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Нисам нашао члана ел. поште у ЈСОН подацима" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Нисам нашао члан „корисник“ у ЈСОН подацима" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Нисам нашао члан „корисник.иб“ у ЈСОН подацима" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Нисам нашао члан „корисник.име-корисника“ у ЈСОН подацима" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Нисам нашао члан „корисник.име-корисника._садржај“ у ЈСОН подацима" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Нисам нашао имап-лозинку са идентитетом „%s“ у пуномоћствима" + +#~| msgid "Invalid password with username `%s' (%s, %d): " +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Неисправна имап-лозинка са корисничким именом „%s“ (%s, %d): " + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Нисам нашао смтп-лозинку са идентитетом „%s“ у пуномоћствима" + +#~| msgid "Invalid password with username `%s' (%s, %d): " +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Неисправна смтп-лозинка са корисничким именом „%s“ (%s, %d): " + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Нисам нашао чин_приступа у не-ЈСОН подацима" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Нисам нашао чин_приступа у ЈСОН подацима" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Код убацивања овлашћења је добијен са странице овлашћења:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Чин убацивања је добијен са странице овлашћења:" + +#~ msgid "Twitter" +#~ msgstr "Твитер" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Нисам нашао члана иб_стр-а у ЈСОН подацима" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Нисам нашао члана назива_екрана у ЈСОН подацима" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Нисам нашао члана налога ел. поште у ЈСОН подацима" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Нисам нашао члана гуиб-а у ЈСОН подацима" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Нисам нашао члана вредности у ЈСОН подацима" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Грешка у анализи одговора корисничке картице као ЈСОН: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Нисам нашао члана профила у ЈСОН подацима" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Нисам нашао члана надимка у ЈСОН подацима" + +#~ msgid "Time" +#~ msgstr "Време" + +#~ msgid "Time to fire" +#~ msgstr "Време до покретања" diff --git a/po/sr@latin.gmo b/po/sr@latin.gmo new file mode 100644 index 0000000..e79489a Binary files /dev/null and b/po/sr@latin.gmo differ diff --git a/po/sr@latin.po b/po/sr@latin.po new file mode 100644 index 0000000..ba7148d --- /dev/null +++ b/po/sr@latin.po @@ -0,0 +1,1006 @@ +# Serbian translation for gnome-online-accounts. +# Copyright © 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Miroslav Nikolić , 2011—2017. +# Miloš Popović , 2016. +# Borisav Živanović , 2017. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-19 19:23+0000\n" +"PO-Revision-Date: 2018-02-22 18:42+0100\n" +"Last-Translator: Marko M. Kostić \n" +"Language-Team: srpski \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" +"X-Generator: Poedit 2.0.6\n" +"X-Poedit-Bookmarks: -1,1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Spisak dostavljača koji se smeju učitati" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Lista niski koje predstavljaju dostavljača koji se smeju učitati " +"(podrazumevano: „svi“). Ovo se pregleda samo prilikom pokretanja." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Nisam uspeo da pronađem dostavljača za: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Svojstvo „Zaključano je“ je podešeno za nalog" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Vrsta dostavljača nije podešena za nalog" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Nisam uspeo da obradim samootkrivajući odgovor IksML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Nisam uspeo da pronađem element „%s“" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Nisam uspeo da pronađem ASadresu i OABadresu u odgovoru samootkrivanja" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Majkrosoft razmena" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Neispravna lozinka sa korisničkim imenom „%s“ (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-pošta" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Lozinka" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Proizvoljno" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Korisničko _ime" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Otkaži" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "P_oveži se" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Povezujem se…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Prozorče je smenjeno" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Prozorče je smenjeno (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Zanemari" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Pokušaj opet" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Greška povezivanja na server Majkrosoft razmene" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Fejsbuk" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Očekivah stanje 200 prilikom potraživanja vašeg identiteta, ali dobih stanje %d " +"(%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Ne mogu da obradim odgovor" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flikr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Vaše sistemsko vreme je pogrešno. Proverite vaša podešavanja datuma i vremena." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Forskver" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Gugl" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Usluga nije dostupna" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Potvrđivanje identiteta nije uspelo" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Server ne podržava „OBIČAN“" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Server ne podržava STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP i SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Neispravna „%s“ sa korisničkim imenom „%s“ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Šifrovanje" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ništa" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS nakon povezivanja" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL na određenom priključniku" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Naziv" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP _server" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP _server" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Napred" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Greška povezivanja na IMAP server" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Greška povezivanja na SMTP server" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-pošta" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Naziv" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Poslovno prijavljivanje (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Ulaznice su onemogućene za ovaj nalog" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Ne mogu da pronađem sačuvana punomoćstva za načelnika „%s“ u privesku ključeva" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Nisam našao lozinku za načelnika „%s“ u punomoćstvima" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Načelnik" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Radnja je otkazana" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Prijavite se na područje" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Unesite vašu lozinku ispod." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Zapamti ovu lozinku" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Greška povezivanja na server poslovnog identiteta" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Usluga identiteta je vratila neispravan ključ" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Greška prilikom povezivanja na Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Medijski server" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Lični sadržaj može biti dodat vašim programima pomoću naloga medijskog " +"servera." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Dostupni medijski serveri" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Nisam našao medijske servere" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Očekivah stanje 200 prilikom potraživanja čina pristupa, ali dobih stanje %d " +"(%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Odgovor ovlašćenja: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Odgovor ovlašćenja: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Greška dobavljanja čina pristupa: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Greška dobavljanja identiteta: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Zatraženo je da se prijavite kao %s, ali ste se prijavili kao %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Punomoćstva ne sadrže čin_pristupa" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Nisam uspeo da osvežim čin pristupa (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Nedostaje zaglavlje čina_pristupa ili tajna_čina_pristupa u odgovoru" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Greške dobavljanja čina zahteva: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "Očekivah stanje 200 za dobavljanje čina zahteva, ali dobih stanje %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Nedostaje zaglavlje čina_zahteva ili tajna_čina_zahteva u odgovoru" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Punomoćstva ne sadrže čin_pristupa ili tajnu_čina_pristupa" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Sledeći oblak" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Greška povezivanja na server mogOblaka" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Džep" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Nema korisničkog imena ili modula pristupa" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Pošta" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_ndar" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontakti" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "_Ćaskanje" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokumenti" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_uzika" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotografije" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Datoteke" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Mrežna _izvorišta" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Čitaj kasnije" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Štampači" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Karte" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Za _uraditi" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Koristi za" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Nalog je isključen" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Nepoznata greška" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "osiguraj_usaglašavanje_punomoćstva nije primenjeno na vrsti %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS nije dostupan" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Nepoznat način potvrđivanja identiteta" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Nisam našao nalog ćaskanja Telepatije" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Nisam uspeo da napravim korisničko sučelje za „%s“" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Podešavanja veze" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Lični podaci" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "U _redu" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Ne mogu da sačuvam parametre veze" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Ne mogu da sačuvam vaše lične podatke na serveru" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Podešavanja _veze" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "Lični _podaci" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Rokovnik" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Greška prijavljivanja na nalog" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Punomoćstva su istekla" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Prijavite se da uključite ovaj nalog." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Prijavi me" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Nalog„%s“ već postoji za %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s nalog" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Nisam uspeo da obrišem punomoćstva iz priveska ključeva" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Nisam uspeo da dovučem punomoćstva iz priveska ključeva" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Nisam našao punomoćstva u privesku ključeva" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Greška u analizi rezultata dobijenih iz priveska ključeva: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s punomoćstva za identitet %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Nisam uspeo da sačuvam punomoćstva u privesku ključeva" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Ne mogu da razrešim ime domaćina" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Ne mogu da razrešim ime posrednika" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Ne mogu da nađem VebDAV izlaznu tačku" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Šifra: %u — Neočekivani odgovor sa servera" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Izdavač potpisujućeg uverenja nije poznat." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Uverenje ne odgovara očekivanom identittetu sajta sa koga je preuzeto." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Vreme pokretanja uverenja je još uvek u budućnosti." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Uverenje je isteklo." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Uverenje je povučeno." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Algoritam uverenja se smatra nesigurnim." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Neispravno uverenje." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Nisam našao „%s“ sa identitetom „%s“ u punomoćstvima" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Učitavam „%s“…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Majkrosoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Ključ početne tajne je neispravan" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Mrežnom području „%s“ su potrebni neki podaci da bi vas prijavio." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Ne mogu da pronađem identitet u ostavi punomoćstva: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Ne mogu da pronađem punomoćstva identiteta u ostavi: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Ne mogu da pregledam punomoćstva identiteta u ostavi: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Ne mogu da završim pregledanje punomoćstva identiteta u ostavi: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Nije pronađena pridružena identifikacija" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Ne mogu da napravim ostavu punomoćstva: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Ne mogu da započnem ostavu punomoćstava: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Ne mogu da sačuvam nova punomoćstva u ostavi punomoćstava: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Ne mogu da obnovim identitet: Niste prijavljeni" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Ne mogu da obnovim identitet: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Ne mogu da dobavim nova punomoćstva za obnavljanje identiteta %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Ne mogu da obrišem identitet: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Ne mogu da pronađem identitet" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Ne mogu da napravim ostavu punomoćstva za identitet" + +#~ msgid "_Domain" +#~ msgstr "_Domen" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Poslovni domen ili naziv područja" + +#~ msgid "The domain is not valid" +#~ msgstr "Domen nije ispravan" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "„org.gnom.Nalozi-na-mreži.Pošta“ nije dostupno" + +#~ msgid "Failed to parse email address" +#~ msgstr "Nisam uspeo da obradim adresu el. pošte" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Ne mogu da obavim SMTP potvrđivanje identiteta bez domena" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Nisam našao smtp-lozinku u punomoćstvima" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Ne mogu da obavim SMTP potvrđivanje identiteta bez lozinke" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "početna tajna je prosleđena pre razmene tajnog ključa" + +#~ msgid "ownCloud" +#~ msgstr "mojOblak" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Nisam uspeo da pokrenem klijenta GOA-e" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Nisam našao lozinku sa identitetom „%s“ u punomoćstvima" + +#~ msgid "Windows Live" +#~ msgstr "Vindouz uživo" + +#~ msgid "Yahoo" +#~ msgstr "Jahu" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Očekivah stanje 200 prilikom potraživanja imena, ali dobih stanje %d (%s)" + +#~ msgid "Online Accounts" +#~ msgstr "Nalozi na mreži" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "Obezbeđuje naziv org.gnom.Naloga-na-mreži na sabirnici sesije" + +#~ msgid "An online account needs attention" +#~ msgstr "Jedan nalog na mreži zahteva pažnju" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Otvori naloge na mreži..." + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Nisam uspeo da pronađem element samootkrivanja" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Očekivah stanje 200 prilikom potraživanja guib-a, ali dobih stanje %d (%s)" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Greška u analizi odgovora kao JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Nisam našao člana ib-a u JSON podacima" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Nisam našao člana el. pošte u JSON podacima" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Nisam našao član „korisnik“ u JSON podacima" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Nisam našao član „korisnik.ib“ u JSON podacima" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Nisam našao član „korisnik.ime-korisnika“ u JSON podacima" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Nisam našao član „korisnik.ime-korisnika._sadržaj“ u JSON podacima" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Nisam našao imap-lozinku sa identitetom „%s“ u punomoćstvima" + +#~| msgid "Invalid password with username `%s' (%s, %d): " +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Neispravna imap-lozinka sa korisničkim imenom „%s“ (%s, %d): " + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Nisam našao smtp-lozinku sa identitetom „%s“ u punomoćstvima" + +#~| msgid "Invalid password with username `%s' (%s, %d): " +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Neispravna smtp-lozinka sa korisničkim imenom „%s“ (%s, %d): " + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Nisam našao čin_pristupa u ne-JSON podacima" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Nisam našao čin_pristupa u JSON podacima" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Kod ubacivanja ovlašćenja je dobijen sa stranice ovlašćenja:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Čin ubacivanja je dobijen sa stranice ovlašćenja:" + +#~ msgid "Twitter" +#~ msgstr "Tviter" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Nisam našao člana ib_str-a u JSON podacima" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Nisam našao člana naziva_ekrana u JSON podacima" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Nisam našao člana naloga el. pošte u JSON podacima" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Nisam našao člana guib-a u JSON podacima" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Nisam našao člana vrednosti u JSON podacima" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Greška u analizi odgovora korisničke kartice kao JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Nisam našao člana profila u JSON podacima" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Nisam našao člana nadimka u JSON podacima" + +#~ msgid "Time" +#~ msgstr "Vreme" + +#~ msgid "Time to fire" +#~ msgstr "Vreme do pokretanja" diff --git a/po/stamp-po b/po/stamp-po new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/po/stamp-po @@ -0,0 +1 @@ +timestamp diff --git a/po/sv.gmo b/po/sv.gmo new file mode 100644 index 0000000..8ef2206 Binary files /dev/null and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..a8b2b3a --- /dev/null +++ b/po/sv.po @@ -0,0 +1,903 @@ +# Swedish translation for gnome-online-accounts. +# Copyright © 2011-2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Daniel Nylander , 2011, 2012. +# Mattias Eriksson , 2014. +# Anders Jonsson , 2015, 2016, 2017. +# Sebastian Rasmussen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-15 11:00+0000\n" +"PO-Revision-Date: 2017-12-26 13:37+0100\n" +"Last-Translator: Anders Jonsson \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.5\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Leverantörer som tillåts att läsas in" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"En lista av strängar vilka representerar vilka leverantörer som tillåts " +"läsas in (standard: ”all”). Detta utvärderas bara vid uppstart." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Kunde inte hitta en modul för: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Egenskapen IsLocked är satt för konto" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Egenskapen ProviderType är inte satt för konto" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Misslyckades med att tolka XML-svar för autodetektering" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Misslyckades med att hitta elementet ”%s”" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Misslyckades med att hitta ASUrl och OABUrl i autodetekteringssvar" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Ogiltigt lösenord med användarnamn ”%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_E-post" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Lösenord" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "An_passat" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Användar_namn" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Server" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_Avbryt" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "Ansl_ut" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Ansluter…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Dialogrutan stängdes" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Dialogrutan stängdes (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Ignorera" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Försök igen" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Fel vid anslutning till Microsoft Exchange-server" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Förväntade status 200 vid begäran av din identitet, fick istället status %d " +"(%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Kunde inte tolka svar" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"Din systemtid är ogiltig. Kontrollera dina datum- och tidsinställningar." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Tjänsten är inte tillgänglig" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Autentisering misslyckades" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Servern stöder inte PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Servern stöder inte STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP och SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Ogiltigt %s med användarnamn ”%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Kryptering" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Ingen" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS efter anslutning" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL på en egen port" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Namn" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_IMAP-Server" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_SMTP-Server" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Framåt" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Fel vid anslutning till IMAP-server" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Fel vid anslutning till SMTP-server" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "E-post" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Namn" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Företagslogin (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Biljettsystem är inaktiverat för konto" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Kunde inte hitta sparade inloggningsuppgifter för huvudman ”%s” i " +"nyckelringen" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Hittade inte lösenord för huvudman ”%s” i inloggningsuppgifterna" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Huvudman" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Åtgärden avbröts" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Logga in i rike" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Vänligen ange ditt lösenord nedan." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Kom ihåg detta lösenord" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Fel vid anslutning till företagsidentitetsserver" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Identitetstjänsten returnerade en ogiltig nyckel" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Fel vid anslutning till Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Mediaserver" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Personligt innehåll kan läggas till i dina program genom ett " +"mediaserverkonto." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Tillgängliga mediaservrar" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Inga mediaservrar hittades" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Förväntade status 200 vid begäran av åtkomstelement, fick istället status %d " +"(%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Auktoriseringssvar: " + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Auktoriseringssvar: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Fel vid hämtning av ett åtkomstelement: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Fel vid hämtning av identitet: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Frågades om att logga in som %s, men loggade in som %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Inloggningsuppgifter innehåller inget åtkomstelement (access_token)" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Misslyckades med att uppdatera åtkomstelement (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Saknar rubriker för åtkomstelement (access_token) eller " +"åtkomstelementhemlighet (access_token_secret) i svaret" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Fel vid hämtning av ett begäranselement: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Förväntade status 200 för hämtning av ett begäranselement, fick istället " +"status %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Saknar rubriker för begäranselement (request_token) eller " +"begäranselementhemlighet i svaret" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Inloggningsuppgifter innehåller inte åtkomstelement (access_token) eller " +"åtkomstelementshemlighet (access_token_secret)" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Fel vid anslutning till ownCloud-server" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Inget användarnamn eller åtkomstelement" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_E-post" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Kale_nder" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kontakter" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Direkt_meddelanden" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Dokument" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_usik" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Foton" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Filer" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Nätverks_resurser" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "_Läs senare" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "_Skrivare" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "Kar_tor" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "Att _göra" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Använd för" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Kontot är inaktiverat" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Okänt fel" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync har inte implementerats för typen %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS är inte tillgängligt" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Okänd autentiseringsmekanism" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Telepathy-kontot för direktmeddelanden hittades inte" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Misslyckades med att skapa ett användargränssnitt för %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Anslutningsinställningar" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Personliga detaljer" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_OK" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Kan inte spara anslutningsparametrarna" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Kan inte spara din personliga information på servern" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Anslutningsinställningar" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Personliga detaljer" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Fel vid inloggning för kontot" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Autentiseringsuppgifterna har gått ut" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Logga in för att aktivera detta konto." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Logga in" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Ett %s-konto finns redan för %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s-konto" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Misslyckades med att ta bort inloggningsuppgifter från nyckelringen" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Misslyckades med att hämta inloggningsuppgifter från nyckelringen" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Inloggningsuppgifter hittades inte i nyckelringen" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Fel vid tolkning av resultatet som hämtades från nyckelringen: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s-inloggningsuppgifter för identiteten %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Misslyckades med att lagra inloggningsuppgifter i nyckelringen" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Kan inte slå upp värdnamn" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Kan inte slå upp proxy-värdnamn" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Kan inte hitta WebDAV-ändpunkt" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kod: %u — Oväntat svar från server" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Signeringscertifikatets utfärdare är okänd." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Certifikatet stämmer inte överens med den förväntade identiteten för platsen " +"som det hämtades från." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Certifikatets aktiveringstid ligger i framtiden." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Certifikatet har gått ut." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Certifikatet har återkallats." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Certifikatets algoritm är att betrakta som osäker." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Ogiltigt certifikat." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Hittade inte %s med identiteten ”%s” bland inloggningsuppgifterna" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Laddar ”%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Initial hemlig nyckel är ogiltig" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Nätverksriket %s behöver en del information för att logga in dig." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Kunde inte hitta identitet i inloggningsuppgiftscache: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Kunde inte hitta inloggningsuppgifter i cachen: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "Kunde inte gå igenom inloggningsuppgifterna i cachen: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Kunde inte slutföra genomgång av inloggningsuppgifter i cachen: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Ingen associerad identifikationsuppgift kunde hittas" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Kunde inte skapa inloggningsuppgiftscache: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Kunde inte initiera inloggningsuppgiftscache: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Kunde inte lagra nya inloggningsuppgifter i cachen: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Kunde inte förnya identitet: Inte inloggad" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Kunde inte förnya identitet: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "" +"Kunde inte skaffa nya inloggningsuppgifter för att förnya identitet %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Kunde inte radera identitet: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Kunde inte hitta identitet" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Kunde inte skapa inloggningsuppgiftscache för identitet" + +#~ msgid "_Domain" +#~ msgstr "_Domän" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Namn på företagsdomän eller rike" + +#~ msgid "The domain is not valid" +#~ msgstr "Domänen är ogiltig" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail är inte tillgänglig" + +#~ msgid "Failed to parse email address" +#~ msgstr "Misslyckades med att tolka e-postadress" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Kan inte genomföra SMTP-autentisering utan en domän" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Hittade inte smtp-lösenord bland inloggningsuppgifterna" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Kan inte genomföra SMTP-autentisering utan ett lösenord" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "initial hemlighet skickad före utbytet av hemliga nycklar" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Misslyckades med att initiera en GOA-klient" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "" +#~ "Hittade inte lösenord med identiteten ‘%s’ bland inloggningsuppgifterna" diff --git a/po/ta.gmo b/po/ta.gmo new file mode 100644 index 0000000..8434324 Binary files /dev/null and b/po/ta.gmo differ diff --git a/po/ta.po b/po/ta.po new file mode 100644 index 0000000..57e5503 --- /dev/null +++ b/po/ta.po @@ -0,0 +1,1032 @@ +# Tamil translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Dr.T.Vasudevan , 2011, 2012. +# Shantha kumar , 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-09-14 19:00+0000\n" +"PO-Revision-Date: 2014-09-15 01:08+0630\n" +"Last-Translator: Shantha kumar \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "இதற்கு ஒரு வழங்குவோர் இல்லை: %s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "கணக்குக்கு வழங்குவோர் வகை பண்பை அமைக்கவில்லை" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "குறியீடு: %u — சேவையகத்திலிருந்து எதிர்பாராத பதில்" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "" +"தானியக்கக் கண்டறிதல் பதிலளிப்பு எக்ஸ்எம்எல் ஐ அலகிடுவதில் தோல்வியடைந்தது" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ கூறைக் கண்டறிதல் தோல்வி" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"தானியக்கக் கண்டறிதல் பதிலளிப்பில் ASUrl மற்றும் OABUrl ஐக் கண்டறிவதில் " +"தோல்வியடைந்தது" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "மைக்ரோசாஃப்ட் எக்ஸ்சேஞ்ச்." + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "சான்றளிப்புகளில் '%s' என்ற அடையாளம் கொண்ட கடவுச்சொல் கண்டறியப்படவில்லை" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "'%s' பயனர் பெயருடன் செல்லுபடியாகாத கடவுச்சொல் (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "_E மின்னஞ்சல்" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "கடவுச்சொல் (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "தனிப்பயன் (_C) " + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "பயனர் பெயர் (_n):" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "(_S) சேவையகம்" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "ரத்து (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +#| msgid "Connecting…" +msgid "C_onnect" +msgstr "இணை (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "இணைக்கிறது..." + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "உரையாடல் அனுப்பி வைக்கப்பட்டது" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "உரையாடல் நிராகரிக்கப்பட்டது (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "புறக்கணி (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "மீண்டும் முயற்சிசெய் (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "மைக்ரோசாஃப்ட் எக்ஸ்சேஞ்ச் சேவையகத்துடன் தொடர்பு கொள்கையில் பிழை" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "இதை இதற்கு பயனாகுக" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "மின்னஞ்சல் (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "நாள்காட்டி (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "தொடர்புகள் (_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "பேஸ்புக்" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"உங்கள் அடையாளத்தைக் கோருகையில் நிலை 200 எதிர்பார்க்கப்பட்டது, அதற்கு பதில் " +"நிலை %d (%s) " +"கிடைத்தது" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "பதிலைப் பாகுபடுத்த முடியவில்லை" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "அரட்டை (_h)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "புகைப்படங்கள் (_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "வரைபடங்க்ள் (_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "ப்லிக்கர்" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "" +"உங்களுடைய கணினி நேரம் செல்லுபடியாகாதது. தேதி மற்றும் நேரம் அமைப்புகளை " +"சோதிக்கவும்." + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "கூகுள்" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "ஆவணங்கள் (_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +msgid "Prin_ters" +msgstr "அச்சுப்பொறிகள் (_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "சேவை கிடைக்கவில்லை" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "அங்கீகாரம் தோல்வி" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "சேவையகம் PLAIN ஐ ஆதரிக்காது" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "சேவையகம் STARTTLS ஐ ஆதரிக்காது" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP மற்றும் SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "சான்றளிப்புகளில் '%s' என்ற அடையாளம் கொண்ட %s கண்டறியப்படவில்லை" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "'%s' என்ற பயனர் பெயருடன் செல்லுபடியாகாத %s (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "குறியாக்கம் ( _E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "எதுவுமில்லை" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "இணைப்புக்குப் பிறகு STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "பிரத்யேக முனையத்தில் SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "பெயர் (_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "IMAP சேவையகம் (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "SMTP சேவையகம் (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "முன்னால் (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "IMAP சேவையகத்துடன் இணைப்பதில் பிழை" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "SMTP சேவையகத்துடன் இணைப்பதில் பிழை" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "மின்னஞ்சல்" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "பெயர்" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "என்டர்ப்ரைஸ் புகுபதிகை (கெர்பரோஸ்)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "அடையாள சேவை செல்லுபடியாகாத விசையை திருப்பியது." + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"விசைவளையத்தில் முதன்மையாளர் '%s' க்கு சேமித்த அறிமுக ஆவனங்களை காணவில்லை" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "அறிமுக ஆவனங்களில் முதன்மையாளர் '%s' க்கு கடவுச்சொல்லை காணவில்லை" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "(_D)டொமைன் " + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "என்டர்ப்ரைஸ் டொமைன் அல்லது ராஜ்யம் பெயர்" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "ராஜ்யத்துள் உள் நுழை" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "தயவு செய்து உங்கள் கடவுச்சொல்லை கீழே உள்ளிடவும்." + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "இந்த கடவுச்சொல்லை நினைவு கொள்ளவும்" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "டொமைன் சரியானது அல்ல" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "என்டர்ப்ரைஸ் அடையாள சேவையகத்துடன் தொடர்பு கொள்கையில் பெறுவதில் பிழை" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "பிணைய வளங்கள் (_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "IMAP _Server" +msgid "Media Server" +msgstr "ஊடக சேவையகம்" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"ஊடக சேவையகக் கணக்கின் மூலம் உங்கள் பயன்பாட்டில் தனிப்பட்ட உள்ளடக்கத்தைச் " +"சேர்க்கலாம்." + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "கிடைக்கும் ஊடக சேவையகங்கள்" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "ஊடக சேவையகங்கள் எதுவும் காணப்படவில்லை" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"ஸ்டேடஸ் 200 அணுகல் டோகன் ஐ கோரியபோது எதிர்பார்க்கப்பட்டது, அதற்கு பதில் " +"ஸ்டேடஸ் %d (%s) " +"கிடைத்தது" + +#: ../src/goabackend/goaoauth2provider.c:888 +#| msgid "Authorization response was ‘%s’" +msgid "Authorization response: " +msgstr "அங்கீகரிப்பு பதில்:" + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +#| msgid "Authorization response was ‘%s’" +msgid "Authorization response: %s" +msgstr "அங்கீகரிப்பு பதில்: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "அணுகல் டோகனை பெறுவதில் பிழை:" + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "அடையாளத்தை பெறுவதில் பிழை:" + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "" +"%s ஆக புகுபதிவு செய்யக் கேட்கப்பட்டது, ஆனால் %s ஆக புகுபதிவு செய்யப்பட்டது" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "அறிமுக ஆவணங்களில் அணுகல்_டோக்கன் இல்லை" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "அணுகல் டோக்கனை புதுப்பிக்க இயலவில்லை (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "அணுகல்_டோகன் அல்லது அணுகல்_டோகன்_ரகசியம் தலைப்புகள் பதிலில் காணவில்லை" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "கோரிக்கை டோகன் பெறுவதில் பிழை:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"ஸ்டேடஸ் 200 கோரிக்கை டோகன் ஐ பெறும்போது எதிர்பார்க்கப்பட்டது, அதற்கு பதில் " +"ஸ்டேடஸ் %d " +"(%s) கிடைத்தது" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"கோரிக்கை_டோகன் அல்லது கோரிக்கை_டோகன்_ரகசியம் தலைப்புகள் பதிலில் காணவில்லை" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "அறிமுக ஆவணங்களில் அணுகல்_டோக்கன் அல்லது அணுகல்_டோக்கன்_ரகசியம் இல்லை" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ஓன்க்லௌட்" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "ஓன்க்லௌட் சேவையகத்துடன் தொடர்பு கொள்கையில் பிழை" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "கோப்புகள் (_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "பொதி" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "பயனர்பெயர் அல்லது அணுகல் டோக்கன் இல்லை (_t)" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "பிறகு படி (_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr " %s வகையில் அறிமுகஆவணங்கள்_ஒத்திசைவதை_உறுதிசெய் செயல்படுத்தப் படவில்லை" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS கிடைக்கவில்லை" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail கிடைக்கவில்லை" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "மின்னஞ்சல் முகவரியைப் பாகுபடுத்துவதில் தோல்வியடைந்தது" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a domain" +msgid "Cannot do SMTP authentication without a domain" +msgstr "டொமைன் இன்றி SMTP அங்கீகரிப்பைச் செய்ய முடியாது" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "சான்றளிப்புகளில் smtp-கடவுச்சொல் கண்டறியப்படவில்லை" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +#| msgid "Cannot do SMTP PLAIN without a password" +msgid "Cannot do SMTP authentication without a password" +msgstr "கடவுச்சொல் இன்றி SMTP அங்கீகரிப்பைச் செய்ய முடியாது" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +#| msgid "Authentication failed" +msgid "Unknown authentication mechanism" +msgstr "தெரியாத அங்கீகார முறை" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "டெலிபதி அரட்டை கணக்கு இல்லை" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "GOA கிளையன்ட்டைத் துவக்க முடியவில்லை" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s க்கான பயனர் இடைமுகத்தை உருவாக்குவதில் தோல்வியடைந்தது" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "இணைப்பு அமைவுகள்" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "தனிப்பட்ட விவரங்கள்" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "சரி (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "இணைப்பு அளவுருக்களைச் சேமிக்க முடியவில்லை" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "உங்கள் தனிப்பட்ட தகவலை சேவையகத்தில் சேமிக்க முடியவில்லை" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "இணைப்பு அமைவுகள் (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "தனிப்பட்ட விவரங்கள் (_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr " %s கணக்கு %s க்கு ஏற்கெனெவே உள்ளது." + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s கணக்கு" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "விசை வளையத்தில் இருந்து அறிமுக ஆவணங்களை நீக்குவது தோல்வியுற்றது" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "விசை வளையத்தில் இருந்து அறிமுக ஆவணங்களை மீட்டெடுப்பது தோல்வியுற்றது" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "விசைவளையத்தில் சான்றளிப்புகள் இல்லை" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "விசை வளையத்தில் இருந்து கிடைத்த விடையை பகுப்பதில் பிழை:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "GOA %s அறிமுக ஆவணம் %s அடையாளத்துக்கு" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "விசை வளையத்தில் அறிமுக ஆவணம் சேமித்தல் தோல்வி: %s" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "கையொப்பமிடும் சான்றிதழ் அங்கீகாரம் தெரியாதது." + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"சான்றிதழ் மீட்டெடுக்கப்பட்ட தளத்தின் எதிர்பார்த்த அடையாளத்துடன் " +"பொருந்தவில்லை." + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "சான்றிதழ் செயலாக்க நேரம் எதிர்காலத்தில் உள்ளது." + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "சான்றிதழ் காலாவதியானது" + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "சான்றிதழ் முடிவுற்றது" + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "சான்றிதழ் கையொப்ப படிமுறை பாதுகாப்பானது இல்லை." + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "செல்லுபடியாகாத சான்றிதழ்." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "\"%s\" ஐ ஏற்றுகிறது..." + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "விண்டோஸ் லைவ் " + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "யாகூ" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "" +"பெயரை வேண்டுகையில் ஸ்டேடஸ் 200 எதிர்பார்க்கப்பட்டது, அதற்கு பதில் ஸ்டேடஸ் %" +"d (%s) " +"கிடைத்தது" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "ரகசிய விசை பறிமாற்றத்துக்கு முன் அனுப்பிய துவக்க ரகசியம் " + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "துவக்க ரகசிய விசை செல்லுபடியாகாதது" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"வலையமைப்பு ராஜ்யம் %s க்கு உங்களை உள்ளே அனுமதிக்கு முன் சில தகவல்கள் தேவை" + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "அறிமுக இடையகத்தில் அடையாளத்தை காணவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr " இடையகத்தில் அறிமுக அடையாளங்களை காணவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr " இடையகத்தில் அறிமுக அடையாளங்களை தேடிக் காண முடியவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr " இடையகத்தில் அறிமுக அடையாளங்களை தேடுதலை முடிக்க முடியவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "தொடர்பான அடையாளம் ஏதும் காணவில்லை" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "அறிமுக ஆவண இடை நினைவகத்தை உருவாக்க முடியவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr " அறிமுக அடையாளங்கள் இடையகத்தை உருவாக்க முடியவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr " அறிமுக ஆவண இடையகத்தில் புதிய அறிமுக ஆவணங்களை சேர்க்க முடியவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "அடையாளத்தை புதுப்பிக்க முடியவில்லை: உள் நுழையவில்லை" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "அடையாளத்தை புதுப்பிக்க முடியவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "%s அடையாளத்தை புதுப்பிக்க புதிய அறிமுக ஆவணம் பெறுதல் தோல்வி: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "அடையாளத்தை அழிக்க முடியவில்லை: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "அடையாளத்தை காண முடியவில்லை" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr " அடையாளத்துக்கு அறிமுக ஆவணம் இடை நினைவகம் உருவாக்க முடியவில்லை" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ " authorization page இலிருந்து கிடைத்த அதிகாரமளிப்பு " +#~ "குறியீட்டை இங்கு ஒட்டவும் :" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ " authorization page இலிருந்து கிடைத்த டோகனை இங்கு ஒட்டவும் :" + +#~ msgid "Twitter" +#~ msgstr "ட்விட்டர்" + +#~ msgid "Time" +#~ msgstr "நேரம்" + +#~ msgid "Time to fire" +#~ msgstr "துவக்க நேரம்" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "தானியக்கக் கண்டறிதல் எலமென்டை கண்டறிவதில் தோல்வி" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "ஸ்டேடஸ் 200 guid ஐ கோரியபோது எதிர்பார்க்கப்பட்டது, அதற்கு பதில் ஸ்டேடஸ் %d (%s) " +#~ "கிடைத்தது" + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "சான்றளிப்புகளில் `%s' என்ற அடையாளம் கொண்ட imap-கடவுச்சொல் கண்டறியப்படவில்லை" + +#~| msgid "Invalid password with username `%s' (%s, %d): " +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "`%s' பயனர் பெயருக்கு செல்லுபடியாகாத imap-கடவுச்சொல் (%s, %d): " + +#~| msgid "Did not find password with username `%s' in credentials" +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "சான்றளிப்புகளில் `%s' என்ற அடையாளம் கொண்ட smtp-கடவுச்சொல் கண்டறியப்படவில்லை" + +#~| msgid "Invalid password with username `%s' (%s, %d): " +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "`%s' பயனர் பெயருக்கு செல்லுபடியாகாத smtp-கடவுச்சொல் (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "ஆன் லைன் கணக்குகள்" + +#~ msgid "An online account needs attention" +#~ msgstr "ஒரு ஆன்லைன் கணக்குக்கு கவனம் தேவை" + +#~ msgid "Open Online Accounts..." +#~ msgstr "ஆன்லைன் கணக்குகளை திறக்கவும்.." + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "விசைவளையத்தில் அறிமுக ஆவணங்கள் காணவில்லை (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "ஜெசன் ஆக பதிலை அலகிடும்போது பிழை:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "ஜெசன் தரவில் ஐடி உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "ஜெசன் தரவில் மின்னஞ்சல் உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "ஜெசன் தரவில் பயனர் பெயரை கண்டுபிடிக்கவில்லை" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "ஜெசன் தரவில் user.id உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "ஜெசன் தரவில் user.username உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "ஜெசன் தரவில் user.username._content உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "ஜெசன் அல்லாத தரவில் அணுகல் டோகன் காணவில்லை" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "ஜெசன் தரவில் அணுகல் டோகன் காணவில்லை" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "விசை வளையத்தில் அறிமுக ஆவணம் சேமிக்கும் போது பிழை (%s, %d): " + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "ஜெசன் தரவில் id_str உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "ஜெசன் தரவில் திரை_பெயர் உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "ஜெசன் தரவில் கணக்கு மின்னஞ்சல் உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "ஜெசன் தரவில் ஜியூஐடி உறுப்பினரை காணவில்லை" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "ஜெசன் தரவில் மதிப்பு உறுப்பினரை காணவில்லை" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "ஜெசன் ஆக பயனரட்டையை பகுக்கும்போது பிழை" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "ஜெசன் தரவில் வரியுரு உறுப்பினரை காணவில்லை " + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "ஜெசன் தரவில் செல்லப்பெயர் உறுப்பினரை காணவில்லை " + +#~ msgid "Chat" +#~ msgstr "அரட்டை" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "ஜெசன் தரவில் தரவு உறுப்பினரை காணவில்லை" + +#~ msgid "Domain Administrator Login" +#~ msgstr "டொமைன் நிர்வாகி புகு பதிவு" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "இந்த என்டர்ப்ரைஸ் அடையாளத்தை பயன்படுத்த, கணினியை இந்த டொமைனில் பதிய வேண்டும். தயை " +#~ "செய்து உங்கள் வலையமைப்பு நிர்வாகியை அவற்றின் டொமைன் கடவுச்சொற்களை இங்கு " +#~ "பதியச்சொல்லுங்கள்." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "இந்த என்டர்ப்ரைஸ் அடையாளத்தை பயன்படுத்த, கணினியை இந்த டொமைனில் பதிய வேண்டும். தயை " +#~ "செய்து உங்கள் வலையமைப்பு நிர்வாகியை அவற்றின் டொமைன் பயனர் பெயரை இங்கு பதியச்சொல்லுங்கள்." + +#~ msgid "No such domain or realm found" +#~ msgstr "அது போன்ற டொமைன் அல்லது ராஜ்யம் ஏதும் காணவில்லை" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%s ஆக %s டொமைனில் புகு பதிவு செய்ய முடியவில்லை" + +#~ msgid "Invalid password, please try again" +#~ msgstr "செல்லுபடியாகாத கடவுச்சொல், தயை செய்து மீண்டும் முயற்சிக்கவும்" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr " %s டொமைனுடன் இணைக்க முடியவில்லை: %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "ஜெசன் தரவில் பெயர் உறுப்பினரை காணவில்லை" + +#~ msgid "Email Address" +#~ msgstr "மின்னஞ்சல் முகவரி" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "%s அடையாளத்துக்கு ஏற்கெனெவே ஒரு கணக்கு உள்ளது." diff --git a/po/te.gmo b/po/te.gmo new file mode 100644 index 0000000..2eccbb4 Binary files /dev/null and b/po/te.gmo differ diff --git a/po/te.po b/po/te.po new file mode 100644 index 0000000..b11d8ab --- /dev/null +++ b/po/te.po @@ -0,0 +1,982 @@ +# Telugu translation for gnome-online-accounts. +# Copyright (C) 2011,2012 Swecha Telugu Localisation Team . +# This file is distributed under the same license as the gnome-online-accounts package. +# Hari Krishna , 2011, 2012. +# Sasi Bhushan Boddepalli , 2012. +# Krishnababu Krothapalli , 2012. +# Praveen Illa , 2012, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts gnome-3-2\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-08-26 19:01+0000\n" +"PO-Revision-Date: 2014-08-27 08:15+0530\n" +"Last-Translator: Praveen Illa \n" +"Language-Team: Telugu \n" +"Language: te\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.6\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "దీనికి సమకూర్పరిని కనుగొనుటలో వైఫల్యం: %s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "సమకూర్పరి రకపు లక్షణం ఖాతా కొరకు అమర్చబడలేదు" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "సంకేతం: %u — సేవకం నుండి ఊహించని స్పందన" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "XML స్వయంగాకనిపెట్టి స్పందన పార్శ్ చేయుటలో విఫలమైంది" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "‘%s’ మూలకాన్ని కనుగొనడంలో విఫలం" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ASUrl మరియు OABUrl స్వయంగాకనిపెట్టు స్పందనలో కనుగొనుటలో విఫలమైంది" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "మైక్రోసాఫ్ట్ ఎక్సేంజ్" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "పరపతులలో ‘%s’ గుర్తింపుతో ఎటువంటి సంకేతపదము కనపడలేదు" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "‘%s’ వాడుకరి పేరుతో సంకేతపదం తప్పు (%s, %d):" + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "ఈమెయిల్ (_E)" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "సంకేతపదం (_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "అనురూపితం (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "వాడుకరి పేరు (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "సేవకం (_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "రద్దుచేయి (_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +msgid "C_onnect" +msgstr "అనుసంధానించు (_o)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "అనుసంధానిస్తున్నాము…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "సంవాదము తొలగించబడింది" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "సంవాదం తీసివేయబడింది (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "వదిలివేయి (_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "మరలా ప్రయత్నించు (_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "మైక్రోసాఫ్ట్ ఎక్సేంజ్ సేవకానికి అనుసంధానించుటలో దోషం" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "దీనికి వాడు" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "మెయిల్ (_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "క్యాలెండరు (_n)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "పరిచయాలు (_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "ఫేస్‌బుక్" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"మీ గుర్తింపు కోసం అభ్యర్థించినప్పుడు స్థితి ‌‌200 ఊహించబడింది, కానీ దానికి బదులు %d (%s) వచ్చింది" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "స్పందనను పార్శ్ చేయలేము" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "మాటామంతి (_C)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "ఛాయాచిత్రాలు (_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "పటాలు (_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "ఫ్లికర్" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "మీ వ్యవస్థ సమయం సరికాదు. దయచేసి తేదీ మరియు సమయ అమరికలను సరిచూసుకోండి." + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "గూగుల్" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "పత్రములు (_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +msgid "Prin_ters" +msgstr "ముద్రకాలు (_t)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "సేవ అందుబాటులోలేదు" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "ప్రామాణీకరణ విఫలమైంది" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "సేవకము PLAIN తోడ్పాటునీయదు" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "సేవకము STARTTLSకు తోడ్పాటునీయదు" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP మరియు SMPT" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "పరపతులలో ‘%s’ గుర్తింపుతో %s కనపడలేదు" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "‘%s’ వాడుకరిపేరుతో %s చెల్లనిది (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "ఎన్క్రిప్షన్ (_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "ఏదీకాదు" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "అనుసంధానమయిన తర్వాత STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "ఒక ప్రత్యేక పోర్టు పై SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "పేరు(_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "IMAP సేవకం (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "SMTP సేవకం (_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "ముందుకుపంపు (_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "IMAP సేవకానికి అనుసంధానించుటలో దోషం" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "SMTP సేవకానికి అనుసంధానించుటలో దోషం" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "ఈ-మెయిలు" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "పేరు" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "ఎంటర్‌ప్రైజ్ లాగిన్ (కెర్బరోస్)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "గుర్తింపు సేవ చెల్లని కీను తిప్పియిచ్చింది" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "ప్రిన్సిపల్ ‘%s’ కొరకు కీరింగ్ నందు భద్రపరచిన పరపతులు కనుగొనబడలేదు" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "పరపతులలో ప్రిన్సిపల్ ‘%s’ కొరకు సంకేతపదం కనుగొనబడలేదు" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "డొమైన్ (_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "ఎంటర్‌ప్రైజ్ డొమైన్ లేదా రియాల్మ్ పేరు" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "రియాల్మ్ లాగిన్" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "దయచేసి మీ సంకేతపదంను కిందన ప్రవేశపెట్టుము." + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "ఈ సంకేతపదాన్ని గుర్తుంచుకొను" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "డొమైను సరైనది కాదు" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "ఎంటర్‌ప్రైజ్ గుర్తింపు సేవకానికి అనుసంధానించుటలో దోషం" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "నెట్​వర్క్ వనరులు (_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +msgid "Media Server" +msgstr "మాధ్యమ సేవకం" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "మాధ్యమ సేవక ఖాతా ద్వారా మీ అనువర్తనాలకు వ్యక్తిగత విషయాలను చేర్చవచ్చు. " + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "అందుబాటులోని మాధ్యమ సేవకాలు" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "ఏ మాధ్యమ సేవకాలు కనపడలేదు" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "యాక్సెస్ టోకెన్ కోసం అడిగినప్పుడు ‌‌200 స్థితి ఊహించబడింది, కానీ దానికి బదులు %d (%s) వచ్చింది " + +#: ../src/goabackend/goaoauth2provider.c:888 +msgid "Authorization response: " +msgstr "ప్రమాణీకరణ స్పందన:" + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +msgid "Authorization response: %s" +msgstr "ప్రమాణీకరణ స్పందన: %s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "ప్రవేశించుటకు టోకన్ పొందుటలో దోషం:" + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "గుర్తింపు పోందుటలో దోషం:" + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s లా ప్రవేశించమని కోరాము, కానీ %s గా ప్రవేశించారు" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "పరపతులలో యాక్సెస్ టోకెను లేదు" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "ప్రవేశించుటకు టోకన్ పునర్వికాసించుటలలో దోషం (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "జవాబులో ప్రవేశించుటకు టోకన్ లేదా రహస్య ప్రవేశించుటకు టోకన్ పీఠిక దొరుకుటలేదు " + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "ప్రవేశించుటకు టోకన్ పొందుటలో దోషం:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "టోకెన్ కొరకు అడిగినప్పుడు ‌‌200 స్థితిని ఊహించారు, కానీ దాని బదులు %d (%s) వచ్చింది" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "జవాబులోవినతి టోకన్ లేదా రహస్య వినతిటోకన్ పీఠిక దొరుకుటలేదు" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "పరపతులలో ప్రవేశించుటకు టోకన్ లేదా రహస్య ప్రవేశించుటకు టోకన్ కలిగిలేవు" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ఓన్​క్లౌడ్" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "ఓన్​క్లౌడ్ సేవకానికి అనుసంధానించుటలో దోషము" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "దస్ర్తాలు (_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "పోకెట్" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "వాడుకరి పేరు లేదా యాక్సెస్ టోకెను లేదు" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "తరువాత చదువు (_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "%s రకములో _credentials_sync అమలు జరిగిందో లేదో నిర్ధారన చేసుకోండి" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS అందుబాటులో లేదు" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail అందుబాటులో లేదు" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "ఈమెయిల్ చిరునామాను పార్శ్ చేయుటలో వైఫల్యం" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "డొమైను లేకుండా SMTP ధృవీకరణ చేయలేము" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "పరపతులలో smtp-సంకేతపదం కనుగొనబడలేదు" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "సంకేతపదం లేకుండా SMTP ధృవీకరణ చేయలేము" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "తెలియని ధృవీకరణ యంత్రాంగం" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "టెలీపతి కబుర్ల ఖాతా కనపడలేదు" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "GOA క్లయింటు ఆరంభించుటలో విఫలం" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s కోసం వాడుకరి అంతరవర్తిని సృష్టించుటలో విఫలమైంది" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "అనుసంధాన అమరికలు" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "వ్యక్తిగత వివరాలు" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "సరే (_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "అనుసంధాన పారామితులను భద్రపరచడం వీలుకాదు" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "మీ వ్యక్తిగత సమాచారాన్ని సేవకంపై భద్రపరచలేరు" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "అనుసంధాన అమరికలు (_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "వ్యక్తిగత వివరాలు (_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "ఒక %s ఖాతా %s కొరకు ఇదివరకే ఉన్నది" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s ఖాతా" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "కీరింగ్ నుంచి పరపతులు తొలగించుటలో విఫలం" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "కీరింగ్ నుంచి పరపతులు పొందుటలో విఫలం" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "కీరింగులో ఎటువంటి పరపతులు కనబడలేదు" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "కీరింగ్ నుంచి పొందిన పార్సింగ్ ఫలితములో దోషం:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%s గుర్తింపు కొరకు GOA %s అధికార పత్రాలు " + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "కీరింగ్ లో అధికారపత్రాలు దాచుటలో విఫలం" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "సంతకం చేయు ధృవపత్ర సంస్థ తెలియదు." + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "ధృవపత్రం ఉహించిన సైటు గుర్తింపుతో సరిపోలలేదు" + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "ధృవపత్ర క్రియాశీలనం ఇంకా భవిష్యత్తులోనే ఉంది." + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "ధృవపత్ర కాలము చెల్లినది." + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "ధృవపత్రం ఉపసంహరించబడింది." + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "ధృవపత్ర అల్గారిథం అసురక్షితమైనదిగా పరిగణించబడినది" + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "ధృవపత్రం చెల్లనిది." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” నింపుతోంది…" + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "విండోస్ లైవ్ " + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "యాహూ" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "పేరు కోసం అడిగినప్పుడు ‌‌200 స్థితిని ఊహించారు, కానీ దాని బదులు %d(%s) వచ్చింది" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "రహస్య కీ మారకం ముందల ప్రాధమిక రహస్యం పంపబడింది" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "ప్రాధమిక రహస్య కీ చెల్లనిది" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "మిమ్ములను సైనిన్ చేయుటకు నెట్వర్కు రియాల్మ్ %s కు కొంత సమాచారం కావాలి." + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "పరపతులు కాచీనందు గుర్తింపును కనుగొనలేక పోయింది: %k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "కాచీనందు గుర్తింపు పరపతులు కనుగొనలేకపోయింది: %k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "కాచీనందు గుర్తింపు పరపతులు ద్వారా మార్చలేదు: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "కాచీనందు గుర్తింపు పరపతుల ద్వారా సిఫ్టింగ్ పూర్తిచేయలేక పోయింది: %k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "సంబంధిత గుర్తింపు కనుగొనబడలేదు" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "పరపతుల కాచీ సృష్టించలేకపోయింది: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "పరపతుల కాచీను ఆరంభించలేకపోయింది: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "పరపతులు కాచీ నందు కొత్త పరపతులు నిల్వ వుంచలేకపోయింది: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "గుర్తింపును పొడిగించలేదు: సంతకం చేసిలేదు" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "గుర్తింపును పొడిగించలేదు: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "గుర్తింపు %s పొడిగించుటకు కొత్త క్రెడెన్షియల్స్ పొందలేక పోయింది: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "గుర్తింపును చెరిపివేయలేదు: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "గుర్తింపును కనుగొనలేదు" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "గుర్తింపు కొరకు క్రెడెన్షియల్ కాచీ సృష్టించలేకపోయింది" + +#~ msgid "Online Accounts" +#~ msgstr "ఆన్‍లైన్ ఖాతాలు" + +#~ msgid "An online account needs attention" +#~ msgstr "ఆన్‌లైన్ ఖాతాపై దృష్టి అవసరము" + +#~ msgid "Open Online Accounts..." +#~ msgstr "ఆన్‌లైన్ ఖాతాను తెరువు..." + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "మూలకాన్ని స్వయంగాకనిపెట్టుటలో వైఫల్యం" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "కీ రింగ్ లో అధికార పత్రాలు దొరుకుటలేదు(%s, %d):" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "JSON అను జవాబును పార్స్ చేయుటలో దోషం:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON దత్తాంశంలో id మెంబరు కనుగొనలేదు" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON దత్తాంశంలో ఈమెయిల్ సభ్యున్ని కనుగొనలేదు" + +#~ msgid "Chat" +#~ msgstr "మాటామంతి" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON దత్తాంశం లో మెంబరు అను దత్తాంశం కనుగొనలేదు" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "JSON దత్తాంశం లో కాని దత్తంశం లో ప్రవేశించుటకు టోకన్ కనుగొనలేదు" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON దత్తాంశం లో ప్రవేశించుటకు టోకన్ కనుగొనలేదు" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr " అధికారిక పుట నుంచి పొందిన అధికార కోడ్‌ను అతికించు" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "కీరింగ్ లో అధికార పత్రాలను దాచుటలో దోషం(%s, %d):" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr " అధికారిక పుటము నుంచి పొందిన టోకన్ ను అతికించు" + +#~ msgid "Twitter" +#~ msgstr "ట్విట్టర్" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON దత్తాంశం లో id_str మెంబరు కనుగొనలేదు" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON దత్తాంశం లో తెర నామము మెంబరు కనుగొనలేదు(_n)" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON దత్తాంశం లో మెంబరు ఈమేయిల్ అకౌంటును కనుగొనలేదు" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON దత్తాంశం లో guid మెంబరు కనుగొనలేదు" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON దత్తాంశం లో విలువ మెంబరు కనుగొనలేదు" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "JSON జవాబు వినియోగదాఉని కార్డు పార్సు చేయుటలో దోషం: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON దత్తాంశం లో ప్రొఫైల్ మెంబరు కనుగొనలేదు" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON దత్తాంశం లో ముద్దునామము మెంబరు కనుగొనలేదు" + +#~ msgid "Time" +#~ msgstr "సమయం" + +#~ msgid "Time to fire" +#~ msgstr "సంధించు సమయం" + +#~ msgid "Domain Administrator Login" +#~ msgstr "డొమైన్ నిర్వాహకుని లాగిన్" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "ఈ యెంటర్‌ప్రైజ్ గుర్తింపు వుపయోగించుటకు, కంప్యూటర్ డొమైన్ నందు నమోదుకావాలి. దయచేసి మీ నెట్వర్కు " +#~ "నిర్వహణాధికారి డొమైన్ సంకేతపదం యిక్కడ ప్రవేశపెట్టునట్లు చూడండి." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "ఈ యెంటర్‌ప్రైజ్ గుర్తింపు వుపయోగించుటకు, కంప్యూటర్ డొమైన్ నందు నమోదుకావాలి. దయచేసి మీ నెట్వర్కు " +#~ "నిర్వహణాధికారి డొమైన్ వాడుకరిపేరు యిక్కడ ప్రవేశపెట్టునట్లు చూడండి." + +#~ msgid "No such domain or realm found" +#~ msgstr "అటువంటి డొమైన్ లేదా రియాల్మ్ కనుగొనబడలేదు" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "%s వలె %s డొమైన్ వద్ద లాగిన్ కాలేకపోయింది" + +#~ msgid "Invalid password, please try again" +#~ msgstr "చెల్లని సంకేతపదం, దయచేసి మరలా ప్రయత్నించు" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "%s డొమైన్‌కు అనుసంధానం కాలేకపోయింది: %s" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "కొత్త మైక్రోసాఫ్ట్ ఎక్సేంజ్ ఖాతా" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "మైక్రోసాఫ్ట్ ఎక్సేంజ్ ఖాతా" + +#~ msgid "Add %s" +#~ msgstr "%s జతచేయి" + +#~ msgid "Refresh %s" +#~ msgstr "%s తాజాపరుచు" + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "JSON దత్తాంశం లో మెంబరు అను వినియోగదారుని నామము కనుగొనలేదు" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON దత్తాంశం లో మెంబరు అను నామము కనుగొనలేదు" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "%s గుర్తింపునకు ముందుగానే ఒక ఖాతా ఉంది" + +#~ msgid "Email Address" +#~ msgstr "ఈమేయిల్ చిరునామా" diff --git a/po/tg.gmo b/po/tg.gmo new file mode 100644 index 0000000..4f3917c Binary files /dev/null and b/po/tg.gmo differ diff --git a/po/tg.po b/po/tg.po new file mode 100644 index 0000000..be00884 --- /dev/null +++ b/po/tg.po @@ -0,0 +1,893 @@ +# Tajik translation for gnome-online-accounts. +# Copyright (C) 2013 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Victor Ibragimov , 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-" +"accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2015-05-04 19:15+0000\n" +"PO-Revision-Date: 2015-05-05 09:42+0500\n" +"Last-Translator: Victor Ibragimov \n" +"Language-Team: Tajik \n" +"Language: tg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.7.5\n" +"Plural-Forms: nplurals=2; plural=1;\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:787 ../src/daemon/goadaemon.c:1048 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Провайдер барои %s ёфт нашудааст" + +#: ../src/daemon/goadaemon.c:976 +msgid "IsLocked property is set for account" +msgstr "Хусусияти IsLocked барои ҳисоб танзим шудааст" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1036 +msgid "ProviderType property is not set for account" +msgstr "Хусусияти ProviderType барои ҳисоб танзим нашудааст" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:230 ../src/goabackend/goahttpclient.c:174 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Рамз: %u — Ҷавоби ногаҳон аз сервер" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:246 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Таҷзияи ҷавоби кашфи худкори XML иҷро нашудааст" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:257 ../src/goabackend/goaewsclient.c:272 +#: ../src/goabackend/goaewsclient.c:287 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "Унсури ‘%s’ ёфт нашудааст" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:308 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ASUrl ва OABUrl дар ҷавоби кашфи худкор ёфт нашудааст" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:383 +#: ../src/goabackend/goaowncloudprovider.c:1168 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "Парол бо шахсияти ‘%s’ дар маълумоти корбар ёфт нашуд" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:406 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "Пароли нодуруст барои корбари ‘%s’ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:700 +msgid "_E-mail" +msgstr "_Почтаи электронӣ" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:720 +#: ../src/goabackend/goaimapsmtpprovider.c:740 +#: ../src/goabackend/goaowncloudprovider.c:634 +msgid "_Password" +msgstr "_Парол" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "_Иловагӣ" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:719 +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goakerberosprovider.c:1144 +#: ../src/goabackend/goaowncloudprovider.c:633 +msgid "User_name" +msgstr "Номи _корбар" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:632 +msgid "_Server" +msgstr "_Сервер" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:752 +#: ../src/goabackend/goakerberosprovider.c:1149 +#: ../src/goabackend/goaowncloudprovider.c:643 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "_Бекор кардан" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1150 +#: ../src/goabackend/goaowncloudprovider.c:644 +msgid "C_onnect" +msgstr "_Пайваст кардан" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:769 +#: ../src/goabackend/goakerberosprovider.c:1166 +#: ../src/goabackend/goaowncloudprovider.c:660 +msgid "Connecting…" +msgstr "Пайваст шуда истодааст..." + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:931 +#: ../src/goabackend/goaimapsmtpprovider.c:966 +#: ../src/goabackend/goaimapsmtpprovider.c:1054 +#: ../src/goabackend/goaimapsmtpprovider.c:1318 +#: ../src/goabackend/goaimapsmtpprovider.c:1391 +#: ../src/goabackend/goakerberosprovider.c:1564 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1033 ../src/goabackend/goaoauthprovider.c:863 +#: ../src/goabackend/goaowncloudprovider.c:771 +#: ../src/goabackend/goaowncloudprovider.c:986 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "Равзанаи гуфтугӯ қатъ карда шуд" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:996 +#: ../src/goabackend/goaimapsmtpprovider.c:1089 +#: ../src/goabackend/goaimapsmtpprovider.c:1342 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goaowncloudprovider.c:813 +#: ../src/goabackend/goaowncloudprovider.c:1007 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Равзанаи гуфтугӯ қатъ карда шуд (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1009 +#: ../src/goabackend/goaimapsmtpprovider.c:1102 +#: ../src/goabackend/goaowncloudprovider.c:826 +msgid "_Ignore" +msgstr "_Рад кардан" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1014 +#: ../src/goabackend/goaimapsmtpprovider.c:1107 +#: ../src/goabackend/goaimapsmtpprovider.c:1361 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1674 +#: ../src/goabackend/goaowncloudprovider.c:831 +#: ../src/goabackend/goaowncloudprovider.c:1026 +msgid "_Try Again" +msgstr "_Такрор кардан" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Ҳангоми пайваст шудан ба сервери Microsoft Exchange хатогӣ ба вуҷуд омад" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:427 +#: ../src/goabackend/goaflickrprovider.c:412 +#: ../src/goabackend/goafoursquareprovider.c:404 +#: ../src/goabackend/goagoogleprovider.c:622 +#: ../src/goabackend/goakerberosprovider.c:1747 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1082 +#: ../src/goabackend/goapocketprovider.c:406 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "Истифода бурдан барои" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:624 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "_Почта" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:629 +#: ../src/goabackend/goaowncloudprovider.c:1084 +msgid "Cale_ndar" +msgstr "_Тақвим" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:634 +#: ../src/goabackend/goaowncloudprovider.c:1089 +msgid "_Contacts" +msgstr "_Тамосҳо" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goafoursquareprovider.c:188 +#: ../src/goabackend/goagoogleprovider.c:221 +#: ../src/goabackend/goawindowsliveprovider.c:195 +#, c-format +msgid "Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Вазъияти мунтазири 200 ҳангоми дархосткунии шахсияти шумо, ваъияти %d (%s)-ро қабул " +"кард" + +#: ../src/goabackend/goafacebookprovider.c:234 +#: ../src/goabackend/goafacebookprovider.c:246 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goafoursquareprovider.c:207 +#: ../src/goabackend/goafoursquareprovider.c:219 +#: ../src/goabackend/goafoursquareprovider.c:230 +#: ../src/goabackend/goafoursquareprovider.c:241 +#: ../src/goabackend/goafoursquareprovider.c:252 +#: ../src/goabackend/goafoursquareprovider.c:263 +#: ../src/goabackend/goagoogleprovider.c:240 ../src/goabackend/goagoogleprovider.c:252 +#: ../src/goabackend/goaoauth2provider.c:699 ../src/goabackend/goaoauth2provider.c:729 +#: ../src/goabackend/goaoauth2provider.c:741 +#: ../src/goabackend/goawindowsliveprovider.c:214 +#: ../src/goabackend/goawindowsliveprovider.c:226 +#: ../src/goabackend/goawindowsliveprovider.c:238 +#, c-format +msgid "Could not parse response" +msgstr "Ҷавоб таҷзия карда нашуд" + +#: ../src/goabackend/goafacebookprovider.c:429 +#: ../src/goabackend/goaflickrprovider.c:414 ../src/goabackend/goagoogleprovider.c:649 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "_Суратҳо" + +#: ../src/goabackend/goafacebookprovider.c:434 +#: ../src/goabackend/goafoursquareprovider.c:406 +msgid "_Maps" +msgstr "_Харитаҳо" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:320 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Вақти системаи шумо норуруст аст. Танзимоти вақт ва санаро тафтиш кунед." + +#: ../src/goabackend/goafoursquareprovider.c:76 +msgid "Foursquare" +msgstr "Мураббаъ" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:639 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "_Чат" + +#: ../src/goabackend/goagoogleprovider.c:644 +#: ../src/goabackend/goaowncloudprovider.c:1094 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "_Ҳуҷҷатҳо" + +#: ../src/goabackend/goagoogleprovider.c:654 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "_Files" +msgstr "_Файлҳо" + +#: ../src/goabackend/goagoogleprovider.c:659 +msgid "Prin_ters" +msgstr "_Принтерҳо" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "Хидмат дастрас нест" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "Санҷиши ҳаққоният қатъ шудааст" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Сервер PLAIN-ро дастгирӣ намекунад" + +#: ../src/goabackend/goaimapauthlogin.c:194 ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Сервер STARTTLS-ро дастгирӣ намекунад" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP ва SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:358 +#: ../src/goabackend/goaimapsmtpprovider.c:416 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "%s бо шахсияти ‘%s’ дар маълумоти корбар ёфт нашуд" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:389 +#: ../src/goabackend/goaimapsmtpprovider.c:449 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s-и нодуруст барои корбари ‘%s’ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:636 +msgid "_Encryption" +msgstr "_Рамзгузорӣ" + +#: ../src/goabackend/goaimapsmtpprovider.c:639 +msgid "None" +msgstr "Ҳеҷ" + +#: ../src/goabackend/goaimapsmtpprovider.c:642 +msgid "STARTTLS after connecting" +msgstr "Оғоз кардани STARTTLS баъд аз пайваст шудан" + +#: ../src/goabackend/goaimapsmtpprovider.c:645 +msgid "SSL on a dedicated port" +msgstr "SSL дар порти муайяншуда" + +#: ../src/goabackend/goaimapsmtpprovider.c:701 +msgid "_Name" +msgstr "_Ном" + +#: ../src/goabackend/goaimapsmtpprovider.c:718 +msgid "IMAP _Server" +msgstr "_Сервери IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:738 +msgid "SMTP _Server" +msgstr "_Сервери SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +#: ../src/goabackend/goaimapsmtpprovider.c:1035 +#: ../src/goabackend/goaimapsmtpprovider.c:1371 +msgid "_Forward" +msgstr "_Бозфиристодан" + +#: ../src/goabackend/goaimapsmtpprovider.c:1019 +#: ../src/goabackend/goaimapsmtpprovider.c:1354 +msgid "Error connecting to IMAP server" +msgstr "Ҳангоми пайваст шудан ба сервери IMAP хатогӣ ба вуҷуд омад" + +#: ../src/goabackend/goaimapsmtpprovider.c:1112 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Ҳангоми пайваст шудан ба сервери SMTP хатогӣ ба вуҷуд омад" + +#: ../src/goabackend/goaimapsmtpprovider.c:1527 +msgid "E-mail" +msgstr "Почтаи электронӣ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1531 +msgid "Name" +msgstr "Ном" + +#: ../src/goabackend/goaimapsmtpprovider.c:1541 +#: ../src/goabackend/goaimapsmtpprovider.c:1545 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1560 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:64 +msgid "Enterprise Login (Kerberos)" +msgstr "Вуруди тиҷорӣ (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:439 +msgid "Identity service returned invalid key" +msgstr "Шахсияти хидмат калиди нодурустро баён кард" + +#: ../src/goabackend/goakerberosprovider.c:727 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "" +"Маълумоти корбари захирашуда барои корбари асосии ‘%s’ дар анбори калидҳо ёфт нашуд" + +#: ../src/goabackend/goakerberosprovider.c:740 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "Пароли корбари асосии ‘%s’ дар маълумоти корбар ёфт нашуд" + +#: ../src/goabackend/goakerberosprovider.c:1136 +msgid "_Domain" +msgstr "_Домен" + +#: ../src/goabackend/goakerberosprovider.c:1137 +msgid "Enterprise domain or realm name" +msgstr "Домени тиҷорӣ ё номи идора" + +#: ../src/goabackend/goakerberosprovider.c:1373 +#: ../src/goaidentity/goaidentityservice.c:1119 +msgid "Log In to Realm" +msgstr "Барои идоракунӣ ворид шавед" + +#: ../src/goabackend/goakerberosprovider.c:1374 +msgid "Please enter your password below." +msgstr "Лутфан, пароли худро ворид кунед." + +#: ../src/goabackend/goakerberosprovider.c:1375 +msgid "Remember this password" +msgstr "Ба хотир гирифтани ин парол" + +#: ../src/goabackend/goakerberosprovider.c:1514 +#, c-format +msgid "The domain is not valid" +msgstr "Домен беэътибор аст" + +#: ../src/goabackend/goakerberosprovider.c:1669 +msgid "Error connecting to enterprise identity server" +msgstr "Ҳангоми пайваст шудан ба сервери шахсияти тиҷорӣ хатогӣ ба вуҷуд омад" + +#: ../src/goabackend/goakerberosprovider.c:1749 +msgid "Network _Resources" +msgstr "Сарчашмаҳои _шабака" + +#: ../src/goabackend/goamediaserverprovider.c:76 +msgid "Media Server" +msgstr "Сервери медиа" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server account." +msgstr "" +"Муҳтавои шахсӣ метавонад ба барномаҳои шумо тавассути ҳисоби сервери медиа илова " +"карда шавад." + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "Серверҳои медиаи дастрас" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "Ягон сервери медиа ёфт нашуд" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:675 ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Вазъияти мунтазири 200 ҳангоми дархосткунии дастрасии токен, ваъияти %d (%s)-ро " +"қабул кард" + +#: ../src/goabackend/goaoauth2provider.c:842 +msgid "Authorization response: " +msgstr "Ҷавоби санҷиши ҳаққоният:" + +#: ../src/goabackend/goaoauth2provider.c:912 +#, c-format +msgid "Authorization response: %s" +msgstr "Ҷавоби санҷиши ҳаққоният: %s" + +#: ../src/goabackend/goaoauth2provider.c:1059 ../src/goabackend/goaoauthprovider.c:894 +msgid "Error getting an Access Token: " +msgstr "Хатои гирифтани токени дастрасӣ:" + +#: ../src/goabackend/goaoauth2provider.c:1074 ../src/goabackend/goaoauthprovider.c:907 +msgid "Error getting identity: " +msgstr "Хатои гирифтани шахсият:" + +#: ../src/goabackend/goaoauth2provider.c:1291 +#: ../src/goabackend/goaoauthprovider.c:1215 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Дархост кардем, ки ҳамчум %s ворид шавед, вале ҳамчун %s ворид шудед" + +#: ../src/goabackend/goaoauth2provider.c:1453 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Маълумоти корбар дорои токени дастрасӣ (access_token) намебошад" + +#: ../src/goabackend/goaoauth2provider.c:1492 +#: ../src/goabackend/goaoauthprovider.c:1443 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Навсозӣ кардани токени дастрасӣ қатъ шуд (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "" +"Сарварақҳои \"access_token\" ё \"access_token_secret\" дар ҷавоб вуҷуд надоранд" + +#: ../src/goabackend/goaoauthprovider.c:776 +msgid "Error getting a Request Token: " +msgstr "Ҳангоми дархости рамзи токен хатогӣ ба вуҷуд омад: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:809 +#, c-format +msgid "Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "Вазъияти мунтазири 200 барои дархости токен, ваъияти %d (%s)-ро қабул кард" + +#: ../src/goabackend/goaoauthprovider.c:826 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "" +"Сарварақҳои \"request_token\" ё \"equest_token_secret\" дар ҷавоб вуҷуд надоранд" + +#: ../src/goabackend/goaoauthprovider.c:1399 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Маълумоти корбар дорои рамзи \"access_token\" ё \"access_token_secret\" намебошад" + +#: ../src/goabackend/goaowncloudprovider.c:67 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:836 +#: ../src/goabackend/goaowncloudprovider.c:1019 +msgid "Error connecting to ownCloud server" +msgstr "Ҳангоми пайваст шудан ба сервери ownCloud хатогӣ ба вуҷуд омад" + +#: ../src/goabackend/goapocketprovider.c:69 +msgid "Pocket" +msgstr "Баста" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:218 +#, c-format +msgid "No username or access_token" +msgstr "Ягон номи корбар ё дстрасӣ нест" + +#: ../src/goabackend/goapocketprovider.c:408 +msgid "_Read Later" +msgstr "_Баъдтар мехонам" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "Имконоти ensure_credentials_sync дар намуди %s иҷро нашуд" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS дастрас нест" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "Хидмати org.gnome.OnlineAccounts.Mail дастрас нест" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "Таҷзият суроғаи почтаи электронӣ иҷро нашудааст" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "Санҷиши ҳаққонияти SMTP бе домен иҷро намешавад" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "Пароли smtp дар маълумоти корбар ёфт нашуд" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "Санҷиши ҳаққонияти SMTP бе парол иҷро намешавад" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Механизми санҷиши ҳаққонияти номаълум" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Ҳисоби чати Telepathy ёфт нашудааст" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "Омодасозии муштарии GOA қатъ шудааст" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Омодасозии интерфейси корбарӣ барои %s қатъ шудааст" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "Танзимоти пайваст" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "Тафсилоти шахсӣ" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "_OK" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "Параметрҳои пайваст захира намешаванд" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "Маълумоти шахсии шумо дар сервер захира намешаванд" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "_Танзимоти пайваст" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "_Тафсилоти шахсӣ" + +#: ../src/goabackend/goautils.c:115 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Ҳисоби %s аллакай барои %s мавҷуд аст" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:137 +#, c-format +msgid "%s account" +msgstr "Ҳисоби %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:181 +msgid "Failed to delete credentials from the keyring" +msgstr "Нест кардани маълумоти корбар аз анбори калидҳо қатъ шуд" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:233 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Бозёбӣ кардани маълумоти корбар аз анбори калидҳо қатъ шуд" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:243 +msgid "No credentials found in the keyring" +msgstr "Ягон маълумоти корбар дар анбори қалидҳо ёфт нашуд" + +#: ../src/goabackend/goautils.c:256 +msgid "Error parsing result obtained from the keyring: " +msgstr "Ҳангоми гирифтани натиҷа аз анбори калидҳо хатогӣ ба вуҷуд омад:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:299 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Маълумоти корбари GOA %s барои шахсияти %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:316 +msgid "Failed to store credentials in the keyring" +msgstr "Нигоҳ доштани маълумоти корбар дар анбори калидҳо қатъ шуд" + +#: ../src/goabackend/goautils.c:537 +msgid "The signing certificate authority is not known." +msgstr "Вақолатдори гувоҳиномаи имзошуда номаълум аст." + +#: ../src/goabackend/goautils.c:541 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "" +"Гувоҳинома ба шахсияти сайти мунтазире, ки гувоҳиномаро интишор кард, мувофиқат " +"намекунад." + +#: ../src/goabackend/goautils.c:546 +msgid "The certificate’s activation time is still in the future." +msgstr "Вақти фаъолсозии гувоҳинома ҳоло наомад." + +#: ../src/goabackend/goautils.c:550 +msgid "The certificate has expired." +msgstr "Гӯфоҳинома аз мӯҳлаташ гузашт." + +#: ../src/goabackend/goautils.c:554 +msgid "The certificate has been revoked." +msgstr "Гувоҳинома лағв карда шудааст." + +#: ../src/goabackend/goautils.c:558 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Алгоритми гувоҳинома муҳофизат нашудааст." + +#: ../src/goabackend/goautils.c:562 +msgid "Invalid certificate." +msgstr "Гувоҳиномаи нодуруст." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:92 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” бор шуда истодааст…" + +#: ../src/goabackend/goawindowsliveprovider.c:77 +msgid "Microsoft Account" +msgstr "Ҳисоби Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:376 +msgid "initial secret passed before secret key exchange" +msgstr "калиди аввалӣ пеш аз тағйир кардани калиди амният қабул шуд" + +#: ../src/goaidentity/goaidentityservice.c:570 +msgid "Initial secret key is invalid" +msgstr "Калиди амнияти аввалӣ нодуруст аст" + +#: ../src/goaidentity/goaidentityservice.c:1124 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "" +"Идоракунии шабакаи %s барои ворид кардани шумо маълумоти иловагиро талаб мекунад." + +#: ../src/goaidentity/goakerberosidentity.c:254 +#: ../src/goaidentity/goakerberosidentity.c:263 +#: ../src/goaidentity/goakerberosidentity.c:642 +msgid "Could not find identity in credential cache: %k" +msgstr "Шахсият дар маълумоти корбари зерҳофиза ёфт нашуд: %k" + +#: ../src/goaidentity/goakerberosidentity.c:656 +msgid "Could not find identity credentials in cache: %k" +msgstr "Шахсияти маълумоти корбар дар зерҳофиза ёфт нашуд: %k" + +#: ../src/goaidentity/goakerberosidentity.c:700 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Интихобкуии шахсияти маълумоти корбар дар зерҳофиза имконнопазир аст: %k" + +#: ../src/goaidentity/goakerberosidentity.c:718 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "Интихобкунии шахсияти маълумоти корбар дар зерҳофиза ба анҷом нарасид: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1013 +#, c-format +msgid "No associated identification found" +msgstr "Ягон санҷиши ҳаққонияти мувофиқ ёфт нашуд" + +#: ../src/goaidentity/goakerberosidentity.c:1096 +msgid "Could not create credential cache: %k" +msgstr "Маълумоти зерҳофиза эҷод нашуд: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1130 +msgid "Could not initialize credentials cache: %k" +msgstr "Омодасозии зерҳофизаи маълумоти корбар имконнопазир аст: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1147 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "Маълумоти корбари нав дар зерҳофизаи маълумоти корбар захира намешавад: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1436 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Шахсият навсозӣ карда нашуд: Ворид нашудааст" + +#: ../src/goaidentity/goakerberosidentity.c:1448 +msgid "Could not renew identity: %k" +msgstr "Шахсият навсозӣ карда нашуд: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1465 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Гирифтани маълумоти корбари нав барои навсозӣ кардани шахсияти %s имконнопазир аст: " +"%k" + +#: ../src/goaidentity/goakerberosidentity.c:1507 +msgid "Could not erase identity: %k" +msgstr "Шахсият тоза нашуд: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:750 +msgid "Could not find identity" +msgstr "Шахсият ёфт нашуд" + +#: ../src/goaidentity/goakerberosidentitymanager.c:841 +msgid "Could not create credential cache for identity" +msgstr "Маълумоти зерҳофиза барои шахсият эҷод нашуд" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization page:" +#~ msgstr "" +#~ "Рамзи санҷиши ҳаққониятеро, ки аз саҳифаи санҷиши ҳаққоният " +#~ "гирифтед, ворид кунед:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Рамзи токенеро, ки аз саҳифаи санҷиши ҳаққоният гирифтед, " +#~ "ворид кунед:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Вазъияти мунтазири 200 ҳангоми дархосткунии ном, ваъияти %d (%s)-ро қабул кард" + +#~ msgid "Time" +#~ msgstr "Вақт" + +#~ msgid "Time to fire" +#~ msgstr "Вақти иҷро" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Унсури кашфи худкор ёфт нашудааст" + +#~ msgid "Failed to find Account element" +#~ msgstr "Унсури ҳисоб ёфт нашудааст" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Вазъияти мунтазири 200 ҳангоми дархосткунии guid, ваъияти %d (%s)-ро қабул кард" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Пароли imap бо шахсияти `%s' дар маълумоти корбар ёфт нашуд" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Пароли imap-и нодуруст бо корбари `%s' (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Пароли smtp бо шахсияти `%s' дар маълумоти корбар ёфт нашуд" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Пароли smtp-и нодуруст бо корбари `%s' (%s, %d): " diff --git a/po/th.gmo b/po/th.gmo new file mode 100644 index 0000000..1fed182 Binary files /dev/null and b/po/th.gmo differ diff --git a/po/th.po b/po/th.po new file mode 100644 index 0000000..e73b435 --- /dev/null +++ b/po/th.po @@ -0,0 +1,1011 @@ +# Thai translation for gnome-online-accounts. +# Copyright (C) 2011-2016 Free Software Foundation, Inc. +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Unticha Pramgoed , 2011-2012. +# Akom Chotiphantawanon , 2014-2016. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-09-01 14:53+0000\n" +"PO-Revision-Date: 2016-09-10 10:40+0700\n" +"Last-Translator: Akom Chotiphantawanon \n" +"Language-Team: Thai \n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 2.91.6\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:922 ../src/daemon/goadaemon.c:1209 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "ไม่สามารถหาผู้ให้บริการสำหรับ: %s" + +#: ../src/daemon/goadaemon.c:1151 +msgid "IsLocked property is set for account" +msgstr "มีการตั้งค่า IsLocked ไว้สำหรับบัญชี" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1197 +msgid "ProviderType property is not set for account" +msgstr "ไม่ได้กำหนดคุณสมบัติ ProviderType สำหรับบัญชี" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "ไม่สามารถแจงข้อมูล XML ของการตอบ autodiscover" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:261 ../src/goabackend/goaewsclient.c:276 +#: ../src/goabackend/goaewsclient.c:291 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "ไม่สามารถหาอิลิเมนต์ ‘%s’" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:312 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ไม่สามารถหา ASUrl และ OABUrl ในคำตอบของ autodiscover " + +#: ../src/goabackend/goaexchangeprovider.c:74 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:283 +#: ../src/goabackend/goalastfmprovider.c:281 +#: ../src/goabackend/goaowncloudprovider.c:314 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "รหัสผ่านไม่ถูกต้องสำหรับชื่อผู้ใช้ ‘%s’ (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:436 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "_อีเมล" + +#: ../src/goabackend/goaexchangeprovider.c:437 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:423 +#: ../src/goabackend/goaowncloudprovider.c:560 +msgid "_Password" +msgstr "_รหัสผ่าน" + +#: ../src/goabackend/goaexchangeprovider.c:440 +msgid "_Custom" +msgstr "_กำหนดเอง" + +#: ../src/goabackend/goaexchangeprovider.c:451 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:738 +#: ../src/goabackend/goalastfmprovider.c:422 +#: ../src/goabackend/goaowncloudprovider.c:559 +msgid "User_name" +msgstr "_ชื่อผู้ใช้" + +#: ../src/goabackend/goaexchangeprovider.c:452 +#: ../src/goabackend/goaowncloudprovider.c:558 +msgid "_Server" +msgstr "เซิร์ฟเ_วอร์" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:462 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:743 +#: ../src/goabackend/goalastfmprovider.c:431 +#: ../src/goabackend/goaowncloudprovider.c:569 +#: ../src/goabackend/goatelepathyprovider.c:666 +msgid "_Cancel" +msgstr "_ยกเลิก" + +#: ../src/goabackend/goaexchangeprovider.c:463 +#: ../src/goabackend/goakerberosprovider.c:744 +#: ../src/goabackend/goalastfmprovider.c:432 +#: ../src/goabackend/goaowncloudprovider.c:570 +msgid "C_onnect" +msgstr "เ_ชื่อมต่อ" + +#: ../src/goabackend/goaexchangeprovider.c:479 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:760 +#: ../src/goabackend/goalastfmprovider.c:448 +#: ../src/goabackend/goaowncloudprovider.c:585 +msgid "Connecting…" +msgstr "กำลังเชื่อมต่อ…" + +#: ../src/goabackend/goaexchangeprovider.c:584 +#: ../src/goabackend/goaexchangeprovider.c:779 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1310 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +#: ../src/goabackend/goakerberosprovider.c:1157 +#: ../src/goabackend/goalastfmprovider.c:643 +#: ../src/goabackend/goalastfmprovider.c:809 +#: ../src/goabackend/goamediaserverprovider.c:434 +#: ../src/goabackend/goaoauth2provider.c:1086 +#: ../src/goabackend/goaoauthprovider.c:862 +#: ../src/goabackend/goaowncloudprovider.c:696 +#: ../src/goabackend/goaowncloudprovider.c:910 +#: ../src/goabackend/goatelepathyprovider.c:490 +#: ../src/goabackend/goatelepathyprovider.c:529 +#: ../src/goabackend/goatelepathyprovider.c:697 +#, c-format +msgid "Dialog was dismissed" +msgstr "กล่องโต้ตอบถูกยกเลิก" + +#: ../src/goabackend/goaexchangeprovider.c:622 +#: ../src/goabackend/goaexchangeprovider.c:807 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1337 +#: ../src/goabackend/goaimapsmtpprovider.c:1414 +#: ../src/goabackend/goalastfmprovider.c:677 +#: ../src/goabackend/goalastfmprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:738 +#: ../src/goabackend/goaowncloudprovider.c:931 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "กล่องโต้ตอบถูกยกเลิก (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:635 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:751 +msgid "_Ignore" +msgstr "เ_พิกเฉย" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:826 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1356 +#: ../src/goabackend/goaimapsmtpprovider.c:1433 +#: ../src/goabackend/goakerberosprovider.c:1264 +#: ../src/goabackend/goalastfmprovider.c:689 +#: ../src/goabackend/goalastfmprovider.c:845 +#: ../src/goabackend/goaowncloudprovider.c:756 +#: ../src/goabackend/goaowncloudprovider.c:950 +msgid "_Try Again" +msgstr "_ลองอีกครั้ง" + +#: ../src/goabackend/goaexchangeprovider.c:645 +#: ../src/goabackend/goaexchangeprovider.c:819 +msgid "Error connecting to Microsoft Exchange server" +msgstr "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยังเซิร์ฟเวอร์ Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:78 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:208 +#: ../src/goabackend/goaflickrprovider.c:184 +#: ../src/goabackend/goafoursquareprovider.c:191 +#: ../src/goabackend/goagoogleprovider.c:219 +#: ../src/goabackend/goawindowsliveprovider.c:188 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "ต้องการสถานะ 200 เมื่อร้องขอเอกลักษณ์ของคุณ แต่กลับได้รับสถานะ %d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:227 +#: ../src/goabackend/goafacebookprovider.c:239 +#: ../src/goabackend/goafacebookprovider.c:252 +#: ../src/goabackend/goaflickrprovider.c:203 +#: ../src/goabackend/goaflickrprovider.c:215 +#: ../src/goabackend/goaflickrprovider.c:225 +#: ../src/goabackend/goaflickrprovider.c:235 +#: ../src/goabackend/goaflickrprovider.c:245 +#: ../src/goabackend/goafoursquareprovider.c:210 +#: ../src/goabackend/goafoursquareprovider.c:222 +#: ../src/goabackend/goafoursquareprovider.c:233 +#: ../src/goabackend/goafoursquareprovider.c:244 +#: ../src/goabackend/goafoursquareprovider.c:255 +#: ../src/goabackend/goafoursquareprovider.c:266 +#: ../src/goabackend/goagoogleprovider.c:238 +#: ../src/goabackend/goagoogleprovider.c:250 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:231 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:506 +#: ../src/goabackend/goalastfmprovider.c:515 +#: ../src/goabackend/goalastfmprovider.c:530 +#: ../src/goabackend/goalastfmprovider.c:537 +#: ../src/goabackend/goaoauth2provider.c:743 +#: ../src/goabackend/goaoauth2provider.c:773 +#: ../src/goabackend/goaoauth2provider.c:785 ../src/goabackend/goautils.c:311 +#: ../src/goabackend/goawindowsliveprovider.c:207 +#: ../src/goabackend/goawindowsliveprovider.c:219 +#: ../src/goabackend/goawindowsliveprovider.c:231 +#, c-format +msgid "Could not parse response" +msgstr "ไม่สามารถแจงคำตอบ" + +#: ../src/goabackend/goaflickrprovider.c:78 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:322 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "เวลาของระบบคุณไม่ถูกต้อง กรุณาตรวจสอบการติดตั้งวันและเวลาของคุณ" + +#: ../src/goabackend/goafoursquareprovider.c:79 +msgid "Foursquare" +msgstr "Foursquare" + +#: ../src/goabackend/goagoogleprovider.c:78 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "ไม่มีบริการ" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goalastfmprovider.c:523 +#: ../src/goabackend/goasmtpauth.c:113 ../src/goabackend/goautils.c:786 +#, c-format +msgid "Authentication failed" +msgstr "ยืนยันตัวบุคคลไม่สำเร็จ" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "เซิร์ฟเวอร์ไม่รองรับ PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:194 ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "เซิร์ฟเวอร์ไม่รองรับ STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP และ SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "%s ไม่ถูกต้องสำหรับชื่อผู้ใช้ ‘%s’ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "การเ_ข้ารหัสลับ" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "ไม่มี" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS หลังจากการเชื่อมต่อ" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL ในพอร์ตเฉพาะ" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_ชื่อ" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "เซิร์ฟเ_วอร์ IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "เซิร์ฟเ_วอร์ SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1366 +msgid "_Forward" +msgstr "_ส่งต่อ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1349 +msgid "Error connecting to IMAP server" +msgstr "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยังเซิร์ฟเวอร์ IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1426 +msgid "Error connecting to SMTP server" +msgstr "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยังเซิร์ฟเวอร์ SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1534 +msgid "E-mail" +msgstr "อีเมล" + +#: ../src/goabackend/goaimapsmtpprovider.c:1538 +msgid "Name" +msgstr "ชื่อ" + +#: ../src/goabackend/goaimapsmtpprovider.c:1548 +#: ../src/goabackend/goaimapsmtpprovider.c:1552 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1563 +#: ../src/goabackend/goaimapsmtpprovider.c:1567 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:101 +msgid "Enterprise Login (Kerberos)" +msgstr "เข้าระบบองค์กร (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:296 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "การจองตั๋วถูกปิดใช้สำหรับบัญชี" + +#: ../src/goabackend/goakerberosprovider.c:321 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "ไม่สามารถหาข้อมูลลับที่บันทึกไว้สำหรับ principal ‘%s’ ในพวงกุญแจ" + +#: ../src/goabackend/goakerberosprovider.c:334 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "ไม่พบรหัสผ่านสำหรับ principal ‘%s’ ในข้อมูลลับ" + +#: ../src/goabackend/goakerberosprovider.c:730 +msgid "_Domain" +msgstr "โ_ดเมน" + +#: ../src/goabackend/goakerberosprovider.c:731 +msgid "Enterprise domain or realm name" +msgstr "โดเมนขององค์กรหรือชื่อ realm" + +#: ../src/goabackend/goakerberosprovider.c:973 +#: ../src/goaidentity/goaidentityservice.c:1127 +msgid "Log In to Realm" +msgstr "เข้าระบบใน Realm" + +#: ../src/goabackend/goakerberosprovider.c:974 +msgid "Please enter your password below." +msgstr "กรุณาป้อนรหัสผ่านของคุณด้านล่าง" + +#: ../src/goabackend/goakerberosprovider.c:975 +msgid "Remember this password" +msgstr "จำรหัสผ่านนี้" + +#: ../src/goabackend/goakerberosprovider.c:1109 +#, c-format +msgid "The domain is not valid" +msgstr "โดเมนไม่ถูกต้อง" + +#: ../src/goabackend/goakerberosprovider.c:1259 +msgid "Error connecting to enterprise identity server" +msgstr "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยังเซิร์ฟเวอร์ตรวจสอบเอกลักษณ์ขององค์กร" + +#: ../src/goabackend/goakerberosprovider.c:1596 +#, c-format +msgid "Identity service returned invalid key" +msgstr "บริการตรวจสอบเอกลักษณ์คืนกุญแจที่ไม่ถูกต้อง" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:691 +#: ../src/goabackend/goalastfmprovider.c:839 +msgid "Error connecting to Last.fm" +msgstr "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยัง Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:77 +msgid "Media Server" +msgstr "เซิร์ฟเวอร์สื่อ" + +#: ../src/goabackend/goamediaserverprovider.c:330 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "เนื้อหาส่วนบุคคลสามารถเพิ่มเข้าในโปรแกรมของคุณได้ผ่านบัญชีเซิร์ฟเวอร์สื่อ" + +#: ../src/goabackend/goamediaserverprovider.c:343 +msgid "Available Media Servers" +msgstr "เซิร์ฟเวอร์สื่อที่มี" + +#: ../src/goabackend/goamediaserverprovider.c:374 +msgid "No media servers found" +msgstr "ไม่พบเซิร์ฟเวอร์สื่อ" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:719 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "ต้องการสถานะ 200 เมื่อร้องขอโทเคนสำหรับเข้าถึง แต่กลับได้รับสถานะ %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:893 +msgid "Authorization response: " +msgstr "คำตอบของการตรวจสอบสิทธิ์: " + +#: ../src/goabackend/goaoauth2provider.c:963 +#, c-format +msgid "Authorization response: %s" +msgstr "คำตอบของการตรวจสอบสิทธิ์: %s" + +#: ../src/goabackend/goaoauth2provider.c:1112 +#: ../src/goabackend/goaoauthprovider.c:893 +msgid "Error getting an Access Token: " +msgstr "เกิดข้อผิดพลาดขณะอ่านโทเคนสำหรับเข้าถึง: " + +#: ../src/goabackend/goaoauth2provider.c:1127 +#: ../src/goabackend/goaoauthprovider.c:906 +msgid "Error getting identity: " +msgstr "เกิดข้อผิดพลาดขณะอ่านเอกลักษณ์บุคคล: " + +#: ../src/goabackend/goaoauth2provider.c:1344 +#: ../src/goabackend/goaoauthprovider.c:1210 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "ถูกขอให้เข้าระบบในนาม %s แต่กลับเข้าระบบในนาม %s" + +#: ../src/goabackend/goaoauth2provider.c:1506 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "ข้อมูลลับไม่มี access_token" + +#: ../src/goabackend/goaoauth2provider.c:1545 +#: ../src/goabackend/goaoauthprovider.c:1438 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "ปรับข้อมูลโทเคนสำหรับเข้าถึง (%s, %d) ไม่สำเร็จ: " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "ขาดข้อมูลส่วนหัว access_token หรือ access_token_secret ในคำตอบ" + +#: ../src/goabackend/goaoauthprovider.c:774 +msgid "Error getting a Request Token: " +msgstr "เกิดข้อผิดพลาดขณะอ่านโทเคนคำร้อง: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:807 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "ต้องการสถานะ 200 สำหรับการอ่านโทเคนคำร้อง แต่กลับได้รับสถานะ %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:824 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "ขาดข้อมูลส่วนหัว request_token หรือ request_token_secret ในคำตอบ" + +#: ../src/goabackend/goaoauthprovider.c:1394 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "ข้อมูลลับไม่มี access_token หรือ access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:761 +#: ../src/goabackend/goaowncloudprovider.c:943 +msgid "Error connecting to ownCloud server" +msgstr "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยังเซิร์ฟเวอร์ ownCloud" + +#: ../src/goabackend/goapocketprovider.c:73 +msgid "Pocket" +msgstr "พ็อกเกต" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:248 +#, c-format +msgid "No username or access_token" +msgstr "ไม่มีชื่อผู้ใช้หรือ access_token" + +#: ../src/goabackend/goaprovider.c:120 +msgid "_Mail" +msgstr "เ_มล" + +#: ../src/goabackend/goaprovider.c:125 +msgid "Cale_ndar" +msgstr "_ปฏิทิน" + +#: ../src/goabackend/goaprovider.c:130 +msgid "_Contacts" +msgstr "ผู้_ติดต่อ" + +#: ../src/goabackend/goaprovider.c:135 +#: ../src/goabackend/goatelepathyprovider.c:961 +msgid "C_hat" +msgstr "การ_สนทนา" + +#: ../src/goabackend/goaprovider.c:140 +msgid "_Documents" +msgstr "เ_อกสาร" + +#: ../src/goabackend/goaprovider.c:145 +msgid "M_usic" +msgstr "เ_พลง" + +#: ../src/goabackend/goaprovider.c:150 +msgid "_Photos" +msgstr "_ภาพถ่าย" + +#: ../src/goabackend/goaprovider.c:155 +msgid "_Files" +msgstr "แ_ฟ้ม" + +#: ../src/goabackend/goaprovider.c:160 +msgid "Network _Resources" +msgstr "_ทรัพยากรเครือข่าย" + +#: ../src/goabackend/goaprovider.c:165 +msgid "_Read Later" +msgstr "_อ่านภายหลัง" + +#: ../src/goabackend/goaprovider.c:170 +msgid "Prin_ters" +msgstr "เ_ครื่องพิมพ์" + +#: ../src/goabackend/goaprovider.c:175 +msgid "_Maps" +msgstr "แ_ผนที่" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:601 +#: ../src/goabackend/goatelepathyprovider.c:959 +msgid "Use for" +msgstr "ใช้สำหรับ" + +#: ../src/goabackend/goaprovider.c:858 +msgid "Account is disabled" +msgstr "บัญชีถูกปิดใช้" + +#: ../src/goabackend/goaprovider.c:881 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ยังไม่รองรับ ensure_credentials_sync ในชนิด %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "ไม่มี TLS" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:242 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "ไม่มี org.gnome.OnlineAccounts.Mail" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:252 +#, c-format +msgid "Failed to parse email address" +msgstr "แจงที่อยู่อีเมลไม่สำเร็จ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:261 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "ไม่สามารถยืนยันตัวบุคคล SMTP โดยไม่มีโดเมนได้" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "ไม่พบ smtp-password ในข้อมูลลับ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "ไม่สามารถยืนยันตัวบุคคล SMTP โดยไม่มีรหัสผ่านได้" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "ไม่รู้จักกลไกยืนยันตัวบุคคล" + +#: ../src/goabackend/goatelepathyprovider.c:187 +#, c-format +msgid "Telepathy chat account not found" +msgstr "ไม่พบบัญชีการสนทนา Telepathy" + +#: ../src/goabackend/goatelepathyprovider.c:449 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "ไม่สามารถสร้างส่วนติดต่อผู้ใช้สำหรับ %s" + +#: ../src/goabackend/goatelepathyprovider.c:555 +msgid "Connection Settings" +msgstr "ค่าตั้งการเชื่อมต่อ" + +#: ../src/goabackend/goatelepathyprovider.c:661 +msgid "Personal Details" +msgstr "รายละเอียดส่วนบุคคล" + +#: ../src/goabackend/goatelepathyprovider.c:667 +msgid "_OK" +msgstr "_ตกลง" + +#: ../src/goabackend/goatelepathyprovider.c:913 +msgid "Cannot save the connection parameters" +msgstr "ไม่สามารถบันทึกพารามิเตอร์การเชื่อมต่อ" + +#: ../src/goabackend/goatelepathyprovider.c:926 +msgid "Cannot save your personal information on the server" +msgstr "ไม่สามารถบันทึกข้อมูลส่วนบุคคลของคุณในเซิร์ฟเวอร์" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:966 +msgid "_Connection Settings" +msgstr "ตั้งค่าการเ_ชื่อมต่อ" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:970 +msgid "_Personal Details" +msgstr "รายละเอียด_ส่วนบุคคล" + +#: ../src/goabackend/goautils.c:93 +msgid "Error logging into the account" +msgstr "เกิดข้อผิดพลาดขณะเข้าระบบด้วยบัญชีนี้" + +#: ../src/goabackend/goautils.c:137 +msgid "Credentials have expired." +msgstr "ข้อมูลลับหมดอายุแล้ว" + +#: ../src/goabackend/goautils.c:141 +msgid "Sign in to enable this account." +msgstr "เข้าระบบเพื่อเปิดใช้บัญชีนี้" + +#: ../src/goabackend/goautils.c:146 +msgid "_Sign In" +msgstr "เ_ข้าระบบ" + +#: ../src/goabackend/goautils.c:278 +#, c-format +msgid "A %s account already exists for %s" +msgstr "มีบัญชี %s สำหรับ %s อยู่ก่อนแล้ว" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:328 +#, c-format +msgid "%s account" +msgstr "บัญชี %s " + +#. TODO: more specific +#: ../src/goabackend/goautils.c:386 +msgid "Failed to delete credentials from the keyring" +msgstr "ไม่สามารถลบข้อมูลลับออกจากพวงกุญแจ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:438 +msgid "Failed to retrieve credentials from the keyring" +msgstr "ไม่สามารถดึงข้อมูลลับจากพวงกุญแจ" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:448 +msgid "No credentials found in the keyring" +msgstr "ไม่พบข้อมูลลับในพวงกุญแจ" + +#: ../src/goabackend/goautils.c:461 +msgid "Error parsing result obtained from the keyring: " +msgstr "เกิดข้อผิดพลาดขณะแจงผลที่ได้รับจากพวงกุญแจ: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:504 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "ข้อมูลลับ %s ของ GOA สำหรับเอกลักษณ์บุคคล %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:521 +msgid "Failed to store credentials in the keyring" +msgstr "ไม่สามารถเก็บข้อมูลลับลงในพวงกุญแจ" + +#: ../src/goabackend/goautils.c:773 +msgid "Cannot resolve hostname" +msgstr "ไม่สามารถเปิดหาที่อยู่จากชื่อโฮสต์" + +#: ../src/goabackend/goautils.c:777 +msgid "Cannot resolve proxy hostname" +msgstr "ไม่สามารถเปิดหาที่อยู่จากชื่อโฮสต์ของพร็อกซี" + +#: ../src/goabackend/goautils.c:782 +msgid "Cannot find WebDAV endpoint" +msgstr "ไม่สามารถหาจุดปลายของ WebDAV" + +#: ../src/goabackend/goautils.c:791 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "รหัส: %u — คำตอบที่ไม่ได้คาดหมายจากเซิร์ฟเวอร์" + +#: ../src/goabackend/goautils.c:807 +msgid "The signing certificate authority is not known." +msgstr "ไม่รู้จักองค์กรออกใบรับรองที่เซ็นกำกับ" + +#: ../src/goabackend/goautils.c:811 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "ใบรับรองไม่ตรงกับเอกลักษณ์ที่ควรจะเป็นของเว็บไซต์ที่ดึงมา" + +#: ../src/goabackend/goautils.c:816 +msgid "The certificate’s activation time is still in the future." +msgstr "เวลาเปิดใช้ใบรับรองยังมาไม่ถึง" + +#: ../src/goabackend/goautils.c:820 +msgid "The certificate has expired." +msgstr "ใบรับรองหมดอายุแล้ว" + +#: ../src/goabackend/goautils.c:824 +msgid "The certificate has been revoked." +msgstr "ใบรับรองถูกเพิกถอนแล้ว" + +#: ../src/goabackend/goautils.c:828 +msgid "The certificate’s algorithm is considered insecure." +msgstr "อัลกอริทึมของใบรับรองถือว่าไม่ปลอดภัย" + +#: ../src/goabackend/goautils.c:832 +msgid "Invalid certificate." +msgstr "ใบรับรองไม่ถูกต้อง" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:867 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "ไม่พบ %s ที่มีเอกลักษณ์ ‘%s’ ในข้อมูลลับ" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "กำลังโหลด “%s”…" + +#: ../src/goabackend/goawindowsliveprovider.c:79 +msgid "Microsoft Account" +msgstr "บัญชีไมโครซอฟท์" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "มีการส่งรหัสลับเริ่มต้นก่อนการแลกเปลี่ยนกุญแจลับ" + +#: ../src/goaidentity/goaidentityservice.c:567 +msgid "Initial secret key is invalid" +msgstr "กุญแจลับเริ่มต้นไม่ถูกต้อง" + +#: ../src/goaidentity/goaidentityservice.c:1132 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "realm เครือข่าย %s ต้องการข้อมูลบางอย่างในการเข้าระบบของคุณ" + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "ไม่พบเอกลักษณ์ในแคชข้อมูลลับ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "ไม่พบข้อมูลลับของเอกลักษณ์ในแคช: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "ไม่สามารถกลั่นกรองหาข้อมูลลับของเอกลักษณ์ในแคช: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "ไม่สามารถจบการกลั่นกรองหาข้อมูลลับของเอกลักษณ์ในแคช: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "ไม่พบการระบุตัวตนที่เชื่อมโยง" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "ไม่สามารถสร้างแคชข้อมูลลับ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "ไม่สามารถตั้งค่าเริ่มต้นแคชข้อมูลลับ: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "ไม่สามารถเก็บข้อมูลลับใหม่ในแคชข้อมูลลับ: %k " + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "ไม่สามารถต่ออายุเอกลักษณ์: ไม่ได้เข้าระบบ" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "ไม่สามารถต่ออายุเอกลักษณ์: %k " + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "ไม่สามารถดึงข้อมูลลับอันใหม่เพื่อต่ออายุเอกลักษณ์ %s: %k " + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "ไม่สามารถลบเอกลักษณ์: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "หาเอกลักษณ์ไม่พบ" + +#: ../src/goaidentity/goakerberosidentitymanager.c:841 +msgid "Could not create credential cache for identity" +msgstr "ไม่สามารถสร้างแคชข้อมูลลับสำหรับเอกลักษณ์" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "ไม่พบรหัสผ่านที่มีเอกลักษณ์ ‘%s’ ในข้อมูลลับ" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "ไม่สามารถตั้งต้นลูกข่าย GOA" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "ต้องการสถานะ 200 เมื่อร้องขอชื่อ แต่กลับได้รับสถานะ %d (%s)" + +#~ msgid "Online Accounts" +#~ msgstr "บัญชีออนไลน์" + +#~ msgid "An online account needs attention" +#~ msgstr "มีบัญชีออนไลน์มีเรื่องต้องดู" + +#~ msgid "Open Online Accounts..." +#~ msgstr "เปิดบัญชีออนไลน์...." + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "ไม่สามารถหาอิลิเมนต์ Autodiscover" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "ไม่พบข้อมูลลับในพวงกุญแจ (%s, %d):" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "เกิดข้อผิดพลาดขณะแจงคำตอบในแบบ JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล id ในข้อมูล JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล email ในข้อมูล JSON" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล data ในข้อมูล JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "ไม่พบ access_token ในข้อมูลที่ไม่ใช่ JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "ไม่พบ access_token ในข้อมูล JSON" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "แปะรหัสตรวจสอบสิทธิ์ที่ได้รับจากหน้าตรวจสอบสิทธิ์:" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "เกิดข้อผิดพลาดขณะบันทึกข้อมูลลับในพวงกุญแจ (%s, %d): " + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "แปะโทเคนที่ได้รับจาก หน้าตรวจสอบสิทธิ์:" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล account ของ email ในข้อมูล JSON" + +#~ msgid "Time" +#~ msgstr "เวลา" + +#~ msgid "Time to fire" +#~ msgstr "เวลาที่จะยิง" + +#~ msgid "Domain Administrator Login" +#~ msgstr "การเข้าระบบของผู้ดูแลโดเมน" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "ในการใช้เอกลักษณ์ในระบบองค์กรนี้ จะต้องลงทะเบียนคอมพิวเตอร์ในโดเมนเสียก่อน " +#~ "กรุณาขอให้ผู้ดูแลระบบเครือข่ายของคุณป้อนรหัสผ่านโดเมนของเขาที่นี่" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "ในการใช้เอกลักษณ์ในระบบองค์กรนี้ จะต้องลงทะเบียนคอมพิวเตอร์ในโดเมนเสียก่อน " +#~ "กรุณาขอให้ผู้ดูแลระบบเครือข่ายของคุณป้อนชื่อผู้ใช้ในโดเมนของเขาที่นี่" + +#~ msgid "No such domain or realm found" +#~ msgstr "ไม่พบโดเมนหรือ realm นี้" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "ไม่สามารถเข้าระบบเป็น %s ที่โดเมน %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "รหัสผ่านไม่ถูกต้อง กรุณาลองอีกครั้ง" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "ไม่สามารถเชื่อมต่อไปยังโดเมน %s: %s" + +#~ msgid "Chat" +#~ msgstr "การสนทนา" + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูลชื่อผู้ใช้ในข้อมูล JSON" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูลชื่อในข้อมูล JSON" + +#~ msgid "Email Address" +#~ msgstr "ที่อยู่อีเมล" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "มีบัญชีสำหรับเอกลักษณ์บุคคล %s อยู่ก่อนแล้ว" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล id_str ในข้อมูล JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล screen_name ในข้อมูล JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล value ในข้อมูล JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "เกิดข้อผิดพลาดขณะแจงคำตอบ usercard ในแบบ JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล profile ในข้อมูล JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "ไม่พบช่องข้อมูล nickname ในข้อมูล JSON" diff --git a/po/tr.gmo b/po/tr.gmo new file mode 100644 index 0000000..fef621d Binary files /dev/null and b/po/tr.gmo differ diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..333c4d0 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,916 @@ +# Turkish translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# +# Osman Karagöz , 2013. +# Ozan Çağlayan , 2013. +# Gökhan Gurbetoğlu , 2014. +# Furkan Tokaç , 2017. +# Muhammet Kara , 2011, 2013, 2014, 2015, 2016, 2017. +# Emin Tufan Çetin , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-12-05 18:19+0000\n" +"PO-Revision-Date: 2017-12-19 15:36+0300\n" +"Last-Translator: Emin Tufan Çetin \n" +"Language-Team: Türkçe \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Yüklenmesine izin verilen sağlayıcıların listesi" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Yüklenmesine izin verilen sağlayıcıları yansıtan dizgelerin listesi " +"(öntanımlı: 'all' [tümü]). Bu yalnızca başlangıçta değerlendirilir." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "%s için sağlayıcı bulunamadı" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Hesap için IsLocked özelliği ayarlanmış" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Hesap için ProviderType belirtilmemiş" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "XML autodiscover yanıtı ayrıştırılamadı" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "“%s” ögesi bulunamadı" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "autodiscover yanıtında ASUrl ve OABUrl bulunamadı" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:299 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "“%s” kullanıcısı için geçersiz parola (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:655 +msgid "_E-mail" +msgstr "_E-posta" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:675 +#: src/goabackend/goaimapsmtpprovider.c:695 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:538 +msgid "_Password" +msgstr "_Parola" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "_Özel" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:674 +#: src/goabackend/goaimapsmtpprovider.c:694 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:537 +msgid "User_name" +msgstr "Kullanıcı a_dı" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:536 +msgid "_Server" +msgstr "_Sunucu" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:707 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:552 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "_İptal" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:553 +msgid "C_onnect" +msgstr "B_ağlan" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:723 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:568 +msgid "Connecting…" +msgstr "Bağlanıyor…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:873 +#: src/goabackend/goaimapsmtpprovider.c:908 +#: src/goabackend/goaimapsmtpprovider.c:1000 +#: src/goabackend/goaimapsmtpprovider.c:1257 +#: src/goabackend/goaimapsmtpprovider.c:1333 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:671 +#: src/goabackend/goaowncloudprovider.c:891 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "İletişim penceresi kapatıldı" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:941 +#: src/goabackend/goaimapsmtpprovider.c:1038 +#: src/goabackend/goaimapsmtpprovider.c:1284 +#: src/goabackend/goaimapsmtpprovider.c:1361 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:716 +#: src/goabackend/goaowncloudprovider.c:918 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Pencere kapatıldı (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:954 +#: src/goabackend/goaimapsmtpprovider.c:1051 +#: src/goabackend/goaowncloudprovider.c:729 +msgid "_Ignore" +msgstr "_Yok say" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:959 +#: src/goabackend/goaimapsmtpprovider.c:1056 +#: src/goabackend/goaimapsmtpprovider.c:1303 +#: src/goabackend/goaimapsmtpprovider.c:1380 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:734 +#: src/goabackend/goaowncloudprovider.c:937 +msgid "_Try Again" +msgstr "_Yeniden Dene" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft Exchange sunucusuna bağlanılamadı" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Kimliğiniz istenirken durum kodu 200 bekleniyordu, fakat %d (%s) durumu " +"alındı" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Yanıt ayrıştırılamadı" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Sistem saatiniz yanlış. Tarih ve zaman ayarlarınızı gözden geçirin." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:89 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Hizmet kullanılabilir değil" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:109 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Kimlik doğrulama başarısız" + +#: src/goabackend/goaimapauthlogin.c:134 +msgid "Server does not support PLAIN" +msgstr "Sunucu PLAIN yöntemini desteklemiyor" + +#: src/goabackend/goaimapauthlogin.c:186 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Sunucu STARTTLS yöntemini desteklemiyor" + +#: src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP ve SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:335 +#: src/goabackend/goaimapsmtpprovider.c:386 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "“%2$s” kullanıcısı için geçersiz %1$s (%3$s, %4$d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:572 +msgid "_Encryption" +msgstr "_Şifreleme" + +#: src/goabackend/goaimapsmtpprovider.c:575 +msgid "None" +msgstr "Hiçbiri" + +#: src/goabackend/goaimapsmtpprovider.c:578 +msgid "STARTTLS after connecting" +msgstr "Bağlandıktan sonra STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:581 +msgid "SSL on a dedicated port" +msgstr "Adanmış bir bağlantı noktası üzerinden SSL" + +#: src/goabackend/goaimapsmtpprovider.c:656 +msgid "_Name" +msgstr "_Ad" + +#: src/goabackend/goaimapsmtpprovider.c:673 +msgid "IMAP _Server" +msgstr "IMAP _Sunucusu" + +#: src/goabackend/goaimapsmtpprovider.c:693 +msgid "SMTP _Server" +msgstr "SMTP _Sunucu" + +#: src/goabackend/goaimapsmtpprovider.c:708 +#: src/goabackend/goaimapsmtpprovider.c:980 +#: src/goabackend/goaimapsmtpprovider.c:1313 +msgid "_Forward" +msgstr "_İlet" + +#: src/goabackend/goaimapsmtpprovider.c:964 +#: src/goabackend/goaimapsmtpprovider.c:1296 +msgid "Error connecting to IMAP server" +msgstr "IMAP sunucusuna bağlanırken hata oluştu" + +#: src/goabackend/goaimapsmtpprovider.c:1061 +#: src/goabackend/goaimapsmtpprovider.c:1373 +msgid "Error connecting to SMTP server" +msgstr "SMTP sunucusuna bağlanırken hata oluştu" + +#: src/goabackend/goaimapsmtpprovider.c:1484 +msgid "E-mail" +msgstr "E-posta" + +#: src/goabackend/goaimapsmtpprovider.c:1488 +msgid "Name" +msgstr "Ad" + +#: src/goabackend/goaimapsmtpprovider.c:1498 +#: src/goabackend/goaimapsmtpprovider.c:1502 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1513 +#: src/goabackend/goaimapsmtpprovider.c:1517 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Kurumsal Giriş (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Hesap için biletleme devre dışı bırakılmış" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Tanıtıcı kimlik “%s” için anahtarlıkta kayıtlı kimlik bilgisi bulunamadı" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Tanıtıcı kimlik “%s” için kimlik bilgilerinde parola bulunamadı" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Tanıtıcı Kimlik" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Süreç iptal edildi" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Alana giriş yap" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Lütfen aşağıya parolanızı girin." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Bu parolayı anımsa" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Kurumsal kimlik sunucusuna bağlanırken hata oluştu" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Kimlik hizmeti geçersiz anahtar gönderdi" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Last.fm’e bağlanırken hata" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Ortam Sunucusu" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Uygulamalarınıza, bir ortam sunucusu hesabı aracılığıyla kişisel içerik " +"ekleyebilirsiniz." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Kullanılabilir Ortam Sunucuları" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Hiçbir ortam sunucusu bulunamadı" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Erişim simgesi istenirken durum kodu 200 bekleniyordu, ama durum kodu %d " +"(%s) alındı" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Yetkilendirme yanıtı:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Yetkilendirme yanıtı: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Erişim Simgesi alırken hata oluştu: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Kimlik alınırken hata oluştu: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "%s olarak giriş yapılması istendi, fakat %s olarak giriş yapıldı" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Kimlik bilgileri içinde access_token bulunmuyor" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Erişim kodu tazeleme başarısız oldu (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Yanıtta access_token ya da access_token_secret başlıkları eksik" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "İstek Simgesi alırken hata oluştu: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"İstek simgesi istenirken durum kodu 200 bekleniyordu, ama durum kodu %d (%s) " +"alındı" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Yanıtta request_token ya da request_token_secret başlıkları eksik" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "" +"Kimlik bilgileri içinde access_token ya da access_token_secret bulunmuyor" + +#: src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:739 +#: src/goabackend/goaowncloudprovider.c:930 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud sunucusuna bağlanırken hata oluştu" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Kullanıcı adı ya da access_token yok" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Posta" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "_Takvim" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Kişiler" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "S_ohbet" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "_Belgeler" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "M_üzik" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "_Fotoğraflar" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "_Dosyalar" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Ağ Ö_zkaynakları" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Daha Sonra _Oku" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Ya_zıcılar" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Haritalar" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_Yapılacaklar" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Şunun için kullanılacak" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Hesap devre dışı bırakılmış" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Bilinmeyen hata" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync, %s türüne uygulanmamıştır" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS kullanılabilir değil" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Bilinmeyen kimlik doğrulama tekniği" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Telepathy sohbet hesabı bulunamadı" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "%s için kullanıcı arayüzü oluşturulamadı" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Bağlantı Ayarları" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Kişisel Ayrıntılar" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "_Tamam" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Bağlantı değiştirgeleri kaydedilemiyor" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Kişisel bilgileriniz sunucuya kaydedilemiyor" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "_Bağlantı Ayarları" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Kişisel Ayrıntılar" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Hesaba giriş yapılırken hata oluştu" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Kimlik bilgilerinin süresi dolmuş" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Bu hesabı etkinleştirmek için giriş yap." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Giri_ş Yap" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%2$s için bir %1$s hesabı zaten var" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s Hesabı" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Kimlik bilgileri anahtarlıktan silinemedi" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Kimlik bilgileri anahtarlıktan alınamadı" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Anahtarlıkta hiç kimlik bilgisi bulunamadı" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Anahtarlıktan alınan sonuç ayrıştırılırken hata oluştu: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%2$s kimliği için GOA %1$s kimlik bilgileri" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Kimlik bilgileri anahtarlığa kaydedilemedi" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Alan adı çözümlenemiyor" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Vekil sunucu alan adı çözümlenemiyor" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "WebDAV bitiş noktası bulunamıyor" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Kod: %u — Sunucu beklenmeyen bir yanıt verdi" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "İmzalayan sertifika yetkilisi (CA) bilinmiyor." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Sertifika, alındığı sitenin kimliğiyle eşleşmiyor." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Sertifikanın etkinleştirilme tarihi henüz gelmemiş." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Sertifikanın süresi dolmuş." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Sertifika geçersiz kılınmış." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Sertifikanın algoritması güvensiz kabul ediliyor." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Geçersiz sertifika." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Kimlik bilgilerinde “%2$s” kimliği için %1$s bulunamadı" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "“%s” yükleniyor…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "İlk gizli anahtar geçersiz" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Ağ alanı %s size oturum açabilmek için bazı bilgilere ihtiyaç duyuyor." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +#| msgid "Could not find identity in credential cache: %k" +msgid "Could not find identity in credential cache: " +msgstr "Kimlik bilgileri önbelleğinde kimlik bulunamadı: " + +#: src/goaidentity/goakerberosidentity.c:720 +#| msgid "Could not find identity credentials in cache: %k" +msgid "Could not find identity credentials in cache: " +msgstr "Önbellekte kimlik bilgileri bulunamadı: " + +#: src/goaidentity/goakerberosidentity.c:771 +#| msgid "Could not sift through identity credentials in cache: %k" +msgid "Could not sift through identity credentials in cache: " +msgstr "Önbellekteki kimlik bilgileri sırayla gezilemedi: " + +#: src/goaidentity/goakerberosidentity.c:788 +#| msgid "" +#| "Could not finish up sifting through identity credentials in cache: %k" +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "Önbellekteki kimlik bilgilerinin sırayla gezilmesi bitirilemedi: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "İlişkili tanımlama bulunamadı" + +#: src/goaidentity/goakerberosidentity.c:1186 +#| msgid "Could not create credential cache: %k" +msgid "Could not create credential cache: " +msgstr "Yetki önbelleği oluşturulamadı: " + +#: src/goaidentity/goakerberosidentity.c:1220 +#| msgid "Could not initialize credentials cache: %k" +msgid "Could not initialize credentials cache: " +msgstr "Kimlik bilgileri önbelleği ilklendirilemedi: " + +#: src/goaidentity/goakerberosidentity.c:1236 +#| msgid "Could not store new credentials in credentials cache: %k" +msgid "Could not store new credentials in credentials cache: " +msgstr "Yeni kimlik bilgileri önbelleğe kaydedilemedi: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Kimlik yenilenemedi: Oturum açılmamış" + +#: src/goaidentity/goakerberosidentity.c:1546 +#| msgid "Could not renew identity: %k" +msgid "Could not renew identity: " +msgstr "Kimlik yenilenemedi: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +#| msgid "Could not get new credentials to renew identity %s: %k" +msgid "Could not get new credentials to renew identity %s: " +msgstr "%s kimliğini yenilemek için yeni bilgiler alınamadı: " + +#: src/goaidentity/goakerberosidentity.c:1604 +#| msgid "Could not erase identity: %k" +msgid "Could not erase identity: " +msgstr "Kimlik silinemedi: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Kimlik bulunamadı" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Kimlik için kimlik bilgileri önbelleği oluşturulamadı" + +#~ msgid "_Domain" +#~ msgstr "_Etki alanı" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Kurumsal etki alanı ya da realm adı" + +#~ msgid "The domain is not valid" +#~ msgstr "Etki alanı geçerli değil" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail mevcut değil" + +#~ msgid "Failed to parse email address" +#~ msgstr "E-posta adresi ayrıştırılamadı" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Etki alanı olmadan SMTP kimlik doğrulaması yapılamaz" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Kimlik bilgilerinde smtp-parolası bulunamadı" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Parola olmadan SMTP kimlik doğrulaması yapılamaz" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "İlk sır (secret), gizli anahtar değişiminden önce beyan edildi" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "GOA istemcisi başlatılamadı" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Kimlik bilgilerinde ‘%s’ kimliği için parola bulunamadı" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Ad istenirken durum kodu 200 bekleniyordu, ama durum kodu %d (%s) alındı" diff --git a/po/ug.gmo b/po/ug.gmo new file mode 100644 index 0000000..b51b486 Binary files /dev/null and b/po/ug.gmo differ diff --git a/po/ug.po b/po/ug.po new file mode 100644 index 0000000..253e9ed --- /dev/null +++ b/po/ug.po @@ -0,0 +1,858 @@ +# Uyghur translation for gnome-online-accounts. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Gheyret T.Kenji , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-14 19:23+0000\n" +"PO-Revision-Date: 2013-02-16 12:14+0900\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur Computer Science Association \n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. shut up -Wunused-but-set-variable +#: ../data/goa-daemon.desktop.in.in.h:1 ../src/daemon/goadaemon.c:212 +msgid "Online Accounts" +msgstr "توردىكى ھېساباتلار" + +#: ../data/goa-daemon.desktop.in.in.h:2 +msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +msgstr "ئەڭگىمە باش لىنىيىسىدە org.gnome.OnlinesAccounts نى تەمىنلەيدۇ" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:802 ../src/daemon/goadaemon.c:1150 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "تۆۋەندىكى تەمىنلىگۈچىنى تېپىش مەغلۇپ بولدى: %s" + +#: ../src/daemon/goadaemon.c:992 +msgid "An online account needs attention" +msgstr "تور ھېساباتى ئىشلىتىشتە دىققەت قىلىڭ" + +#: ../src/daemon/goadaemon.c:1001 +msgid "Open Online Accounts..." +msgstr "تور ھېساباتى ئېچىش…" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1138 +msgid "ProviderType property is not set for account" +msgstr "ھېساباتتا ProviderType خاسلىقى بەلگىلەنمىگەن" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:214 ../src/goabackend/goahttpclient.c:155 +#, c-format +msgid "Code: %u - Unexpected response from server" +msgstr "كودى: %u مۇلازىمېتىردىن ئويلاشمىغان ئىنكاس كەلدى" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:240 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "autodiscover نىڭ جاۋاب XML نى تەھلىل قىلىش مەغلۇپ بولدى" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:250 +#, c-format +msgid "Failed to find Autodiscover element" +msgstr "Autodiscover ئېلېمېنتىنى تېپىش مەغلۇپ بولدى" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:264 +#, c-format +msgid "Failed to find Response element" +msgstr "Response ئېلېمېنتىنى تېپىش مەغلۇپ بولدى" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:278 +#, c-format +msgid "Failed to find Account element" +msgstr "Account ئېلېمېنتىنى تېپىش مەغلۇپ بولدى" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:295 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "ئاپتوماتىك بايقاش(autodiscover) ئىنكاسىدىن ASUrl ۋە OABUrl نى تېپىش مەغلۇپ بولدى" + +#: ../src/goabackend/goaexchangeprovider.c:79 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:308 +#: ../src/goabackend/goaexchangeprovider.c:1019 +#: ../src/goabackend/goagoogleprovider.c:596 +#: ../src/goabackend/goagoogleprovider.c:783 +#: ../src/goabackend/goaowncloudprovider.c:364 +#: ../src/goabackend/goaowncloudprovider.c:1121 +#, c-format +#| msgid "Did not find password with username `%s' in credentials" +msgid "Did not find password with identity `%s' in credentials" +msgstr "ئىسپاتنامىدىن كىملىكى ‹%s› بولغان ئىشلەتكۈچىنىڭ ئىمىنى تاپقىلى بولمىدى" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:336 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goaowncloudprovider.c:387 +#, c-format +msgid "Invalid password with username `%s' (%s, %d): " +msgstr "ئاتى ‹%s› (%s, %d) بولغان ئىشلەتكۈچىنىڭ ئىمى خاتا: " + +#: ../src/goabackend/goaexchangeprovider.c:501 +#: ../src/goabackend/goaimapsmtpprovider.c:635 +msgid "_E-mail" +msgstr "ئېلخەت(_E)" + +#: ../src/goabackend/goaexchangeprovider.c:502 +#: ../src/goabackend/goaimapsmtpprovider.c:655 +#: ../src/goabackend/goaimapsmtpprovider.c:687 +#: ../src/goabackend/goaowncloudprovider.c:613 +msgid "_Password" +msgstr "ئىم(_P)" + +#: ../src/goabackend/goaexchangeprovider.c:505 +msgid "_Custom" +msgstr "ئىختىيارى(_C)" + +#: ../src/goabackend/goaexchangeprovider.c:524 +#: ../src/goabackend/goaimapsmtpprovider.c:654 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:612 +msgid "User_name" +msgstr "ئىشلەتكۈچى ئاتى(_N)" + +#: ../src/goabackend/goaexchangeprovider.c:525 +#: ../src/goabackend/goaowncloudprovider.c:611 +msgid "_Server" +msgstr "مۇلازىمېتىر(_S)" + +#: ../src/goabackend/goaexchangeprovider.c:555 +#: ../src/goabackend/goaimapsmtpprovider.c:731 +#: ../src/goabackend/goakerberosprovider.c:1153 +#: ../src/goabackend/goaowncloudprovider.c:642 +msgid "Connecting…" +msgstr "باغلىنىۋاتىدۇ…" + +#: ../src/goabackend/goaexchangeprovider.c:643 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:890 +#: ../src/goabackend/goaimapsmtpprovider.c:924 +#: ../src/goabackend/goaimapsmtpprovider.c:1012 +#: ../src/goabackend/goaimapsmtpprovider.c:1258 +#: ../src/goabackend/goaimapsmtpprovider.c:1328 +#: ../src/goabackend/goakerberosprovider.c:1544 +#: ../src/goabackend/goaoauth2provider.c:1048 +#: ../src/goabackend/goaoauthprovider.c:1041 +#: ../src/goabackend/goaowncloudprovider.c:736 +#: ../src/goabackend/goaowncloudprovider.c:945 +#, c-format +msgid "Dialog was dismissed" +msgstr "سۆزلەشكۈ يوق" + +#: ../src/goabackend/goaexchangeprovider.c:680 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:954 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1282 +#: ../src/goabackend/goaimapsmtpprovider.c:1353 +#: ../src/goabackend/goaowncloudprovider.c:775 +#: ../src/goabackend/goaowncloudprovider.c:966 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "سۆزلەشكۈ يوق (%s، %d): " + +#: ../src/goabackend/goaexchangeprovider.c:693 +#: ../src/goabackend/goaimapsmtpprovider.c:967 +#: ../src/goabackend/goaimapsmtpprovider.c:1056 +#: ../src/goabackend/goaowncloudprovider.c:788 +msgid "_Ignore" +msgstr "پەرۋا قىلما(_I)" + +#: ../src/goabackend/goaexchangeprovider.c:698 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:972 +#: ../src/goabackend/goaimapsmtpprovider.c:1061 +#: ../src/goabackend/goaimapsmtpprovider.c:1301 +#: ../src/goabackend/goaimapsmtpprovider.c:1372 +#: ../src/goabackend/goakerberosprovider.c:1653 +#: ../src/goabackend/goaowncloudprovider.c:793 +#: ../src/goabackend/goaowncloudprovider.c:985 +msgid "_Try Again" +msgstr "قايتا سىنا(_T)" + +#: ../src/goabackend/goaexchangeprovider.c:703 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Microsoft Exchange مۇلازىمېتىرغا باغلىنىۋاتقاندا خاتالىق كۆرۈلدى" + +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:397 +#: ../src/goabackend/goagoogleprovider.c:664 +#: ../src/goabackend/goakerberosprovider.c:1724 +#: ../src/goabackend/goaowncloudprovider.c:1041 +#: ../src/goabackend/goawindowsliveprovider.c:410 +msgid "Use for" +msgstr "ئىشلىتىلىش ئورنى" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:666 +msgid "_Mail" +msgstr "خەت(_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:671 +#: ../src/goabackend/goaowncloudprovider.c:1043 +msgid "Cale_ndar" +msgstr "يىلنامە(_N):" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:676 +#: ../src/goabackend/goaowncloudprovider.c:1048 +msgid "_Contacts" +msgstr "ئالاقەداشلار(_C)" + +#: ../src/goabackend/goafacebookprovider.c:81 +msgid "Facebook" +msgstr "فېيىسبۇك(Facebook)" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:201 +#: ../src/goabackend/goagoogleprovider.c:196 +#: ../src/goabackend/goatwitterprovider.c:162 +#: ../src/goabackend/goawindowsliveprovider.c:183 +#: ../src/goabackend/goayahooprovider.c:165 +#, c-format +msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +msgstr "ئەسلى guid نى ئىلتىماس قىلغاندا ھالەت 200 بولۇشى كېرەك ئىدى. بىراق %d (%s) دېگەن ھالەتنى تاپشۇرۇپ ئالدى." + +#: ../src/goabackend/goafacebookprovider.c:213 +#: ../src/goabackend/goaflickrprovider.c:191 +#: ../src/goabackend/goagoogleprovider.c:208 +#: ../src/goabackend/goaoauth2provider.c:616 +#: ../src/goabackend/goatwitterprovider.c:174 +#: ../src/goabackend/goawindowsliveprovider.c:195 +#: ../src/goabackend/goayahooprovider.c:177 +msgid "Error parsing response as JSON: " +msgstr "JSON دىن كەلگەن جاۋابنى تەھلىل قىلىشتا خاتالىق كۆرۈلدى: " + +#: ../src/goabackend/goafacebookprovider.c:224 +#: ../src/goabackend/goawindowsliveprovider.c:206 +#, c-format +msgid "Didn't find id member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن id ئەزانى تاپالمىدى" + +#: ../src/goabackend/goafacebookprovider.c:233 +#: ../src/goabackend/goagoogleprovider.c:219 +#, c-format +msgid "Didn't find email member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن email دېگەن ئەزانى تاپالمىدى" + +#: ../src/goabackend/goafacebookprovider.c:399 +#: ../src/goabackend/goagoogleprovider.c:681 +#: ../src/goabackend/goawindowsliveprovider.c:412 +msgid "C_hat" +msgstr "سۆھبەت(_H)" + +#: ../src/goabackend/goaflickrprovider.c:82 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:179 +#, c-format +msgid "Expected status 200 when requesting user id, instead got status %d (%s)" +msgstr "ئەسلى ئىشلەتكۈچى كىملىكىنى ئىلتىماس قىلغاندا ھالەت 200 بولۇشى كېرەك ئىدى. بىراق %d (%s) دېگەن ھالەتنى تاپشۇرۇپ ئالدى." + +#: ../src/goabackend/goaflickrprovider.c:202 +#, c-format +msgid "Didn't find user member in JSON data" +msgstr "ئىشلەتكۈچى دېگەن ئەزانى JSON سانلىق-مەلۇماتىدىن تاپالمىدى" + +#: ../src/goabackend/goaflickrprovider.c:211 +#, c-format +msgid "Didn't find user.id member in JSON data" +msgstr "user.id دېگەن ئەزانى JSON سانلىق-مەلۇماتىدىن تاپالمىدى" + +#: ../src/goabackend/goaflickrprovider.c:220 +#, c-format +msgid "Didn't find user.username member in JSON data" +msgstr "user.username دېگەن ئەزانى JSON سانلىق-مەلۇماتىدىن تاپالمىدى" + +#: ../src/goabackend/goaflickrprovider.c:229 +#, c-format +msgid "Didn't find user.username._content member in JSON data" +msgstr "ser.username._content دېگەن ئەزانى JSON سانلىق-مەلۇماتىدىن تاپالمىدى" + +#: ../src/goabackend/goaflickrprovider.c:306 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "سىستېمىنىڭ ۋاقتى توغرا ئەمەس. سىستېمىنىڭ ۋاقىت ۋە چېسلا تەڭشىكىنى تەكشۈرۈڭ." + +#: ../src/goabackend/goaflickrprovider.c:408 +msgid "_Photos" +msgstr "سۈرەتلەر(_P)" + +#: ../src/goabackend/goagoogleprovider.c:85 +msgid "Google" +msgstr "گۇگىل(Google)" + +#: ../src/goabackend/goagoogleprovider.c:686 +#: ../src/goabackend/goawindowsliveprovider.c:417 +msgid "_Documents" +msgstr "پۈتۈكلەر(_D)" + +#: ../src/goabackend/goaimapsmtpprovider.c:82 +msgid "IMAP and SMTP" +msgstr "IMAP ۋە SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:350 +#, c-format +#| msgid "Did not find password with username `%s' in credentials" +msgid "Did not find imap-password with identity `%s' in credentials" +msgstr "ئىسپاتنامىدىن كىملىكى ‹%s› بولغان ئىشلەتكۈچىنىڭ imap-ئىمىنى تاپقىلى بولمىدى" + +#. Translators: the first %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:379 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid imap-password with username `%s' (%s, %d): " +msgstr "ئاتى ‹%s› (%s, %d) بولغان ئىشلەتكۈچىنىڭ imap-ئىمى خاتا: " + +#: ../src/goabackend/goaimapsmtpprovider.c:397 +#, c-format +#| msgid "Did not find password with username `%s' in credentials" +msgid "Did not find smtp-password with identity `%s' in credentials" +msgstr "ئىسپاتنامىدىن كىملىكى ‹%s› بولغان ئىشلەتكۈچىنىڭ smtp-ئىمىنى تاپقىلى بولمىدى" + +#. Translators: the first %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:428 +#, c-format +#| msgid "Invalid password with username `%s' (%s, %d): " +msgid "Invalid smtp-password with username `%s' (%s, %d): " +msgstr "ئاتى ‹%s› (%s, %d) بولغان ئىشلەتكۈچىنىڭ smtp-ئىمى خاتا: " + +#: ../src/goabackend/goaimapsmtpprovider.c:636 +#| msgid "Name" +msgid "_Name" +msgstr "ئاتى(_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:653 +#| msgid "_Server" +msgid "IMAP _Server" +msgstr "IMAP مۇلازىمېتىر(_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +#: ../src/goabackend/goaimapsmtpprovider.c:692 +msgid "_Encryption" +msgstr "شىفىرلاش(_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:663 +#: ../src/goabackend/goaimapsmtpprovider.c:695 +msgid "None" +msgstr "يوق" + +#: ../src/goabackend/goaimapsmtpprovider.c:666 +#: ../src/goabackend/goaimapsmtpprovider.c:698 +msgid "STARTTLS after connecting" +msgstr "باغلانغاندىن كېيىن STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:669 +#: ../src/goabackend/goaimapsmtpprovider.c:701 +msgid "SSL on a dedicated port" +msgstr "بېكىتىلگەن ئېغىزدا SSL" + +#: ../src/goabackend/goaimapsmtpprovider.c:685 +#| msgid "_Server" +msgid "SMTP _Server" +msgstr "SMTP مۇلازىمېتىر(_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:977 +#: ../src/goabackend/goaimapsmtpprovider.c:1294 +#| msgid "Error connecting to ownCloud server" +msgid "Error connecting to IMAP server" +msgstr "IMAP مۇلازىمېتىرىغا باغلىنىشتا خاتالىق كۆرۈلدى" + +#: ../src/goabackend/goaimapsmtpprovider.c:1066 +#: ../src/goabackend/goaimapsmtpprovider.c:1365 +#| msgid "Error connecting to ownCloud server" +msgid "Error connecting to SMTP server" +msgstr "SMTP مۇلازىمېتىرىغا باغلىنىشتا خاتالىق كۆرۈلدى" + +#: ../src/goabackend/goaimapsmtpprovider.c:1470 +#| msgid "_E-mail" +msgid "E-mail" +msgstr "ئېلخەت" + +#: ../src/goabackend/goaimapsmtpprovider.c:1474 +msgid "Name" +msgstr "ئاتى" + +#: ../src/goabackend/goaimapsmtpprovider.c:1484 +#: ../src/goabackend/goaimapsmtpprovider.c:1487 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1498 +#: ../src/goabackend/goaimapsmtpprovider.c:1501 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:87 +msgid "Enterprise Login (Kerberos)" +msgstr "شىركەتلەر ئۈچۈن كىرىش" + +#: ../src/goabackend/goakerberosprovider.c:449 +msgid "Identity service returned invalid key" +msgstr "كىملىك مۇلازىمىتى ئىناۋەتسىز ئاچقۇچ قايتۇردى" + +#: ../src/goabackend/goakerberosprovider.c:715 +#, c-format +msgid "Could not find saved credentials for principal `%s' in keyring" +msgstr "ئاچقۇچ ھالقىسىدىكى ئىشلەتكۈچى ‹%s› نىڭ ساقلانغان ئىسپاتنامىلىرىنى تاپقىلى بولمىدى" + +#: ../src/goabackend/goakerberosprovider.c:725 +#, c-format +msgid "Did not find password for principal `%s' in credentials" +msgstr "ئىسپاتنامىلەردىن ئىشلەتكۈچى ‹%s› نىڭ ئىمىنى تاپالمىدى" + +#: ../src/goabackend/goakerberosprovider.c:1120 +msgid "_Domain" +msgstr "دائىرە(_D)" + +#: ../src/goabackend/goakerberosprovider.c:1121 +msgid "Enterprise domain or realm name" +msgstr "شىركەت دائىرە ئاتى ياكى realm ئاتى" + +#: ../src/goabackend/goakerberosprovider.c:1353 +#: ../src/goaidentity/goaidentityservice.c:1084 +msgid "Log In to Realm" +msgstr "Realm غا كىرىش" + +#: ../src/goabackend/goakerberosprovider.c:1354 +msgid "Please enter your password below." +msgstr "تۆۋەندىكى يەرگە ئىمنى كىرگۈزۈڭ." + +#: ../src/goabackend/goakerberosprovider.c:1355 +msgid "Remember this password" +msgstr "بۇ ئىمنى ئەستە تۇت" + +#: ../src/goabackend/goakerberosprovider.c:1494 +#, c-format +msgid "The domain is not valid" +msgstr "بۇ دائىرە ئىناۋەتسىز" + +#: ../src/goabackend/goakerberosprovider.c:1648 +msgid "Error connecting to enterprise identity server" +msgstr "شىركەت كىملىك مۇلازىمىتىگە باغلىنىشتا خاتالىق كۆرۈلدى" + +#: ../src/goabackend/goakerberosprovider.c:1726 +msgid "Network _Resources" +msgstr "توردىكى مەنبەلەر(_R)" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:573 +#: ../src/goabackend/goaoauthprovider.c:586 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "ئەسلى زىيارەت token نى ئىلتىماس قىلغاندا ھالەت 200 بولۇشى كېرەك ئىدى. بىراق %d (%s) دېگەن ھالەتنى تاپشۇرۇپ ئالدى." + +#: ../src/goabackend/goaoauth2provider.c:593 +#, c-format +msgid "Didn't find access_token in non-JSON data" +msgstr "JSON دىن باشقا سانلىق-مەلۇمات ئىچىدىن access_token نى تاپالمىدى" + +#: ../src/goabackend/goaoauth2provider.c:627 +#, c-format +msgid "Didn't find access_token in JSON data" +msgstr "JSON سانلىق-مەلۇماتى ئىچىدىن access_token نى تاپالمىدى" + +#: ../src/goabackend/goaoauth2provider.c:835 +#: ../src/goabackend/goaoauth2provider.c:875 +#, c-format +msgid "Authorization response was \"%s\"" +msgstr "سالاھىيەت دەلىللەش ئىنكاسى «%s» ئىدى" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauth2provider.c:981 +#, c-format +msgid "" +"Paste authorization code obtained from the authorization " +"page:" +msgstr " سالاھىيەت دەلىللەش بېتى دىن ئېرىشكەن سالاھىيەت دەلىللەش كودىنى چاپلاڭ:" + +#: ../src/goabackend/goaoauth2provider.c:1074 +#: ../src/goabackend/goaoauthprovider.c:1072 +msgid "Error getting an Access Token: " +msgstr "زىيارەت Token نى ئېلىۋاتقاندا خاتالىق كۆرۈلدى: " + +#: ../src/goabackend/goaoauth2provider.c:1089 +#: ../src/goabackend/goaoauthprovider.c:1085 +msgid "Error getting identity: " +msgstr "كىملىكنى ئېلىۋاتقاندا خاتالىق كۆرۈلدى: " + +#: ../src/goabackend/goaoauth2provider.c:1378 +#: ../src/goabackend/goaoauthprovider.c:1390 +#, c-format +msgid "Was asked to login as %s, but logged in as %s" +msgstr "%s دا كىرگەن ئىدى، بىراق %s بولۇپ قالدى" + +#: ../src/goabackend/goaoauth2provider.c:1549 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "ئىسپاتنامىدە access_token يوق" + +#: ../src/goabackend/goaoauth2provider.c:1588 +#: ../src/goabackend/goaoauthprovider.c:1618 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "زىيارەت token (%s، %d) نى يېڭىلاش مەغلۇپ بولدى: " + +#: ../src/goabackend/goaoauthprovider.c:609 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "ئىنكاس قېشى ئىچىدە access_token ياكى access_token_secret يوق" + +#: ../src/goabackend/goaoauthprovider.c:911 +msgid "Error getting a Request Token: " +msgstr "ئىلتىماس Token نى ئېلىشتا خاتالىق كۆرۈلدى: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:944 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "ئەسلى ئىلتىماس token نى ئالغاندا ھالەت 200 بولۇشى كېرەك ئىدى. بىراق %d (%s) دېگەن ھالەتنى تاپشۇرۇپ ئالدى." + +#: ../src/goabackend/goaoauthprovider.c:961 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "ئىنكاس قېشى ئىچىدە request_token ياكى request_token_secret يوق" + +#. Translators: The verb "Paste" is used when asking the user to paste a string from a web browser window +#: ../src/goabackend/goaoauthprovider.c:978 +#, c-format +msgid "Paste token obtained from the authorization page:" +msgstr " سالاھىيەت دەلىللەش بېتى دىن ئېرىشكەن سالاھىيەت دەلىللەش token نى چاپلاڭ:" + +#: ../src/goabackend/goaoauthprovider.c:1574 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "ئىسپاتنامىلەردە access_token ياكى access_token_secret يوق" + +#: ../src/goabackend/goaowncloudprovider.c:84 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:798 +#: ../src/goabackend/goaowncloudprovider.c:978 +msgid "Error connecting to ownCloud server" +msgstr "ownCloud مۇلازىمېتىرىغا باغلىنىشتا خاتالىق كۆرۈلدى" + +#: ../src/goabackend/goaowncloudprovider.c:1053 +msgid "_Files" +msgstr "ھۆججەت(_F)" + +#: ../src/goabackend/goaprovider.c:579 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync نى %s تىپتا ئەمەلگە ئاشۇرالمىدى" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:372 +#, c-format +#| msgid "Did not find password in credentials" +msgid "Did not find smtp-password in credentials" +msgstr "ئىسپاتنامە ئىچىدىن smtp-ئىمنى تاپقىلى بولمىدى" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:383 +#, c-format +msgid "Cannot do SMTP PLAIN without a password" +msgstr "ئىمسىز ھالەتتە SMTP PLAIN نى قىلغىلى بولمايدۇ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:402 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail يوق" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:412 +#, c-format +#| msgid "Failed to parse autodiscover response XML" +msgid "Failed to parse email address" +msgstr "ئېلخەت ئادرېسىنى تەھلىل قىلىش مەغلۇپ بولدى" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:424 +#, c-format +msgid "Cannot do SMTP PLAIN without a domain" +msgstr "دائىرە ئاتى يوق ھالەتتە SMTP PLAIN نى قىلغىلى بولمايدۇ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:438 +#, c-format +msgid "Service not available" +msgstr "مۇلازىمەتنى ئىشلەتكىلى بولمايدۇ" + +#: ../src/goabackend/goasmtpauthplain.c:475 +#, c-format +msgid "Server does not support PLAIN" +msgstr "مۇلازىمېتىر PLAIN نى قوللىمايدۇ" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauthplain.c:505 +#, c-format +msgid "Authentication failed" +msgstr "سالاھىيەت دەلىللەش مەغلۇپ بولدى" + +#: ../src/goabackend/goatwitterprovider.c:80 +msgid "Twitter" +msgstr "Twitter" + +#: ../src/goabackend/goatwitterprovider.c:185 +#, c-format +msgid "Didn't find id_str member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن id_str دېگەن ئەزانى تاپالمىدى" + +#: ../src/goabackend/goatwitterprovider.c:194 +#, c-format +msgid "Didn't find screen_name member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن screen_name دېگەن ئەزانى تاپالمىدى" + +#: ../src/goabackend/goautils.c:84 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s دېگەن ھېسابات ئاللىقاچان %s ئۈچۈن ئىشلىتىلىۋېتىپتۇ" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:106 +#, c-format +msgid "%s account" +msgstr "%s ھېسابات" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:150 +msgid "Failed to delete credentials from the keyring" +msgstr "ئاچقۇچ ھالقىسىدىن ئىسپاتنامىلەرنى ئۆچۈرۈش مەغلۇپ بولدى" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:202 +msgid "Failed to retrieve credentials from the keyring" +msgstr "ئاچقۇچ ھالقىسىدىن ئىسپاتنامىلەرنى ئېلىش مەغلۇپ بولدى" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:212 +msgid "No credentials found in the keyring" +msgstr "ئاچقۇچ ھالقىسىدا ئىسپاتنامىلەرنى يوق ئىكەن" + +#: ../src/goabackend/goautils.c:225 +msgid "Error parsing result obtained from the keyring: " +msgstr "ئاچقۇچ ھالقىسىدىن تەھلىل نەتىجىگە ئېرىشىۋاتقاندا خاتالىق كۆرۈلدى: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:268 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%2$s سالاھىيەتنىڭ GOA %1$s ئىسپاتنامىلىرى" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:285 +msgid "Failed to store credentials in the keyring" +msgstr "ئىسپاتنامىلەرنى ئاچقۇچ ھالقىسىغا ساقلاش مەغلۇپ بولدى" + +#: ../src/goabackend/goautils.c:506 +msgid "The signing certificate authority is not known." +msgstr "ئىمزالىق گۇۋاھنامە تارقاتقۇچى ئېنىق ئەمەس." + +#: ../src/goabackend/goautils.c:510 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "گۇۋاھنامە، ئۇنى قايتۇرۇپ ئالغان تورتۇرادىن كەلگىنى بىلەن بىردەك ئەمەس." + +#: ../src/goabackend/goautils.c:515 +msgid "The certificate's activation time is still in the future." +msgstr "گۇۋاھنامىنىڭ ئاكتىپلاش ۋاقتى يەنىلا كەلگۈسى ھالەتتە." + +#: ../src/goabackend/goautils.c:519 +msgid "The certificate has expired." +msgstr "ئىسپاتنامىنىڭ ۋاقتى ئوتكەن." + +#: ../src/goabackend/goautils.c:523 +msgid "The certificate has been revoked." +msgstr "بۇ گۇۋاھنامە بىكار قىلىنغان." + +#: ../src/goabackend/goautils.c:527 +msgid "The certificate's algorithm is considered insecure." +msgstr "گۇۋاھنامىنىڭ ھېسابلاش ئۇسۇلى(algorithm) بىخەتەر ئەمەستەك قىلىدۇ." + +#: ../src/goabackend/goautils.c:531 +msgid "Invalid certificate." +msgstr "ئىناۋەتسىز گۇۋاھنامە." + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:74 +#, c-format +msgid "Loading “%s”…" +msgstr "ئوقۇۋاتقىنى «%s» …" + +#: ../src/goabackend/goawindowsliveprovider.c:83 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goawindowsliveprovider.c:217 +#, c-format +msgid "Didn't find account email member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن ھېسابات ئېلخەت ئەزاسىنى تاپالمىدى" + +#: ../src/goabackend/goayahooprovider.c:80 +msgid "Yahoo" +msgstr "ياخۇ" + +#: ../src/goabackend/goayahooprovider.c:188 +#, c-format +msgid "Didn't find guid member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن guid دېگەن ئەزانى تاپالمىدى" + +#: ../src/goabackend/goayahooprovider.c:198 +#, c-format +msgid "Didn't find value member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن value دېگەن ئەزانى تاپالمىدى" + +#: ../src/goabackend/goayahooprovider.c:224 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "ئەسلى زىيارەت name نى ئىلتىماس قىلغاندا ھالەت 200 بولۇشى كېرەك ئىدى. بىراق %d (%s) دېگەن ھالەتنى تاپشۇرۇپ ئالدى." + +#: ../src/goabackend/goayahooprovider.c:237 +msgid "Error parsing usercard response as JSON: " +msgstr "JSON دىن كەلگەن usercard جاۋابنى تەھلىل قىلىشتا خاتالىق كۆرۈلدى: " + +#: ../src/goabackend/goayahooprovider.c:248 +#, c-format +msgid "Didn't find profile member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن profile دېگەن ئەزانى تاپالمىدى" + +#: ../src/goabackend/goayahooprovider.c:258 +#, c-format +msgid "Didn't find nickname member in JSON data" +msgstr "JSON سانلىق-مەلۇماتىدىن nickname دېگەن ئەزانى تاپالمىدى" + +#: ../src/goaidentity/goaalarm.c:245 +msgid "Time" +msgstr "ۋاقىت" + +#: ../src/goaidentity/goaalarm.c:246 +msgid "Time to fire" +msgstr "قوزغىتىش ۋاقتى" + +#: ../src/goaidentity/goaidentityservice.c:377 +msgid "initial secret passed before secret key exchange" +msgstr "مەخپىي ئاچقۇچنى ئالماشتۇرۇشتىن بۇرۇن دەسلەپكى مەخپىيەتلىك يەتكۈزۈپ بېرىلدى" + +#: ../src/goaidentity/goaidentityservice.c:569 +msgid "Initial secret key is invalid" +msgstr "دەسلەپكى مەخپىيەتلىك ئاچقۇچى ئىناۋەتسىز" + +#: ../src/goaidentity/goaidentityservice.c:1089 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "تور (realm) %s غا كىرىش ئۈچۈن، بىر قىسىم ئۇچۇرلارنى تەمىنلەش كېرەك." + +#: ../src/goaidentity/goakerberosidentity.c:272 +#: ../src/goaidentity/goakerberosidentity.c:281 +#: ../src/goaidentity/goakerberosidentity.c:608 +msgid "Could not find identity in credential cache: %k" +msgstr "ئىسپاتنامە غەملىكىدىن كىملىكنى تاپقىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:621 +msgid "Could not find identity credentials in cache: %k" +msgstr "ئىسپاتنامىلەر غەملىكىدىن كىملىكنى تاپقىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "ئىسپاتنامىلەر غەملىكىدىن كىملىكنى تاللاپ چىققىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:676 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "ئىسپاتنامىلەر غەملىكىدىن كىملىكنى تاللاپ چىقىشنى تاماملىغىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1014 +#, c-format +msgid "No associated identification found" +msgstr "مۇناسىۋەتلىك كىملىكنى تاپقىلى بولمىدى" + +#: ../src/goaidentity/goakerberosidentity.c:1095 +msgid "Could not create credential cache: %k" +msgstr "ئىسپاتنامە غەملىكىنى قۇرغىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1129 +msgid "Could not initialize credentials cache: %k" +msgstr "ئىسپاتنامە غەملىكىنى دەسلەپلەشتۈرگىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1148 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "يېڭى ئىسپاتنامىلەرنى ئىسپاتنامە غەملىكىگە ساقلىغىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1425 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "كىملىكنى يېڭىلىغىلى بولمىدى: تېخى كىرمىگەن" + +#: ../src/goaidentity/goakerberosidentity.c:1437 +msgid "Could not renew identity: %k" +msgstr "كىملىكنى يېڭىلىغىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1454 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "كىملىك %s نى يېڭىلاش ئۈچۈن يېڭى ئىسپاتنامىلەرنى ئالغىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1494 +msgid "Could not erase identity: %k" +msgstr "كىملىكنى ئۆچۈرگىلى بولمىدى: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:747 +msgid "Could not find identity" +msgstr "كىملىكنى تاپقىلى بولمىدى" + +#: ../src/goaidentity/goakerberosidentitymanager.c:824 +msgid "Could not create credential cache for identity" +msgstr "كىملىك ئۈچۈن ئىسپاتنامە غەملىكىنى قۇرغىلى بولمىدى" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "ئىسپاتنامىنى ئاچقۇچ ھالقىسىدىن تاپالمىدى (%s, %d): " + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "" +#~ "ئىسپاتنامىلەرنى ئاچقۇچ ھالقىسى (%s، %d) غا ساقلاشتا خاتالىق كۆرۈلدى: " + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON سانلىق-مەلۇماتىدىن name دېگەن ئەزانى تاپالمىدى" + +#~ msgid "Chat" +#~ msgstr "پاراڭ" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON سانلىق-مەلۇماتىدىن data دېگەن ئەزانى تاپالمىدى" + +#~ msgid "Email Address" +#~ msgstr "ئېلخەت مەنزىل" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "كىملىك %s نىڭ ھېساباتى مەۋجۇت" diff --git a/po/uk.gmo b/po/uk.gmo new file mode 100644 index 0000000..1b1899c Binary files /dev/null and b/po/uk.gmo differ diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..6381bf9 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,1067 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Daniel Korostil , 2013, 2014, 2015, 2016, 2017. +msgid "" +msgstr "" +"Project-Id-Version: 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-19 23:41+0200\n" +"PO-Revision-Date: 2017-03-19 23:42+0300\n" +"Last-Translator: Daniel Korostil \n" +"Language-Team: linux.org.ua\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1132 ../src/daemon/goadaemon.c:1416 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Не вдалось знайти постачальника для: %s" + +#: ../src/daemon/goadaemon.c:1359 +msgid "IsLocked property is set for account" +msgstr "Властивість IsLocked встановлено для облікового запису" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1404 +msgid "ProviderType property is not set for account" +msgstr "Властивість ProviderType не вказана для облікового запису" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:238 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "Не вдалось розібрати відповідь autodiscover XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:249 ../src/goabackend/goaewsclient.c:264 +#: ../src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Не вдалося знайти елемент «%s»" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:300 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "Не вдалось знайти ASUrl і OABUrl у відповіді autodiscover" + +#: ../src/goabackend/goaexchangeprovider.c:74 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:271 +#: ../src/goabackend/goalastfmprovider.c:281 +#: ../src/goabackend/goaowncloudprovider.c:314 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Неправильний пароль з користувачем «%s» (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:419 +#: ../src/goabackend/goaimapsmtpprovider.c:686 +msgid "_E-mail" +msgstr "По_шта" + +#: ../src/goabackend/goaexchangeprovider.c:420 +#: ../src/goabackend/goaimapsmtpprovider.c:706 +#: ../src/goabackend/goaimapsmtpprovider.c:726 +#: ../src/goabackend/goalastfmprovider.c:423 +#: ../src/goabackend/goaowncloudprovider.c:561 +msgid "_Password" +msgstr "_Пароль" + +#: ../src/goabackend/goaexchangeprovider.c:423 +msgid "_Custom" +msgstr "_Інше" + +#: ../src/goabackend/goaexchangeprovider.c:434 +#: ../src/goabackend/goaimapsmtpprovider.c:705 +#: ../src/goabackend/goaimapsmtpprovider.c:725 +#: ../src/goabackend/goakerberosprovider.c:743 +#: ../src/goabackend/goalastfmprovider.c:422 +#: ../src/goabackend/goaowncloudprovider.c:560 +msgid "User_name" +msgstr "_Користувач" + +#: ../src/goabackend/goaexchangeprovider.c:435 +#: ../src/goabackend/goaowncloudprovider.c:559 +msgid "_Server" +msgstr "_Сервер" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:445 +#: ../src/goabackend/goaimapsmtpprovider.c:738 +#: ../src/goabackend/goakerberosprovider.c:748 +#: ../src/goabackend/goalastfmprovider.c:431 +#: ../src/goabackend/goaowncloudprovider.c:575 +#: ../src/goabackend/goatelepathyprovider.c:666 +msgid "_Cancel" +msgstr "_Скасувати" + +#: ../src/goabackend/goaexchangeprovider.c:446 +#: ../src/goabackend/goakerberosprovider.c:749 +#: ../src/goabackend/goalastfmprovider.c:432 +#: ../src/goabackend/goaowncloudprovider.c:576 +msgid "C_onnect" +msgstr "_З'єднатись" + +#: ../src/goabackend/goaexchangeprovider.c:462 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:765 +#: ../src/goabackend/goalastfmprovider.c:448 +#: ../src/goabackend/goaowncloudprovider.c:591 +msgid "Connecting…" +msgstr "З'єднання…" + +#: ../src/goabackend/goaexchangeprovider.c:562 +#: ../src/goabackend/goaexchangeprovider.c:756 +#: ../src/goabackend/goaimapsmtpprovider.c:916 +#: ../src/goabackend/goaimapsmtpprovider.c:951 +#: ../src/goabackend/goaimapsmtpprovider.c:1043 +#: ../src/goabackend/goaimapsmtpprovider.c:1312 +#: ../src/goabackend/goaimapsmtpprovider.c:1388 +#: ../src/goabackend/goakerberosprovider.c:1162 +#: ../src/goabackend/goalastfmprovider.c:643 +#: ../src/goabackend/goalastfmprovider.c:811 +#: ../src/goabackend/goamediaserverprovider.c:434 +#: ../src/goabackend/goaoauth2provider.c:1091 +#: ../src/goabackend/goaoauthprovider.c:860 +#: ../src/goabackend/goaowncloudprovider.c:702 +#: ../src/goabackend/goaowncloudprovider.c:926 +#: ../src/goabackend/goatelepathyprovider.c:490 +#: ../src/goabackend/goatelepathyprovider.c:529 +#: ../src/goabackend/goatelepathyprovider.c:697 +#, c-format +msgid "Dialog was dismissed" +msgstr "Вікно розпущено" + +#: ../src/goabackend/goaexchangeprovider.c:600 +#: ../src/goabackend/goaexchangeprovider.c:784 +#: ../src/goabackend/goaimapsmtpprovider.c:984 +#: ../src/goabackend/goaimapsmtpprovider.c:1081 +#: ../src/goabackend/goaimapsmtpprovider.c:1339 +#: ../src/goabackend/goaimapsmtpprovider.c:1416 +#: ../src/goabackend/goalastfmprovider.c:677 +#: ../src/goabackend/goalastfmprovider.c:830 +#: ../src/goabackend/goaowncloudprovider.c:744 +#: ../src/goabackend/goaowncloudprovider.c:950 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Вікно розпущено (%s, %d): " + +#: ../src/goabackend/goaexchangeprovider.c:613 +#: ../src/goabackend/goaimapsmtpprovider.c:997 +#: ../src/goabackend/goaimapsmtpprovider.c:1094 +#: ../src/goabackend/goaowncloudprovider.c:757 +msgid "_Ignore" +msgstr "_Проігнорувати" + +#: ../src/goabackend/goaexchangeprovider.c:618 +#: ../src/goabackend/goaexchangeprovider.c:803 +#: ../src/goabackend/goaimapsmtpprovider.c:1002 +#: ../src/goabackend/goaimapsmtpprovider.c:1099 +#: ../src/goabackend/goaimapsmtpprovider.c:1358 +#: ../src/goabackend/goaimapsmtpprovider.c:1435 +#: ../src/goabackend/goakerberosprovider.c:1269 +#: ../src/goabackend/goalastfmprovider.c:689 +#: ../src/goabackend/goalastfmprovider.c:847 +#: ../src/goabackend/goaowncloudprovider.c:762 +#: ../src/goabackend/goaowncloudprovider.c:969 +msgid "_Try Again" +msgstr "Спробувати _ще раз" + +#: ../src/goabackend/goaexchangeprovider.c:623 +#: ../src/goabackend/goaexchangeprovider.c:796 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Помилка з'єднання до сервера Microsoft Exchange" + +#: ../src/goabackend/goafacebookprovider.c:78 +msgid "Facebook" +msgstr "Facebook" + +#: ../src/goabackend/goafacebookprovider.c:208 +#: ../src/goabackend/goaflickrprovider.c:175 +#: ../src/goabackend/goafoursquareprovider.c:182 +#: ../src/goabackend/goagoogleprovider.c:219 +#: ../src/goabackend/goawindowsliveprovider.c:179 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Очікуваний стан 200, коли потребується ваш ідентифікатор, натомість одержано " +"стан %d (%s)" + +#. TODO: more specific +#: ../src/goabackend/goafacebookprovider.c:227 +#: ../src/goabackend/goafacebookprovider.c:239 +#: ../src/goabackend/goafacebookprovider.c:252 +#: ../src/goabackend/goaflickrprovider.c:194 +#: ../src/goabackend/goaflickrprovider.c:206 +#: ../src/goabackend/goaflickrprovider.c:216 +#: ../src/goabackend/goaflickrprovider.c:226 +#: ../src/goabackend/goaflickrprovider.c:236 +#: ../src/goabackend/goafoursquareprovider.c:201 +#: ../src/goabackend/goafoursquareprovider.c:213 +#: ../src/goabackend/goafoursquareprovider.c:224 +#: ../src/goabackend/goafoursquareprovider.c:235 +#: ../src/goabackend/goafoursquareprovider.c:246 +#: ../src/goabackend/goafoursquareprovider.c:257 +#: ../src/goabackend/goagoogleprovider.c:238 +#: ../src/goabackend/goagoogleprovider.c:250 +#: ../src/goabackend/goalastfmprovider.c:212 +#: ../src/goabackend/goalastfmprovider.c:221 +#: ../src/goabackend/goalastfmprovider.c:231 +#: ../src/goabackend/goalastfmprovider.c:238 +#: ../src/goabackend/goalastfmprovider.c:506 +#: ../src/goabackend/goalastfmprovider.c:515 +#: ../src/goabackend/goalastfmprovider.c:530 +#: ../src/goabackend/goalastfmprovider.c:537 +#: ../src/goabackend/goaoauth2provider.c:742 +#: ../src/goabackend/goaoauth2provider.c:772 +#: ../src/goabackend/goaoauth2provider.c:784 ../src/goabackend/goautils.c:313 +#: ../src/goabackend/goawindowsliveprovider.c:198 +#: ../src/goabackend/goawindowsliveprovider.c:210 +#: ../src/goabackend/goawindowsliveprovider.c:222 +#, c-format +msgid "Could not parse response" +msgstr "Не вдалося розібрати відповідь" + +#: ../src/goabackend/goaflickrprovider.c:78 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:308 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Системний час неправильний. Перевірте параметри часу та дати." + +#: ../src/goabackend/goafoursquareprovider.c:79 +msgid "Foursquare" +msgstr "Квадрат" + +#: ../src/goabackend/goagoogleprovider.c:78 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:93 ../src/goabackend/goasmtpauth.c:159 +#, c-format +msgid "Service not available" +msgstr "Служба недоступна" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:114 +#: ../src/goabackend/goalastfmprovider.c:523 +#: ../src/goabackend/goasmtpauth.c:112 ../src/goabackend/goautils.c:893 +#, c-format +msgid "Authentication failed" +msgstr "Помилка автентифікації" + +#: ../src/goabackend/goaimapauthlogin.c:139 +#, c-format +msgid "Server does not support PLAIN" +msgstr "Сервер не підтримує PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:193 ../src/goabackend/goasmtpauth.c:817 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "Сервер не підтримує STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:61 +msgid "IMAP and SMTP" +msgstr "IMAP і SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:364 +#: ../src/goabackend/goaimapsmtpprovider.c:415 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "Неправильний %s з користувачем «%s» (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:603 +msgid "_Encryption" +msgstr "_Шифрування" + +#: ../src/goabackend/goaimapsmtpprovider.c:606 +msgid "None" +msgstr "Немає" + +#: ../src/goabackend/goaimapsmtpprovider.c:609 +msgid "STARTTLS after connecting" +msgstr "STARTTLS після з'єднання" + +#: ../src/goabackend/goaimapsmtpprovider.c:612 +msgid "SSL on a dedicated port" +msgstr "SSL на особливому порті" + +#: ../src/goabackend/goaimapsmtpprovider.c:687 +msgid "_Name" +msgstr "_Назва" + +#: ../src/goabackend/goaimapsmtpprovider.c:704 +msgid "IMAP _Server" +msgstr "_Сервер IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:724 +msgid "SMTP _Server" +msgstr "_Сервер SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:739 +#: ../src/goabackend/goaimapsmtpprovider.c:1023 +#: ../src/goabackend/goaimapsmtpprovider.c:1368 +msgid "_Forward" +msgstr "_Переслати" + +#: ../src/goabackend/goaimapsmtpprovider.c:1007 +#: ../src/goabackend/goaimapsmtpprovider.c:1351 +msgid "Error connecting to IMAP server" +msgstr "Помилка з'єднання з сервером IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1428 +msgid "Error connecting to SMTP server" +msgstr "Помилка з'єднання з сервером SMTP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1536 +msgid "E-mail" +msgstr "Електронна пошта" + +#: ../src/goabackend/goaimapsmtpprovider.c:1540 +msgid "Name" +msgstr "Ім'я" + +#: ../src/goabackend/goaimapsmtpprovider.c:1550 +#: ../src/goabackend/goaimapsmtpprovider.c:1554 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1565 +#: ../src/goabackend/goaimapsmtpprovider.c:1569 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:101 +msgid "Enterprise Login (Kerberos)" +msgstr "Комерційний вхід (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:301 +#, c-format +msgid "Ticketing is disabled for account" +msgstr "Квитки заблоковано для цього облікового запису" + +#: ../src/goabackend/goakerberosprovider.c:326 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Неможливо знайти збережені реєстраційні дані для основи «%s» у сховищі ключів" + +#: ../src/goabackend/goakerberosprovider.c:339 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Не знайдено паролю для основи «%s» у реєстраційних даних" + +#: ../src/goabackend/goakerberosprovider.c:735 +msgid "_Domain" +msgstr "_Домен" + +#: ../src/goabackend/goakerberosprovider.c:736 +msgid "Enterprise domain or realm name" +msgstr "Комерційний домен або назва області" + +#: ../src/goabackend/goakerberosprovider.c:978 +#: ../src/goaidentity/goaidentityservice.c:1083 +msgid "Log In to Realm" +msgstr "Увійти до області" + +#: ../src/goabackend/goakerberosprovider.c:979 +msgid "Please enter your password below." +msgstr "Введіть пароль нижче." + +#: ../src/goabackend/goakerberosprovider.c:980 +msgid "Remember this password" +msgstr "Запам'ятати цей пароль" + +#: ../src/goabackend/goakerberosprovider.c:1114 +#, c-format +msgid "The domain is not valid" +msgstr "Неправильний домен" + +#: ../src/goabackend/goakerberosprovider.c:1264 +msgid "Error connecting to enterprise identity server" +msgstr "Помилка з'єднання до комерційного сервера тотожності" + +#: ../src/goabackend/goakerberosprovider.c:1610 +#, c-format +msgid "Identity service returned invalid key" +msgstr "Служба тотожності повернула неправильний ключ" + +#: ../src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: ../src/goabackend/goalastfmprovider.c:691 +#: ../src/goabackend/goalastfmprovider.c:841 +msgid "Error connecting to Last.fm" +msgstr "Помилка з'єднання з Last.fm" + +#: ../src/goabackend/goamediaserverprovider.c:77 +msgid "Media Server" +msgstr "Сервер матеріалів" + +#: ../src/goabackend/goamediaserverprovider.c:330 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Особистий вміст можна додати до вашої програми через обліковий запис сервера " +"матеріалів." + +#: ../src/goabackend/goamediaserverprovider.c:343 +msgid "Available Media Servers" +msgstr "Доступні сервери матеріалів" + +#: ../src/goabackend/goamediaserverprovider.c:374 +msgid "No media servers found" +msgstr "Не знайдено жодного сервера матеріалів" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:718 +#: ../src/goabackend/goaoauthprovider.c:559 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Очікуваний стан 200, коли потребується маркер доступу, натомість одержано " +"стан %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:898 +msgid "Authorization response: " +msgstr "Відповідь на авторизацію:" + +#: ../src/goabackend/goaoauth2provider.c:968 +#, c-format +msgid "Authorization response: %s" +msgstr "Відповідь на авторизацію: %s" + +#: ../src/goabackend/goaoauth2provider.c:1117 +#: ../src/goabackend/goaoauthprovider.c:891 +msgid "Error getting an Access Token: " +msgstr "Помилка одержання маркера доступу:" + +#: ../src/goabackend/goaoauth2provider.c:1132 +#: ../src/goabackend/goaoauthprovider.c:904 +msgid "Error getting identity: " +msgstr "Помилка одержання тотожності:" + +#: ../src/goabackend/goaoauth2provider.c:1354 +#: ../src/goabackend/goaoauthprovider.c:1208 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Просили увійти як %s, але знайдено як %s" + +#: ../src/goabackend/goaoauth2provider.c:1516 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "Дані реєстрації не містять _маркера доступу" + +#: ../src/goabackend/goaoauth2provider.c:1555 +#: ../src/goabackend/goaoauthprovider.c:1436 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Не вдалось очистити маркер доступу (%s, %d): " + +#: ../src/goabackend/goaoauthprovider.c:582 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Бракує відповіді в заголовків access_token або access_token_secret" + +#: ../src/goabackend/goaoauthprovider.c:774 +msgid "Error getting a Request Token: " +msgstr "Помилка одержання запиту на маркер: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:805 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Очікуваний стан 200 для одержання запиту маркера, натомість одержано стан %d " +"(%s)" + +#: ../src/goabackend/goaoauthprovider.c:822 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Бракує у відповіді заголовку request_token або request_token_secret" + +#: ../src/goabackend/goaoauthprovider.c:1392 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Дані реєстрації не містять access_token або access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:68 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: ../src/goabackend/goaowncloudprovider.c:767 +#: ../src/goabackend/goaowncloudprovider.c:962 +msgid "Error connecting to ownCloud server" +msgstr "Помилка з'єднання з сервером ownCloud" + +#: ../src/goabackend/goapocketprovider.c:73 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:248 +#, c-format +msgid "No username or access_token" +msgstr "Немає користувача або access_token" + +#: ../src/goabackend/goaprovider.c:118 +msgid "_Mail" +msgstr "По_шта" + +#: ../src/goabackend/goaprovider.c:123 +msgid "Cale_ndar" +msgstr "Кале_ндар" + +#: ../src/goabackend/goaprovider.c:128 +msgid "_Contacts" +msgstr "_Контакти" + +#: ../src/goabackend/goaprovider.c:133 +#: ../src/goabackend/goatelepathyprovider.c:961 +msgid "C_hat" +msgstr "_Балачки" + +#: ../src/goabackend/goaprovider.c:138 +msgid "_Documents" +msgstr "Д_окументи" + +#: ../src/goabackend/goaprovider.c:143 +msgid "M_usic" +msgstr "М_узика" + +#: ../src/goabackend/goaprovider.c:148 +msgid "_Photos" +msgstr "_Фотографії" + +#: ../src/goabackend/goaprovider.c:153 +msgid "_Files" +msgstr "_Файли" + +#: ../src/goabackend/goaprovider.c:158 +msgid "Network _Resources" +msgstr "Мережеві _ресурси" + +#: ../src/goabackend/goaprovider.c:163 +msgid "_Read Later" +msgstr "Про_читати згодом" + +#: ../src/goabackend/goaprovider.c:168 +msgid "Prin_ters" +msgstr "_Принтери" + +#: ../src/goabackend/goaprovider.c:173 +msgid "_Maps" +msgstr "_Карти" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaprovider.c:602 +#: ../src/goabackend/goatelepathyprovider.c:959 +msgid "Use for" +msgstr "Використовувати для" + +#: ../src/goabackend/goaprovider.c:859 +msgid "Account is disabled" +msgstr "Обліковий запис вимкнено" + +#: ../src/goabackend/goaprovider.c:882 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync не реалізовано на типі %s" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:174 +#, c-format +msgid "TLS not available" +msgstr "TLS недоступний" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail недоступний" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "Не вдалося розібрати адресу електронної пошти" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:260 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "Неможливо виконати автентифікації SMTP без домену" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:300 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "Неможливо знайти пароль для SMTP у реєстраційних даних" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:311 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "Неможливо виконати автентифікації SMTP без паролю" + +#: ../src/goabackend/goasmtpauth.c:673 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "Помилка механізму автентифікації" + +#: ../src/goabackend/goatelepathyprovider.c:187 +#, c-format +msgid "Telepathy chat account not found" +msgstr "Не знайдено облікового запису в Telepathy" + +#: ../src/goabackend/goatelepathyprovider.c:449 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Не вдалося створити користувацький інтерфейс для %s" + +#: ../src/goabackend/goatelepathyprovider.c:555 +msgid "Connection Settings" +msgstr "Параметри зв'язку" + +#: ../src/goabackend/goatelepathyprovider.c:661 +msgid "Personal Details" +msgstr "Особисті відомості" + +#: ../src/goabackend/goatelepathyprovider.c:667 +msgid "_OK" +msgstr "_Гаразд" + +#: ../src/goabackend/goatelepathyprovider.c:913 +msgid "Cannot save the connection parameters" +msgstr "Неможливо зберегти параметри з'єднання" + +#: ../src/goabackend/goatelepathyprovider.c:926 +msgid "Cannot save your personal information on the server" +msgstr "Неможливо зберегти ваші особисті відомості на сервері" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:966 +msgid "_Connection Settings" +msgstr "Параметри з_в'язку" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:970 +msgid "_Personal Details" +msgstr "_Особисті відомості" + +#: ../src/goabackend/goautils.c:92 +msgid "Error logging into the account" +msgstr "Помилка входу в обліковий запис" + +#: ../src/goabackend/goautils.c:139 +msgid "Credentials have expired." +msgstr "Сертифікат застарів." + +#: ../src/goabackend/goautils.c:143 +msgid "Sign in to enable this account." +msgstr "Увійдіть, щоб увімкнути цей обліковий запис." + +#: ../src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "_Увімкнути" + +#: ../src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Обліковий запис %s уже існує для %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: ../src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Обліковий запис %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:391 +msgid "Failed to delete credentials from the keyring" +msgstr "Не вдалось вилучити дані реєстрації зі сховища ключів" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:443 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Не вдалось одержати дані реєстрації зі сховища ключів" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:453 +msgid "No credentials found in the keyring" +msgstr "Не вдалось знайти дані реєстрації у сховищі ключів" + +#: ../src/goabackend/goautils.c:466 +msgid "Error parsing result obtained from the keyring: " +msgstr "Помилка оброблення результатів, одержаних зі сховища ключів: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:509 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Дані реєстрації GOA %s тотожні %s" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:526 +msgid "Failed to store credentials in the keyring" +msgstr "Не вдалось зберегти дані реєстрації у сховищі ключів" + +#: ../src/goabackend/goautils.c:880 +msgid "Cannot resolve hostname" +msgstr "Неможливо розібрати назви вузла" + +#: ../src/goabackend/goautils.c:884 +msgid "Cannot resolve proxy hostname" +msgstr "Неможливо розібрати назви вузла проксі" + +#: ../src/goabackend/goautils.c:889 +msgid "Cannot find WebDAV endpoint" +msgstr "Неможливо знайти кінцевої точки WebDAV" + +#: ../src/goabackend/goautils.c:898 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Код:%u — неочікувана відповідь від сервера" + +#: ../src/goabackend/goautils.c:914 +msgid "The signing certificate authority is not known." +msgstr "Видавець підписаного сертифікату невідомий." + +#: ../src/goabackend/goautils.c:918 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Сертифікат не відповідає очікуваному, який одержано зі сторінки." + +#: ../src/goabackend/goautils.c:923 +msgid "The certificate’s activation time is still in the future." +msgstr "Час активації сертифікату все ще у майбутньому." + +#: ../src/goabackend/goautils.c:927 +msgid "The certificate has expired." +msgstr "Сертифікат застарів." + +#: ../src/goabackend/goautils.c:931 +msgid "The certificate has been revoked." +msgstr "Сертифікат анульовано." + +#: ../src/goabackend/goautils.c:935 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Алгоритм сертифікату — небезпечний." + +#: ../src/goabackend/goautils.c:939 +msgid "Invalid certificate." +msgstr "Хибний сертифікат." + +#. TODO: more specific +#: ../src/goabackend/goautils.c:974 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Не знайдено %s з ідентифікатором «%s» у реєстраційних даних" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:95 +#, c-format +msgid "Loading “%s”…" +msgstr "Завантаження «%s»…" + +#: ../src/goabackend/goawindowsliveprovider.c:70 +msgid "Microsoft" +msgstr "Microsoft" + +#: ../src/goaidentity/goaidentityservice.c:366 +msgid "initial secret passed before secret key exchange" +msgstr "початкову темницю розгадано перед обміном секретного ключа" + +#: ../src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Початковий секретний ключ неправильний" + +#: ../src/goaidentity/goaidentityservice.c:1088 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Мережева область %s потребує деякої інформації для входження." + +#: ../src/goaidentity/goakerberosidentity.c:276 +#: ../src/goaidentity/goakerberosidentity.c:285 +#: ../src/goaidentity/goakerberosidentity.c:713 +msgid "Could not find identity in credential cache: %k" +msgstr "Неможливо знайти тотожність у кеші реєстраційних даних: %k" + +#: ../src/goaidentity/goakerberosidentity.c:727 +msgid "Could not find identity credentials in cache: %k" +msgstr "Неможливо знайти тотожність реєстраційних даних у кеші: %k" + +#: ../src/goaidentity/goakerberosidentity.c:779 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "Неможливо розглянути реєстраційні дані тотожності в кеші: %k" + +#: ../src/goaidentity/goakerberosidentity.c:797 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "" +"Неможливо завершити розглядання реєстраційних даних тотожності в кеші: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1111 +#, c-format +msgid "No associated identification found" +msgstr "Не знайдено пов'язаних тотожностей" + +#: ../src/goaidentity/goakerberosidentity.c:1194 +msgid "Could not create credential cache: %k" +msgstr "Неможливо створити кеш реєстраційних даних: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1228 +msgid "Could not initialize credentials cache: %k" +msgstr "Неможливо запустити кеш реєстраційних даних: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1245 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "Неможливо зберегти нові реєстраційні дані в їхньому кеші: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1540 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "Неможливо повторно створити тотожність: не ввійшли" + +#: ../src/goaidentity/goakerberosidentity.c:1552 +msgid "Could not renew identity: %k" +msgstr "Неможливо повторно створити тотожність: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1569 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "" +"Неможливо одержати нові реєстраційні дані для оновленої тотожності %s: %k" + +#: ../src/goaidentity/goakerberosidentity.c:1611 +msgid "Could not erase identity: %k" +msgstr "Неможливо стерти тотожність: %k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Неможливо знайти тотожність" + +#: ../src/goaidentity/goakerberosidentitymanager.c:841 +msgid "Could not create credential cache for identity" +msgstr "Неможливо створити кеш реєстраційних даних для тотожності" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Не вдалося запустити клієнт GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Не знайдено паролю з ідентифікатором «%s» у реєстраційних даних" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Очікуваний стан 200, коли потребується ім'я, натомість одержано стан %d " +#~ "(%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Вставте код авторизації, одержаний зі сторінки " +#~ "авторизації:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "" +#~ "Вставте маркер, одержаний зі сторінки авторизації:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Час" + +#~ msgid "Time to fire" +#~ msgstr "Час до вогню" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Не вдалось знайти елемент Autodiscover" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Очікуваний стан 200, коли потребується guid, натомість одержано стан %d " +#~ "(%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Не знайдено паролю для IMAP з ідентифікатором «%s» у реєстраційних даних" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "Неправильний пароль для IMAP з користувачем «%s» (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "" +#~ "Не знайдено паролю для SMTP з ідентифікатором «%s» у реєстраційних даних" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "Неправильний пароль для SMTP з користувачем «%s» (%s, %d): " + +#~ msgid "Online Accounts" +#~ msgstr "Мережеві облікові записи" + +#~ msgid "An online account needs attention" +#~ msgstr "Мережевий обліковий запис потребує уваги" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Відкрити мережевий обліковий запис…" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Дані реєстрації не знайдено у сховищі ключів (%s, %d): " + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Помилка розбирання відповіді як JSON: " + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "не знайдено id серед учасників у даних JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Не знайдено електронної скриньки у даних JSON" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Не знайдено даних про учасника у даних JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Не знайдено _маркера доступу в даних не від JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Не знайдено _маркер доступу в даних JSON" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Помилка збереження даних реєстрації у сховище ключів (%s, %d): " + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Не знайдено поштового облікового запису в даних JSON" + +#~ msgid "Chat" +#~ msgstr "Балачки" + +#~ msgid "Domain Administrator Login" +#~ msgstr "Вхід адміністратора домену" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "Комп'ютер потрібно зареєструвати в домені, щоб використовувати комерційну " +#~ "тотожність. Попрохайте вашого мережевого адміністратора ввести тут пароль " +#~ "домену." + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "Комп'ютер потрібно зареєструвати в домені, щоб використовувати комерційну " +#~ "тотожність. Попрохайте вашого мережевого адміністратора ввести тут " +#~ "користувача домену." + +#~ msgid "No such domain or realm found" +#~ msgstr "Немає такого домену чи області" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Неможливо ввійти як %s на домен %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Неправильний пароль, спробуйте ще раз" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Неможливо з'єднатись з доменом %s: %s" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Створити обліковий запис Microsoft Exchange" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Створити комерційний вхід (Kerberos)" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Не знайдено id_str учасника в даних JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Не знайдено _екранне ім'я серед учасників у даних JSON" + +#~ msgid "Add %s" +#~ msgstr "Додати %s" + +#~ msgid "Refresh %s" +#~ msgstr "Оновити %s" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "не знайдено guid серед учасників у даних JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Не знайдено значення серед учасників у даних JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Помилка оброблення відповіді карт користувачів як JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Не знайдено профіль серед учасників у даних JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Не знайдено прізвиська серед учасників у даних JSON" + +#~ msgid "Didn't find username member in JSON data" +#~ msgstr "Не знайдено користувача серед учасників у даних JSON" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Не знайдено імені серед учасників у даних JSON" + +#~ msgid "Email Address" +#~ msgstr "Адреса пошти" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Уже існує обліковий запис тотожний %s" diff --git a/po/vi.gmo b/po/vi.gmo new file mode 100644 index 0000000..585b53d Binary files /dev/null and b/po/vi.gmo differ diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 0000000..f567aa0 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,1055 @@ +# Vietnamese translation for gnome-online-accounts. +# Bản dịch tiếng Việt dành cho gnome-online-accounts. +# Copyright © 2016 GNOME i18n Project for Vietnamese. +# This file is distributed under the same license as the gnome-online-accounts package. +# Nguyễn Thái Ngọc Duy , 2011-2013. +# Trần Ngọc Quân , 2013-2014, 2015, 2016, 2017, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-26 12:18+0000\n" +"PO-Revision-Date: 2018-02-27 13:43+0700\n" +"Last-Translator: Trần Ngọc Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "Danh sách các nhà cung cấp nơi mà cho phép được tải" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"Một danh sách các chuỗi đại diện cho các nhà cung cấp những nơi mà cho phép " +"được tải (mặc định: “all”). Đây chỉ là ước đoán khi khởi chạy." + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "Gặp lỗi khi tìm một nhà cung cấp cho: %s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "Đặt thuộc tính IsLocked (bị khóa) cho tài khoản" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "Chưa đặt thuộc tính ProviderType cho tài khoản" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "Gặp lỗi khi phân tích XML đáp ứng tự động khám phá" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "Gặp lỗi khi tìm phần tử “%s”" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "" +"Gặp lỗi khi tìm ASUrl và OABUrl trong đáp ứng tự động dò tìm (autodiscover)" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "Mật khẩu không hợp lệ với tài khoản “%s” (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "_Thư điện tử" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "_Mật khẩu" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "Tự _chọn" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "Tài khoả_n" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "_Máy chủ" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "T_hôi" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "_Kết nối" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "Đang kết nối…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "Hộp thoại bị bỏ qua" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "Hộp thoại bị bỏ qua (%s, %d): " + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "_Bỏ qua" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "_Thử lại" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "Gặp lỗi khi kết nối máy chủ Microsoft Exchange" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "" +"Cần trạng thái 200 sau khi yêu cầu định danh người dùng, nhưng nhận được " +"trạng thái %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "Không thể phân tích cú pháp dữ liệu đáp ứng" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "Giờ hệ thống của bạn không hợp lệ. Kiểm tra lại phần cài đặt ngày giờ." + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "Dịch vụ không sẵn sàng" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "Xác thực gặp lỗi" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "Máy chủ không hỗ trợ PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "Máy chủ không hỗ trợ STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP và SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "%s không hợp lệ cho tài khoản “%s” (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "_Mã hóa" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "Không" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "STARTTLS sau khi kết nối" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL trên cổng riêng" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "_Tên" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "_Máy chủ IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "_Máy chủ SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "_Chuyển tiếp" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "Gặp lỗi khi kết nối đến máy chủ IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "Gặp lỗi khi kết nối đến máy chủ SMTP" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "Thư điện tử" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "Tên" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "Kiểu doanh nghiệp (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "Ghi nhãn bị tắt cho tài khoản này" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "" +"Không tìm thấy giấy ủy nhiệm được lưu cho người ủy nhiệm “%s” trong chùm " +"chìa khóa" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "Không tìm thấy mật khẩu cho người ủy nhiệm “%s” trong giấy ủy nhiệm" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "_Principal" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "Thao tác bị hủy" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "Đăng nhập vào Realm" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "Vui lòng nhập mật khẩu bên dưới." + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "Nhớ mật khẩu này" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "Lỗi kết nối đến máy chủ định danh doanh nghiệp" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "Dịch vụ định danh trả về khóa không hợp lệ" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "Gặp lỗi khi kết nối đến Last.fm" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "Máy chủ đa phương tiện" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "" +"Nội dung cá nhân có thể thêm vào ứng dụng của bạn thông qua tài khoản máy " +"phục vụ đa phương tiện." + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "Máy máy phục đa phương tiện sẵn có" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "Không tìm thấy máy chủ đa phương tiện" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "" +"Cần trạng thái 200 sau khi yêu cầu thẻ truy cập, nhưng lại nhận được trạng " +"thái %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "Phản hồi xác thực:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "Phản hồi xác thực: %s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "Gặp lỗi khi lấy thẻ truy cập: " + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "Gặp lỗi khi lấy định danh: " + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "Được yêu cầu đăng nhập bằng %s, nhưng đăng nhập bằng %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "Giấy ủy nhiệm không chứa access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "Gặp lỗi khi làm mới thẻ truy cập (%s, %d): " + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "Thiếu access_token hoặc access_token_secret trong phản hồi" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "Lỗi lấy thẻ yêu cầu: " + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "" +"Cần trạng thái 200 để lấy thẻ yêu cầu, nhưng nhận được trạng thái %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "Thiếu request_token hoặc request_token_secret trong phản hồi" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "Giấy ủy nhiệm không chứa access_token hoặc access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "Lỗi kết nối máy chủ ownCloud" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "Chưa có tài khoản hoặc thẻ bài truy cập" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "_Thư" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "Lị_ch" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "_Danh bạ" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "Tán _gẫu" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "Tài _liệu" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "_Nhạc" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "Ản_h" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "Tậ_p tin" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "Tài ngu_yên mạng" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "Đọ_c sau" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "Máy _in" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "_Bản đồ" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "_Việc cần làm" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "Dùng cho" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "Tài khoản bị tắt" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "Lỗi chưa biết" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync chưa được hỗ trợ với kiểu %s" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS không sẵn sàng" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "Không hiểu cơ chế xác thực" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "Tài khoản tán gẫu từ xa không tìm thấy" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "Gặp lỗi khi tạo giao diện người dùng cho %s" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "Cài đặt kết nối" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "Chi tiết cá nhân" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "Đồn_g ý" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "Không thể lưu lại các tham số kết nối" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "Không thể lưu thông tin cá nhân của bạn trên máy phục vụ" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "Cài đặt _kết nối" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "_Chi tiết cá nhân" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "Gặp lỗi khi đăng nhập vào tài khoản" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "Các giấy ủy nhiệm đã hết hạn" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "Đăng nhập để bật tài khoản này." + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "Đă_ng nhập" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "Đã có tài khoản %s cho %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "Tài khoản %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "Gặp lỗi khi xóa giấy ủy nhiệm khỏi chùm chìa khóa (keyring)" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "Gặp lỗi khi lấy giấy ủy nhiệm từ chùm chìa khóa (keyring)" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "Không có giấy ủy nhiệm nào trong chùm chìa khóa" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "Gặp lỗi khi phân tích kết quả lấy ra từ chùm chìa khóa khóa: " + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "Giấy ủy nhiệm GOA %s cho định danh %s" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "Gặp lỗi khi lưu giấy ủy nhiệm vào chùm chìa khóa" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "Không thể phân giải tên máy" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "Không thể phân giải tên máy ủy nhiệm" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "Không thể tìm thấy điểm cuối WebDAV" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "Mã: %u - Gặp trả lời không cần từ máy phục vụ" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "Không hiểu chữ ký của nơi có thẩm quyền ký chứng nhận." + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "Chứng nhận không khớp định danh của trang lấy mà nó lấy về từ đó." + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "Thời gian chứng nhận có hiệu lực lại nằm trong thời tương lai." + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "Chứng nhận đã hết hạn." + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "Chứng nhận đã bị thu hồi." + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "Thuật toán của chứng nhận chưa đủ mức an toàn." + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "Chứng nhận không hợp lệ." + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "Không tìm thấy %s cho định danh “%s” trong giấy ủy nhiệm" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "Đang tải “%s”…" + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "Khóa bí mật dùng để khởi tạo không hợp lệ" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "Vùng mạng %s cần thêm thông tin để đăng nhập." + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "Không thể tìm được định danh trong bộ nhớ đệm giấy ủy nhiệm: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "Không thể tìm thực thể giấy ủy nhiệm trong bộ nhớ đệm: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "" +"Không thể chọn lọc thông qua giấy ủy nhiệm định danh trong bộ nhớ đệm: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "" +"Không thể hoàn thành sàng lọc thông qua giấy ủy nhiệm định danh trong bộ nhớ " +"đệm: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "Không tìm thấy định danh liên kết" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "Không thể tạo bộ nhớ đệm dành cho giấy ủy nhiệm: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "Không thể khởi tạo bộ nhớ đệm dành cho giấy ủy nhiệm: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "Không thể lưu giấy ủy nhiệm mới trong bộ nhớ đệm ủy nhiệm: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "Không thể gia hạn định danh: Chưa đăng nhập" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "Không thể gia hạn định danh: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "Không thể lấy giấy chứng nhận mới để gia hạn định danh %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "Không thể tẩy xóa định danh: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "Không thể tìm thấy định danh" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "Không thể tạo bộ nhớ tạm giấy chứng nhận dành cho định danh" + +#~ msgid "_Domain" +#~ msgstr "Tên _miền" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "Tên miền hay tên địa hạt" + +#~ msgid "The domain is not valid" +#~ msgstr "Miền không hợp lệ" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail không sẵn sàng" + +#~ msgid "Failed to parse email address" +#~ msgstr "Gặp lỗi khi phân tích địa chỉ thư điện tử" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "Không thể thực hiện xác thực SMTP mà không có tên miền" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "Không tìm thấy mật khẩu smtp trong giấy ủy nhiệm" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "Không thể thực hiện xác thực SMTP mà không có mật khẩu" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "khóa bí mật ban đầu được chuyển đi trước khi trao đổi khóa bí mật" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "Gặp lỗi khi khởi tạo một máy khách GOA" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "Không tìm thấy mật khẩu cho định danh “%s” trong giấy ủy nhiệm" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "" +#~ "Cần thái là 200 khi yêu cầu lấy tên, nhưng nhận được trạng thái %d (%s)" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "Gặp lỗi khi tìm phần tử Autodiscover" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "" +#~ "Chờ trạng thái 200 sau khi yêu cầu guid, nhưng nhận được trạng thái %d " +#~ "(%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "Không tìm thấy imap-password với thực thể “%s” trong giấy ủy nhiệm" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "" +#~ "imap-password (mật khẩu của giao thức imap) không hợp lệ cho người dùng " +#~ "“%s” (%s, %d): " + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "Không tìm thấy smtp-password cho thực thể “%s” trong giấy ủy nhiệm" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "smtp-password không hợp lệ cho người dùng “%s” (%s, %d): " + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "" +#~ "Dán mã xác thực mà bạn có được từ trang xác thực:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "Dán thẻ lấy từ trang xác thực:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "Thời gian" + +#~ msgid "Time to fire" +#~ msgstr "Thời gian tiến hành" + +#~ msgid "Online Accounts" +#~ msgstr "Tài khoản trực tuyến" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "Cung cấp tên org.gnome.Online-Accounts trên tuyến phiên làm việc" + +#~ msgid "An online account needs attention" +#~ msgstr "Tài khoản trực tuyến cần được quan tâm" + +#~ msgid "Open Online Accounts..." +#~ msgstr "Mở tài khoản trực tuyến…" + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "Lỗi phân tích trả lời kiểu JSON:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "Không tìm thấy id trong dữ liệu JSON" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "Không tìm thấy email trong dữ liệu JSON" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "Không tìm thấy user trong dữ liệu JSON" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "Không tìm thấy user.id trong dữ liệu JSON" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "Không tìm thấy user.username trong dữ liệu JSON" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "Không tìm thấy user.username._content trong dữ liệu JSON" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "Không tìm thấy access_token trong dữ liệu phi JSON" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "Không tìm thấy access_token trong dữ liệu JSON" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "Không tìm thấy id_str trong dữ liệu JSON" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "Không tìm thấy screen_name trong dữ liệu JSON" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "Không tìm thấy email tài khoản trong dữ liệu JSON" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "Không tìm thấy guid trong dữ liệu JSON" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "Không tìm thấy giá trị trong dữ liệu JSON" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "Lỗi phân tích phản hồi usercard kiểu JSON: " + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "Không tìm thấy hồ sơ trong dữ liệu JSON" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "Không tìm thấy tên hiệu trong dữ liệu JSON" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "Không tìm thấy giấy ủy nhiệm trong vòng khóa (%s, %d): " + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "Tài khoản Microsoft Exchange mới" + +#~ msgid "Chat" +#~ msgstr "Nhắn tin" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "Không tìm thấy dữ liệu trong dữ liệu JSON" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "Đăng nhập doanh nghiệp mới (Kerberos)" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "Lỗi lưu giấy ủy nhiệm trong vòng khóa (%s, %d): " + +#~ msgid "Add %s" +#~ msgstr "Thêm %s" + +#~ msgid "Refresh %s" +#~ msgstr "Nạp lại %s" + +#~ msgid "Domain Administrator Login" +#~ msgstr "Đăng nhập quản trị vùng" + +#~ msgid "No such domain or realm found" +#~ msgstr "Không có vùng như vậy" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "Không thể đăng nhập %s vào vùng %s" + +#~ msgid "Invalid password, please try again" +#~ msgstr "Mật khẩu không hợp lệ, hãy thử lại" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "Không thể kết nối vào vùng %s: %s" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "Không tìm thấy tên trong dữ liệu JSON" + +#~ msgid "Email Address" +#~ msgstr "Địa chỉ email" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "Đã có tài khoản với định danh %s" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo new file mode 100644 index 0000000..cb5ad9d Binary files /dev/null and b/po/zh_CN.gmo differ diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..b2e6a46 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,895 @@ +# Chinese (China) translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's authors and contributors +# This file is distributed under the same license as the gnome-online-accounts package. +# Wylmer Wang , 2011, 2012. +# YunQiang Su , 2011. +# Cheng Lu , 2012. +# 黄世海 , 2012. +# Tong Hui , 2013. +# Eleanor Chen , 2015. +# Aron Xu , 2015. +# Jeff Bai , 2015, 2016. +# Boyuan Yang <073plan@gmail.com>, 2016, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-04 22:22+0000\n" +"PO-Revision-Date: 2018-02-05 09:53+0800\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.6\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "允许加载的提供者列表" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "" +"代表允许被加载的提供者的字符串列表(默认:“all”)。该列表仅在启动时进行评估。" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "找不到 %s 的供应商" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "账号属性被设置为锁定(IsLocked)" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "账号的供应商类型 (ProviderType) 属性未设置" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "无法解析自动发现响应 XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "没有找到“%s”元素" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "无法在自动发现响应中找到 ASUrl 和 OABUrl" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "用户“%s”的密码无效 (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "电子邮箱(_E)" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "密码(_P)" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "自定义(_C)" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "用户名(_N)" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "服务器(_S)" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "取消(_C)" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "连接(_O)" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "正在连接..." + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "对话框被关闭" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "对话框已关闭 (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "忽略(_I)" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "重试(_T)" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "连接 Microsoft Exchange 服务器出错" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "在请求您的身份时应得到的状态 200,但却得到了状态 %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "无法解析响应信息" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "您的系统时间无效。请检查日期和时间设置。" + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "谷歌" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "服务不可用" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "认证失败" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "服务器不支持 PLAIN 方式" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "服务器不支持 STARTTLS 方式" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP 和 SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "用户 %2$s 的 %1$s 无效 (%3$s, %4$d):" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "加密(_E)" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "无" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "连接后使用 STARTTLS 方式" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "在特定端口上使用 SSL" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "姓名(_N)" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP 服务器(_S)" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP 服务器(_S)" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "转发(_F)" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "连接 IMAP 服务器出错" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "连接 SMTP 服务器出错" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "电子邮箱" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "姓名" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "企业用户登陆 (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "帐号票据已被禁用" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "无法在密钥环中为主体“%s”找到保存的凭证" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "未在凭据中找到主体“%s”的密码" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "主体(_P)" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "操作被取消" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "登陆到 Realm" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "请在下方输入您的密码。" + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "记住密码" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "连接企业认证服务器出错" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "认证服务返回了无效密钥" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "连接到 Last.fm 时出错" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "媒体服务器" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "可通过媒体服务器账号将个人内容添加到应用。" + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "可用的媒体服务器" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "没有找到媒体服务器" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "在请求访问令牌时应得到状态 200,但却得到了状态 %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "认证响应为:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "认证响应为:%s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "获取访问令牌出错:" + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "获取身份信息出错:" + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "要求以 %s 身份登录,但却登录为 %s" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "凭据中不包含访问令牌 (access_token)" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "刷新访问令牌(%s,%d)失败:" + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "响应中缺少 access_token 或 access_token_secret 头" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "获取响应令牌出错:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "获取响应令牌时应得到状态 200,但却得到了状态 %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "响应中缺少 request_token 或 request_token_secret 头" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "凭据中不含 access_token 或 access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "连接 ownCloud 服务器出错" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "没有用户名或访问令牌" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "邮件(_M)" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "日历(_N)" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "联系人(_C)" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "聊天(_H)" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "文档(_D)" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "音乐(_U)" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "图片(_P)" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "文件(_F)" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "网络资源(_R)" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "稍后阅读(_R)" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "打印机(_T)" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "地图(_M)" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "T_o Do" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "用于" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "帐号已禁用" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "未知错误" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "未在 %s 类型上实现 ensure_credentials_sync" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS 不可用" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "未知认证机制" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "未找到 Telepathy 聊天账号" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "无法为 %s 创建用户界面" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "连接设置" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "个人详情" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "确定(_O)" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "无法保存连接参数" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "无法在服务器上保存您的个人信息" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "连接设置(_C)" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "个人详情(_P)" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "Todoist" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "登录帐号出错" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "凭据已过期" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "登录以启用该帐号。" + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "登录(_S)" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "已存在一个对应 %2$s 的 %1$s 账号" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s 账号" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "从密钥环中删除凭据失败:" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "从密钥环中取出凭据失败:" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "在密钥环中未找到凭据" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "解析从密钥环获取的结果出错:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "实体 %2$s 的 GOA %1$s 凭据" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "保存凭据至秘钥环失败" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "无法解析主机名" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "无法解析代理主机名" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "找不到 WebDAV 终点(endpoint)" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "代码:%u - 服务器响应异常" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "证书颁发机构未知。" + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "证书与所取自站点的预期身份不符。" + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "证书激活时间尚未到达。" + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "证书已过期。" + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "证书已被吊销。" + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "证书算法不安全。" + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "无效证书。" + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "未在凭据中找到与身份“%2$s”匹配的 %1$s" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "正在载入“%s”..." + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "微软" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "初始私钥不合法" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "网络 realm %s 接纳您之前需要一些信息。" + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "在凭证缓存器中找不到身份:" + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "在缓存中无法找到身份凭证:" + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "身份凭证在缓存中无法通过审查:" + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "在缓存中无法完成身份凭证的审查工作:" + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "找不到相关的身份标识" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "无法创建凭证缓存:" + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "无法初始化凭证缓存:" + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "在凭证缓存中无法存储新的凭证:" + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "无法重建身份:没有登录" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "无法重建身份:" + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "无法获取新凭据以更新身份 %s:" + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "无法删除身份:" + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "无法找到身份" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "无法为身份创建凭据缓存" + +#~ msgid "_Domain" +#~ msgstr "域(_D)" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "企业域或者 Realm" + +#~ msgid "The domain is not valid" +#~ msgstr "域无效" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail 不可用" + +#~ msgid "Failed to parse email address" +#~ msgstr "无法解析电子邮箱地址" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "SMTP 认证需要域名" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "未在凭据中找到 SMTP 密码项" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "SMTP 认证需要密码" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "交换私钥之前初始化私钥密码" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "无法初始化 GOA 客户端" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "未在凭据中找到身份 %s 的密码" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "在获取姓名时应得到状态 200,但却得到了状态 %d (%s)" diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo new file mode 100644 index 0000000..a319071 Binary files /dev/null and b/po/zh_HK.gmo differ diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..770bba2 --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,1016 @@ +# Chinese (Hong Kong) translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Cheng-Chia Tseng , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts 3.3.1\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-08-18 19:06+0000\n" +"PO-Revision-Date: 2014-08-19 20:20+0800\n" +"Last-Translator: Chao-Hsiung Liao \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.5\n" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:783 ../src/daemon/goadaemon.c:1029 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "無法尋找到此提供者:%s" + +#. TODO: more specific +#: ../src/daemon/goadaemon.c:1017 +msgid "ProviderType property is not set for account" +msgstr "帳號沒有設定 ProviderType 屬性" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:228 ../src/goabackend/goahttpclient.c:170 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "代碼:%u — 從伺服器傳回未預期的回應" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:244 +#, c-format +msgid "Failed to parse autodiscover response XML" +msgstr "無法解析自動探索回應 XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: ../src/goabackend/goaewsclient.c:255 ../src/goabackend/goaewsclient.c:270 +#: ../src/goabackend/goaewsclient.c:285 +#, c-format +msgid "Failed to find ‘%s’ element" +msgstr "找不到‘%s’元素" + +#. TODO: more specific +#: ../src/goabackend/goaewsclient.c:306 +#, c-format +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "在自動探索回應中找不到 ASUrl 與 OABUrl" + +#: ../src/goabackend/goaexchangeprovider.c:73 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. TODO: more specific +#: ../src/goabackend/goaexchangeprovider.c:311 +#: ../src/goabackend/goaexchangeprovider.c:1020 +#: ../src/goabackend/goaowncloudprovider.c:398 +#: ../src/goabackend/goaowncloudprovider.c:1183 +#, c-format +msgid "Did not find password with identity ‘%s’ in credentials" +msgstr "在證書中找不到身分‘%s’的密碼" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: ../src/goabackend/goaexchangeprovider.c:339 +#: ../src/goabackend/goaowncloudprovider.c:421 +#, c-format +msgid "Invalid password with username ‘%s’ (%s, %d): " +msgstr "使用者‘%s’的密碼無效(%s, %d):" + +#: ../src/goabackend/goaexchangeprovider.c:492 +#: ../src/goabackend/goaimapsmtpprovider.c:715 +msgid "_E-mail" +msgstr "電子郵件(_E)" + +#: ../src/goabackend/goaexchangeprovider.c:493 +#: ../src/goabackend/goaimapsmtpprovider.c:735 +#: ../src/goabackend/goaimapsmtpprovider.c:755 +#: ../src/goabackend/goaowncloudprovider.c:649 +msgid "_Password" +msgstr "密碼(_P)" + +#: ../src/goabackend/goaexchangeprovider.c:496 +msgid "_Custom" +msgstr "自選(_C)" + +#: ../src/goabackend/goaexchangeprovider.c:507 +#: ../src/goabackend/goaimapsmtpprovider.c:734 +#: ../src/goabackend/goaimapsmtpprovider.c:754 +#: ../src/goabackend/goakerberosprovider.c:1123 +#: ../src/goabackend/goaowncloudprovider.c:648 +msgid "User_name" +msgstr "使用者名稱(_N)" + +#: ../src/goabackend/goaexchangeprovider.c:508 +#: ../src/goabackend/goaowncloudprovider.c:647 +msgid "_Server" +msgstr "伺服器(_S)" + +#. -- +#: ../src/goabackend/goaexchangeprovider.c:518 +#: ../src/goabackend/goaimapsmtpprovider.c:767 +#: ../src/goabackend/goakerberosprovider.c:1128 +#: ../src/goabackend/goaowncloudprovider.c:658 +#: ../src/goabackend/goatelepathyprovider.c:649 +msgid "_Cancel" +msgstr "取消(_C)" + +#: ../src/goabackend/goaexchangeprovider.c:519 +#: ../src/goabackend/goakerberosprovider.c:1129 +#: ../src/goabackend/goaowncloudprovider.c:659 +msgid "C_onnect" +msgstr "連線(_O)" + +#: ../src/goabackend/goaexchangeprovider.c:535 +#: ../src/goabackend/goaimapsmtpprovider.c:784 +#: ../src/goabackend/goakerberosprovider.c:1145 +#: ../src/goabackend/goaowncloudprovider.c:675 +msgid "Connecting…" +msgstr "連線中…" + +#: ../src/goabackend/goaexchangeprovider.c:640 +#: ../src/goabackend/goaexchangeprovider.c:837 +#: ../src/goabackend/goaimapsmtpprovider.c:946 +#: ../src/goabackend/goaimapsmtpprovider.c:981 +#: ../src/goabackend/goaimapsmtpprovider.c:1069 +#: ../src/goabackend/goaimapsmtpprovider.c:1333 +#: ../src/goabackend/goaimapsmtpprovider.c:1406 +#: ../src/goabackend/goakerberosprovider.c:1536 +#: ../src/goabackend/goamediaserverprovider.c:473 +#: ../src/goabackend/goaoauth2provider.c:1077 +#: ../src/goabackend/goaoauthprovider.c:908 +#: ../src/goabackend/goaowncloudprovider.c:786 +#: ../src/goabackend/goaowncloudprovider.c:1001 +#: ../src/goabackend/goatelepathyprovider.c:459 +#: ../src/goabackend/goatelepathyprovider.c:508 +#: ../src/goabackend/goatelepathyprovider.c:683 +#, c-format +msgid "Dialog was dismissed" +msgstr "對話盒已放棄" + +#: ../src/goabackend/goaexchangeprovider.c:678 +#: ../src/goabackend/goaexchangeprovider.c:865 +#: ../src/goabackend/goaimapsmtpprovider.c:1011 +#: ../src/goabackend/goaimapsmtpprovider.c:1104 +#: ../src/goabackend/goaimapsmtpprovider.c:1357 +#: ../src/goabackend/goaimapsmtpprovider.c:1431 +#: ../src/goabackend/goaowncloudprovider.c:828 +#: ../src/goabackend/goaowncloudprovider.c:1022 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "對話盒已放棄 (%s, %d):" + +#: ../src/goabackend/goaexchangeprovider.c:691 +#: ../src/goabackend/goaimapsmtpprovider.c:1024 +#: ../src/goabackend/goaimapsmtpprovider.c:1117 +#: ../src/goabackend/goaowncloudprovider.c:841 +msgid "_Ignore" +msgstr "忽略(_I)" + +#: ../src/goabackend/goaexchangeprovider.c:696 +#: ../src/goabackend/goaexchangeprovider.c:884 +#: ../src/goabackend/goaimapsmtpprovider.c:1029 +#: ../src/goabackend/goaimapsmtpprovider.c:1122 +#: ../src/goabackend/goaimapsmtpprovider.c:1376 +#: ../src/goabackend/goaimapsmtpprovider.c:1450 +#: ../src/goabackend/goakerberosprovider.c:1646 +#: ../src/goabackend/goaowncloudprovider.c:846 +#: ../src/goabackend/goaowncloudprovider.c:1041 +msgid "_Try Again" +msgstr "重試(_T)" + +#: ../src/goabackend/goaexchangeprovider.c:701 +#: ../src/goabackend/goaexchangeprovider.c:877 +msgid "Error connecting to Microsoft Exchange server" +msgstr "連接至 Microsoft Exchange 伺服器時發生錯誤" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: ../src/goabackend/goaexchangeprovider.c:939 +#: ../src/goabackend/goafacebookprovider.c:461 +#: ../src/goabackend/goaflickrprovider.c:411 +#: ../src/goabackend/goagoogleprovider.c:592 +#: ../src/goabackend/goakerberosprovider.c:1719 +#: ../src/goabackend/goamediaserverprovider.c:584 +#: ../src/goabackend/goaowncloudprovider.c:1097 +#: ../src/goabackend/goapocketprovider.c:421 +#: ../src/goabackend/goatelepathyprovider.c:890 +#: ../src/goabackend/goawindowsliveprovider.c:421 +msgid "Use for" +msgstr "使用於" + +#: ../src/goabackend/goaexchangeprovider.c:941 +#: ../src/goabackend/goagoogleprovider.c:594 +#: ../src/goabackend/goawindowsliveprovider.c:423 +msgid "_Mail" +msgstr "郵件(_M)" + +#: ../src/goabackend/goaexchangeprovider.c:946 +#: ../src/goabackend/goagoogleprovider.c:599 +#: ../src/goabackend/goaowncloudprovider.c:1099 +msgid "Cale_ndar" +msgstr "行事曆(_N)" + +#: ../src/goabackend/goaexchangeprovider.c:951 +#: ../src/goabackend/goagoogleprovider.c:604 +#: ../src/goabackend/goaowncloudprovider.c:1104 +msgid "_Contacts" +msgstr "聯絡人(_C)" + +#: ../src/goabackend/goafacebookprovider.c:76 +msgid "Facebook" +msgstr "Facebook" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goafacebookprovider.c:218 +#: ../src/goabackend/goaflickrprovider.c:183 +#: ../src/goabackend/goagoogleprovider.c:218 +#: ../src/goabackend/goawindowsliveprovider.c:189 +#: ../src/goabackend/goayahooprovider.c:182 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "請求你的身分識別時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#: ../src/goabackend/goafacebookprovider.c:237 +#: ../src/goabackend/goafacebookprovider.c:249 +#: ../src/goabackend/goafacebookprovider.c:259 +#: ../src/goabackend/goaflickrprovider.c:202 +#: ../src/goabackend/goaflickrprovider.c:214 +#: ../src/goabackend/goaflickrprovider.c:224 +#: ../src/goabackend/goaflickrprovider.c:234 +#: ../src/goabackend/goaflickrprovider.c:244 +#: ../src/goabackend/goagoogleprovider.c:237 +#: ../src/goabackend/goagoogleprovider.c:249 +#: ../src/goabackend/goaoauth2provider.c:691 +#: ../src/goabackend/goaoauth2provider.c:721 +#: ../src/goabackend/goaoauth2provider.c:733 +#: ../src/goabackend/goawindowsliveprovider.c:208 +#: ../src/goabackend/goawindowsliveprovider.c:220 +#: ../src/goabackend/goawindowsliveprovider.c:232 +#: ../src/goabackend/goayahooprovider.c:201 +#: ../src/goabackend/goayahooprovider.c:213 +#: ../src/goabackend/goayahooprovider.c:224 +#: ../src/goabackend/goayahooprovider.c:270 +#: ../src/goabackend/goayahooprovider.c:282 +#: ../src/goabackend/goayahooprovider.c:293 +#, c-format +msgid "Could not parse response" +msgstr "無法解析回應" + +#: ../src/goabackend/goafacebookprovider.c:463 +#: ../src/goabackend/goagoogleprovider.c:609 +#: ../src/goabackend/goatelepathyprovider.c:892 +msgid "C_hat" +msgstr "聊天(_H)" + +#: ../src/goabackend/goafacebookprovider.c:468 +#: ../src/goabackend/goaflickrprovider.c:413 +#: ../src/goabackend/goagoogleprovider.c:619 +#: ../src/goabackend/goamediaserverprovider.c:586 +msgid "_Photos" +msgstr "相片(_P)" + +#: ../src/goabackend/goafacebookprovider.c:473 +msgid "_Maps" +msgstr "地圖(_M)" + +#: ../src/goabackend/goaflickrprovider.c:77 +msgid "Flickr" +msgstr "Flickr" + +#: ../src/goabackend/goaflickrprovider.c:320 +#: ../src/goabackend/goayahooprovider.c:343 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "你的系統時間無效。請檢查你的日期與時間設定值。" + +#: ../src/goabackend/goagoogleprovider.c:76 +msgid "Google" +msgstr "Google" + +#: ../src/goabackend/goagoogleprovider.c:614 +#: ../src/goabackend/goaowncloudprovider.c:1109 +#: ../src/goabackend/goawindowsliveprovider.c:428 +msgid "_Documents" +msgstr "文件(_D)" + +#: ../src/goabackend/goagoogleprovider.c:624 +msgid "Prin_ters" +msgstr "打印機(_T)" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:94 ../src/goabackend/goasmtpauth.c:160 +#, c-format +msgid "Service not available" +msgstr "服務無法使用" + +#. TODO: more specific +#: ../src/goabackend/goaimapauthlogin.c:115 +#: ../src/goabackend/goasmtpauth.c:113 +#, c-format +msgid "Authentication failed" +msgstr "核對失敗" + +#: ../src/goabackend/goaimapauthlogin.c:140 +#, c-format +msgid "Server does not support PLAIN" +msgstr "伺服器不支援 PLAIN" + +#: ../src/goabackend/goaimapauthlogin.c:194 +#: ../src/goabackend/goasmtpauth.c:818 +#, c-format +msgid "Server does not support STARTTLS" +msgstr "伺服器不支援 STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:76 +msgid "IMAP and SMTP" +msgstr "IMAP 與 SMTP" + +#. Translators: the first parameter is a field name. The second is +#. * a GOA account identifier. +#: ../src/goabackend/goaimapsmtpprovider.c:373 +#: ../src/goabackend/goaimapsmtpprovider.c:431 +#, c-format +msgid "Did not find %s with identity ‘%s’ in credentials" +msgstr "在證書中找不到 %s 身分‘%s’的密碼" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: ../src/goabackend/goaimapsmtpprovider.c:404 +#: ../src/goabackend/goaimapsmtpprovider.c:464 +#, c-format +msgid "Invalid %s with username ‘%s’ (%s, %d): " +msgstr "無效的 %s,使用者名稱‘%s’ (%s, %d): " + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: ../src/goabackend/goaimapsmtpprovider.c:651 +msgid "_Encryption" +msgstr "加密(_E)" + +#: ../src/goabackend/goaimapsmtpprovider.c:654 +msgid "None" +msgstr "沒有" + +#: ../src/goabackend/goaimapsmtpprovider.c:657 +msgid "STARTTLS after connecting" +msgstr "連線後使用 STARTTLS" + +#: ../src/goabackend/goaimapsmtpprovider.c:660 +msgid "SSL on a dedicated port" +msgstr "SSL 於專用的連接埠" + +#: ../src/goabackend/goaimapsmtpprovider.c:716 +msgid "_Name" +msgstr "名稱(_N)" + +#: ../src/goabackend/goaimapsmtpprovider.c:733 +msgid "IMAP _Server" +msgstr "IMAP 伺服器(_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:753 +msgid "SMTP _Server" +msgstr "SMTP 伺服器(_S)" + +#: ../src/goabackend/goaimapsmtpprovider.c:768 +#: ../src/goabackend/goaimapsmtpprovider.c:1050 +#: ../src/goabackend/goaimapsmtpprovider.c:1386 +msgid "_Forward" +msgstr "轉遞(_F)" + +#: ../src/goabackend/goaimapsmtpprovider.c:1034 +#: ../src/goabackend/goaimapsmtpprovider.c:1369 +msgid "Error connecting to IMAP server" +msgstr "連接至 IMAP 伺服器時發生錯誤" + +#: ../src/goabackend/goaimapsmtpprovider.c:1127 +#: ../src/goabackend/goaimapsmtpprovider.c:1443 +msgid "Error connecting to SMTP server" +msgstr "連接至 SMTP 伺服器時發生錯誤" + +#: ../src/goabackend/goaimapsmtpprovider.c:1542 +msgid "E-mail" +msgstr "電子郵件" + +#: ../src/goabackend/goaimapsmtpprovider.c:1546 +msgid "Name" +msgstr "名稱" + +#: ../src/goabackend/goaimapsmtpprovider.c:1556 +#: ../src/goabackend/goaimapsmtpprovider.c:1559 +msgid "IMAP" +msgstr "IMAP" + +#: ../src/goabackend/goaimapsmtpprovider.c:1570 +#: ../src/goabackend/goaimapsmtpprovider.c:1573 +msgid "SMTP" +msgstr "SMTP" + +#: ../src/goabackend/goakerberosprovider.c:79 +msgid "Enterprise Login (Kerberos)" +msgstr "企業版登入 (Kerberos)" + +#: ../src/goabackend/goakerberosprovider.c:447 +msgid "Identity service returned invalid key" +msgstr "身分認證服務傳回無效的鍵值" + +#: ../src/goabackend/goakerberosprovider.c:719 +#, c-format +msgid "Could not find saved credentials for principal ‘%s’ in keyring" +msgstr "在密碼匙圈中找不到主要‘%s’儲存的身分證書" + +#: ../src/goabackend/goakerberosprovider.c:732 +#, c-format +msgid "Did not find password for principal ‘%s’ in credentials" +msgstr "在證書中找不到主要‘%s’密碼" + +#: ../src/goabackend/goakerberosprovider.c:1115 +msgid "_Domain" +msgstr "網域(_D)" + +#: ../src/goabackend/goakerberosprovider.c:1116 +msgid "Enterprise domain or realm name" +msgstr "企業網域或領域名稱" + +#: ../src/goabackend/goakerberosprovider.c:1345 +#: ../src/goaidentity/goaidentityservice.c:1106 +msgid "Log In to Realm" +msgstr "登入領域" + +#: ../src/goabackend/goakerberosprovider.c:1346 +msgid "Please enter your password below." +msgstr "請在下面輸入你的密碼。" + +#: ../src/goabackend/goakerberosprovider.c:1347 +msgid "Remember this password" +msgstr "記住這個密碼" + +#: ../src/goabackend/goakerberosprovider.c:1486 +#, c-format +msgid "The domain is not valid" +msgstr "網域是無效的" + +#: ../src/goabackend/goakerberosprovider.c:1641 +msgid "Error connecting to enterprise identity server" +msgstr "連線至企業身分認證伺服器時發生錯誤" + +#: ../src/goabackend/goakerberosprovider.c:1721 +msgid "Network _Resources" +msgstr "網絡資源(_R)" + +#: ../src/goabackend/goamediaserverprovider.c:76 +#| msgid "IMAP _Server" +msgid "Media Server" +msgstr "媒體伺服器" + +#: ../src/goabackend/goamediaserverprovider.c:369 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "個人內容可以透過媒體伺服器帳號加入你的應用程式。" + +#: ../src/goabackend/goamediaserverprovider.c:383 +msgid "Available Media Servers" +msgstr "可用的伺服器" + +#: ../src/goabackend/goamediaserverprovider.c:413 +msgid "No media servers found" +msgstr "找不到媒體伺服器" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauth2provider.c:667 +#: ../src/goabackend/goaoauthprovider.c:550 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "請求存取記號時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#: ../src/goabackend/goaoauth2provider.c:888 +msgid "Authorization response: " +msgstr "授權回應:" + +#: ../src/goabackend/goaoauth2provider.c:958 +#, c-format +msgid "Authorization response: %s" +msgstr "授權回應:%s" + +#: ../src/goabackend/goaoauth2provider.c:1103 +#: ../src/goabackend/goaoauthprovider.c:939 +msgid "Error getting an Access Token: " +msgstr "取得存取記號時發生錯誤:" + +#: ../src/goabackend/goaoauth2provider.c:1118 +#: ../src/goabackend/goaoauthprovider.c:952 +msgid "Error getting identity: " +msgstr "取得身分時發生錯誤:" + +#: ../src/goabackend/goaoauth2provider.c:1332 +#: ../src/goabackend/goaoauthprovider.c:1260 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "要求以 %s 登入,卻以 %s 登入" + +#: ../src/goabackend/goaoauth2provider.c:1491 +#, c-format +msgid "Credentials do not contain access_token" +msgstr "證書不包含 access_token" + +#: ../src/goabackend/goaoauth2provider.c:1530 +#: ../src/goabackend/goaoauthprovider.c:1488 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "無法重新整理存取符令 (%s,%d):" + +#: ../src/goabackend/goaoauthprovider.c:573 +#, c-format +msgid "Missing access_token or access_token_secret headers in response" +msgstr "回應遺失 access_token 或 access_token_secret 標頭" + +#: ../src/goabackend/goaoauthprovider.c:822 +msgid "Error getting a Request Token: " +msgstr "取得請求記號時發生錯誤:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: ../src/goabackend/goaoauthprovider.c:855 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "取得請求記號時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#: ../src/goabackend/goaoauthprovider.c:872 +#, c-format +msgid "Missing request_token or request_token_secret headers in response" +msgstr "回應遺失 request_token 或 request_token_secret 標頭" + +#: ../src/goabackend/goaoauthprovider.c:1444 +#, c-format +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "證書不包含 access_token 或 access_token_secret" + +#: ../src/goabackend/goaowncloudprovider.c:82 +msgid "ownCloud" +msgstr "ownCloud" + +#: ../src/goabackend/goaowncloudprovider.c:851 +#: ../src/goabackend/goaowncloudprovider.c:1034 +msgid "Error connecting to ownCloud server" +msgstr "連接至 ownCloud 伺服器時發生錯誤" + +#: ../src/goabackend/goaowncloudprovider.c:1114 +msgid "_Files" +msgstr "檔案(_F)" + +#: ../src/goabackend/goapocketprovider.c:84 +msgid "Pocket" +msgstr "封包" + +#. TODO: more specific +#: ../src/goabackend/goapocketprovider.c:233 +#, c-format +msgid "No username or access_token" +msgstr "沒有使用者名稱或存取記號(_T)" + +#: ../src/goabackend/goapocketprovider.c:423 +msgid "_Read Later" +msgstr "稍後再閱讀(_R)" + +#: ../src/goabackend/goaprovider.c:682 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync 並非以 %s 類型實作" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:175 +#, c-format +msgid "TLS not available" +msgstr "TLS 無法使用" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:241 +#, c-format +msgid "org.gnome.OnlineAccounts.Mail is not available" +msgstr "org.gnome.OnlineAccounts.Mail 無法使用" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:251 +#, c-format +msgid "Failed to parse email address" +msgstr "無法分析電子郵件位址" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:263 +#, c-format +msgid "Cannot do SMTP authentication without a domain" +msgstr "沒有網域無法進行 SMTP 核對" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:301 +#, c-format +msgid "Did not find smtp-password in credentials" +msgstr "在證書中找不到 smtp 密碼" + +#. TODO: more specific +#: ../src/goabackend/goasmtpauth.c:312 +#, c-format +msgid "Cannot do SMTP authentication without a password" +msgstr "沒有密碼無法進行 SMTP 核對" + +#: ../src/goabackend/goasmtpauth.c:674 +#, c-format +msgid "Unknown authentication mechanism" +msgstr "不明的核對機制" + +#: ../src/goabackend/goatelepathyprovider.c:180 +#, c-format +msgid "Telepathy chat account not found" +msgstr "找不到 Telepathy 聊天帳號" + +#: ../src/goabackend/goatelepathyprovider.c:380 +#, c-format +msgid "Failed to initialize a GOA client" +msgstr "GOA 客戶端初始化失敗" + +#: ../src/goabackend/goatelepathyprovider.c:420 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "無法建立 %s 的使用者介面" + +#: ../src/goabackend/goatelepathyprovider.c:535 +msgid "Connection Settings" +msgstr "連線設定值" + +#: ../src/goabackend/goatelepathyprovider.c:644 +msgid "Personal Details" +msgstr "個人詳細資料" + +#: ../src/goabackend/goatelepathyprovider.c:650 +msgid "_OK" +msgstr "確定(_O)" + +#: ../src/goabackend/goatelepathyprovider.c:854 +msgid "Cannot save the connection parameters" +msgstr "不能儲存連線參數" + +#: ../src/goabackend/goatelepathyprovider.c:866 +msgid "Cannot save your personal information on the server" +msgstr "不能在伺服器上儲存你的個人資料" + +#. Connection Settings button +#: ../src/goabackend/goatelepathyprovider.c:897 +msgid "_Connection Settings" +msgstr "連線設定值(_C)" + +#. Edit Personal Information button +#: ../src/goabackend/goatelepathyprovider.c:901 +msgid "_Personal Details" +msgstr "個人詳細資料(_P)" + +#: ../src/goabackend/goautils.c:114 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s 帳號已經存在用於 %s" + +#. Translators: the %s is the name of the provider. eg., Google. +#: ../src/goabackend/goautils.c:136 +#, c-format +msgid "%s account" +msgstr "%s 帳號" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:180 +msgid "Failed to delete credentials from the keyring" +msgstr "無法從密碼匙圈刪除證書" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:232 +msgid "Failed to retrieve credentials from the keyring" +msgstr "無法從密碼匙圈取回證書" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:242 +msgid "No credentials found in the keyring" +msgstr "密碼匙圈找不到證書" + +#: ../src/goabackend/goautils.c:255 +msgid "Error parsing result obtained from the keyring: " +msgstr "從密碼匙圈取得解析結果時發生錯誤:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: ../src/goabackend/goautils.c:298 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%2$s 身分的 GOA %1$s 證書" + +#. TODO: more specific +#: ../src/goabackend/goautils.c:315 +msgid "Failed to store credentials in the keyring" +msgstr "無法儲存證書到密碼匙圈" + +#: ../src/goabackend/goautils.c:536 +msgid "The signing certificate authority is not known." +msgstr "簽署的證書授權中心不明。" + +#: ../src/goabackend/goautils.c:540 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "證書與取回證書的網站身分比對不符。" + +#: ../src/goabackend/goautils.c:545 +msgid "The certificate’s activation time is still in the future." +msgstr "證書的啟用時刻在未來。" + +#: ../src/goabackend/goautils.c:549 +msgid "The certificate has expired." +msgstr "證書已逾期。" + +#: ../src/goabackend/goautils.c:553 +msgid "The certificate has been revoked." +msgstr "證書已撤銷。" + +#: ../src/goabackend/goautils.c:557 +msgid "The certificate’s algorithm is considered insecure." +msgstr "證書的演算法被認為是不安全的。" + +#: ../src/goabackend/goautils.c:561 +msgid "Invalid certificate." +msgstr "證書無效。" + +#. translators: %s here is the address of the web page +#: ../src/goabackend/goawebview.c:70 +#, c-format +msgid "Loading “%s”…" +msgstr "正載入「%s」..." + +#: ../src/goabackend/goawindowsliveprovider.c:78 +msgid "Windows Live" +msgstr "Windows Live" + +#: ../src/goabackend/goayahooprovider.c:76 +msgid "Yahoo" +msgstr "Yahoo" + +#: ../src/goabackend/goayahooprovider.c:250 +#, c-format +msgid "Expected status 200 when requesting name, instead got status %d (%s)" +msgstr "請求名稱時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#: ../src/goaidentity/goaidentityservice.c:370 +msgid "initial secret passed before secret key exchange" +msgstr "在私人密碼匙交換前傳送的初始機密" + +#: ../src/goaidentity/goaidentityservice.c:562 +msgid "Initial secret key is invalid" +msgstr "初始密碼匙無效" + +#: ../src/goaidentity/goaidentityservice.c:1111 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "網絡領域 %s 需要一些資訊才能讓你登入。" + +#: ../src/goaidentity/goakerberosidentity.c:252 +#: ../src/goaidentity/goakerberosidentity.c:261 +#: ../src/goaidentity/goakerberosidentity.c:588 +msgid "Could not find identity in credential cache: %k" +msgstr "在證書快取中找不到身分認證:%k" + +#: ../src/goaidentity/goakerberosidentity.c:601 +msgid "Could not find identity credentials in cache: %k" +msgstr "在快取中找不到身分證書:%k" + +#: ../src/goaidentity/goakerberosidentity.c:641 +msgid "Could not sift through identity credentials in cache: %k" +msgstr "無法篩選快取中的身分證書:%k" + +#: ../src/goaidentity/goakerberosidentity.c:659 +msgid "Could not finish up sifting through identity credentials in cache: %k" +msgstr "無法結束篩選快取中的身分證書:%k" + +#: ../src/goaidentity/goakerberosidentity.c:949 +#, c-format +msgid "No associated identification found" +msgstr "找不到相關聯的身分認證" + +#: ../src/goaidentity/goakerberosidentity.c:1030 +msgid "Could not create credential cache: %k" +msgstr "無法建立證書快取:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1064 +msgid "Could not initialize credentials cache: %k" +msgstr "無法初始化證書快取:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1081 +msgid "Could not store new credentials in credentials cache: %k" +msgstr "無法在證書快取中儲存新的證書:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1356 +#, c-format +msgid "Could not renew identity: Not signed in" +msgstr "無法更新身分認證:尚未登入" + +#: ../src/goaidentity/goakerberosidentity.c:1368 +msgid "Could not renew identity: %k" +msgstr "無法更新身分認證:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1385 +msgid "Could not get new credentials to renew identity %s: %k" +msgstr "無法取得新的證書以更新身分認證 %s:%k" + +#: ../src/goaidentity/goakerberosidentity.c:1427 +msgid "Could not erase identity: %k" +msgstr "無法消除身分認證:%k" + +#: ../src/goaidentity/goakerberosidentitymanager.c:745 +msgid "Could not find identity" +msgstr "找不到身分認證" + +#: ../src/goaidentity/goakerberosidentitymanager.c:836 +msgid "Could not create credential cache for identity" +msgstr "無法建立身分認證的證書快取" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "貼上從核對頁面取得的核對代碼:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "從認證頁面取得貼上記號:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "時間" + +#~ msgid "Time to fire" +#~ msgstr "啟動時間" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "找不到 Autodiscover 元素" + +#~ msgid "Failed to find Account element" +#~ msgstr "找不到 Account 元素" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "請求 guid 時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "在憑證中找不到識別符為「%s」的 imap 密碼" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "使用者名稱「%s」的 imap 密碼無效 (%s, %d):" + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "在憑證中找不到識別符為「%s」的 smtp 密碼" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "使用者名稱「%s」的 smtp 密碼無效 (%s, %d):" + +#~ msgid "Online Accounts" +#~ msgstr "線上帳號" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "在作業階段匯流排提供 org.gnome.OnlinesAccounts 名稱" + +#~ msgid "An online account needs attention" +#~ msgstr "有個線上帳號要求注意" + +#~ msgid "Open Online Accounts..." +#~ msgstr "開啟線上帳號..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "以 JSON 解析回應時發生錯誤:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON 資料中找不到 id 成員" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON 資料中找不到電子郵件成員" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "JSON 資料中找不到使用者成員" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "JSON 資料中找不到 user.id 成員" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "JSON 資料中找不到 user.username 成員" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "JSON 資料中找不到 user.username._content 成員" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "非 JSON 資料中找不到 access_token" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON 資料中找不到 access_token" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON 資料中找不到 id_str 成員" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON 資料中找不到 screen_name 成員" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON 資料中找不到帳號電子郵件成員" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON 資料中找不到 guid 成員" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON 資料中找不到值成員" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "以 JSON 解析使用者名片回應時發生錯誤:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON 資料中找不到個人檔案成員" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON 資料中找不到暱稱成員" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "在鑰匙圈內找不到憑證 (%s,%d):" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "將憑證儲存於鑰匙圈時發生錯誤 (%s,%d):" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "新增 Microsoft Exchange 帳號" + +#~ msgid "Microsoft Exchange Account" +#~ msgstr "Microsoft Exchange 帳號" + +#~ msgid "Chat" +#~ msgstr "聊天" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON 資料中找不到資料成員" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "新增企業版登入 (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "加入 %s" + +#~ msgid "Refresh %s" +#~ msgstr "重新整理 %s" + +#~ msgid "Domain Administrator Login" +#~ msgstr "網域管理員登入" + +#~ msgid "Could not find supported credentials" +#~ msgstr "找不到支援的憑證" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "為了使用這個企業版身分認證,這個電腦必須加入網域。請讓您的網路系統管理員在" +#~ "這裡輸入他們的網域密碼。" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "為了使用這個企業版身分認證,這個電腦必須加入網域。請讓您的網路系統管理員在" +#~ "這裡輸入他們的網域使用者名稱。" + +#~ msgid "No such domain or realm found" +#~ msgstr "找不到這個網域或領域名稱" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "不能以 %s 身分登入 %s 網域" + +#~ msgid "Invalid password, please try again" +#~ msgstr "密碼錯誤,請再試一次" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "無法連接到 %s 網域:%s" + +#~ msgid "Enterpise Login (Kerberos)" +#~ msgstr "企業版登入 (Kerberos)" + +#~ msgid "Email _Address" +#~ msgstr "電子郵件位址(_A)" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "已經有個 %s 身分的帳號" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON 資料中找不到名稱成員" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo new file mode 100644 index 0000000..1a1f412 Binary files /dev/null and b/po/zh_TW.gmo differ diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..9132a2d --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,1056 @@ +# Chinese (Taiwan) translation for gnome-online-accounts. +# Copyright (C) 2011 gnome-online-accounts's COPYRIGHT HOLDER +# This file is distributed under the same license as the gnome-online-accounts package. +# Cheng-Chia Tseng , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: gnome-online-accounts 3.3.1\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" +"online-accounts&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2018-02-27 06:49+0000\n" +"PO-Revision-Date: 2018-03-10 22:55+0800\n" +"Last-Translator: Chao-Hsiung Liao \n" +"Language-Team: Chinese (Taiwan) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" + +#: data/org.gnome.online-accounts.gschema.xml:6 +msgid "List of providers that are allowed to be loaded" +msgstr "允許被載入的提供者列表" + +#: data/org.gnome.online-accounts.gschema.xml:7 +msgid "" +"A list of strings representing the providers that are allowed to be loaded " +"(default: 'all'). This is only evaluated on startup." +msgstr "代表允許被載入的提供者文字列表 (預設值:all)。這只在啟動時被評估。" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1196 src/daemon/goadaemon.c:1480 +#, c-format +msgid "Failed to find a provider for: %s" +msgstr "無法尋找到此提供者:%s" + +#: src/daemon/goadaemon.c:1423 +msgid "IsLocked property is set for account" +msgstr "帳號設定 IsLocked 屬性" + +#. TODO: more specific +#: src/daemon/goadaemon.c:1468 +msgid "ProviderType property is not set for account" +msgstr "帳號沒有設定 ProviderType 屬性" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:238 +msgid "Failed to parse autodiscover response XML" +msgstr "無法解析自動探索回應 XML" + +#. TODO: more specific +#. Translators: the parameter is an XML element name. +#: src/goabackend/goaewsclient.c:249 src/goabackend/goaewsclient.c:264 +#: src/goabackend/goaewsclient.c:279 +#, c-format +msgid "Failed to find “%s” element" +msgstr "找不到「%s」元素" + +#. TODO: more specific +#: src/goabackend/goaewsclient.c:300 +msgid "Failed to find ASUrl and OABUrl in autodiscover response" +msgstr "在自動探索回應中找不到 ASUrl 與 OABUrl" + +#: src/goabackend/goaexchangeprovider.c:51 +msgid "Microsoft Exchange" +msgstr "Microsoft Exchange" + +#. Translators: the first %s is the username +#. * (eg., debarshi.ray@gmail.com or rishi), and the +#. * (%s, %d) is the error domain and code. +#. +#: src/goabackend/goaexchangeprovider.c:248 +#: src/goabackend/goalastfmprovider.c:287 +#: src/goabackend/goaowncloudprovider.c:291 +#, c-format +msgid "Invalid password with username “%s” (%s, %d): " +msgstr "使用者「%s」的密碼無效 (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:396 +#: src/goabackend/goaimapsmtpprovider.c:647 +msgid "_E-mail" +msgstr "電子郵件(_E)" + +#: src/goabackend/goaexchangeprovider.c:397 +#: src/goabackend/goaimapsmtpprovider.c:667 +#: src/goabackend/goaimapsmtpprovider.c:687 +#: src/goabackend/goalastfmprovider.c:429 +#: src/goabackend/goaowncloudprovider.c:530 +msgid "_Password" +msgstr "密碼(_P)" + +#: src/goabackend/goaexchangeprovider.c:400 +msgid "_Custom" +msgstr "自訂(_C)" + +#: src/goabackend/goaexchangeprovider.c:411 +#: src/goabackend/goaimapsmtpprovider.c:666 +#: src/goabackend/goaimapsmtpprovider.c:686 +#: src/goabackend/goalastfmprovider.c:428 +#: src/goabackend/goaowncloudprovider.c:529 +msgid "User_name" +msgstr "使用者名稱(_N)" + +#: src/goabackend/goaexchangeprovider.c:412 +#: src/goabackend/goaowncloudprovider.c:528 +msgid "_Server" +msgstr "伺服器(_S)" + +#. -- +#: src/goabackend/goaexchangeprovider.c:422 +#: src/goabackend/goaimapsmtpprovider.c:699 +#: src/goabackend/goakerberosprovider.c:563 +#: src/goabackend/goalastfmprovider.c:437 +#: src/goabackend/goaowncloudprovider.c:544 +#: src/goabackend/goatelepathyprovider.c:651 +msgid "_Cancel" +msgstr "取消(_C)" + +#: src/goabackend/goaexchangeprovider.c:423 +#: src/goabackend/goakerberosprovider.c:564 +#: src/goabackend/goalastfmprovider.c:438 +#: src/goabackend/goaowncloudprovider.c:545 +msgid "C_onnect" +msgstr "連線(_O)" + +#: src/goabackend/goaexchangeprovider.c:439 +#: src/goabackend/goaimapsmtpprovider.c:715 +#: src/goabackend/goakerberosprovider.c:579 +#: src/goabackend/goalastfmprovider.c:454 +#: src/goabackend/goaowncloudprovider.c:560 +msgid "Connecting…" +msgstr "連線中…" + +#: src/goabackend/goaexchangeprovider.c:539 +#: src/goabackend/goaexchangeprovider.c:733 +#: src/goabackend/goaimapsmtpprovider.c:865 +#: src/goabackend/goaimapsmtpprovider.c:900 +#: src/goabackend/goaimapsmtpprovider.c:992 +#: src/goabackend/goaimapsmtpprovider.c:1249 +#: src/goabackend/goaimapsmtpprovider.c:1325 +#: src/goabackend/goakerberosprovider.c:896 +#: src/goabackend/goalastfmprovider.c:652 +#: src/goabackend/goalastfmprovider.c:820 +#: src/goabackend/goamediaserverprovider.c:420 +#: src/goabackend/goaoauth2provider.c:995 src/goabackend/goaoauthprovider.c:859 +#: src/goabackend/goaowncloudprovider.c:663 +#: src/goabackend/goaowncloudprovider.c:883 +#: src/goabackend/goatelepathyprovider.c:475 +#: src/goabackend/goatelepathyprovider.c:514 +#: src/goabackend/goatelepathyprovider.c:682 +msgid "Dialog was dismissed" +msgstr "對話盒已放棄" + +#: src/goabackend/goaexchangeprovider.c:577 +#: src/goabackend/goaexchangeprovider.c:761 +#: src/goabackend/goaimapsmtpprovider.c:933 +#: src/goabackend/goaimapsmtpprovider.c:1030 +#: src/goabackend/goaimapsmtpprovider.c:1276 +#: src/goabackend/goaimapsmtpprovider.c:1353 +#: src/goabackend/goalastfmprovider.c:686 +#: src/goabackend/goalastfmprovider.c:839 +#: src/goabackend/goaowncloudprovider.c:708 +#: src/goabackend/goaowncloudprovider.c:910 +#, c-format +msgid "Dialog was dismissed (%s, %d): " +msgstr "對話盒已放棄 (%s, %d):" + +#: src/goabackend/goaexchangeprovider.c:590 +#: src/goabackend/goaimapsmtpprovider.c:946 +#: src/goabackend/goaimapsmtpprovider.c:1043 +#: src/goabackend/goaowncloudprovider.c:721 +msgid "_Ignore" +msgstr "忽略(_I)" + +#: src/goabackend/goaexchangeprovider.c:595 +#: src/goabackend/goaexchangeprovider.c:780 +#: src/goabackend/goaimapsmtpprovider.c:951 +#: src/goabackend/goaimapsmtpprovider.c:1048 +#: src/goabackend/goaimapsmtpprovider.c:1295 +#: src/goabackend/goaimapsmtpprovider.c:1372 +#: src/goabackend/goakerberosprovider.c:981 +#: src/goabackend/goalastfmprovider.c:698 +#: src/goabackend/goalastfmprovider.c:856 +#: src/goabackend/goaowncloudprovider.c:726 +#: src/goabackend/goaowncloudprovider.c:929 +msgid "_Try Again" +msgstr "重試(_T)" + +#: src/goabackend/goaexchangeprovider.c:600 +#: src/goabackend/goaexchangeprovider.c:773 +msgid "Error connecting to Microsoft Exchange server" +msgstr "連接至 Microsoft Exchange 伺服器時發生錯誤" + +#: src/goabackend/goafacebookprovider.c:56 +msgid "Facebook" +msgstr "Facebook" + +#: src/goabackend/goafacebookprovider.c:183 +#: src/goabackend/goaflickrprovider.c:155 +#: src/goabackend/goafoursquareprovider.c:154 +#: src/goabackend/goagoogleprovider.c:191 +#: src/goabackend/goatodoistprovider.c:193 +#: src/goabackend/goawindowsliveprovider.c:159 +#, c-format +msgid "" +"Expected status 200 when requesting your identity, instead got status %d (%s)" +msgstr "請求您的身分識別時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#. TODO: more specific +#: src/goabackend/goafacebookprovider.c:202 +#: src/goabackend/goafacebookprovider.c:213 +#: src/goabackend/goafacebookprovider.c:219 +#: src/goabackend/goaflickrprovider.c:174 +#: src/goabackend/goaflickrprovider.c:185 +#: src/goabackend/goaflickrprovider.c:196 +#: src/goabackend/goaflickrprovider.c:205 +#: src/goabackend/goaflickrprovider.c:218 +#: src/goabackend/goafoursquareprovider.c:173 +#: src/goabackend/goafoursquareprovider.c:184 +#: src/goabackend/goafoursquareprovider.c:195 +#: src/goabackend/goafoursquareprovider.c:206 +#: src/goabackend/goafoursquareprovider.c:215 +#: src/goabackend/goafoursquareprovider.c:228 +#: src/goabackend/goagoogleprovider.c:210 +#: src/goabackend/goagoogleprovider.c:221 +#: src/goabackend/goalastfmprovider.c:212 +#: src/goabackend/goalastfmprovider.c:221 +#: src/goabackend/goalastfmprovider.c:230 +#: src/goabackend/goalastfmprovider.c:238 +#: src/goabackend/goalastfmprovider.c:244 +#: src/goabackend/goalastfmprovider.c:512 +#: src/goabackend/goalastfmprovider.c:521 +#: src/goabackend/goalastfmprovider.c:538 +#: src/goabackend/goalastfmprovider.c:544 +#: src/goabackend/goaoauth2provider.c:656 +#: src/goabackend/goaoauth2provider.c:686 +#: src/goabackend/goaoauth2provider.c:697 +#: src/goabackend/goatodoistprovider.c:212 +#: src/goabackend/goatodoistprovider.c:223 +#: src/goabackend/goatodoistprovider.c:234 src/goabackend/goautils.c:313 +#: src/goabackend/goawindowsliveprovider.c:178 +#: src/goabackend/goawindowsliveprovider.c:189 +#: src/goabackend/goawindowsliveprovider.c:198 +#: src/goabackend/goawindowsliveprovider.c:211 +msgid "Could not parse response" +msgstr "無法解析回應" + +#: src/goabackend/goaflickrprovider.c:56 +msgid "Flickr" +msgstr "Flickr" + +#: src/goabackend/goaflickrprovider.c:271 +msgid "Your system time is invalid. Check your date and time settings." +msgstr "您的系統時間無效。請檢查您的日期與時間設定值。" + +#: src/goabackend/goafoursquareprovider.c:57 +msgid "Foursquare" +msgstr "Foursquare" + +#: src/goabackend/goagoogleprovider.c:56 +msgid "Google" +msgstr "Google" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:84 src/goabackend/goasmtpauth.c:155 +msgid "Service not available" +msgstr "服務無法使用" + +#. TODO: more specific +#: src/goabackend/goaimapauthlogin.c:104 src/goabackend/goalastfmprovider.c:529 +#: src/goabackend/goasmtpauth.c:108 src/goabackend/goautils.c:878 +msgid "Authentication failed" +msgstr "核對失敗" + +#: src/goabackend/goaimapauthlogin.c:129 +msgid "Server does not support PLAIN" +msgstr "伺服器不支援 PLAIN" + +#: src/goabackend/goaimapauthlogin.c:181 src/goabackend/goasmtpauth.c:606 +msgid "Server does not support STARTTLS" +msgstr "伺服器不支援 STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:53 +msgid "IMAP and SMTP" +msgstr "IMAP 與 SMTP" + +#. Translators: the first %s is a field name. The +#. * second %s is the IMAP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#. Translators: the first %s is a field name. The +#. * second %s is the SMTP +#. * username (eg., rishi), and the (%s, %d) +#. * is the error domain and code. +#. +#: src/goabackend/goaimapsmtpprovider.c:327 +#: src/goabackend/goaimapsmtpprovider.c:378 +#, c-format +msgid "Invalid %s with username “%s” (%s, %d): " +msgstr "無效的 %s,使用者名稱「%s」(%s, %d):" + +#. Translators: the following four strings are used to show a +#. * combo box similar to the one in the evolution module. +#. * Encryption: None +#. * STARTTLS after connecting +#. * SSL on a dedicated port +#. +#: src/goabackend/goaimapsmtpprovider.c:564 +msgid "_Encryption" +msgstr "加密(_E)" + +#: src/goabackend/goaimapsmtpprovider.c:567 +msgid "None" +msgstr "沒有" + +#: src/goabackend/goaimapsmtpprovider.c:570 +msgid "STARTTLS after connecting" +msgstr "連線後使用 STARTTLS" + +#: src/goabackend/goaimapsmtpprovider.c:573 +msgid "SSL on a dedicated port" +msgstr "SSL 於專用的連接埠" + +#: src/goabackend/goaimapsmtpprovider.c:648 +msgid "_Name" +msgstr "名稱(_N)" + +#: src/goabackend/goaimapsmtpprovider.c:665 +msgid "IMAP _Server" +msgstr "IMAP 伺服器(_S)" + +#: src/goabackend/goaimapsmtpprovider.c:685 +msgid "SMTP _Server" +msgstr "SMTP 伺服器(_S)" + +#: src/goabackend/goaimapsmtpprovider.c:700 +#: src/goabackend/goaimapsmtpprovider.c:972 +#: src/goabackend/goaimapsmtpprovider.c:1305 +msgid "_Forward" +msgstr "向前(_F)" + +#: src/goabackend/goaimapsmtpprovider.c:956 +#: src/goabackend/goaimapsmtpprovider.c:1288 +msgid "Error connecting to IMAP server" +msgstr "連接至 IMAP 伺服器時發生錯誤" + +#: src/goabackend/goaimapsmtpprovider.c:1053 +#: src/goabackend/goaimapsmtpprovider.c:1365 +msgid "Error connecting to SMTP server" +msgstr "連接至 SMTP 伺服器時發生錯誤" + +#: src/goabackend/goaimapsmtpprovider.c:1476 +msgid "E-mail" +msgstr "電子郵件" + +#: src/goabackend/goaimapsmtpprovider.c:1480 +msgid "Name" +msgstr "名稱" + +#: src/goabackend/goaimapsmtpprovider.c:1490 +#: src/goabackend/goaimapsmtpprovider.c:1494 +msgid "IMAP" +msgstr "IMAP" + +#: src/goabackend/goaimapsmtpprovider.c:1505 +#: src/goabackend/goaimapsmtpprovider.c:1509 +msgid "SMTP" +msgstr "SMTP" + +#: src/goabackend/goakerberosprovider.c:100 +msgid "Enterprise Login (Kerberos)" +msgstr "企業版登入 (Kerberos)" + +#: src/goabackend/goakerberosprovider.c:220 +msgid "Ticketing is disabled for account" +msgstr "帳號計費已停用" + +#: src/goabackend/goakerberosprovider.c:245 +#, c-format +msgid "Could not find saved credentials for principal “%s” in keyring" +msgstr "在鑰匙圈中找不到主要「%s」儲存的身分憑證" + +#: src/goabackend/goakerberosprovider.c:258 +#, c-format +msgid "Did not find password for principal “%s” in credentials" +msgstr "在憑證中找不到主要「%s」密碼" + +#: src/goabackend/goakerberosprovider.c:558 +msgid "_Principal" +msgstr "主要的(_P)" + +#: src/goabackend/goakerberosprovider.c:744 +msgid "Operation was cancelled" +msgstr "動作被取消" + +#: src/goabackend/goakerberosprovider.c:794 +#: src/goaidentity/goaidentityservice.c:1072 +msgid "Log In to Realm" +msgstr "登入領域" + +#: src/goabackend/goakerberosprovider.c:795 +msgid "Please enter your password below." +msgstr "請在下面輸入您的密碼。" + +#: src/goabackend/goakerberosprovider.c:796 +msgid "Remember this password" +msgstr "記住這個密碼" + +#: src/goabackend/goakerberosprovider.c:976 +msgid "Error connecting to enterprise identity server" +msgstr "連線至企業身分認證伺服器時發生錯誤" + +#: src/goabackend/goakerberosprovider.c:1315 +msgid "Identity service returned invalid key" +msgstr "身分認證服務傳回無效的鍵值" + +#: src/goabackend/goalastfmprovider.c:65 +msgid "Last.fm" +msgstr "Last.fm" + +#: src/goabackend/goalastfmprovider.c:700 +#: src/goabackend/goalastfmprovider.c:850 +msgid "Error connecting to Last.fm" +msgstr "連接至 Last.fm 時發生錯誤" + +#: src/goabackend/goamediaserverprovider.c:63 +msgid "Media Server" +msgstr "媒體伺服器" + +#: src/goabackend/goamediaserverprovider.c:316 +msgid "" +"Personal content can be added to your applications through a media server " +"account." +msgstr "個人內容可以透過媒體伺服器帳號加入您的應用程式。" + +#: src/goabackend/goamediaserverprovider.c:329 +msgid "Available Media Servers" +msgstr "可用的伺服器" + +#: src/goabackend/goamediaserverprovider.c:360 +msgid "No media servers found" +msgstr "找不到媒體伺服器" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauth2provider.c:632 src/goabackend/goaoauthprovider.c:542 +#, c-format +msgid "" +"Expected status 200 when requesting access token, instead got status %d (%s)" +msgstr "請求存取記號時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#: src/goabackend/goaoauth2provider.c:814 +msgid "Authorization response: " +msgstr "授權回應:" + +#: src/goabackend/goaoauth2provider.c:884 +#, c-format +msgid "Authorization response: %s" +msgstr "授權回應:%s" + +#: src/goabackend/goaoauth2provider.c:1021 +#: src/goabackend/goaoauthprovider.c:890 +msgid "Error getting an Access Token: " +msgstr "取得存取記號時發生錯誤:" + +#: src/goabackend/goaoauth2provider.c:1036 +#: src/goabackend/goaoauthprovider.c:903 +msgid "Error getting identity: " +msgstr "取得身分時發生錯誤:" + +#: src/goabackend/goaoauth2provider.c:1254 +#: src/goabackend/goaoauthprovider.c:1192 +#, c-format +msgid "Was asked to log in as %s, but logged in as %s" +msgstr "要求以 %s 登入,卻以 %s 登入" + +#: src/goabackend/goaoauth2provider.c:1406 +msgid "Credentials do not contain access_token" +msgstr "憑證不包含 access_token" + +#: src/goabackend/goaoauth2provider.c:1445 +#: src/goabackend/goaoauthprovider.c:1407 +#, c-format +msgid "Failed to refresh access token (%s, %d): " +msgstr "無法重新整理存取符令 (%s,%d):" + +#: src/goabackend/goaoauthprovider.c:565 +msgid "Missing access_token or access_token_secret headers in response" +msgstr "回應遺失 access_token 或 access_token_secret 標頭" + +#: src/goabackend/goaoauthprovider.c:773 +msgid "Error getting a Request Token: " +msgstr "取得請求記號時發生錯誤:" + +#. Translators: the %d is a HTTP status code and the %s is a textual description of it +#: src/goabackend/goaoauthprovider.c:804 +#, c-format +msgid "" +"Expected status 200 for getting a Request Token, instead got status %d (%s)" +msgstr "取得請求記號時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#: src/goabackend/goaoauthprovider.c:821 +msgid "Missing request_token or request_token_secret headers in response" +msgstr "回應遺失 request_token 或 request_token_secret 標頭" + +#: src/goabackend/goaoauthprovider.c:1363 +msgid "Credentials do not contain access_token or access_token_secret" +msgstr "憑證不包含 access_token 或 access_token_secret" + +#: src/goabackend/goaowncloudprovider.c:60 +msgid "Nextcloud" +msgstr "Nextcloud" + +#: src/goabackend/goaowncloudprovider.c:731 +#: src/goabackend/goaowncloudprovider.c:922 +msgid "Error connecting to ownCloud server" +msgstr "連接至 ownCloud 伺服器時發生錯誤" + +#: src/goabackend/goapocketprovider.c:74 +msgid "Pocket" +msgstr "Pocket" + +#. TODO: more specific +#: src/goabackend/goapocketprovider.c:249 +msgid "No username or access_token" +msgstr "沒有使用者名稱或存取記號(_T)" + +#: src/goabackend/goaprovider.c:114 +msgid "_Mail" +msgstr "郵件(_M)" + +#: src/goabackend/goaprovider.c:119 +msgid "Cale_ndar" +msgstr "行事曆(_N)" + +#: src/goabackend/goaprovider.c:124 +msgid "_Contacts" +msgstr "聯絡人(_C)" + +#: src/goabackend/goaprovider.c:129 src/goabackend/goatelepathyprovider.c:951 +msgid "C_hat" +msgstr "聊天(_H)" + +#: src/goabackend/goaprovider.c:134 +msgid "_Documents" +msgstr "文件(_D)" + +#: src/goabackend/goaprovider.c:139 +msgid "M_usic" +msgstr "音樂(_U)" + +#: src/goabackend/goaprovider.c:144 +msgid "_Photos" +msgstr "相片(_P)" + +#: src/goabackend/goaprovider.c:149 +msgid "_Files" +msgstr "檔案(_F)" + +#: src/goabackend/goaprovider.c:154 +msgid "Network _Resources" +msgstr "網路資源(_R)" + +#: src/goabackend/goaprovider.c:159 +msgid "_Read Later" +msgstr "稍後再閱讀(_R)" + +#: src/goabackend/goaprovider.c:164 +msgid "Prin_ters" +msgstr "印表機(_T)" + +#: src/goabackend/goaprovider.c:169 +msgid "_Maps" +msgstr "地圖(_M)" + +#: src/goabackend/goaprovider.c:174 +msgid "T_o Do" +msgstr "待辦事項(_O)" + +#. Translators: This is a label for a series of +#. * options switches. For example: “Use for Mail”. +#: src/goabackend/goaprovider.c:588 src/goabackend/goatelepathyprovider.c:949 +msgid "Use for" +msgstr "使用於" + +#: src/goabackend/goaprovider.c:843 +msgid "Account is disabled" +msgstr "帳號已停用" + +#: src/goabackend/goaprovider.c:856 +msgid "Unknown error" +msgstr "未知錯誤" + +#: src/goabackend/goaprovider.c:875 +#, c-format +msgid "ensure_credentials_sync is not implemented on type %s" +msgstr "ensure_credentials_sync 並非以 %s 類型實作" + +#. TODO: more specific +#: src/goabackend/goasmtpauth.c:170 +msgid "TLS not available" +msgstr "TLS 無法使用" + +#: src/goabackend/goasmtpauth.c:476 +msgid "Unknown authentication mechanism" +msgstr "不明的核對機制" + +#: src/goabackend/goatelepathyprovider.c:172 +msgid "Telepathy chat account not found" +msgstr "找不到 Telepathy 聊天帳號" + +#: src/goabackend/goatelepathyprovider.c:434 +#, c-format +msgid "Failed to create a user interface for %s" +msgstr "無法建立 %s 的使用者介面" + +#: src/goabackend/goatelepathyprovider.c:540 +msgid "Connection Settings" +msgstr "連線設定值" + +#: src/goabackend/goatelepathyprovider.c:646 +msgid "Personal Details" +msgstr "個人詳細資料" + +#: src/goabackend/goatelepathyprovider.c:652 +msgid "_OK" +msgstr "確定(_O)" + +#: src/goabackend/goatelepathyprovider.c:898 +msgid "Cannot save the connection parameters" +msgstr "不能儲存連線參數" + +#: src/goabackend/goatelepathyprovider.c:911 +msgid "Cannot save your personal information on the server" +msgstr "不能在伺服器上儲存您的個人資訊" + +#. Connection Settings button +#: src/goabackend/goatelepathyprovider.c:956 +msgid "_Connection Settings" +msgstr "連線設定值(_C)" + +#. Edit Personal Information button +#: src/goabackend/goatelepathyprovider.c:960 +msgid "_Personal Details" +msgstr "個人詳細資料(_P)" + +#: src/goabackend/goatodoistprovider.c:58 +msgid "Todoist" +msgstr "待辦列表" + +#: src/goabackend/goautils.c:96 +msgid "Error logging into the account" +msgstr "登入帳號時發生錯誤" + +#: src/goabackend/goautils.c:140 +msgid "Credentials have expired" +msgstr "憑證已逾期" + +#: src/goabackend/goautils.c:144 +msgid "Sign in to enable this account." +msgstr "登入以啟用此帳號。" + +#: src/goabackend/goautils.c:148 +msgid "_Sign In" +msgstr "登入(_S)" + +#: src/goabackend/goautils.c:280 +#, c-format +msgid "A %s account already exists for %s" +msgstr "%s 帳號已經存在用於 %s" + +#. Translators: this is the title of the "Add Account" and "Refresh +#. * Account" dialogs. The %s is the name of the provider. eg., +#. * 'Google'. +#. +#: src/goabackend/goautils.c:333 +#, c-format +msgid "%s Account" +msgstr "%s 帳號" + +#. TODO: more specific +#: src/goabackend/goautils.c:387 +msgid "Failed to delete credentials from the keyring" +msgstr "無法從鑰匙圈刪除憑證" + +#. TODO: more specific +#: src/goabackend/goautils.c:435 +msgid "Failed to retrieve credentials from the keyring" +msgstr "無法從鑰匙圈取回憑證" + +#. TODO: more specific +#: src/goabackend/goautils.c:445 +msgid "No credentials found in the keyring" +msgstr "鑰匙圈找不到憑證" + +#: src/goabackend/goautils.c:458 +msgid "Error parsing result obtained from the keyring: " +msgstr "從鑰匙圈取得解析結果時發生錯誤:" + +#. Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' +#: src/goabackend/goautils.c:499 +#, c-format +msgid "GOA %s credentials for identity %s" +msgstr "%2$s 身分的 GOA %1$s 憑證" + +#. TODO: more specific +#: src/goabackend/goautils.c:516 +msgid "Failed to store credentials in the keyring" +msgstr "無法儲存憑證到鑰匙圈" + +#: src/goabackend/goautils.c:865 +msgid "Cannot resolve hostname" +msgstr "不能解析主機名稱" + +#: src/goabackend/goautils.c:869 +msgid "Cannot resolve proxy hostname" +msgstr "不能解析代理伺服器主機名稱" + +#: src/goabackend/goautils.c:874 +msgid "Cannot find WebDAV endpoint" +msgstr "找不到 WebDAV 終結點" + +#: src/goabackend/goautils.c:883 +#, c-format +msgid "Code: %u — Unexpected response from server" +msgstr "代碼:%u — 從伺服器傳回未預期的回應" + +#: src/goabackend/goautils.c:899 +msgid "The signing certificate authority is not known." +msgstr "簽署的憑證授權中心不明。" + +#: src/goabackend/goautils.c:903 +msgid "" +"The certificate does not match the expected identity of the site that it was " +"retrieved from." +msgstr "憑證與取回憑證的網站身分比對不符。" + +#: src/goabackend/goautils.c:908 +msgid "The certificate’s activation time is still in the future." +msgstr "憑證的啟用時刻在未來。" + +#: src/goabackend/goautils.c:912 +msgid "The certificate has expired." +msgstr "憑證已逾期。" + +#: src/goabackend/goautils.c:916 +msgid "The certificate has been revoked." +msgstr "憑證已撤銷。" + +#: src/goabackend/goautils.c:920 +msgid "The certificate’s algorithm is considered insecure." +msgstr "憑證的演算法被認為是不安全的。" + +#: src/goabackend/goautils.c:926 +msgid "Invalid certificate." +msgstr "憑證無效。" + +#. TODO: more specific +#: src/goabackend/goautils.c:961 +#, c-format +msgid "Did not find %s with identity “%s” in credentials" +msgstr "在憑證中找不到 %s 其「%s」身分的密碼" + +#. translators: %s here is the address of the web page +#: src/goabackend/goawebview.c:94 +#, c-format +msgid "Loading “%s”…" +msgstr "正載入「%s」..." + +#: src/goabackend/goawindowsliveprovider.c:56 +msgid "Microsoft" +msgstr "Microsoft" + +#: src/goaidentity/goaidentityservice.c:568 +msgid "Initial secret key is invalid" +msgstr "初始密鑰無效" + +#: src/goaidentity/goaidentityservice.c:1077 +#, c-format +msgid "The network realm %s needs some information to sign you in." +msgstr "網路領域 %s 需要一些資訊才能讓您登入。" + +#: src/goaidentity/goakerberosidentity.c:275 +#: src/goaidentity/goakerberosidentity.c:283 +#: src/goaidentity/goakerberosidentity.c:707 +msgid "Could not find identity in credential cache: " +msgstr "在憑證快取中找不到身分認證: " + +#: src/goaidentity/goakerberosidentity.c:720 +msgid "Could not find identity credentials in cache: " +msgstr "在快取中找不到身分憑證: " + +#: src/goaidentity/goakerberosidentity.c:771 +msgid "Could not sift through identity credentials in cache: " +msgstr "無法篩選快取中的身分憑證: " + +#: src/goaidentity/goakerberosidentity.c:788 +msgid "Could not finish up sifting through identity credentials in cache: " +msgstr "無法結束篩選快取中的身分憑證: " + +#: src/goaidentity/goakerberosidentity.c:1103 +msgid "No associated identification found" +msgstr "找不到相關聯的身分認證" + +#: src/goaidentity/goakerberosidentity.c:1186 +msgid "Could not create credential cache: " +msgstr "無法建立憑證快取: " + +#: src/goaidentity/goakerberosidentity.c:1220 +msgid "Could not initialize credentials cache: " +msgstr "無法初始化憑證快取: " + +#: src/goaidentity/goakerberosidentity.c:1236 +msgid "Could not store new credentials in credentials cache: " +msgstr "無法在憑證快取中儲存新的憑證: " + +#: src/goaidentity/goakerberosidentity.c:1534 +msgid "Could not renew identity: Not signed in" +msgstr "無法更新身分認證:尚未登入" + +#: src/goaidentity/goakerberosidentity.c:1546 +msgid "Could not renew identity: " +msgstr "無法更新身分認證: " + +#: src/goaidentity/goakerberosidentity.c:1562 +#, c-format +msgid "Could not get new credentials to renew identity %s: " +msgstr "無法取得新的憑證以更新身分認證 %s: " + +#: src/goaidentity/goakerberosidentity.c:1604 +msgid "Could not erase identity: " +msgstr "無法消除身分認證: " + +#: src/goaidentity/goakerberosidentitymanager.c:749 +msgid "Could not find identity" +msgstr "找不到身分認證" + +#: src/goaidentity/goakerberosidentitymanager.c:845 +msgid "Could not create credential cache for identity" +msgstr "無法建立身分認證的憑證快取" + +#~ msgid "_Domain" +#~ msgstr "網域(_D)" + +#~ msgid "Enterprise domain or realm name" +#~ msgstr "企業網域或領域名稱" + +#~ msgid "The domain is not valid" +#~ msgstr "網域是無效的" + +#~ msgid "org.gnome.OnlineAccounts.Mail is not available" +#~ msgstr "org.gnome.OnlineAccounts.Mail 無法使用" + +#~ msgid "Failed to parse email address" +#~ msgstr "無法分析電子郵件位址" + +#~ msgid "Cannot do SMTP authentication without a domain" +#~ msgstr "沒有網域無法進行 SMTP 核對" + +#~ msgid "Did not find smtp-password in credentials" +#~ msgstr "在憑證中找不到 smtp 密碼" + +#~ msgid "Cannot do SMTP authentication without a password" +#~ msgstr "沒有密碼無法進行 SMTP 核對" + +#~ msgid "initial secret passed before secret key exchange" +#~ msgstr "在私鑰交換前傳送的初始機密" + +#~ msgid "ownCloud" +#~ msgstr "ownCloud" + +#~ msgid "Failed to initialize a GOA client" +#~ msgstr "GOA 客戶端初始化失敗" + +#~ msgid "Did not find password with identity ‘%s’ in credentials" +#~ msgstr "在憑證中找不到身分‘%s’的密碼" + +#~ msgid "Windows Live" +#~ msgstr "Windows Live" + +#~ msgid "Yahoo" +#~ msgstr "Yahoo" + +#~ msgid "Expected status 200 when requesting name, instead got status %d (%s)" +#~ msgstr "請求名稱時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#~ msgid "" +#~ "Paste authorization code obtained from the authorization " +#~ "page:" +#~ msgstr "貼上從核對頁面取得的核對代碼:" + +#~ msgid "Paste token obtained from the authorization page:" +#~ msgstr "從認證頁面取得貼上記號:" + +#~ msgid "Twitter" +#~ msgstr "Twitter" + +#~ msgid "Time" +#~ msgstr "時間" + +#~ msgid "Time to fire" +#~ msgstr "啟動時間" + +#~ msgid "Failed to find Autodiscover element" +#~ msgstr "找不到 Autodiscover 元素" + +#~ msgid "Failed to find Account element" +#~ msgstr "找不到 Account 元素" + +#~ msgid "Expected status 200 when requesting guid, instead got status %d (%s)" +#~ msgstr "請求 guid 時預期的狀態為 200,但卻取得狀態 %d (%s)" + +#~ msgid "Did not find imap-password with identity `%s' in credentials" +#~ msgstr "在憑證中找不到識別符為「%s」的 imap 密碼" + +#~ msgid "Invalid imap-password with username `%s' (%s, %d): " +#~ msgstr "使用者名稱「%s」的 imap 密碼無效 (%s, %d):" + +#~ msgid "Did not find smtp-password with identity `%s' in credentials" +#~ msgstr "在憑證中找不到識別符為「%s」的 smtp 密碼" + +#~ msgid "Invalid smtp-password with username `%s' (%s, %d): " +#~ msgstr "使用者名稱「%s」的 smtp 密碼無效 (%s, %d):" + +#~ msgid "Online Accounts" +#~ msgstr "線上帳號" + +#~ msgid "Provides the org.gnome.OnlinesAccounts name on the session bus" +#~ msgstr "在作業階段匯流排提供 org.gnome.OnlinesAccounts 名稱" + +#~ msgid "An online account needs attention" +#~ msgstr "有個線上帳號要求注意" + +#~ msgid "Open Online Accounts..." +#~ msgstr "開啟線上帳號..." + +#~ msgid "Error parsing response as JSON: " +#~ msgstr "以 JSON 解析回應時發生錯誤:" + +#~ msgid "Didn't find id member in JSON data" +#~ msgstr "JSON 資料中找不到 id 成員" + +#~ msgid "Didn't find email member in JSON data" +#~ msgstr "JSON 資料中找不到電子郵件成員" + +#~ msgid "Didn't find user member in JSON data" +#~ msgstr "JSON 資料中找不到使用者成員" + +#~ msgid "Didn't find user.id member in JSON data" +#~ msgstr "JSON 資料中找不到 user.id 成員" + +#~ msgid "Didn't find user.username member in JSON data" +#~ msgstr "JSON 資料中找不到 user.username 成員" + +#~ msgid "Didn't find user.username._content member in JSON data" +#~ msgstr "JSON 資料中找不到 user.username._content 成員" + +#~ msgid "Didn't find access_token in non-JSON data" +#~ msgstr "非 JSON 資料中找不到 access_token" + +#~ msgid "Didn't find access_token in JSON data" +#~ msgstr "JSON 資料中找不到 access_token" + +#~ msgid "Didn't find id_str member in JSON data" +#~ msgstr "JSON 資料中找不到 id_str 成員" + +#~ msgid "Didn't find screen_name member in JSON data" +#~ msgstr "JSON 資料中找不到 screen_name 成員" + +#~ msgid "Didn't find account email member in JSON data" +#~ msgstr "JSON 資料中找不到帳號電子郵件成員" + +#~ msgid "Didn't find guid member in JSON data" +#~ msgstr "JSON 資料中找不到 guid 成員" + +#~ msgid "Didn't find value member in JSON data" +#~ msgstr "JSON 資料中找不到值成員" + +#~ msgid "Error parsing usercard response as JSON: " +#~ msgstr "以 JSON 解析使用者名片回應時發生錯誤:" + +#~ msgid "Didn't find profile member in JSON data" +#~ msgstr "JSON 資料中找不到個人檔案成員" + +#~ msgid "Didn't find nickname member in JSON data" +#~ msgstr "JSON 資料中找不到暱稱成員" + +#~ msgid "Credentials not found in keyring (%s, %d): " +#~ msgstr "在鑰匙圈內找不到憑證 (%s,%d):" + +#~ msgid "Error storing credentials in keyring (%s, %d): " +#~ msgstr "將憑證儲存於鑰匙圈時發生錯誤 (%s,%d):" + +#~ msgid "New Microsoft Exchange Account" +#~ msgstr "新增 Microsoft Exchange 帳號" + +#~ msgid "Chat" +#~ msgstr "聊天" + +#~ msgid "Didn't find data member in JSON data" +#~ msgstr "JSON 資料中找不到資料成員" + +#~ msgid "New Enterprise Login (Kerberos)" +#~ msgstr "新增企業版登入 (Kerberos)" + +#~ msgid "Add %s" +#~ msgstr "加入 %s" + +#~ msgid "Refresh %s" +#~ msgstr "重新整理 %s" + +#~ msgid "Domain Administrator Login" +#~ msgstr "網域管理員登入" + +#~ msgid "Could not find supported credentials" +#~ msgstr "找不到支援的憑證" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain password here." +#~ msgstr "" +#~ "為了使用這個企業版身分認證,這個電腦必須加入網域。請讓您的網路管理員在這裡" +#~ "輸入他們的網域密碼。" + +#~ msgid "" +#~ "In order to use this enterprise identity, the computer needs to be " +#~ "enrolled in the domain. Please have your network administrator type their " +#~ "domain username here." +#~ msgstr "" +#~ "為了使用這個企業版身分認證,這個電腦必須加入網域。請讓您的網路管理員在這裡" +#~ "輸入他們的網域使用者名稱。" + +#~ msgid "No such domain or realm found" +#~ msgstr "找不到這個網域或領域名稱" + +#~ msgid "Cannot log in as %s at the %s domain" +#~ msgstr "不能以 %s 身分登入 %s 網域" + +#~ msgid "Invalid password, please try again" +#~ msgstr "密碼錯誤,請再試一次" + +#~ msgid "Couldn't connect to the %s domain: %s" +#~ msgstr "無法連接到 %s 網域:%s" + +#~ msgid "Enterpise Login (Kerberos)" +#~ msgstr "企業版登入 (Kerberos)" + +#~ msgid "Email _Address" +#~ msgstr "電子郵件位址(_A)" + +#~ msgid "There is already an account for the identity %s" +#~ msgstr "已經有個 %s 身分的帳號" + +#~ msgid "Didn't find name member in JSON data" +#~ msgstr "JSON 資料中找不到名稱成員" diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..772ce59 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,10 @@ + +NULL = + +SUBDIRS = goa + +if BUILD_BACKEND +SUBDIRS += goaidentity goabackend daemon examples +endif + +-include $(top_srcdir)/git.mk diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 0000000..34ee9ce --- /dev/null +++ b/src/Makefile.in @@ -0,0 +1,716 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_BACKEND_TRUE@am__append_1 = goaidentity goabackend daemon examples +subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = goa goaidentity goabackend daemon examples +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +SUBDIRS = goa $(am__append_1) +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am new file mode 100644 index 0000000..662d18a --- /dev/null +++ b/src/daemon/Makefile.am @@ -0,0 +1,54 @@ +NULL = + +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -I$(top_builddir)/src/goaidentity \ + -I$(top_srcdir)/src/goaidentity \ + -DG_LOG_DOMAIN=\"goa-daemon\" \ + -DGOA_BACKEND_COMPILATION \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + -DGOA_API_IS_SUBJECT_TO_CHANGE \ + -DGOA_BACKEND_API_IS_SUBJECT_TO_CHANGE \ + $(WARN_CFLAGS) \ + $(NULL) + +BUILT_SOURCES = $(NULL) +EXTRA_DIST = $(NULL) + +libexec_PROGRAMS = goa-daemon + +goa_daemon_SOURCES = \ + main.c \ + goadaemon.h goadaemon.c \ + $(NULL) + +goa_daemon_CFLAGS = \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) \ + $(REST_CFLAGS) \ + $(NULL) + +goa_daemon_LDADD = \ + $(GLIB_LIBS) \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(top_builddir)/src/goabackend/libgoa-backend-1.0.la \ + $(GTK_LIBS) \ + $(REST_LIBS) \ + $(NULL) + +goa_daemon_LDFLAGS = \ + $(WARN_LDFLAGS) \ + $(NULL) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/src/daemon/Makefile.in b/src/daemon/Makefile.in new file mode 100644 index 0000000..cbfbb72 --- /dev/null +++ b/src/daemon/Makefile.in @@ -0,0 +1,816 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +libexec_PROGRAMS = goa-daemon$(EXEEXT) +subdir = src/daemon +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(libexecdir)" +PROGRAMS = $(libexec_PROGRAMS) +am__objects_1 = +am_goa_daemon_OBJECTS = goa_daemon-main.$(OBJEXT) \ + goa_daemon-goadaemon.$(OBJEXT) $(am__objects_1) +goa_daemon_OBJECTS = $(am_goa_daemon_OBJECTS) +am__DEPENDENCIES_1 = +goa_daemon_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(top_builddir)/src/goabackend/libgoa-backend-1.0.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +goa_daemon_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(goa_daemon_CFLAGS) \ + $(CFLAGS) $(goa_daemon_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(goa_daemon_SOURCES) +DIST_SOURCES = $(goa_daemon_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -I$(top_builddir)/src/goaidentity \ + -I$(top_srcdir)/src/goaidentity \ + -DG_LOG_DOMAIN=\"goa-daemon\" \ + -DGOA_BACKEND_COMPILATION \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + -DGOA_API_IS_SUBJECT_TO_CHANGE \ + -DGOA_BACKEND_API_IS_SUBJECT_TO_CHANGE \ + $(WARN_CFLAGS) \ + $(NULL) + +BUILT_SOURCES = $(NULL) +EXTRA_DIST = $(NULL) +goa_daemon_SOURCES = \ + main.c \ + goadaemon.h goadaemon.c \ + $(NULL) + +goa_daemon_CFLAGS = \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) \ + $(REST_CFLAGS) \ + $(NULL) + +goa_daemon_LDADD = \ + $(GLIB_LIBS) \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(top_builddir)/src/goabackend/libgoa-backend-1.0.la \ + $(GTK_LIBS) \ + $(REST_LIBS) \ + $(NULL) + +goa_daemon_LDFLAGS = \ + $(WARN_LDFLAGS) \ + $(NULL) + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/daemon/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/daemon/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-libexecPROGRAMS: $(libexec_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-libexecPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(libexecdir)" && rm -f $$files + +clean-libexecPROGRAMS: + @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +goa-daemon$(EXEEXT): $(goa_daemon_OBJECTS) $(goa_daemon_DEPENDENCIES) $(EXTRA_goa_daemon_DEPENDENCIES) + @rm -f goa-daemon$(EXEEXT) + $(AM_V_CCLD)$(goa_daemon_LINK) $(goa_daemon_OBJECTS) $(goa_daemon_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_daemon-goadaemon.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_daemon-main.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +goa_daemon-main.o: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -MT goa_daemon-main.o -MD -MP -MF $(DEPDIR)/goa_daemon-main.Tpo -c -o goa_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_daemon-main.Tpo $(DEPDIR)/goa_daemon-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='goa_daemon-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -c -o goa_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c + +goa_daemon-main.obj: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -MT goa_daemon-main.obj -MD -MP -MF $(DEPDIR)/goa_daemon-main.Tpo -c -o goa_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_daemon-main.Tpo $(DEPDIR)/goa_daemon-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='goa_daemon-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -c -o goa_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` + +goa_daemon-goadaemon.o: goadaemon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -MT goa_daemon-goadaemon.o -MD -MP -MF $(DEPDIR)/goa_daemon-goadaemon.Tpo -c -o goa_daemon-goadaemon.o `test -f 'goadaemon.c' || echo '$(srcdir)/'`goadaemon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_daemon-goadaemon.Tpo $(DEPDIR)/goa_daemon-goadaemon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goadaemon.c' object='goa_daemon-goadaemon.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -c -o goa_daemon-goadaemon.o `test -f 'goadaemon.c' || echo '$(srcdir)/'`goadaemon.c + +goa_daemon-goadaemon.obj: goadaemon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -MT goa_daemon-goadaemon.obj -MD -MP -MF $(DEPDIR)/goa_daemon-goadaemon.Tpo -c -o goa_daemon-goadaemon.obj `if test -f 'goadaemon.c'; then $(CYGPATH_W) 'goadaemon.c'; else $(CYGPATH_W) '$(srcdir)/goadaemon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_daemon-goadaemon.Tpo $(DEPDIR)/goa_daemon-goadaemon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goadaemon.c' object='goa_daemon-goadaemon.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_daemon_CFLAGS) $(CFLAGS) -c -o goa_daemon-goadaemon.obj `if test -f 'goadaemon.c'; then $(CYGPATH_W) 'goadaemon.c'; else $(CYGPATH_W) '$(srcdir)/goadaemon.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(libexecdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \ + clean-local mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libexecPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libexecPROGRAMS + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libexecPROGRAMS clean-libtool clean-local cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libexecPROGRAMS install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-libexecPROGRAMS + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/daemon/goadaemon.c b/src/daemon/goadaemon.c new file mode 100644 index 0000000..0b6ddef --- /dev/null +++ b/src/daemon/goadaemon.c @@ -0,0 +1,1843 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include +#include + +#include +#include +#include +#include + +#include "goadaemon.h" +#include "goa/goa.h" +#include "goabackend/goabackend.h" +#include "goabackend/goaprovider-priv.h" +#include "goabackend/goautils.h" + +struct _GoaDaemon +{ + GObject parent_instance; + + GDBusConnection *connection; + + GFileMonitor *home_conf_file_monitor; + GFileMonitor *template_file_monitor; + gchar *home_conf_file_path; + + GNetworkMonitor *network_monitor; + + GDBusObjectManagerServer *object_manager; + + GoaManager *manager; + + GQueue *ensure_credentials_queue; + gboolean ensure_credentials_running; + + guint config_timeout_id; + guint credentials_timeout_id; +}; + +enum +{ + PROP_0, + PROP_CONNECTION +}; + +static void on_file_monitor_changed (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type, + gpointer user_data); + +static gboolean on_manager_handle_add_account (GoaManager *object, + GDBusMethodInvocation *invocation, + const gchar *provider_type, + const gchar *identity, + const gchar *presentation_identity, + GVariant *credentials, + GVariant *details, + gpointer user_data); + +static gboolean on_account_handle_remove (GoaAccount *account, + GDBusMethodInvocation *invocation, + gpointer user_data); + +static gboolean on_account_handle_ensure_credentials (GoaAccount *account, + GDBusMethodInvocation *invocation, + gpointer user_data); + +static void ensure_credentials_queue_check (GoaDaemon *self); + +static void goa_daemon_check_credentials (GoaDaemon *self); +static void goa_daemon_reload_configuration (GoaDaemon *self); + +G_DEFINE_TYPE (GoaDaemon, goa_daemon, G_TYPE_OBJECT); + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GError **error; + GList **out_providers; + GMainLoop *loop; + gboolean op_res; +} GetAllSyncData; + +static void +get_all_providers_sync_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GetAllSyncData *data = (GetAllSyncData *) user_data; + + data->op_res = goa_provider_get_all_finish (data->out_providers, res, data->error); + g_main_loop_quit (data->loop); +} + +static gboolean +get_all_providers_sync (GCancellable *cancellable, + GList **out_providers, + GError **error) +{ + GetAllSyncData data; + + data.error = error; + data.out_providers = out_providers; + + /* HACK: Since telepathy-glib doesn't use the thread-default + * GMainContext for invoking the asynchronous callbacks, we can't + * push a new GMainContext here. + */ + data.loop = g_main_loop_new (NULL, FALSE); + + goa_provider_get_all (get_all_providers_sync_cb, &data); + g_main_loop_run (data.loop); + g_main_loop_unref (data.loop); + + return data.op_res; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_daemon_constructed (GObject *object) +{ + GoaDaemon *self = GOA_DAEMON (object); + + G_OBJECT_CLASS (goa_daemon_parent_class)->constructed (object); + + /* prime the list of accounts */ + goa_daemon_reload_configuration (self); + + /* Export objects */ + g_dbus_object_manager_server_set_connection (self->object_manager, self->connection); +} + +static void +goa_daemon_finalize (GObject *object) +{ + GoaDaemon *self = GOA_DAEMON (object); + + if (self->config_timeout_id != 0) + { + g_source_remove (self->config_timeout_id); + } + + if (self->credentials_timeout_id != 0) + { + g_source_remove (self->credentials_timeout_id); + } + + if (self->home_conf_file_monitor != NULL) + { + g_signal_handlers_disconnect_by_func (self->home_conf_file_monitor, on_file_monitor_changed, self); + g_object_unref (self->home_conf_file_monitor); + } + + if (self->template_file_monitor != NULL) + { + g_signal_handlers_disconnect_by_func (self->template_file_monitor, on_file_monitor_changed, self); + g_object_unref (self->template_file_monitor); + } + + g_free (self->home_conf_file_path); + g_object_unref (self->manager); + g_object_unref (self->object_manager); + g_object_unref (self->connection); + g_queue_free_full (self->ensure_credentials_queue, g_object_unref); + + G_OBJECT_CLASS (goa_daemon_parent_class)->finalize (object); +} + +static void +goa_daemon_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) +{ + GoaDaemon *self = GOA_DAEMON (object); + + switch (prop_id) + { + case PROP_CONNECTION: + self->connection = G_DBUS_CONNECTION (g_value_dup_object (value)); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GFileMonitor * +create_monitor (const gchar *path, gboolean is_dir) +{ + GFile *file; + GFileMonitor *monitor; + GError *error; + + error = NULL; + file = g_file_new_for_path (path); + if (is_dir) + monitor = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, &error); + else + monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, &error); + + if (monitor == NULL) + { + g_warning ("Error monitoring %s at %s: %s (%s, %d)", + is_dir ? "directory" : "file", + path, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + g_object_unref (file); + + return monitor; +} + +static gboolean +on_config_file_monitor_timeout (gpointer user_data) +{ + GoaDaemon *self = GOA_DAEMON (user_data); + + self->config_timeout_id = 0; + g_debug ("Reloading configuration files"); + goa_daemon_reload_configuration (self); + + return G_SOURCE_REMOVE; +} + +static void +on_file_monitor_changed (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type, + gpointer user_data) +{ + GoaDaemon *self = GOA_DAEMON (user_data); + + if (self->config_timeout_id == 0) + { + self->config_timeout_id = g_timeout_add (200, on_config_file_monitor_timeout, self); + } +} + +static gboolean +on_check_credentials_timeout (gpointer user_data) +{ + GoaDaemon *self = GOA_DAEMON (user_data); + + self->credentials_timeout_id = 0; + g_debug ("Calling EnsureCredentials due to network changes"); + goa_daemon_check_credentials (self); + + return G_SOURCE_REMOVE; +} + +static void +queue_check_credentials (GoaDaemon *self) +{ + if (self->credentials_timeout_id != 0) + { + g_source_remove (self->credentials_timeout_id); + } + + self->credentials_timeout_id = g_timeout_add_seconds (1, on_check_credentials_timeout, self); +} + +static void +on_network_monitor_network_changed (GoaDaemon *self, gboolean available) +{ + queue_check_credentials (self); +} + +static void +goa_daemon_init (GoaDaemon *self) +{ + static volatile GQuark goa_error_domain = 0; + GError *error; + GList *l; + GList *providers = NULL; + GoaObjectSkeleton *object; + gchar *path; + + /* this will force associating errors in the GOA_ERROR error domain + * with org.freedesktop.Goa.Error.* errors via g_dbus_error_register_error_domain(). + */ + goa_error_domain = GOA_ERROR; + goa_error_domain; /* shut up -Wunused-but-set-variable */ + + error = NULL; + if (!get_all_providers_sync (NULL, &providers, &error)) + { + g_warning ("Unable to get the list of providers: %s (%s, %d)", + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + } + + for (l = providers; l != NULL; l = l->next) + { + GoaProvider *provider = GOA_PROVIDER (l->data); + goa_provider_initialize (provider); + } + + /* Create object manager */ + self->object_manager = g_dbus_object_manager_server_new ("/org/gnome/OnlineAccounts"); + + /* Create and export Manager */ + self->manager = goa_manager_skeleton_new (); + g_signal_connect (self->manager, + "handle-add-account", + G_CALLBACK (on_manager_handle_add_account), + self); + object = goa_object_skeleton_new ("/org/gnome/OnlineAccounts/Manager"); + goa_object_skeleton_set_manager (object, self->manager); + g_dbus_object_manager_server_export (self->object_manager, G_DBUS_OBJECT_SKELETON (object)); + g_object_unref (object); + + self->home_conf_file_path = g_strdup_printf ("%s/goa-1.0/accounts.conf", g_get_user_config_dir ()); + + /* create ~/.config/goa-1.0 directory */ + path = g_path_get_dirname (self->home_conf_file_path); + if (g_mkdir_with_parents (path, 0755) != 0) + { + g_warning ("Error creating directory %s: %s", path, strerror (errno)); + } + g_free (path); + + /* set up file monitoring */ + self->home_conf_file_monitor = create_monitor (self->home_conf_file_path, FALSE); + if (self->home_conf_file_monitor != NULL) + g_signal_connect (self->home_conf_file_monitor, "changed", G_CALLBACK (on_file_monitor_changed), self); + + if (GOA_TEMPLATE_FILE != NULL && GOA_TEMPLATE_FILE[0] != '\0') + { + self->template_file_monitor = create_monitor (GOA_TEMPLATE_FILE, FALSE); + if (self->template_file_monitor != NULL) + g_signal_connect (self->template_file_monitor, "changed", G_CALLBACK (on_file_monitor_changed), self); + } + + self->network_monitor = g_network_monitor_get_default (); + g_signal_connect_object (self->network_monitor, + "network-changed", + G_CALLBACK (on_network_monitor_network_changed), + self, + G_CONNECT_SWAPPED); + + self->ensure_credentials_queue = g_queue_new (); + queue_check_credentials (self); + + g_list_free_full (providers, g_object_unref); +} + +static void +goa_daemon_class_init (GoaDaemonClass *klass) +{ + GObjectClass *gobject_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->constructed = goa_daemon_constructed; + gobject_class->finalize = goa_daemon_finalize; + gobject_class->set_property = goa_daemon_set_property; + + g_object_class_install_property (gobject_class, + PROP_CONNECTION, + g_param_spec_object ("connection", + "GDBusConnection object", + "A connection to a message bus", + G_TYPE_DBUS_CONNECTION, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS | + G_PARAM_WRITABLE)); +} + +GoaDaemon * +goa_daemon_new (GDBusConnection *connection) +{ + g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL); + return GOA_DAEMON (g_object_new (GOA_TYPE_DAEMON, "connection", connection, NULL)); +} + + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +diff_sorted_lists (GList *list1, + GList *list2, + GCompareFunc compare, + GList **out_added, + GList **out_removed, + GList **out_unchanged) +{ + GList *added = NULL; + GList *removed = NULL; + GList *unchanged = NULL; + gint order; + + while (list1 != NULL && list2 != NULL) + { + order = (*compare) (list1->data, list2->data); + if (order < 0) + { + removed = g_list_prepend (removed, list1->data); + list1 = list1->next; + } + else if (order > 0) + { + added = g_list_prepend (added, list2->data); + list2 = list2->next; + } + else + { /* same item */ + unchanged = g_list_prepend (unchanged, list1->data); + list1 = list1->next; + list2 = list2->next; + } + } + + while (list1 != NULL) + { + removed = g_list_prepend (removed, list1->data); + list1 = list1->next; + } + while (list2 != NULL) + { + added = g_list_prepend (added, list2->data); + list2 = list2->next; + } + + if (out_added != NULL) + { + *out_added = added; + added = NULL; + } + + if (out_removed != NULL) + { + *out_removed = removed; + removed = NULL; + } + + if (out_unchanged != NULL) + { + *out_unchanged = unchanged; + unchanged = NULL; + } + + g_list_free (added); + g_list_free (removed); + g_list_free (unchanged); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +account_group_to_id (const gchar *group) +{ + g_return_val_if_fail (g_str_has_prefix (group, "Account "), NULL); + return group + sizeof "Account " - 1; +} + +static gchar * +account_object_path_to_group (const gchar *object_path) +{ + g_return_val_if_fail (g_str_has_prefix (object_path, "/org/gnome/OnlineAccounts/Accounts/"), NULL); + return g_strdup_printf ("Account %s", object_path + sizeof "/org/gnome/OnlineAccounts/Accounts/" - 1); +} + +static const gchar * +template_group_to_id (const gchar *group) +{ + g_return_val_if_fail (g_str_has_prefix (group, "Template "), NULL); + return group + sizeof "Template " - 1; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GKeyFile *key_file; + gchar *path; +} KeyFileData; + +static void +key_file_data_free (KeyFileData *data) +{ + g_key_file_unref (data->key_file); + g_free (data->path); + g_slice_free (KeyFileData, data); +} + +static KeyFileData * +key_file_data_new (GKeyFile *key_file, + const gchar *path) +{ + KeyFileData *data; + data = g_slice_new (KeyFileData); + data->key_file = g_key_file_ref (key_file); + data->path = g_strdup (path); + return data; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_config_file (GoaDaemon *self, + const gchar *path, + GHashTable *group_name_to_key_file_data) +{ + GKeyFile *key_file; + GError *error; + gboolean needs_update = FALSE; + gchar **groups; + const char *guid; + gsize num_groups; + guint n; + + key_file = g_key_file_new (); + + error = NULL; + if (!g_key_file_load_from_file (key_file, + path, + G_KEY_FILE_NONE, + &error)) + { + if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) + { + g_warning ("Error loading %s: %s (%s, %d)", + path, + error->message, g_quark_to_string (error->domain), error->code); + } + g_error_free (error); + goto out; + } + + guid = g_dbus_connection_get_guid (self->connection); + groups = g_key_file_get_groups (key_file, &num_groups); + for (n = 0; n < num_groups; n++) + { + if (g_str_has_prefix (groups[n], "Account ")) + { + gboolean is_temporary; + char *session_id; + + is_temporary = g_key_file_get_boolean (key_file, + groups[n], + "IsTemporary", + NULL); + + if (is_temporary) + { + session_id = g_key_file_get_string (key_file, + groups[n], + "SessionId", + NULL); + + /* discard temporary accounts from older sessions */ + if (session_id != NULL && + g_strcmp0 (session_id, guid) != 0) + { + GoaProvider *provider = NULL; + const gchar *id; + gchar *provider_type = NULL; + + g_debug ("ignoring account \"%s\" in file %s because it's stale", + groups[n], path); + + id = account_group_to_id (groups[n]); + if (id == NULL) + { + g_warning ("Unable to get account ID from group: %s", groups[n]); + goto cleanup_and_continue; + } + + provider_type = g_key_file_get_string (key_file, groups[n], "Provider", NULL); + if (provider_type != NULL) + provider = goa_provider_get_for_provider_type (provider_type); + + if (provider == NULL) + { + g_warning ("Unsupported account type %s for ID %s (no provider)", provider_type, id); + goto cleanup_and_continue; + } + + needs_update = g_key_file_remove_group (key_file, groups[n], NULL); + + error = NULL; + if (!goa_utils_delete_credentials_for_id_sync (provider, id, NULL, &error)) + { + g_warning ("Unable to clean-up stale keyring entries: %s", error->message); + g_error_free (error); + goto cleanup_and_continue; + } + + cleanup_and_continue: + g_clear_object (&provider); + g_free (groups[n]); + g_free (provider_type); + g_free (session_id); + continue; + } + g_free (session_id); + } + else + { + needs_update = g_key_file_remove_key (key_file, groups[n], "SessionId", NULL); + } + + g_hash_table_insert (group_name_to_key_file_data, + groups[n], /* steals string */ + key_file_data_new (key_file, path)); + } + else if (g_str_has_prefix (groups[n], "Template ")) + { + g_hash_table_insert (group_name_to_key_file_data, + groups[n], /* steals string */ + key_file_data_new (key_file, path)); + } + else + { + g_warning ("Unexpected group \"%s\" in file %s", groups[n], path); + g_free (groups[n]); + } + } + g_free (groups); + + if (needs_update) + { + error = NULL; + if (!g_key_file_save_to_file (key_file, path, &error)) + { + g_prefix_error (&error, "Error writing key-value-file %s: ", path); + g_warning ("%s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + } + + out: + g_key_file_unref (key_file); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/* returns FALSE if object is not (or no longer) valid */ +static gboolean +update_account_object (GoaDaemon *self, + GoaObjectSkeleton *object, + const gchar *path, + const gchar *group, + GKeyFile *key_file, + gboolean just_added) +{ + GoaAccount *account = NULL; + GoaProvider *provider = NULL; + gboolean is_locked; + gboolean is_temporary; + gboolean ret = FALSE; + gchar *identity = NULL; + gchar *presentation_identity; + gchar *type = NULL; + gchar *name = NULL; + GIcon *icon = NULL; + gchar *serialized_icon = NULL; + GError *error; + + g_return_val_if_fail (GOA_IS_DAEMON (self), FALSE); + g_return_val_if_fail (G_IS_DBUS_OBJECT_SKELETON (object), FALSE); + g_return_val_if_fail (group != NULL, FALSE); + g_return_val_if_fail (key_file != NULL, FALSE); + + g_debug ("updating %s %d", g_dbus_object_get_object_path (G_DBUS_OBJECT (object)), just_added); + + type = g_key_file_get_string (key_file, group, "Provider", NULL); + identity = g_key_file_get_string (key_file, group, "Identity", NULL); + presentation_identity = g_key_file_get_string (key_file, group, "PresentationIdentity", NULL); + is_locked = g_key_file_get_boolean (key_file, group, "IsLocked", NULL); + is_temporary = g_key_file_get_boolean (key_file, group, "IsTemporary", NULL); + if (just_added) + { + account = goa_account_skeleton_new (); + goa_object_skeleton_set_account (object, account); + } + else + { + account = goa_object_get_account (GOA_OBJECT (object)); + } + + provider = goa_provider_get_for_provider_type (type); + if (provider == NULL) + { + g_warning ("Unsupported account type %s for identity %s (no provider)", type, identity); + goto out; + } + + goa_account_set_id (account, g_strrstr (g_dbus_object_get_object_path (G_DBUS_OBJECT (object)), "/") + 1); + goa_account_set_provider_type (account, type); + goa_account_set_identity (account, identity); + goa_account_set_presentation_identity (account, presentation_identity); + goa_account_set_is_locked (account, is_locked); + goa_account_set_is_temporary (account, is_temporary); + + error = NULL; + if (!goa_provider_build_object (provider, object, key_file, group, self->connection, just_added, &error)) + { + g_warning ("Error parsing account: %s (%s, %d)", + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + + name = goa_provider_get_provider_name (provider, GOA_OBJECT (object)); + goa_account_set_provider_name (account, name); + + icon = goa_provider_get_provider_icon (provider, GOA_OBJECT (object)); + serialized_icon = g_icon_to_string (icon); + goa_account_set_provider_icon (account, serialized_icon); + + ret = TRUE; + + out: + g_free (serialized_icon); + g_clear_object (&icon); + g_free (name); + g_clear_object (&provider); + g_clear_object (&account); + g_free (type); + g_free (identity); + g_free (presentation_identity); + return ret; +} + +static void +process_config_entries (GoaDaemon *self, + GHashTable *group_name_to_key_file_data) +{ + GHashTableIter iter; + KeyFileData *key_file_data; + GList *existing_object_paths = NULL; + GList *config_object_paths = NULL; + GList *added; + GList *removed; + GList *unchanged; + GList *l; + + { + GList *existing_objects; + existing_objects = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (self->object_manager)); + for (l = existing_objects; l != NULL; l = l->next) + { + GoaObject *object = GOA_OBJECT (l->data); + const gchar *object_path; + object_path = g_dbus_object_get_object_path (G_DBUS_OBJECT (object)); + if (g_str_has_prefix (object_path, "/org/gnome/OnlineAccounts/Accounts/")) + existing_object_paths = g_list_prepend (existing_object_paths, g_strdup (object_path)); + } + g_list_free_full (existing_objects, g_object_unref); + } + + { + const gchar *group; + + g_hash_table_iter_init (&iter, group_name_to_key_file_data); + while (g_hash_table_iter_next (&iter, (gpointer*) &group, (gpointer*) &key_file_data)) + { + const gchar *id; + gchar *object_path; + + if (!g_str_has_prefix (group, "Account ")) + continue; + + id = account_group_to_id (group); + + /* create and validate object path */ + object_path = g_strdup_printf ("/org/gnome/OnlineAccounts/Accounts/%s", id); + if (strstr (id, "/") != NULL || !g_variant_is_object_path (object_path)) + { + g_warning ("`%s' is not a valid account identifier", group); + g_free (object_path); + continue; + } + /* steals object_path variable */ + config_object_paths = g_list_prepend (config_object_paths, object_path); + } + } + + existing_object_paths = g_list_sort (existing_object_paths, (GCompareFunc) g_strcmp0); + config_object_paths = g_list_sort (config_object_paths, (GCompareFunc) g_strcmp0); + diff_sorted_lists (existing_object_paths, + config_object_paths, + (GCompareFunc) g_strcmp0, + &added, + &removed, + &unchanged); + + for (l = removed; l != NULL; l = l->next) + { + const gchar *object_path = l->data; + GoaObject *object; + object = GOA_OBJECT (g_dbus_object_manager_get_object (G_DBUS_OBJECT_MANAGER (self->object_manager), object_path)); + g_warn_if_fail (object != NULL); + g_signal_handlers_disconnect_by_func (goa_object_peek_account (object), + G_CALLBACK (on_account_handle_remove), + self); + g_object_unref (object); + g_debug ("removing %s", object_path); + g_warn_if_fail (g_dbus_object_manager_server_unexport (self->object_manager, object_path)); + } + for (l = added; l != NULL; l = l->next) + { + const gchar *object_path = l->data; + GoaObjectSkeleton *object; + gchar *group; + + g_debug ("adding %s", object_path); + + group = account_object_path_to_group (object_path); + key_file_data = g_hash_table_lookup (group_name_to_key_file_data, group); + g_warn_if_fail (key_file_data != NULL); + + object = goa_object_skeleton_new (object_path); + if (update_account_object (self, + object, + key_file_data->path, + group, + key_file_data->key_file, + TRUE)) + { + g_dbus_object_manager_server_export (self->object_manager, G_DBUS_OBJECT_SKELETON (object)); + g_signal_connect (goa_object_peek_account (GOA_OBJECT (object)), + "handle-remove", + G_CALLBACK (on_account_handle_remove), + self); + g_signal_connect (goa_object_peek_account (GOA_OBJECT (object)), + "handle-ensure-credentials", + G_CALLBACK (on_account_handle_ensure_credentials), + self); + } + g_object_unref (object); + g_free (group); + } + for (l = unchanged; l != NULL; l = l->next) + { + const gchar *object_path = l->data; + GoaObject *object; + gchar *group; + + g_debug ("unchanged %s", object_path); + + group = account_object_path_to_group (object_path); + key_file_data = g_hash_table_lookup (group_name_to_key_file_data, group); + g_warn_if_fail (key_file_data != NULL); + + object = GOA_OBJECT (g_dbus_object_manager_get_object (G_DBUS_OBJECT_MANAGER (self->object_manager), object_path)); + g_warn_if_fail (object != NULL); + if (!update_account_object (self, + GOA_OBJECT_SKELETON (object), + key_file_data->path, + group, + key_file_data->key_file, + FALSE)) + { + g_signal_handlers_disconnect_by_func (goa_object_peek_account (object), + G_CALLBACK (on_account_handle_remove), + self); + g_signal_handlers_disconnect_by_func (goa_object_peek_account (object), + G_CALLBACK (on_account_handle_ensure_credentials), + self); + g_warn_if_fail (g_dbus_object_manager_server_unexport (self->object_manager, object_path)); + } + g_object_unref (object); + g_free (group); + } + + g_list_free (removed); + g_list_free (added); + g_list_free (unchanged); + g_list_free_full (existing_object_paths, g_free); + g_list_free_full (config_object_paths, g_free); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gint +compare_account_and_template_groups (const gchar *account_group, const gchar *template_group) +{ + const gchar *account_id; + const gchar *template_id; + + g_return_val_if_fail (g_str_has_prefix (account_group, "Account "), 0); + g_return_val_if_fail (g_str_has_prefix (template_group, "Template "), 0); + + account_id = account_group + sizeof "Account " - 1; + template_id = template_group + sizeof "Template " - 1; + + return g_strcmp0 (account_id, template_id); +} + +static void +process_template_entries (GoaDaemon *self, + GHashTable *group_name_to_key_file_data) +{ + GError *error; + GHashTable *key_files_to_update = NULL; + GHashTableIter iter; + GKeyFile *home_conf_key_file = NULL; + GKeyFile *key_file; + KeyFileData *key_file_data; + const gchar *group; + const gchar *key_file_path; + GList *config_object_groups = NULL; + GList *config_template_groups = NULL; + GList *added; + GList *unchanged; + GList *l; + + key_files_to_update = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_key_file_unref); + + g_hash_table_iter_init (&iter, group_name_to_key_file_data); + while (g_hash_table_iter_next (&iter, (gpointer *) &group, (gpointer *) &key_file_data)) + { + if (home_conf_key_file == NULL && g_strcmp0 (key_file_data->path, self->home_conf_file_path) == 0) + home_conf_key_file = g_key_file_ref (key_file_data->key_file); + + if (g_str_has_prefix (group, "Account ")) + config_object_groups = g_list_prepend (config_object_groups, g_strdup (group)); + else if (g_str_has_prefix (group, "Template ")) + config_template_groups = g_list_prepend (config_template_groups, g_strdup (group)); + } + + if (home_conf_key_file == NULL) + home_conf_key_file = g_key_file_new (); + + config_object_groups = g_list_sort (config_object_groups, (GCompareFunc) g_strcmp0); + config_template_groups = g_list_sort (config_template_groups, (GCompareFunc) g_strcmp0); + diff_sorted_lists (config_object_groups, + config_template_groups, + (GCompareFunc) compare_account_and_template_groups, + &added, + NULL, + &unchanged); + + for (l = added; l != NULL; l = l->next) + { + gboolean needs_update; + const gchar *id; + const gchar *template_group = l->data; + gchar *object_group = NULL; + + key_file_data = g_hash_table_lookup (group_name_to_key_file_data, template_group); + g_assert_nonnull (key_file_data); + + if (goa_utils_keyfile_get_boolean (key_file_data->key_file, template_group, "ForceRemove")) + continue; + + g_debug ("Adding from template %s", template_group); + + id = template_group_to_id (template_group); + object_group = g_strdup_printf ("Account %s", id); + g_warn_if_fail (!g_key_file_has_group (home_conf_key_file, object_group)); + + needs_update = goa_utils_keyfile_copy_group (key_file_data->key_file, + template_group, + home_conf_key_file, + object_group); + + if (needs_update) + { + g_key_file_set_boolean (home_conf_key_file, object_group, "IsLocked", TRUE); + g_hash_table_insert (key_files_to_update, + g_strdup (self->home_conf_file_path), + g_key_file_ref (home_conf_key_file)); + } + + g_free (object_group); + } + + for (l = unchanged; l != NULL; l = l->next) + { + KeyFileData *object_key_file_data; + KeyFileData *template_key_file_data; + gboolean needs_update; + const gchar *id; + const gchar *object_group = l->data; + gchar *template_group = NULL; + + object_key_file_data = g_hash_table_lookup (group_name_to_key_file_data, object_group); + g_assert_nonnull (object_key_file_data); + + g_warn_if_fail (g_key_file_has_group (object_key_file_data->key_file, object_group)); + + id = account_group_to_id (object_group); + template_group = g_strdup_printf ("Template %s", id); + + template_key_file_data = g_hash_table_lookup (group_name_to_key_file_data, template_group); + g_assert_nonnull (template_key_file_data); + g_assert_true (g_key_file_has_group (template_key_file_data->key_file, template_group)); + + if (goa_utils_keyfile_get_boolean (template_key_file_data->key_file, template_group, "ForceRemove")) + { + gboolean removed; + + g_debug ("Template %s specifies ForceRemove, removing %s", template_group, object_group); + + error = NULL; + needs_update = g_key_file_remove_group (object_key_file_data->key_file, object_group, &error); + if (error != NULL) + { + g_warning ("Error removing group %s from %s: %s (%s, %d)", + object_group, + key_file_data->path, + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + } + + if (needs_update) + { + g_hash_table_insert (key_files_to_update, + g_strdup (object_key_file_data->path), + g_key_file_ref (object_key_file_data->key_file)); + } + + removed = g_hash_table_remove (group_name_to_key_file_data, object_group); + g_warn_if_fail (removed); + } + else + { + g_debug ("Updating %s from template %s", object_group, template_group); + + needs_update = goa_utils_keyfile_copy_group (template_key_file_data->key_file, + template_group, + object_key_file_data->key_file, + object_group); + + if (needs_update) + { + g_key_file_set_boolean (home_conf_key_file, object_group, "IsLocked", TRUE); + g_hash_table_insert (key_files_to_update, + g_strdup (object_key_file_data->path), + g_key_file_ref (object_key_file_data->key_file)); + } + } + + g_free (template_group); + } + + g_hash_table_iter_init (&iter, key_files_to_update); + while (g_hash_table_iter_next (&iter, (gpointer *) &key_file_path, (gpointer *) &key_file)) + { + error = NULL; + if (!g_key_file_save_to_file (key_file, key_file_path, &error)) + { + g_prefix_error (&error, "Error writing key-value-file %s: ", key_file_path); + g_warning ("%s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + } + + g_hash_table_unref (key_files_to_update); + g_key_file_unref (home_conf_key_file); + g_list_free (added); + g_list_free (unchanged); + g_list_free_full (config_object_groups, g_free); + g_list_free_full (config_template_groups, g_free); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/* + * goa_daemon_reload_configuration: + * @self: A #GoaDaemon + * + * Updates the accounts_objects member from stored configuration - + * typically called at startup or when a change on the configuration + * files has been detected. + */ +static void +goa_daemon_reload_configuration (GoaDaemon *self) +{ + GHashTable *group_name_to_key_file_data; + + group_name_to_key_file_data = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) key_file_data_free); + + /* Read the main user config file at $HOME/.config/goa-1.0/accounts.conf */ + add_config_file (self, self->home_conf_file_path, group_name_to_key_file_data); + + if (GOA_TEMPLATE_FILE != NULL && GOA_TEMPLATE_FILE[0] != '\0') + add_config_file (self, GOA_TEMPLATE_FILE, group_name_to_key_file_data); + + process_template_entries (self, group_name_to_key_file_data); + + /* now process the group_name_to_key_file_data hash table */ + process_config_entries (self, group_name_to_key_file_data); + + g_hash_table_unref (group_name_to_key_file_data); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +generate_new_id (GoaDaemon *self) +{ + static guint counter = 0; + GDateTime *dt; + gchar *ret; + + dt = g_date_time_new_now_local (); + ret = g_strdup_printf ("account_%" G_GINT64_FORMAT "_%u", + g_date_time_to_unix (dt), /* seconds since Epoch */ + counter); /* avoids collisions */ + g_date_time_unref (dt); + + counter++; + return ret; +} + +typedef struct +{ + GoaDaemon *daemon; + GoaManager *manager; + GDBusMethodInvocation *invocation; + gchar *provider_type; + gchar *identity; + gchar *presentation_identity; + GVariant *credentials; + GVariant *details; +} AddAccountData; + +static void +get_all_providers_cb (GObject *source, + GAsyncResult *res, + gpointer user_data) +{ + AddAccountData *data = user_data; + GoaProvider *provider = NULL; + GKeyFile *key_file = NULL; + GError *error; + GList *providers = NULL; + GList *l; + gchar *id = NULL; + gchar *group = NULL; + gchar *key_file_data = NULL; + gsize length; + gsize n_credentials; + gchar *object_path = NULL; + GVariantIter iter; + const gchar *key; + const gchar *value; + + /* TODO: could check for @type */ + + if (!goa_provider_get_all_finish (&providers, res, NULL)) + goto out; + + for (l = providers; l != NULL; l = l->next) + { + GoaProvider *p; + const gchar *type; + + p = GOA_PROVIDER (l->data); + type = goa_provider_get_provider_type (p); + if (g_strcmp0 (type, data->provider_type) == 0) + { + provider = p; + break; + } + } + + if (provider == NULL) + { + error= NULL; + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Failed to find a provider for: %s"), + data->provider_type); + g_dbus_method_invocation_take_error (data->invocation, error); + goto out; + } + + key_file = g_key_file_new (); + + error = NULL; + if (!g_file_get_contents (data->daemon->home_conf_file_path, + &key_file_data, + &length, + &error)) + { + if (error->domain == G_FILE_ERROR && error->code == G_FILE_ERROR_NOENT) + { + g_error_free (error); + } + else + { + g_prefix_error (&error, "Error loading file %s: ", data->daemon->home_conf_file_path); + g_dbus_method_invocation_take_error (data->invocation, error); + goto out; + } + } + else + { + if (length > 0) + { + error = NULL; + if (!g_key_file_load_from_data (key_file, key_file_data, length, G_KEY_FILE_KEEP_COMMENTS, &error)) + { + g_prefix_error (&error, "Error parsing key-value-file %s: ", data->daemon->home_conf_file_path); + g_dbus_method_invocation_take_error (data->invocation, error); + goto out; + } + } + } + + if (!g_variant_lookup (data->details, "Id", "s", &id)) + id = generate_new_id (data->daemon); + + group = g_strdup_printf ("Account %s", id); + g_key_file_set_string (key_file, group, "Provider", data->provider_type); + g_key_file_set_string (key_file, group, "Identity", data->identity); + g_key_file_set_string (key_file, group, "PresentationIdentity", data->presentation_identity); + + g_variant_iter_init (&iter, data->details); + while (g_variant_iter_next (&iter, "{&s&s}", &key, &value)) + { + /* We treat IsTemporary special. If it's true we add in + * the current session guid, so it can be ignored after + * the session is over. + */ + if (g_strcmp0 (key, "IsTemporary") == 0) + { + if (g_strcmp0 (value, "true") == 0) + { + const char *guid; + + guid = g_dbus_connection_get_guid (data->daemon->connection); + g_key_file_set_string (key_file, group, "SessionId", guid); + } + } + + /* Skip Id since we already handled it above. */ + if (g_strcmp0 (key, "Id") == 0) + continue; + + g_key_file_set_string (key_file, group, key, value); + } + + error = NULL; + if (!g_key_file_save_to_file (key_file, data->daemon->home_conf_file_path, &error)) + { + g_prefix_error (&error, "Error writing key-value-file %s: ", data->daemon->home_conf_file_path); + g_dbus_method_invocation_take_error (data->invocation, error); + goto out; + } + + n_credentials = g_variant_n_children (data->credentials); + if (n_credentials > 0) + { + /* We don't want to fail AddAccount if we could not store the + * credentials in the keyring. + */ + goa_utils_store_credentials_for_id_sync (provider, + id, + data->credentials, + NULL, /* GCancellable */ + NULL); + } + + goa_daemon_reload_configuration (data->daemon); + + object_path = g_strdup_printf ("/org/gnome/OnlineAccounts/Accounts/%s", id); + goa_manager_complete_add_account (data->manager, data->invocation, object_path); + + out: + g_free (object_path); + g_list_free_full (providers, g_object_unref); + g_free (key_file_data); + g_free (group); + g_free (id); + g_clear_pointer (&key_file, (GDestroyNotify) g_key_file_unref); + g_object_unref (data->daemon); + g_object_unref (data->manager); + g_object_unref (data->invocation); + g_free (data->provider_type); + g_free (data->identity); + g_free (data->presentation_identity); + g_variant_unref (data->credentials); + g_variant_unref (data->details); + g_slice_free (AddAccountData, data); +} + +static gboolean +on_manager_handle_add_account (GoaManager *manager, + GDBusMethodInvocation *invocation, + const gchar *provider_type, + const gchar *identity, + const gchar *presentation_identity, + GVariant *credentials, + GVariant *details, + gpointer user_data) +{ + GoaDaemon *self = GOA_DAEMON (user_data); + AddAccountData *data; + + data = g_slice_new0 (AddAccountData); + data->daemon = g_object_ref (self); + data->manager = g_object_ref (manager); + data->invocation = g_object_ref (invocation); + data->provider_type = g_strdup (provider_type); + data->identity = g_strdup (identity); + data->presentation_identity = g_strdup (presentation_identity); + data->credentials = g_variant_ref (credentials); + data->details = g_variant_ref (details); + + goa_provider_get_all (get_all_providers_cb, data); + + return TRUE; /* invocation was handled */ +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GoaObject *object; + GList *invocations; +} ObjectInvocationData; + +static ObjectInvocationData * +object_invocation_data_new (GoaObject *object, + GDBusMethodInvocation *invocation) +{ + ObjectInvocationData *data; + data = g_slice_new0 (ObjectInvocationData); + data->object = g_object_ref (object); + data->invocations = g_list_prepend (data->invocations, invocation); + return data; +} + +static void +object_invocation_data_unref (ObjectInvocationData *data) +{ + g_list_free (data->invocations); + g_object_unref (data->object); + g_slice_free (ObjectInvocationData, data); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +remove_account_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GTask *task = G_TASK (user_data); + GoaDaemon *self; + GDBusMethodInvocation *invocation; + GError *error; + GoaAccount *account; + GoaProvider *provider = GOA_PROVIDER (source_object); + ObjectInvocationData *data; + + self = GOA_DAEMON (g_task_get_source_object (task)); + data = g_task_get_task_data (task); + + error= NULL; + if (!goa_provider_remove_account_finish (provider, res, &error)) + { + g_warning ("goa_provider_remove_account() failed: %s (%s, %d)", + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + } + + goa_daemon_reload_configuration (self); + + account = goa_object_peek_account (data->object); + invocation = G_DBUS_METHOD_INVOCATION (data->invocations->data); + goa_account_complete_remove (account, invocation); + + g_object_unref (task); +} + +static gboolean +on_account_handle_remove (GoaAccount *account, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaDaemon *self = GOA_DAEMON (user_data); + GoaObject *object; + GoaProvider *provider = NULL; + GKeyFile *key_file = NULL; + GTask *task = NULL; + ObjectInvocationData *data; + const gchar *provider_type = NULL; + gchar *group = NULL; + GError *error; + + if (goa_account_get_is_locked (account)) + { + error = NULL; + g_set_error_literal (&error, + GOA_ERROR, + GOA_ERROR_NOT_SUPPORTED, + _("IsLocked property is set for account")); + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + /* update key-file - right now we only support removing the account + * if the entry is in ~/.config/goa-1.0/accounts.conf + */ + + key_file = g_key_file_new (); + + error = NULL; + if (!g_key_file_load_from_file (key_file, + self->home_conf_file_path, + G_KEY_FILE_KEEP_COMMENTS, + &error)) + { + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + group = g_strdup_printf ("Account %s", goa_account_get_id (account)); + + error = NULL; + if (!g_key_file_remove_group (key_file, group, &error)) + { + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + error = NULL; + if (!g_key_file_save_to_file (key_file, self->home_conf_file_path, &error)) + { + g_prefix_error (&error, "Error writing key-value-file %s: ", self->home_conf_file_path); + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + provider_type = goa_account_get_provider_type (account); + if (provider_type == NULL) + { + error = NULL; + g_set_error_literal (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("ProviderType property is not set for account")); + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + provider = goa_provider_get_for_provider_type (provider_type); + if (provider == NULL) + { + error = NULL; + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Failed to find a provider for: %s"), + provider_type); + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + error = NULL; + if (!goa_utils_delete_credentials_for_account_sync (provider, account, NULL, &error)) + { + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (account))); + data = object_invocation_data_new (object, invocation); + + task = g_task_new (self, NULL, NULL, NULL); + g_task_set_task_data (task, data, (GDestroyNotify) object_invocation_data_unref); + + goa_provider_remove_account (provider, object, NULL, remove_account_cb, g_object_ref (task)); + + out: + g_clear_object (&provider); + g_clear_object (&task); + g_clear_pointer (&key_file, (GDestroyNotify) g_key_file_unref); + g_free (group); + return TRUE; /* invocation was handled */ +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_authorization_error (GError *error) +{ + gboolean ret; + + g_return_val_if_fail (error != NULL, FALSE); + + ret = FALSE; + if (error->domain == REST_PROXY_ERROR || error->domain == SOUP_HTTP_ERROR) + { + if (SOUP_STATUS_IS_CLIENT_ERROR (error->code)) + ret = TRUE; + } + else if (error->domain == GOA_ERROR) + { + if (error->code == GOA_ERROR_NOT_AUTHORIZED) + ret = TRUE; + } + return ret; +} + +static void +ensure_credentials_queue_complete (GList *invocations, GoaAccount *account, gint expires_in, GError *error) +{ + GList *l; + const gchar *id; + const gchar *provider_type; + gint64 timestamp; + + for (l = invocations; l != NULL; l = l->next) + { + GDBusMethodInvocation *invocation = G_DBUS_METHOD_INVOCATION (l->data); + + if (invocation == NULL) + continue; + + if (error == NULL) + goa_account_complete_ensure_credentials (account, invocation, expires_in); + else + g_dbus_method_invocation_return_gerror (invocation, error); + } + + id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + timestamp = g_get_monotonic_time (); + g_debug ("%" G_GINT64_FORMAT ": Handled EnsureCredentials (%s, %s)", timestamp, provider_type, id); +} + +static void +ensure_credentials_queue_collector (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GTask *task = G_TASK (user_data); + GTask *task_queued; + GoaDaemon *self; + GoaAccount *account; + GoaProvider *provider = GOA_PROVIDER (source_object); + GError *error; + ObjectInvocationData *data; + gint expires_in; + + self = GOA_DAEMON (g_task_get_source_object (task)); + + task_queued = G_TASK (g_queue_pop_head (self->ensure_credentials_queue)); + g_assert (task == task_queued); + + data = g_task_get_task_data (task); + account = goa_object_peek_account (data->object); + + error= NULL; + if (!goa_provider_ensure_credentials_finish (provider, &expires_in, res, &error)) + { + /* Set AttentionNeeded only if the error is an authorization error */ + if (is_authorization_error (error)) + { + if (!goa_account_get_attention_needed (account)) + { + goa_account_set_attention_needed (account, TRUE); + g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (account)); + g_message ("%s: Setting AttentionNeeded to TRUE because EnsureCredentials() failed with: %s (%s, %d)", + g_dbus_object_get_object_path (G_DBUS_OBJECT (data->object)), + error->message, g_quark_to_string (error->domain), error->code); + } + } + + ensure_credentials_queue_complete (data->invocations, account, 0, error); + g_error_free (error); + } + else + { + /* Clear AttentionNeeded flag if set */ + if (goa_account_get_attention_needed (account)) + { + goa_account_set_attention_needed (account, FALSE); + g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (account)); + g_message ("%s: Setting AttentionNeeded to FALSE because EnsureCredentials() succeded\n", + g_dbus_object_get_object_path (G_DBUS_OBJECT (data->object))); + } + + ensure_credentials_queue_complete (data->invocations, account, expires_in, NULL); + } + + self->ensure_credentials_running = FALSE; + ensure_credentials_queue_check (self); + g_object_unref (task); +} + +static gint +ensure_credentials_queue_sort (gconstpointer a, gconstpointer b, gpointer user_data) +{ + GTask *task_a = G_TASK (a); + GTask *task_b = G_TASK (b); + gint priority_a; + gint priority_b; + + priority_a = g_task_get_priority (task_a); + priority_b = g_task_get_priority (task_b); + + return priority_a - priority_b; +} + +static void +ensure_credentials_queue_check (GoaDaemon *self) +{ + GoaAccount *account; + GoaProvider *provider = NULL; + GTask *task; + ObjectInvocationData *data; + const gchar *id; + const gchar *provider_type; + gint64 timestamp; + + if (self->ensure_credentials_running) + goto out; + + if (self->ensure_credentials_queue->length == 0) + goto out; + + g_queue_sort (self->ensure_credentials_queue, ensure_credentials_queue_sort, NULL); + + task = G_TASK (g_queue_peek_head (self->ensure_credentials_queue)); + self->ensure_credentials_running = TRUE; + + data = (ObjectInvocationData *) g_task_get_task_data (task); + account = goa_object_peek_account (data->object); + + id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + timestamp = g_get_monotonic_time (); + g_debug ("%" G_GINT64_FORMAT ": Handling EnsureCredentials (%s, %s)", timestamp, provider_type, id); + + provider = goa_provider_get_for_provider_type (provider_type); + g_assert_nonnull (provider); + + goa_provider_ensure_credentials (provider, + data->object, + NULL, /* GCancellable */ + ensure_credentials_queue_collector, + task); + + out: + g_clear_object (&provider); +} + +static gboolean +ensure_credentials_queue_coalesce (GoaDaemon *self, GoaObject *object, GDBusMethodInvocation *invocation) +{ + GList *l; + GoaAccount *account; + const gchar *id; + gboolean ret = FALSE; + gint priority; + + account = goa_object_peek_account (object); + id = goa_account_get_id (account); + + priority = (invocation == NULL) ? G_PRIORITY_LOW : G_PRIORITY_HIGH; + + for (l = self->ensure_credentials_queue->head; l != NULL; l = l->next) + { + GoaAccount *account_queued; + GTask *task = G_TASK (l->data); + ObjectInvocationData *data; + const gchar *id_queued; + + data = g_task_get_task_data (task); + account_queued = goa_object_peek_account (data->object); + id_queued = goa_account_get_id (account_queued); + if (g_strcmp0 (id, id_queued) == 0) + { + gint priority_queued; + + priority_queued = g_task_get_priority (task); + if (priority < priority_queued) + g_task_set_priority (task, priority); + + data->invocations = g_list_prepend (data->invocations, invocation); + + ret = TRUE; + break; + } + } + + return ret; +} + +static gboolean +on_account_handle_ensure_credentials (GoaAccount *account, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaDaemon *self = GOA_DAEMON (user_data); + GoaObject *object; + GoaProvider *provider = NULL; + GTask *task = NULL; + ObjectInvocationData *data; + const gchar *id; + const gchar *method_name; + const gchar *provider_type; + gint64 timestamp; + + id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + method_name = g_dbus_method_invocation_get_method_name (invocation); + timestamp = g_get_monotonic_time (); + g_debug ("%" G_GINT64_FORMAT ": Received %s (%s, %s)", timestamp, method_name, provider_type, id); + + provider = goa_provider_get_for_provider_type (provider_type); + if (provider == NULL) + { + g_dbus_method_invocation_return_error (invocation, + GOA_ERROR, + GOA_ERROR_FAILED, + "Unsupported account type %s for id %s (no provider)", + provider_type, + id); + goto out; + } + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (account))); + if (ensure_credentials_queue_coalesce (self, object, invocation)) + { + timestamp = g_get_monotonic_time (); + g_debug ("%" G_GINT64_FORMAT ": Coalesced %s (%s, %s)", + timestamp, + method_name, + provider_type, + id); + goto out; + } + + data = object_invocation_data_new (object, invocation); + + task = g_task_new (self, NULL, NULL, NULL); + g_task_set_priority (task, G_PRIORITY_HIGH); + g_task_set_task_data (task, data, (GDestroyNotify) object_invocation_data_unref); + g_queue_push_tail (self->ensure_credentials_queue, g_object_ref (task)); + + ensure_credentials_queue_check (self); + + out: + g_clear_object (&provider); + g_clear_object (&task); + return TRUE; /* invocation was handled */ +} + +/* + * goa_daemon_check_credentials: + * @self: A #GoaDaemon + * + * Checks whether credentials are valid and tries to refresh them if + * not. It also reports whether accounts are usable with the current + * network. + */ +static void +goa_daemon_check_credentials (GoaDaemon *self) +{ + GList *l; + GList *objects; + + objects = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (self->object_manager)); + for (l = objects; l != NULL; l = l->next) + { + GoaAccount *account; + GoaObject *object = GOA_OBJECT (l->data); + GoaProvider *provider = NULL; + GTask *task = NULL; + ObjectInvocationData *data; + const gchar *id; + const gchar *provider_type; + gint64 timestamp; + + account = goa_object_peek_account (object); + if (account == NULL) + goto cleanup_and_continue; + + provider_type = goa_account_get_provider_type (account); + provider = goa_provider_get_for_provider_type (provider_type); + if (provider == NULL) + goto cleanup_and_continue; + + id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + timestamp = g_get_monotonic_time (); + g_debug ("%" G_GINT64_FORMAT ": Calling EnsureCredentials (%s, %s)", + timestamp, + provider_type, + id); + + if (ensure_credentials_queue_coalesce (self, object, NULL)) + { + timestamp = g_get_monotonic_time (); + g_debug ("%" G_GINT64_FORMAT ": Coalesced EnsureCredentials (%s, %s)", + timestamp, + provider_type, + id); + goto cleanup_and_continue; + } + + data = object_invocation_data_new (object, NULL); + + task = g_task_new (self, NULL, NULL, NULL); + g_task_set_priority (task, G_PRIORITY_LOW); + g_task_set_task_data (task, data, (GDestroyNotify) object_invocation_data_unref); + g_queue_push_tail (self->ensure_credentials_queue, g_object_ref (task)); + + cleanup_and_continue: + g_clear_object (&provider); + g_clear_object (&task); + } + + ensure_credentials_queue_check (self); + g_list_free_full (objects, g_object_unref); +} diff --git a/src/daemon/goadaemon.h b/src/daemon/goadaemon.h new file mode 100644 index 0000000..2396f41 --- /dev/null +++ b/src/daemon/goadaemon.h @@ -0,0 +1,33 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_DAEMON_H__ +#define __GOA_DAEMON_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_DAEMON (goa_daemon_get_type ()) +G_DECLARE_FINAL_TYPE (GoaDaemon, goa_daemon, GOA, DAEMON, GObject); + +GoaDaemon *goa_daemon_new (GDBusConnection *connection); + +G_END_DECLS + +#endif /* __GOA_DAEMON_H__ */ diff --git a/src/daemon/main.c b/src/daemon/main.c new file mode 100644 index 0000000..9f9ac8f --- /dev/null +++ b/src/daemon/main.c @@ -0,0 +1,145 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include +#include +#include +#include + +#include "goadaemon.h" + +/* ---------------------------------------------------------------------------------------------------- */ + +static GMainLoop *loop = NULL; +static gboolean opt_replace = FALSE; +static gboolean opt_no_sigint = FALSE; +static GOptionEntry opt_entries[] = +{ + {"replace", 0, 0, G_OPTION_ARG_NONE, &opt_replace, "Replace existing daemon", NULL}, + {"no-sigint", 0, 0, G_OPTION_ARG_NONE, &opt_no_sigint, "Do not handle SIGINT for controlled shutdown", NULL}, + {NULL } +}; +static GoaDaemon *the_daemon = NULL; + +static void +on_bus_acquired (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + g_return_if_fail (G_IS_DBUS_CONNECTION (connection)); + g_return_if_fail (name != NULL && name[0] != '\0'); + + the_daemon = goa_daemon_new (connection); + g_debug ("Connected to the session bus"); +} + +static void +on_name_lost (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + g_return_if_fail (connection == NULL || G_IS_DBUS_CONNECTION (connection)); + g_return_if_fail (name != NULL && name[0] != '\0'); + + g_info ("Lost (or failed to acquire) the name %s on the session message bus", name); + g_main_loop_quit (loop); +} + +static void +on_name_acquired (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + g_return_if_fail (G_IS_DBUS_CONNECTION (connection)); + g_return_if_fail (name != NULL && name[0] != '\0'); + + g_debug ("Acquired the name %s on the session message bus", name); +} + +static gboolean +on_sigint (gpointer user_data) +{ + g_info ("Caught SIGINT. Initiating shutdown."); + g_main_loop_quit (loop); + return FALSE; +} + +int +main (int argc, + char **argv) +{ + GError *error; + GOptionContext *opt_context = NULL; + gint ret = 1; + guint name_owner_id = 0; + + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + + opt_context = g_option_context_new ("GNOME Online Accounts daemon"); + g_option_context_add_main_entries (opt_context, opt_entries, NULL); + error = NULL; + if (!g_option_context_parse (opt_context, &argc, &argv, &error)) + { + g_critical ("Error parsing options: %s", error->message); + g_error_free (error); + goto out; + } + + g_message ("goa-daemon version %s starting", PACKAGE_VERSION); + + loop = g_main_loop_new (NULL, FALSE); + + if (!opt_no_sigint) + { + g_unix_signal_add (SIGINT, on_sigint, NULL); + } + + name_owner_id = g_bus_own_name (G_BUS_TYPE_SESSION, + "org.gnome.OnlineAccounts", + G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT | + (opt_replace ? G_BUS_NAME_OWNER_FLAGS_REPLACE : 0), + on_bus_acquired, + on_name_acquired, + on_name_lost, + NULL, + NULL); + + g_debug ("Entering main event loop"); + + g_main_loop_run (loop); + + ret = 0; + + out: + g_clear_object (&the_daemon); + if (name_owner_id != 0) + g_bus_unown_name (name_owner_id); + g_clear_pointer (&loop, (GDestroyNotify) g_main_loop_unref); + g_clear_pointer (&opt_context, (GDestroyNotify) g_option_context_free); + + g_message ("goa-daemon version %s exiting", PACKAGE_VERSION); + + return ret; +} diff --git a/src/examples/Makefile.am b/src/examples/Makefile.am new file mode 100644 index 0000000..2daa07c --- /dev/null +++ b/src/examples/Makefile.am @@ -0,0 +1,52 @@ + +NULL = + +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + $(WARN_CFLAGS) \ + $(NULL) + +noinst_PROGRAMS = list-accounts lastfm-shout + +list_accounts_SOURCES = list-accounts.c +list_accounts_CFLAGS = $(GLIB_CFLAGS) +list_accounts_LDADD = $(GLIB_LIBS) ../goa/libgoa-1.0.la +list_accounts_LDFLAGS = $(WARN_LDFLAGS) + +lastfm_shout_SOURCES = lastfm-shout.c +lastfm_shout_CFLAGS = $(GLIB_CFLAGS) $(REST_CFLAGS) +lastfm_shout_LDADD = $(GLIB_LIBS) $(REST_LIBS) ../goa/libgoa-1.0.la +lastfm_shout_LDFLAGS = $(WARN_LDFLAGS) + +if BUILD_BACKEND +noinst_PROGRAMS += introspect-providers list-providers add-pocket + +introspect_providers_SOURCES = introspect-providers.c +introspect_providers_CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) +introspect_providers_LDADD = $(GLIB_LIBS) $(GTK_LIBS) ../goabackend/libgoa-backend-1.0.la ../goa/libgoa-1.0.la +introspect_providers_LDFLAGS = $(WARN_LDFLAGS) + +list_providers_SOURCES = list-providers.c +list_providers_CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) +list_providers_LDADD = $(GLIB_LIBS) $(GTK_LIBS) ../goabackend/libgoa-backend-1.0.la ../goa/libgoa-1.0.la +list_providers_LDFLAGS = $(WARN_LDFLAGS) + +add_pocket_SOURCES = add-pocket.c +add_pocket_CFLAGS = $(GLIB_CFLAGS) $(REST_CFLAGS) +add_pocket_LDADD = $(GLIB_LIBS) $(REST_LIBS) ../goa/libgoa-1.0.la +add_pocket_LDFLAGS = $(WARN_LDFLAGS) +endif + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/src/examples/Makefile.in b/src/examples/Makefile.in new file mode 100644 index 0000000..ef27b27 --- /dev/null +++ b/src/examples/Makefile.in @@ -0,0 +1,863 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +noinst_PROGRAMS = list-accounts$(EXEEXT) lastfm-shout$(EXEEXT) \ + $(am__EXEEXT_1) +@BUILD_BACKEND_TRUE@am__append_1 = introspect-providers list-providers add-pocket +subdir = src/examples +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +@BUILD_BACKEND_TRUE@am__EXEEXT_1 = introspect-providers$(EXEEXT) \ +@BUILD_BACKEND_TRUE@ list-providers$(EXEEXT) \ +@BUILD_BACKEND_TRUE@ add-pocket$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) +am__add_pocket_SOURCES_DIST = add-pocket.c +@BUILD_BACKEND_TRUE@am_add_pocket_OBJECTS = \ +@BUILD_BACKEND_TRUE@ add_pocket-add-pocket.$(OBJEXT) +add_pocket_OBJECTS = $(am_add_pocket_OBJECTS) +am__DEPENDENCIES_1 = +@BUILD_BACKEND_TRUE@add_pocket_DEPENDENCIES = $(am__DEPENDENCIES_1) \ +@BUILD_BACKEND_TRUE@ $(am__DEPENDENCIES_1) ../goa/libgoa-1.0.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +add_pocket_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(add_pocket_CFLAGS) \ + $(CFLAGS) $(add_pocket_LDFLAGS) $(LDFLAGS) -o $@ +am__introspect_providers_SOURCES_DIST = introspect-providers.c +@BUILD_BACKEND_TRUE@am_introspect_providers_OBJECTS = introspect_providers-introspect-providers.$(OBJEXT) +introspect_providers_OBJECTS = $(am_introspect_providers_OBJECTS) +@BUILD_BACKEND_TRUE@introspect_providers_DEPENDENCIES = \ +@BUILD_BACKEND_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_BACKEND_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_BACKEND_TRUE@ ../goabackend/libgoa-backend-1.0.la \ +@BUILD_BACKEND_TRUE@ ../goa/libgoa-1.0.la +introspect_providers_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(introspect_providers_CFLAGS) $(CFLAGS) \ + $(introspect_providers_LDFLAGS) $(LDFLAGS) -o $@ +am_lastfm_shout_OBJECTS = lastfm_shout-lastfm-shout.$(OBJEXT) +lastfm_shout_OBJECTS = $(am_lastfm_shout_OBJECTS) +lastfm_shout_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) ../goa/libgoa-1.0.la +lastfm_shout_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(lastfm_shout_CFLAGS) \ + $(CFLAGS) $(lastfm_shout_LDFLAGS) $(LDFLAGS) -o $@ +am_list_accounts_OBJECTS = list_accounts-list-accounts.$(OBJEXT) +list_accounts_OBJECTS = $(am_list_accounts_OBJECTS) +list_accounts_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + ../goa/libgoa-1.0.la +list_accounts_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(list_accounts_CFLAGS) \ + $(CFLAGS) $(list_accounts_LDFLAGS) $(LDFLAGS) -o $@ +am__list_providers_SOURCES_DIST = list-providers.c +@BUILD_BACKEND_TRUE@am_list_providers_OBJECTS = \ +@BUILD_BACKEND_TRUE@ list_providers-list-providers.$(OBJEXT) +list_providers_OBJECTS = $(am_list_providers_OBJECTS) +@BUILD_BACKEND_TRUE@list_providers_DEPENDENCIES = \ +@BUILD_BACKEND_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_BACKEND_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_BACKEND_TRUE@ ../goabackend/libgoa-backend-1.0.la \ +@BUILD_BACKEND_TRUE@ ../goa/libgoa-1.0.la +list_providers_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(list_providers_CFLAGS) $(CFLAGS) $(list_providers_LDFLAGS) \ + $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(add_pocket_SOURCES) $(introspect_providers_SOURCES) \ + $(lastfm_shout_SOURCES) $(list_accounts_SOURCES) \ + $(list_providers_SOURCES) +DIST_SOURCES = $(am__add_pocket_SOURCES_DIST) \ + $(am__introspect_providers_SOURCES_DIST) \ + $(lastfm_shout_SOURCES) $(list_accounts_SOURCES) \ + $(am__list_providers_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + $(WARN_CFLAGS) \ + $(NULL) + +list_accounts_SOURCES = list-accounts.c +list_accounts_CFLAGS = $(GLIB_CFLAGS) +list_accounts_LDADD = $(GLIB_LIBS) ../goa/libgoa-1.0.la +list_accounts_LDFLAGS = $(WARN_LDFLAGS) +lastfm_shout_SOURCES = lastfm-shout.c +lastfm_shout_CFLAGS = $(GLIB_CFLAGS) $(REST_CFLAGS) +lastfm_shout_LDADD = $(GLIB_LIBS) $(REST_LIBS) ../goa/libgoa-1.0.la +lastfm_shout_LDFLAGS = $(WARN_LDFLAGS) +@BUILD_BACKEND_TRUE@introspect_providers_SOURCES = introspect-providers.c +@BUILD_BACKEND_TRUE@introspect_providers_CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) +@BUILD_BACKEND_TRUE@introspect_providers_LDADD = $(GLIB_LIBS) $(GTK_LIBS) ../goabackend/libgoa-backend-1.0.la ../goa/libgoa-1.0.la +@BUILD_BACKEND_TRUE@introspect_providers_LDFLAGS = $(WARN_LDFLAGS) +@BUILD_BACKEND_TRUE@list_providers_SOURCES = list-providers.c +@BUILD_BACKEND_TRUE@list_providers_CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) +@BUILD_BACKEND_TRUE@list_providers_LDADD = $(GLIB_LIBS) $(GTK_LIBS) ../goabackend/libgoa-backend-1.0.la ../goa/libgoa-1.0.la +@BUILD_BACKEND_TRUE@list_providers_LDFLAGS = $(WARN_LDFLAGS) +@BUILD_BACKEND_TRUE@add_pocket_SOURCES = add-pocket.c +@BUILD_BACKEND_TRUE@add_pocket_CFLAGS = $(GLIB_CFLAGS) $(REST_CFLAGS) +@BUILD_BACKEND_TRUE@add_pocket_LDADD = $(GLIB_LIBS) $(REST_LIBS) ../goa/libgoa-1.0.la +@BUILD_BACKEND_TRUE@add_pocket_LDFLAGS = $(WARN_LDFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/examples/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +add-pocket$(EXEEXT): $(add_pocket_OBJECTS) $(add_pocket_DEPENDENCIES) $(EXTRA_add_pocket_DEPENDENCIES) + @rm -f add-pocket$(EXEEXT) + $(AM_V_CCLD)$(add_pocket_LINK) $(add_pocket_OBJECTS) $(add_pocket_LDADD) $(LIBS) + +introspect-providers$(EXEEXT): $(introspect_providers_OBJECTS) $(introspect_providers_DEPENDENCIES) $(EXTRA_introspect_providers_DEPENDENCIES) + @rm -f introspect-providers$(EXEEXT) + $(AM_V_CCLD)$(introspect_providers_LINK) $(introspect_providers_OBJECTS) $(introspect_providers_LDADD) $(LIBS) + +lastfm-shout$(EXEEXT): $(lastfm_shout_OBJECTS) $(lastfm_shout_DEPENDENCIES) $(EXTRA_lastfm_shout_DEPENDENCIES) + @rm -f lastfm-shout$(EXEEXT) + $(AM_V_CCLD)$(lastfm_shout_LINK) $(lastfm_shout_OBJECTS) $(lastfm_shout_LDADD) $(LIBS) + +list-accounts$(EXEEXT): $(list_accounts_OBJECTS) $(list_accounts_DEPENDENCIES) $(EXTRA_list_accounts_DEPENDENCIES) + @rm -f list-accounts$(EXEEXT) + $(AM_V_CCLD)$(list_accounts_LINK) $(list_accounts_OBJECTS) $(list_accounts_LDADD) $(LIBS) + +list-providers$(EXEEXT): $(list_providers_OBJECTS) $(list_providers_DEPENDENCIES) $(EXTRA_list_providers_DEPENDENCIES) + @rm -f list-providers$(EXEEXT) + $(AM_V_CCLD)$(list_providers_LINK) $(list_providers_OBJECTS) $(list_providers_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_pocket-add-pocket.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/introspect_providers-introspect-providers.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lastfm_shout-lastfm-shout.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_accounts-list-accounts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_providers-list-providers.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +add_pocket-add-pocket.o: add-pocket.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(add_pocket_CFLAGS) $(CFLAGS) -MT add_pocket-add-pocket.o -MD -MP -MF $(DEPDIR)/add_pocket-add-pocket.Tpo -c -o add_pocket-add-pocket.o `test -f 'add-pocket.c' || echo '$(srcdir)/'`add-pocket.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/add_pocket-add-pocket.Tpo $(DEPDIR)/add_pocket-add-pocket.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='add-pocket.c' object='add_pocket-add-pocket.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(add_pocket_CFLAGS) $(CFLAGS) -c -o add_pocket-add-pocket.o `test -f 'add-pocket.c' || echo '$(srcdir)/'`add-pocket.c + +add_pocket-add-pocket.obj: add-pocket.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(add_pocket_CFLAGS) $(CFLAGS) -MT add_pocket-add-pocket.obj -MD -MP -MF $(DEPDIR)/add_pocket-add-pocket.Tpo -c -o add_pocket-add-pocket.obj `if test -f 'add-pocket.c'; then $(CYGPATH_W) 'add-pocket.c'; else $(CYGPATH_W) '$(srcdir)/add-pocket.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/add_pocket-add-pocket.Tpo $(DEPDIR)/add_pocket-add-pocket.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='add-pocket.c' object='add_pocket-add-pocket.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(add_pocket_CFLAGS) $(CFLAGS) -c -o add_pocket-add-pocket.obj `if test -f 'add-pocket.c'; then $(CYGPATH_W) 'add-pocket.c'; else $(CYGPATH_W) '$(srcdir)/add-pocket.c'; fi` + +introspect_providers-introspect-providers.o: introspect-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(introspect_providers_CFLAGS) $(CFLAGS) -MT introspect_providers-introspect-providers.o -MD -MP -MF $(DEPDIR)/introspect_providers-introspect-providers.Tpo -c -o introspect_providers-introspect-providers.o `test -f 'introspect-providers.c' || echo '$(srcdir)/'`introspect-providers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/introspect_providers-introspect-providers.Tpo $(DEPDIR)/introspect_providers-introspect-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspect-providers.c' object='introspect_providers-introspect-providers.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(introspect_providers_CFLAGS) $(CFLAGS) -c -o introspect_providers-introspect-providers.o `test -f 'introspect-providers.c' || echo '$(srcdir)/'`introspect-providers.c + +introspect_providers-introspect-providers.obj: introspect-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(introspect_providers_CFLAGS) $(CFLAGS) -MT introspect_providers-introspect-providers.obj -MD -MP -MF $(DEPDIR)/introspect_providers-introspect-providers.Tpo -c -o introspect_providers-introspect-providers.obj `if test -f 'introspect-providers.c'; then $(CYGPATH_W) 'introspect-providers.c'; else $(CYGPATH_W) '$(srcdir)/introspect-providers.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/introspect_providers-introspect-providers.Tpo $(DEPDIR)/introspect_providers-introspect-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='introspect-providers.c' object='introspect_providers-introspect-providers.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(introspect_providers_CFLAGS) $(CFLAGS) -c -o introspect_providers-introspect-providers.obj `if test -f 'introspect-providers.c'; then $(CYGPATH_W) 'introspect-providers.c'; else $(CYGPATH_W) '$(srcdir)/introspect-providers.c'; fi` + +lastfm_shout-lastfm-shout.o: lastfm-shout.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lastfm_shout_CFLAGS) $(CFLAGS) -MT lastfm_shout-lastfm-shout.o -MD -MP -MF $(DEPDIR)/lastfm_shout-lastfm-shout.Tpo -c -o lastfm_shout-lastfm-shout.o `test -f 'lastfm-shout.c' || echo '$(srcdir)/'`lastfm-shout.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lastfm_shout-lastfm-shout.Tpo $(DEPDIR)/lastfm_shout-lastfm-shout.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lastfm-shout.c' object='lastfm_shout-lastfm-shout.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lastfm_shout_CFLAGS) $(CFLAGS) -c -o lastfm_shout-lastfm-shout.o `test -f 'lastfm-shout.c' || echo '$(srcdir)/'`lastfm-shout.c + +lastfm_shout-lastfm-shout.obj: lastfm-shout.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lastfm_shout_CFLAGS) $(CFLAGS) -MT lastfm_shout-lastfm-shout.obj -MD -MP -MF $(DEPDIR)/lastfm_shout-lastfm-shout.Tpo -c -o lastfm_shout-lastfm-shout.obj `if test -f 'lastfm-shout.c'; then $(CYGPATH_W) 'lastfm-shout.c'; else $(CYGPATH_W) '$(srcdir)/lastfm-shout.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lastfm_shout-lastfm-shout.Tpo $(DEPDIR)/lastfm_shout-lastfm-shout.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lastfm-shout.c' object='lastfm_shout-lastfm-shout.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lastfm_shout_CFLAGS) $(CFLAGS) -c -o lastfm_shout-lastfm-shout.obj `if test -f 'lastfm-shout.c'; then $(CYGPATH_W) 'lastfm-shout.c'; else $(CYGPATH_W) '$(srcdir)/lastfm-shout.c'; fi` + +list_accounts-list-accounts.o: list-accounts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_accounts_CFLAGS) $(CFLAGS) -MT list_accounts-list-accounts.o -MD -MP -MF $(DEPDIR)/list_accounts-list-accounts.Tpo -c -o list_accounts-list-accounts.o `test -f 'list-accounts.c' || echo '$(srcdir)/'`list-accounts.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/list_accounts-list-accounts.Tpo $(DEPDIR)/list_accounts-list-accounts.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list-accounts.c' object='list_accounts-list-accounts.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_accounts_CFLAGS) $(CFLAGS) -c -o list_accounts-list-accounts.o `test -f 'list-accounts.c' || echo '$(srcdir)/'`list-accounts.c + +list_accounts-list-accounts.obj: list-accounts.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_accounts_CFLAGS) $(CFLAGS) -MT list_accounts-list-accounts.obj -MD -MP -MF $(DEPDIR)/list_accounts-list-accounts.Tpo -c -o list_accounts-list-accounts.obj `if test -f 'list-accounts.c'; then $(CYGPATH_W) 'list-accounts.c'; else $(CYGPATH_W) '$(srcdir)/list-accounts.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/list_accounts-list-accounts.Tpo $(DEPDIR)/list_accounts-list-accounts.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list-accounts.c' object='list_accounts-list-accounts.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_accounts_CFLAGS) $(CFLAGS) -c -o list_accounts-list-accounts.obj `if test -f 'list-accounts.c'; then $(CYGPATH_W) 'list-accounts.c'; else $(CYGPATH_W) '$(srcdir)/list-accounts.c'; fi` + +list_providers-list-providers.o: list-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_providers_CFLAGS) $(CFLAGS) -MT list_providers-list-providers.o -MD -MP -MF $(DEPDIR)/list_providers-list-providers.Tpo -c -o list_providers-list-providers.o `test -f 'list-providers.c' || echo '$(srcdir)/'`list-providers.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/list_providers-list-providers.Tpo $(DEPDIR)/list_providers-list-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list-providers.c' object='list_providers-list-providers.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_providers_CFLAGS) $(CFLAGS) -c -o list_providers-list-providers.o `test -f 'list-providers.c' || echo '$(srcdir)/'`list-providers.c + +list_providers-list-providers.obj: list-providers.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_providers_CFLAGS) $(CFLAGS) -MT list_providers-list-providers.obj -MD -MP -MF $(DEPDIR)/list_providers-list-providers.Tpo -c -o list_providers-list-providers.obj `if test -f 'list-providers.c'; then $(CYGPATH_W) 'list-providers.c'; else $(CYGPATH_W) '$(srcdir)/list-providers.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/list_providers-list-providers.Tpo $(DEPDIR)/list_providers-list-providers.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list-providers.c' object='list_providers-list-providers.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(list_providers_CFLAGS) $(CFLAGS) -c -o list_providers-list-providers.obj `if test -f 'list-providers.c'; then $(CYGPATH_W) 'list-providers.c'; else $(CYGPATH_W) '$(srcdir)/list-providers.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-local clean-noinstPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/examples/add-pocket.c b/src/examples/add-pocket.c new file mode 100644 index 0000000..8c19c8d --- /dev/null +++ b/src/examples/add-pocket.c @@ -0,0 +1,103 @@ +/* + * Copyright © 2013 Bastien Nocera + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include + +#define GOA_API_IS_SUBJECT_TO_CHANGE +#include + +#include +#include +#include + +int +main (int argc, char **argv) +{ + GError *error = NULL; + GoaClient *client; + GList *accounts, *l; + GoaAccount *account = NULL; + GoaOAuth2Based *oauth2 = NULL; + char *access_token = NULL; + RestProxy *proxy; + RestProxyCall *call; + const char *url; + const char *tweet_id = NULL; + + setlocale (LC_ALL, ""); + + if (argc != 2 && argc != 3) { + g_print ("Usage: %s URL [TWEET ID]\n", argv[0]); + return 1; + } + url = argv[1]; + if (argv[2] != NULL) + tweet_id = argv[2]; + + client = goa_client_new_sync (NULL, &error); + if (!client) { + g_error ("Could not create GoaClient: %s", error->message); + return 1; + } + + accounts = goa_client_get_accounts (client); + + /* Find a Pocket account */ + for (l = accounts; l != NULL; l = l->next) { + GoaObject *object = GOA_OBJECT (l->data); + + account = goa_object_peek_account (object); + if (g_strcmp0 (goa_account_get_provider_type (account), "pocket") == 0) { + g_object_ref (account); + oauth2 = goa_object_get_oauth2_based (object); + break; + } + } + + g_list_free_full (accounts, (GDestroyNotify) g_object_unref); + + g_assert (account); + g_assert (oauth2); + + if (!goa_oauth2_based_call_get_access_token_sync (oauth2, &access_token, NULL, NULL, &error)) { + g_error ("Could not get access token: %s", error->message); + return 1; + } + + g_print ("Got access tokens\n"); + + proxy = rest_proxy_new ("https://getpocket.com/", FALSE); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_set_function (call, "v3/add"); + rest_proxy_call_add_param (call, "consumer_key", goa_oauth2_based_get_client_id (oauth2)); + rest_proxy_call_add_param (call, "access_token", access_token); + rest_proxy_call_add_param (call, "url", url); + if (tweet_id) + rest_proxy_call_add_param (call, "tweet_id", tweet_id); + + g_print ("Adding to Pocket...\n"); + + if (!rest_proxy_call_sync (call, &error)) { + g_error ("Cannot add to Pocket: %s", error->message); + return 1; + } + + g_print ("Added!\n"); + + return 0; +} diff --git a/src/examples/introspect-providers.c b/src/examples/introspect-providers.c new file mode 100644 index 0000000..56628a5 --- /dev/null +++ b/src/examples/introspect-providers.c @@ -0,0 +1,183 @@ +/* + * Copyright © 2016 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include + +#include + +#define GOA_API_IS_SUBJECT_TO_CHANGE +#define GOA_BACKEND_API_IS_SUBJECT_TO_CHANGE +#include + +static struct +{ + GoaProviderFeatures feature; + const gchar *key; +} provider_features_info[] = { + { + .feature = GOA_PROVIDER_FEATURE_MAIL, + .key = "MailEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_CALENDAR, + .key = "CalendarEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_CONTACTS, + .key = "ContactsEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_CHAT, + .key = "ChatEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_DOCUMENTS, + .key = "DocumentsEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_MUSIC, + .key = "MusicEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_PHOTOS, + .key = "PhotosEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_FILES, + .key = "FilesEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_TICKETING, + .key = "TicketingEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_TODO, + .key = "TodoEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_READ_LATER, + .key = "ReadLaterEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_PRINTERS, + .key = "PrintersEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_MAPS, + .key = "MapsEnabled" + }, + { + .feature = GOA_PROVIDER_FEATURE_INVALID, + .key = NULL + } +}; + +static void +get_all (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GError *error; + GList *providers = NULL; + GList *l; + GMainLoop *loop = (GMainLoop *) user_data; + GKeyFile *key_file = NULL; + gchar *key_file_data = NULL; + + error = NULL; + if (!goa_provider_get_all_finish (&providers, res, &error)) + { + g_warning ("Unable to get list of providers: %s", error->message); + g_error_free (error); + goto out; + } + + key_file = g_key_file_new (); + + for (l = providers; l != NULL; l=l->next) + { + GoaProvider *provider = GOA_PROVIDER (l->data); + GoaProviderFeatures features; + const gchar *type; + gchar *group; + gchar *name; + guint i; + + features = goa_provider_get_provider_features (provider); + if (features == GOA_PROVIDER_FEATURE_INVALID) + continue; + + type = goa_provider_get_provider_type (provider); + group = g_strconcat ("Provider ", type, NULL); + + name = goa_provider_get_provider_name (provider, NULL); + g_key_file_set_string (key_file, group, "ProviderName", name); + + for (i = 0; provider_features_info[i].key != NULL; i++) + { + if ((features & provider_features_info[i].feature) != 0) + { + const gchar *key = provider_features_info[i].key; + + /* The IMAP/SMTP provider uses Enabled instead of + * MailEnabled. We should probably fix it for consistency. + */ + if (g_strcmp0 (type, "imap_smtp") == 0 && g_strcmp0 (key, "MailEnabled") == 0) + key = "Enabled"; + + g_key_file_set_boolean (key_file, group, key, TRUE); + } + } + + g_free (group); + g_free (name); + } + + error = NULL; + key_file_data = g_key_file_to_data (key_file, NULL, &error); + if (error != NULL) + { + g_warning ("Unable to serialize key file: %s", error->message); + g_error_free (error); + goto out; + } + + g_print ("%s", key_file_data); + + out: + g_clear_pointer (&key_file, (GDestroyNotify) g_key_file_unref); + g_free (key_file_data); + g_list_free_full (providers, g_object_unref); + g_main_loop_quit (loop); +} + +gint +main (void) +{ + GMainLoop *loop; + + setlocale (LC_ALL, ""); + + /* Workaround https://bugzilla.gnome.org/show_bug.cgi?id=674885. */ + g_type_ensure (G_TYPE_DBUS_CONNECTION); + + loop = g_main_loop_new (NULL, FALSE); + + goa_provider_get_all (get_all, loop); + g_main_loop_run (loop); + + g_main_loop_unref (loop); + return 0; +} diff --git a/src/examples/lastfm-shout.c b/src/examples/lastfm-shout.c new file mode 100644 index 0000000..9292304 --- /dev/null +++ b/src/examples/lastfm-shout.c @@ -0,0 +1,112 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2015 Felipe Borges + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include + +#define GOA_API_IS_SUBJECT_TO_CHANGE +#include + +#include +#include +#include + +int +main (int argc, char **argv) +{ + GError *error = NULL; + GoaClient *client; + GList *accounts, *l; + GoaAccount *account; + GoaOAuth2Based *oauth2 = NULL; + char *access_token = NULL; + RestProxy *proxy; + RestProxyCall *call; + gchar *sig, *api_signature; + const char *user; + const char *message = NULL; + + setlocale (LC_ALL, ""); + + if (argc != 2 && argc != 3) { + g_print ("Usage: %s USER [MESSAGE]\n", argv[0]); + return 1; + } + user = argv[1]; + message = argv[2]; + + client = goa_client_new_sync (NULL, &error); + if (!client) { + g_error ("Could not create GoaClient: %s", error->message); + return 1; + } + + accounts = goa_client_get_accounts (client); + for (l = accounts; l != NULL; l = l->next) { + account = goa_object_get_account (GOA_OBJECT (l->data)); + if (g_strcmp0(goa_account_get_provider_name (account), "Last.fm") == 0) { + g_object_ref (account); + oauth2 = goa_object_get_oauth2_based (GOA_OBJECT (l->data)); + break; + } + } + + g_list_free_full (accounts, (GDestroyNotify) g_object_unref); + + g_assert (account); + g_assert (oauth2); + + if (!goa_oauth2_based_call_get_access_token_sync (oauth2, &access_token, NULL, NULL, &error)) { + g_error ("Could not get access token %s\n", error->message); + return 1; + } + + g_print ("Got access token\n"); + + sig = g_strdup_printf ("api_key%s" + "message%s" + "methoduser.shout" + "sk%s" + "user%s%s", + goa_oauth2_based_get_client_id (oauth2), + message, + access_token, + user, + goa_oauth2_based_get_client_secret (oauth2)); + + api_signature = g_compute_checksum_for_string (G_CHECKSUM_MD5, sig, -1); + + proxy = rest_proxy_new ("https://ws.audioscrobbler.com/2.0/", FALSE); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_add_header (call, "Content-Type", "application/x-www-form-urlencoded"); + rest_proxy_call_add_param (call, "api_key", goa_oauth2_based_get_client_id (oauth2)); + rest_proxy_call_add_param (call, "method", "user.shout"); + rest_proxy_call_add_param (call, "message", message); + rest_proxy_call_add_param (call, "user", user); + rest_proxy_call_add_param (call, "sk", access_token); + rest_proxy_call_add_param (call, "api_sig", api_signature); + + if (!rest_proxy_call_sync (call, &error)) { + g_error ("Cannot shout message to user %s: %s", user, error->message); + return 1; + } + + g_print ("Message sent!\n"); + + return 0; +} diff --git a/src/examples/list-accounts.c b/src/examples/list-accounts.c new file mode 100644 index 0000000..b96af7a --- /dev/null +++ b/src/examples/list-accounts.c @@ -0,0 +1,71 @@ +/* + * Copyright © 2012 Intel Corp + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include + +#define GOA_API_IS_SUBJECT_TO_CHANGE +#include + +#include + +int +main (int argc, char **argv) +{ + GError *error = NULL; + GoaClient *client; + GList *accounts, *l; + GoaAccount *account; + + setlocale (LC_ALL, ""); + + client = goa_client_new_sync (NULL, &error); + if (!client) { + g_error ("Could not create GoaClient: %s", error->message); + return 1; + } + + accounts = goa_client_get_accounts (client); + for (l = accounts; l != NULL; l = l->next) { + GoaOAuth2Based *oauth2 = NULL; + + account = goa_object_get_account (GOA_OBJECT (l->data)); + g_print ("%s at %s (%s)\n", + goa_account_get_presentation_identity (account), + goa_account_get_provider_name (account), + goa_account_get_provider_type (account)); + oauth2 = goa_object_get_oauth2_based (GOA_OBJECT (l->data)); + if (oauth2) { + gchar *access_token; + if (goa_oauth2_based_call_get_access_token_sync (oauth2, + &access_token, + NULL, + NULL, + NULL)) { + g_print ("\tAccessToken: %s\n", access_token); + g_free (access_token); + } + g_print ("\tClientId: %s\n\tClientSecret: %s\n", + goa_oauth2_based_get_client_id (oauth2), + goa_oauth2_based_get_client_secret (oauth2)); + } + g_clear_object (&oauth2); + } + + g_list_free_full (accounts, (GDestroyNotify) g_object_unref); + + return 0; +} diff --git a/src/examples/list-providers.c b/src/examples/list-providers.c new file mode 100644 index 0000000..5cf7283 --- /dev/null +++ b/src/examples/list-providers.c @@ -0,0 +1,81 @@ +/* + * Copyright © 2012 Intel Corp + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include + +#define GOA_API_IS_SUBJECT_TO_CHANGE +#define GOA_BACKEND_API_IS_SUBJECT_TO_CHANGE +#include + +#include + +typedef struct +{ + GMainLoop *loop; + GList *providers; + GError *error; +} GetAllData; + +static void +get_all_cb (GObject *source, + GAsyncResult *res, + gpointer user_data) +{ + GetAllData *data = user_data; + + goa_provider_get_all_finish (&data->providers, res, &data->error); + g_main_loop_quit (data->loop); +} + +int +main (int argc, char **argv) +{ + GetAllData data = {0,}; + GoaProvider *provider; + GList *l; + + setlocale (LC_ALL, ""); + + data.loop = g_main_loop_new (NULL, FALSE); + goa_provider_get_all (get_all_cb, &data); + g_main_loop_run (data.loop); + + if (data.error != NULL) { + g_printerr ("Failed to list providers: %s (%s, %d)\n", + data.error->message, + g_quark_to_string (data.error->domain), + data.error->code); + g_error_free (data.error); + goto out; + } + + for (l = data.providers; l != NULL; l = l->next) { + char *provider_name; + + provider = GOA_PROVIDER (l->data); + provider_name = goa_provider_get_provider_name (provider, NULL); + g_print ("Got provider %s\n", provider_name); + g_free (provider_name); + provider = NULL; + } + +out: + g_main_loop_unref (data.loop); + g_list_free_full (data.providers, g_object_unref); + + return 0; +} diff --git a/src/goa/Goa-1.0.metadata b/src/goa/Goa-1.0.metadata new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/goa/Goa-1.0.metadata diff --git a/src/goa/Makefile.am b/src/goa/Makefile.am new file mode 100644 index 0000000..7d45ea3 --- /dev/null +++ b/src/goa/Makefile.am @@ -0,0 +1,173 @@ +-include $(INTROSPECTION_MAKEFILE) + +NULL = +BUILT_SOURCES = +CLEANFILES = +DISTCLEANFILES = +EXTRA_DIST = +INTROSPECTION_GIRS = + +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -DG_LOG_DOMAIN=\"Goa\" \ + -DGOA_COMPILATION \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + $(WARN_CFLAGS) \ + $(NULL) + +# ---------------------------------------------------------------------------------------------------- + +DISTCLEANFILES += goaconfig-stamp goaconfig.h +BUILT_SOURCES += goaconfig-stamp +configexecincludedir = $(libdir)/goa-1.0/include +nodist_configexecinclude_HEADERS = goaconfig.h +goaconfig-stamp: ../../config.status + $(AM_V_GEN) cd $(top_builddir) && \ + $(SHELL) ./config.status src/goa/goaconfig.h + @touch goaconfig-stamp + +# ---------------------------------------------------------------------------------------------------- + +dbus_built_sources = goa-generated.c goa-generated.h goa-generated-doc-org.gnome.OnlineAccounts.Account.xml +BUILT_SOURCES += $(dbus_built_sources) + +$(dbus_built_sources) : Makefile.am $(top_srcdir)/data/dbus-interfaces.xml + $(AM_V_GEN) gdbus-codegen \ + --interface-prefix org.gnome.OnlineAccounts. \ + --c-namespace Goa \ + --c-generate-object-manager \ + --generate-c-code goa-generated \ + --generate-docbook goa-generated-doc \ + $(top_srcdir)/data/dbus-interfaces.xml \ + $(NULL) + +# ---------------------------------------------------------------------------------------------------- + +goaenumtypes.h: goaenums.h goaenumtypes.h.template + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goaenumtypes.h.template goaenums.h ) > \ + goaenumtypes.h.tmp && mv goaenumtypes.h.tmp goaenumtypes.h + +goaenumtypes.c: goaenums.h goaenumtypes.h goaenumtypes.c.template + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goaenumtypes.c.template goaenums.h ) > \ + goaenumtypes.c.tmp && mv goaenumtypes.c.tmp goaenumtypes.c + +enum_built_sources = \ + goaenumtypes.h goaenumtypes.c \ + $(NULL) + +EXTRA_DIST += goaenumtypes.h.template goaenumtypes.c.template + +# ---------------------------------------------------------------------------------------------------- + +lib_LTLIBRARIES = libgoa-1.0.la + +libgoa_1_0_ladir = $(includedir)/goa-1.0/goa + +libgoa_1_0_la_HEADERS = \ + goa.h \ + goaclient.h \ + goaerror.h \ + goaenums.h \ + goaenumtypes.h \ + goaversion.h \ + goa-generated.h \ + $(NULL) + +libgoa_1_0_la_SOURCES = \ + goa.h \ + goaclient.h goaclient.c \ + goaerror.h goaerror.c \ + goa-generated.h goa-generated.c \ + goaenums.h \ + goaenumtypes.h goaenumtypes.c \ + goaversion.h goaversion.c \ + $(NULL) + +libgoa_1_0_la_CFLAGS = \ + $(GLIB_CFLAGS) \ + $(NULL) + +libgoa_1_0_la_LIBADD = \ + $(GLIB_LIBS) \ + $(NULL) + +libgoa_1_0_la_LDFLAGS = \ + $(WARN_LDFLAGS) \ + -version-info $(GOA_LT_VERSION) \ + $(NULL) + +# ---------------------------------------------------------------------------------------------------- + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = goa-1.0.pc + +# ---------------------------------------------------------------------------------------------------- + +if HAVE_INTROSPECTION +Goa-1.0.gir: libgoa-1.0.la +Goa_1_0_gir_INCLUDES = Gio-2.0 +Goa_1_0_gir_PACKAGES = glib-2.0 gobject-2.0 gio-2.0 +Goa_1_0_gir_EXPORT_PACKAGES = goa-1.0 +Goa_1_0_gir_LIBS = goa-1.0 +Goa_1_0_gir_FILES = $(libgoa_1_0_la_HEADERS) $(libgoa_1_0_la_SOURCES) +Goa_1_0_gir_CFLAGS = $(AM_CPPFLAGS) $(libgoa_1_0_la_CFLAGS) +Goa_1_0_gir_SCANNERFLAGS = $(WARN_SCANNERFLAGS) --c-include='goa/goa.h' +INTROSPECTION_GIRS += Goa-1.0.gir + +girdir = $(datadir)/gir-1.0 +gir_DATA = Goa-1.0.gir + +typelibsdir = $(libdir)/girepository-1.0 +typelibs_DATA = Goa-1.0.typelib + +CLEANFILES += $(gir_DATA) $(typelibs_DATA) + +if ENABLE_VAPIGEN +-include $(VAPIGEN_MAKEFILE) + +goa-1.0.vapi: Goa-1.0.gir Goa-1.0.metadata goa-1.0.deps + +VAPIGEN_VAPIS = goa-1.0.vapi + +goa_1_0_vapi_DEPS = gio-2.0 +goa_1_0_vapi_METADATADIRS = $(srcdir) +goa_1_0_vapi_FILES = Goa-1.0.gir + +goa-1.0.deps: + $(AM_V_GEN) for pkg in $(goa_1_0_vapi_DEPS); do \ + echo $$pkg >> $@; \ + done + +vapidir = $(datadir)/vala/vapi +vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps) + +CLEANFILES += $(vapi_DATA) + +EXTRA_DIST += Goa-1.0.metadata + +endif # ENABLE_VAPIGEN + +endif # HAVE_INTROSPECTION + +# ---------------------------------------------------------------------------------------------------- + +CLEANFILES += \ + $(dbus_built_sources) \ + $(enum_built_sources) \ + goa-generated-doc-*.xml \ + $(NULL) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/src/goa/Makefile.in b/src/goa/Makefile.in new file mode 100644 index 0000000..eb7a75f --- /dev/null +++ b/src/goa/Makefile.in @@ -0,0 +1,1080 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@HAVE_INTROSPECTION_TRUE@am__append_1 = Goa-1.0.gir +@HAVE_INTROSPECTION_TRUE@am__append_2 = $(gir_DATA) $(typelibs_DATA) +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@am__append_3 = $(vapi_DATA) +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@am__append_4 = Goa-1.0.metadata +subdir = src/goa +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(libgoa_1_0_la_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = goa-1.0.pc +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibsdir)" \ + "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libgoa_1_0_ladir)" \ + "$(DESTDIR)$(configexecincludedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgoa_1_0_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am__objects_1 = +am_libgoa_1_0_la_OBJECTS = libgoa_1_0_la-goaclient.lo \ + libgoa_1_0_la-goaerror.lo libgoa_1_0_la-goa-generated.lo \ + libgoa_1_0_la-goaenumtypes.lo libgoa_1_0_la-goaversion.lo \ + $(am__objects_1) +libgoa_1_0_la_OBJECTS = $(am_libgoa_1_0_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgoa_1_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libgoa_1_0_la_CFLAGS) \ + $(CFLAGS) $(libgoa_1_0_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgoa_1_0_la_SOURCES) +DIST_SOURCES = $(libgoa_1_0_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(gir_DATA) $(pkgconfig_DATA) $(typelibs_DATA) $(vapi_DATA) +HEADERS = $(libgoa_1_0_la_HEADERS) $(nodist_configexecinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/goa-1.0.pc.in \ + $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +BUILT_SOURCES = goaconfig-stamp $(dbus_built_sources) + +# ---------------------------------------------------------------------------------------------------- +CLEANFILES = $(am__append_2) $(am__append_3) $(dbus_built_sources) \ + $(enum_built_sources) goa-generated-doc-*.xml $(NULL) + +# ---------------------------------------------------------------------------------------------------- +DISTCLEANFILES = goaconfig-stamp goaconfig.h +EXTRA_DIST = goaenumtypes.h.template goaenumtypes.c.template \ + $(am__append_4) +INTROSPECTION_GIRS = $(am__append_1) +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -DG_LOG_DOMAIN=\"Goa\" \ + -DGOA_COMPILATION \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + $(WARN_CFLAGS) \ + $(NULL) + +configexecincludedir = $(libdir)/goa-1.0/include +nodist_configexecinclude_HEADERS = goaconfig.h + +# ---------------------------------------------------------------------------------------------------- +dbus_built_sources = goa-generated.c goa-generated.h goa-generated-doc-org.gnome.OnlineAccounts.Account.xml +enum_built_sources = \ + goaenumtypes.h goaenumtypes.c \ + $(NULL) + + +# ---------------------------------------------------------------------------------------------------- +lib_LTLIBRARIES = libgoa-1.0.la +libgoa_1_0_ladir = $(includedir)/goa-1.0/goa +libgoa_1_0_la_HEADERS = \ + goa.h \ + goaclient.h \ + goaerror.h \ + goaenums.h \ + goaenumtypes.h \ + goaversion.h \ + goa-generated.h \ + $(NULL) + +libgoa_1_0_la_SOURCES = \ + goa.h \ + goaclient.h goaclient.c \ + goaerror.h goaerror.c \ + goa-generated.h goa-generated.c \ + goaenums.h \ + goaenumtypes.h goaenumtypes.c \ + goaversion.h goaversion.c \ + $(NULL) + +libgoa_1_0_la_CFLAGS = \ + $(GLIB_CFLAGS) \ + $(NULL) + +libgoa_1_0_la_LIBADD = \ + $(GLIB_LIBS) \ + $(NULL) + +libgoa_1_0_la_LDFLAGS = \ + $(WARN_LDFLAGS) \ + -version-info $(GOA_LT_VERSION) \ + $(NULL) + + +# ---------------------------------------------------------------------------------------------------- +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = goa-1.0.pc +@HAVE_INTROSPECTION_TRUE@Goa_1_0_gir_INCLUDES = Gio-2.0 +@HAVE_INTROSPECTION_TRUE@Goa_1_0_gir_PACKAGES = glib-2.0 gobject-2.0 gio-2.0 +@HAVE_INTROSPECTION_TRUE@Goa_1_0_gir_EXPORT_PACKAGES = goa-1.0 +@HAVE_INTROSPECTION_TRUE@Goa_1_0_gir_LIBS = goa-1.0 +@HAVE_INTROSPECTION_TRUE@Goa_1_0_gir_FILES = $(libgoa_1_0_la_HEADERS) $(libgoa_1_0_la_SOURCES) +@HAVE_INTROSPECTION_TRUE@Goa_1_0_gir_CFLAGS = $(AM_CPPFLAGS) $(libgoa_1_0_la_CFLAGS) +@HAVE_INTROSPECTION_TRUE@Goa_1_0_gir_SCANNERFLAGS = $(WARN_SCANNERFLAGS) --c-include='goa/goa.h' +@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0 +@HAVE_INTROSPECTION_TRUE@gir_DATA = Goa-1.0.gir +@HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0 +@HAVE_INTROSPECTION_TRUE@typelibs_DATA = Goa-1.0.typelib +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@VAPIGEN_VAPIS = goa-1.0.vapi +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@goa_1_0_vapi_DEPS = gio-2.0 +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@goa_1_0_vapi_METADATADIRS = $(srcdir) +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@goa_1_0_vapi_FILES = Goa-1.0.gir +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@vapidir = $(datadir)/vala/vapi +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/goa/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/goa/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +goa-1.0.pc: $(top_builddir)/config.status $(srcdir)/goa-1.0.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgoa-1.0.la: $(libgoa_1_0_la_OBJECTS) $(libgoa_1_0_la_DEPENDENCIES) $(EXTRA_libgoa_1_0_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgoa_1_0_la_LINK) -rpath $(libdir) $(libgoa_1_0_la_OBJECTS) $(libgoa_1_0_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_1_0_la-goa-generated.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_1_0_la-goaclient.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_1_0_la-goaenumtypes.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_1_0_la-goaerror.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_1_0_la-goaversion.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgoa_1_0_la-goaclient.lo: goaclient.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_1_0_la-goaclient.lo -MD -MP -MF $(DEPDIR)/libgoa_1_0_la-goaclient.Tpo -c -o libgoa_1_0_la-goaclient.lo `test -f 'goaclient.c' || echo '$(srcdir)/'`goaclient.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_1_0_la-goaclient.Tpo $(DEPDIR)/libgoa_1_0_la-goaclient.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaclient.c' object='libgoa_1_0_la-goaclient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_1_0_la-goaclient.lo `test -f 'goaclient.c' || echo '$(srcdir)/'`goaclient.c + +libgoa_1_0_la-goaerror.lo: goaerror.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_1_0_la-goaerror.lo -MD -MP -MF $(DEPDIR)/libgoa_1_0_la-goaerror.Tpo -c -o libgoa_1_0_la-goaerror.lo `test -f 'goaerror.c' || echo '$(srcdir)/'`goaerror.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_1_0_la-goaerror.Tpo $(DEPDIR)/libgoa_1_0_la-goaerror.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaerror.c' object='libgoa_1_0_la-goaerror.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_1_0_la-goaerror.lo `test -f 'goaerror.c' || echo '$(srcdir)/'`goaerror.c + +libgoa_1_0_la-goa-generated.lo: goa-generated.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_1_0_la-goa-generated.lo -MD -MP -MF $(DEPDIR)/libgoa_1_0_la-goa-generated.Tpo -c -o libgoa_1_0_la-goa-generated.lo `test -f 'goa-generated.c' || echo '$(srcdir)/'`goa-generated.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_1_0_la-goa-generated.Tpo $(DEPDIR)/libgoa_1_0_la-goa-generated.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goa-generated.c' object='libgoa_1_0_la-goa-generated.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_1_0_la-goa-generated.lo `test -f 'goa-generated.c' || echo '$(srcdir)/'`goa-generated.c + +libgoa_1_0_la-goaenumtypes.lo: goaenumtypes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_1_0_la-goaenumtypes.lo -MD -MP -MF $(DEPDIR)/libgoa_1_0_la-goaenumtypes.Tpo -c -o libgoa_1_0_la-goaenumtypes.lo `test -f 'goaenumtypes.c' || echo '$(srcdir)/'`goaenumtypes.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_1_0_la-goaenumtypes.Tpo $(DEPDIR)/libgoa_1_0_la-goaenumtypes.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaenumtypes.c' object='libgoa_1_0_la-goaenumtypes.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_1_0_la-goaenumtypes.lo `test -f 'goaenumtypes.c' || echo '$(srcdir)/'`goaenumtypes.c + +libgoa_1_0_la-goaversion.lo: goaversion.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_1_0_la-goaversion.lo -MD -MP -MF $(DEPDIR)/libgoa_1_0_la-goaversion.Tpo -c -o libgoa_1_0_la-goaversion.lo `test -f 'goaversion.c' || echo '$(srcdir)/'`goaversion.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_1_0_la-goaversion.Tpo $(DEPDIR)/libgoa_1_0_la-goaversion.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaversion.c' object='libgoa_1_0_la-goaversion.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_1_0_la-goaversion.lo `test -f 'goaversion.c' || echo '$(srcdir)/'`goaversion.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-girDATA: $(gir_DATA) + @$(NORMAL_INSTALL) + @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \ + done + +uninstall-girDATA: + @$(NORMAL_UNINSTALL) + @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir) +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-typelibsDATA: $(typelibs_DATA) + @$(NORMAL_INSTALL) + @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibsdir)" || exit $$?; \ + done + +uninstall-typelibsDATA: + @$(NORMAL_UNINSTALL) + @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir) +install-vapiDATA: $(vapi_DATA) + @$(NORMAL_INSTALL) + @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(vapidir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(vapidir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vapidir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(vapidir)" || exit $$?; \ + done + +uninstall-vapiDATA: + @$(NORMAL_UNINSTALL) + @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(vapidir)'; $(am__uninstall_files_from_dir) +install-libgoa_1_0_laHEADERS: $(libgoa_1_0_la_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libgoa_1_0_la_HEADERS)'; test -n "$(libgoa_1_0_ladir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libgoa_1_0_ladir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libgoa_1_0_ladir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgoa_1_0_ladir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgoa_1_0_ladir)" || exit $$?; \ + done + +uninstall-libgoa_1_0_laHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libgoa_1_0_la_HEADERS)'; test -n "$(libgoa_1_0_ladir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libgoa_1_0_ladir)'; $(am__uninstall_files_from_dir) +install-nodist_configexecincludeHEADERS: $(nodist_configexecinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(nodist_configexecinclude_HEADERS)'; test -n "$(configexecincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(configexecincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(configexecincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(configexecincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(configexecincludedir)" || exit $$?; \ + done + +uninstall-nodist_configexecincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(nodist_configexecinclude_HEADERS)'; test -n "$(configexecincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(configexecincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(vapidir)" "$(DESTDIR)$(libgoa_1_0_ladir)" "$(DESTDIR)$(configexecincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-girDATA install-libgoa_1_0_laHEADERS \ + install-pkgconfigDATA install-typelibsDATA install-vapiDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES \ + install-nodist_configexecincludeHEADERS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \ + uninstall-libgoa_1_0_laHEADERS \ + uninstall-nodist_configexecincludeHEADERS \ + uninstall-pkgconfigDATA uninstall-typelibsDATA \ + uninstall-vapiDATA + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-girDATA install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-libgoa_1_0_laHEADERS install-man \ + install-nodist_configexecincludeHEADERS install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip install-typelibsDATA install-vapiDATA \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-girDATA \ + uninstall-libLTLIBRARIES uninstall-libgoa_1_0_laHEADERS \ + uninstall-nodist_configexecincludeHEADERS \ + uninstall-pkgconfigDATA uninstall-typelibsDATA \ + uninstall-vapiDATA + +.PRECIOUS: Makefile + +-include $(INTROSPECTION_MAKEFILE) +goaconfig-stamp: ../../config.status + $(AM_V_GEN) cd $(top_builddir) && \ + $(SHELL) ./config.status src/goa/goaconfig.h + @touch goaconfig-stamp + +$(dbus_built_sources) : Makefile.am $(top_srcdir)/data/dbus-interfaces.xml + $(AM_V_GEN) gdbus-codegen \ + --interface-prefix org.gnome.OnlineAccounts. \ + --c-namespace Goa \ + --c-generate-object-manager \ + --generate-c-code goa-generated \ + --generate-docbook goa-generated-doc \ + $(top_srcdir)/data/dbus-interfaces.xml \ + $(NULL) + +# ---------------------------------------------------------------------------------------------------- + +goaenumtypes.h: goaenums.h goaenumtypes.h.template + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goaenumtypes.h.template goaenums.h ) > \ + goaenumtypes.h.tmp && mv goaenumtypes.h.tmp goaenumtypes.h + +goaenumtypes.c: goaenums.h goaenumtypes.h goaenumtypes.c.template + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goaenumtypes.c.template goaenums.h ) > \ + goaenumtypes.c.tmp && mv goaenumtypes.c.tmp goaenumtypes.c + +# ---------------------------------------------------------------------------------------------------- + +@HAVE_INTROSPECTION_TRUE@Goa-1.0.gir: libgoa-1.0.la + +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@-include $(VAPIGEN_MAKEFILE) + +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@goa-1.0.vapi: Goa-1.0.gir Goa-1.0.metadata goa-1.0.deps + +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@goa-1.0.deps: +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) for pkg in $(goa_1_0_vapi_DEPS); do \ +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@ echo $$pkg >> $@; \ +@ENABLE_VAPIGEN_TRUE@@HAVE_INTROSPECTION_TRUE@ done + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/goa/goa-1.0.pc.in b/src/goa/goa-1.0.pc.in new file mode 100644 index 0000000..cec1023 --- /dev/null +++ b/src/goa/goa-1.0.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: Goa +Description: GNOME Online Accounts Library +Version: @VERSION@ +Requires: gio-2.0 +Libs: -L${libdir} -lgoa-1.0 +Cflags: -I${includedir}/goa-1.0 -I${libdir}/goa-1.0/include diff --git a/src/goa/goa-generated.c b/src/goa/goa-generated.c new file mode 100644 index 0000000..e1894df --- /dev/null +++ b/src/goa/goa-generated.c @@ -0,0 +1,25882 @@ +/* + * Generated by gdbus-codegen 2.56.4. DO NOT EDIT. + * + * The license of this code is the same as for the D-Bus interface description + * it was derived from. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "goa-generated.h" + +#include +#ifdef G_OS_UNIX +# include +#endif + +typedef struct +{ + GDBusArgInfo parent_struct; + gboolean use_gvariant; +} _ExtendedGDBusArgInfo; + +typedef struct +{ + GDBusMethodInfo parent_struct; + const gchar *signal_name; + gboolean pass_fdlist; +} _ExtendedGDBusMethodInfo; + +typedef struct +{ + GDBusSignalInfo parent_struct; + const gchar *signal_name; +} _ExtendedGDBusSignalInfo; + +typedef struct +{ + GDBusPropertyInfo parent_struct; + const gchar *hyphen_name; + gboolean use_gvariant; +} _ExtendedGDBusPropertyInfo; + +typedef struct +{ + GDBusInterfaceInfo parent_struct; + const gchar *hyphen_name; +} _ExtendedGDBusInterfaceInfo; + +typedef struct +{ + const _ExtendedGDBusPropertyInfo *info; + guint prop_id; + GValue orig_value; /* the value before the change */ +} ChangedProperty; + +static void +_changed_property_free (ChangedProperty *data) +{ + g_value_unset (&data->orig_value); + g_free (data); +} + +static gboolean +_g_strv_equal0 (gchar **a, gchar **b) +{ + gboolean ret = FALSE; + guint n; + if (a == NULL && b == NULL) + { + ret = TRUE; + goto out; + } + if (a == NULL || b == NULL) + goto out; + if (g_strv_length (a) != g_strv_length (b)) + goto out; + for (n = 0; a[n] != NULL; n++) + if (g_strcmp0 (a[n], b[n]) != 0) + goto out; + ret = TRUE; +out: + return ret; +} + +static gboolean +_g_variant_equal0 (GVariant *a, GVariant *b) +{ + gboolean ret = FALSE; + if (a == NULL && b == NULL) + { + ret = TRUE; + goto out; + } + if (a == NULL || b == NULL) + goto out; + ret = g_variant_equal (a, b); +out: + return ret; +} + +G_GNUC_UNUSED static gboolean +_g_value_equal (const GValue *a, const GValue *b) +{ + gboolean ret = FALSE; + g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b)); + switch (G_VALUE_TYPE (a)) + { + case G_TYPE_BOOLEAN: + ret = (g_value_get_boolean (a) == g_value_get_boolean (b)); + break; + case G_TYPE_UCHAR: + ret = (g_value_get_uchar (a) == g_value_get_uchar (b)); + break; + case G_TYPE_INT: + ret = (g_value_get_int (a) == g_value_get_int (b)); + break; + case G_TYPE_UINT: + ret = (g_value_get_uint (a) == g_value_get_uint (b)); + break; + case G_TYPE_INT64: + ret = (g_value_get_int64 (a) == g_value_get_int64 (b)); + break; + case G_TYPE_UINT64: + ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b)); + break; + case G_TYPE_DOUBLE: + { + /* Avoid -Wfloat-equal warnings by doing a direct bit compare */ + gdouble da = g_value_get_double (a); + gdouble db = g_value_get_double (b); + ret = memcmp (&da, &db, sizeof (gdouble)) == 0; + } + break; + case G_TYPE_STRING: + ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0); + break; + case G_TYPE_VARIANT: + ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b)); + break; + default: + if (G_VALUE_TYPE (a) == G_TYPE_STRV) + ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b)); + else + g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a))); + break; + } + return ret; +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Account + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaAccount + * @title: GoaAccount + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Account D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Account D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Account ---- */ + +static const _ExtendedGDBusMethodInfo _goa_account_method_info_remove = +{ + { + -1, + (gchar *) "Remove", + NULL, + NULL, + NULL + }, + "handle-remove", + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_account_method_info_ensure_credentials_OUT_ARG_expires_in = +{ + { + -1, + (gchar *) "expires_in", + (gchar *) "i", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_account_method_info_ensure_credentials_OUT_ARG_pointers[] = +{ + &_goa_account_method_info_ensure_credentials_OUT_ARG_expires_in, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_account_method_info_ensure_credentials = +{ + { + -1, + (gchar *) "EnsureCredentials", + NULL, + (GDBusArgInfo **) &_goa_account_method_info_ensure_credentials_OUT_ARG_pointers, + NULL + }, + "handle-ensure-credentials", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _goa_account_method_info_pointers[] = +{ + &_goa_account_method_info_remove, + &_goa_account_method_info_ensure_credentials, + NULL +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_provider_type = +{ + { + -1, + (gchar *) "ProviderType", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "provider-type", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_provider_name = +{ + { + -1, + (gchar *) "ProviderName", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "provider-name", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_provider_icon = +{ + { + -1, + (gchar *) "ProviderIcon", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "provider-icon", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_id = +{ + { + -1, + (gchar *) "Id", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "id", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_is_locked = +{ + { + -1, + (gchar *) "IsLocked", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "is-locked", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_is_temporary = +{ + { + -1, + (gchar *) "IsTemporary", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "is-temporary", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_attention_needed = +{ + { + -1, + (gchar *) "AttentionNeeded", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "attention-needed", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_identity = +{ + { + -1, + (gchar *) "Identity", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "identity", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_presentation_identity = +{ + { + -1, + (gchar *) "PresentationIdentity", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "presentation-identity", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_mail_disabled = +{ + { + -1, + (gchar *) "MailDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "mail-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_calendar_disabled = +{ + { + -1, + (gchar *) "CalendarDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "calendar-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_contacts_disabled = +{ + { + -1, + (gchar *) "ContactsDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "contacts-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_chat_disabled = +{ + { + -1, + (gchar *) "ChatDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "chat-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_documents_disabled = +{ + { + -1, + (gchar *) "DocumentsDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "documents-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_maps_disabled = +{ + { + -1, + (gchar *) "MapsDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "maps-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_music_disabled = +{ + { + -1, + (gchar *) "MusicDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "music-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_printers_disabled = +{ + { + -1, + (gchar *) "PrintersDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "printers-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_photos_disabled = +{ + { + -1, + (gchar *) "PhotosDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "photos-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_files_disabled = +{ + { + -1, + (gchar *) "FilesDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "files-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_ticketing_disabled = +{ + { + -1, + (gchar *) "TicketingDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "ticketing-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_todo_disabled = +{ + { + -1, + (gchar *) "TodoDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "todo-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_account_property_info_read_later_disabled = +{ + { + -1, + (gchar *) "ReadLaterDisabled", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE | G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, + NULL + }, + "read-later-disabled", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_account_property_info_pointers[] = +{ + &_goa_account_property_info_provider_type, + &_goa_account_property_info_provider_name, + &_goa_account_property_info_provider_icon, + &_goa_account_property_info_id, + &_goa_account_property_info_is_locked, + &_goa_account_property_info_is_temporary, + &_goa_account_property_info_attention_needed, + &_goa_account_property_info_identity, + &_goa_account_property_info_presentation_identity, + &_goa_account_property_info_mail_disabled, + &_goa_account_property_info_calendar_disabled, + &_goa_account_property_info_contacts_disabled, + &_goa_account_property_info_chat_disabled, + &_goa_account_property_info_documents_disabled, + &_goa_account_property_info_maps_disabled, + &_goa_account_property_info_music_disabled, + &_goa_account_property_info_printers_disabled, + &_goa_account_property_info_photos_disabled, + &_goa_account_property_info_files_disabled, + &_goa_account_property_info_ticketing_disabled, + &_goa_account_property_info_todo_disabled, + &_goa_account_property_info_read_later_disabled, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_account_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Account", + (GDBusMethodInfo **) &_goa_account_method_info_pointers, + NULL, + (GDBusPropertyInfo **) &_goa_account_property_info_pointers, + NULL + }, + "account", +}; + + +/** + * goa_account_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Account D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_account_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_account_interface_info.parent_struct; +} + +/** + * goa_account_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaAccount interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_account_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "provider-type"); + g_object_class_override_property (klass, property_id_begin++, "provider-name"); + g_object_class_override_property (klass, property_id_begin++, "provider-icon"); + g_object_class_override_property (klass, property_id_begin++, "id"); + g_object_class_override_property (klass, property_id_begin++, "is-locked"); + g_object_class_override_property (klass, property_id_begin++, "is-temporary"); + g_object_class_override_property (klass, property_id_begin++, "attention-needed"); + g_object_class_override_property (klass, property_id_begin++, "identity"); + g_object_class_override_property (klass, property_id_begin++, "presentation-identity"); + g_object_class_override_property (klass, property_id_begin++, "mail-disabled"); + g_object_class_override_property (klass, property_id_begin++, "calendar-disabled"); + g_object_class_override_property (klass, property_id_begin++, "contacts-disabled"); + g_object_class_override_property (klass, property_id_begin++, "chat-disabled"); + g_object_class_override_property (klass, property_id_begin++, "documents-disabled"); + g_object_class_override_property (klass, property_id_begin++, "maps-disabled"); + g_object_class_override_property (klass, property_id_begin++, "music-disabled"); + g_object_class_override_property (klass, property_id_begin++, "printers-disabled"); + g_object_class_override_property (klass, property_id_begin++, "photos-disabled"); + g_object_class_override_property (klass, property_id_begin++, "files-disabled"); + g_object_class_override_property (klass, property_id_begin++, "ticketing-disabled"); + g_object_class_override_property (klass, property_id_begin++, "todo-disabled"); + g_object_class_override_property (klass, property_id_begin++, "read-later-disabled"); + return property_id_begin - 1; +} + + + +/** + * GoaAccount: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Account. + */ + +/** + * GoaAccountIface: + * @parent_iface: The parent interface. + * @handle_ensure_credentials: Handler for the #GoaAccount::handle-ensure-credentials signal. + * @handle_remove: Handler for the #GoaAccount::handle-remove signal. + * @get_attention_needed: Getter for the #GoaAccount:attention-needed property. + * @get_calendar_disabled: Getter for the #GoaAccount:calendar-disabled property. + * @get_chat_disabled: Getter for the #GoaAccount:chat-disabled property. + * @get_contacts_disabled: Getter for the #GoaAccount:contacts-disabled property. + * @get_documents_disabled: Getter for the #GoaAccount:documents-disabled property. + * @get_id: Getter for the #GoaAccount:id property. + * @get_identity: Getter for the #GoaAccount:identity property. + * @get_is_temporary: Getter for the #GoaAccount:is-temporary property. + * @get_mail_disabled: Getter for the #GoaAccount:mail-disabled property. + * @get_presentation_identity: Getter for the #GoaAccount:presentation-identity property. + * @get_provider_icon: Getter for the #GoaAccount:provider-icon property. + * @get_provider_name: Getter for the #GoaAccount:provider-name property. + * @get_provider_type: Getter for the #GoaAccount:provider-type property. + * @get_ticketing_disabled: Getter for the #GoaAccount:ticketing-disabled property. + * @get_files_disabled: Getter for the #GoaAccount:files-disabled property. + * @get_photos_disabled: Getter for the #GoaAccount:photos-disabled property. + * @get_printers_disabled: Getter for the #GoaAccount:printers-disabled property. + * @get_read_later_disabled: Getter for the #GoaAccount:read-later-disabled property. + * @get_maps_disabled: Getter for the #GoaAccount:maps-disabled property. + * @get_is_locked: Getter for the #GoaAccount:is-locked property. + * @get_music_disabled: Getter for the #GoaAccount:music-disabled property. + * @get_todo_disabled: Getter for the #GoaAccount:todo-disabled property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Account. + */ + +typedef GoaAccountIface GoaAccountInterface; +G_DEFINE_INTERFACE (GoaAccount, goa_account, G_TYPE_OBJECT) + +static void +goa_account_default_init (GoaAccountIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * GoaAccount::handle-remove: + * @object: A #GoaAccount. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the Remove() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_account_complete_remove() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-remove", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaAccountIface, handle_remove), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /** + * GoaAccount::handle-ensure-credentials: + * @object: A #GoaAccount. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the EnsureCredentials() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_account_complete_ensure_credentials() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-ensure-credentials", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaAccountIface, handle_ensure_credentials), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /* GObject properties for D-Bus properties: */ + /** + * GoaAccount:provider-type: + * + * Represents the D-Bus property "ProviderType". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("provider-type", "ProviderType", "ProviderType", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:provider-name: + * + * Represents the D-Bus property "ProviderName". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("provider-name", "ProviderName", "ProviderName", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:provider-icon: + * + * Represents the D-Bus property "ProviderIcon". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("provider-icon", "ProviderIcon", "ProviderIcon", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:id: + * + * Represents the D-Bus property "Id". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("id", "Id", "Id", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:is-locked: + * + * Represents the D-Bus property "IsLocked". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.16.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("is-locked", "IsLocked", "IsLocked", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:is-temporary: + * + * Represents the D-Bus property "IsTemporary". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("is-temporary", "IsTemporary", "IsTemporary", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:attention-needed: + * + * Represents the D-Bus property "AttentionNeeded". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("attention-needed", "AttentionNeeded", "AttentionNeeded", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:identity: + * + * Represents the D-Bus property "Identity". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("identity", "Identity", "Identity", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:presentation-identity: + * + * Represents the D-Bus property "PresentationIdentity". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("presentation-identity", "PresentationIdentity", "PresentationIdentity", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:mail-disabled: + * + * Represents the D-Bus property "MailDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("mail-disabled", "MailDisabled", "MailDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:calendar-disabled: + * + * Represents the D-Bus property "CalendarDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("calendar-disabled", "CalendarDisabled", "CalendarDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:contacts-disabled: + * + * Represents the D-Bus property "ContactsDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("contacts-disabled", "ContactsDisabled", "ContactsDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:chat-disabled: + * + * Represents the D-Bus property "ChatDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("chat-disabled", "ChatDisabled", "ChatDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:documents-disabled: + * + * Represents the D-Bus property "DocumentsDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("documents-disabled", "DocumentsDisabled", "DocumentsDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:maps-disabled: + * + * Represents the D-Bus property "MapsDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.14.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("maps-disabled", "MapsDisabled", "MapsDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:music-disabled: + * + * Represents the D-Bus property "MusicDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.18.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("music-disabled", "MusicDisabled", "MusicDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:printers-disabled: + * + * Represents the D-Bus property "PrintersDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.12.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("printers-disabled", "PrintersDisabled", "PrintersDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:photos-disabled: + * + * Represents the D-Bus property "PhotosDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("photos-disabled", "PhotosDisabled", "PhotosDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:files-disabled: + * + * Represents the D-Bus property "FilesDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("files-disabled", "FilesDisabled", "FilesDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:ticketing-disabled: + * + * Represents the D-Bus property "TicketingDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.6.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("ticketing-disabled", "TicketingDisabled", "TicketingDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:todo-disabled: + * + * Represents the D-Bus property "TodoDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.26.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("todo-disabled", "TodoDisabled", "TodoDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaAccount:read-later-disabled: + * + * Represents the D-Bus property "ReadLaterDisabled". + * + * Since the D-Bus property for this #GObject property is both readable and writable, it is meaningful to both read from it and write to it on both the service- and client-side. + * + * Since: 3.12.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("read-later-disabled", "ReadLaterDisabled", "ReadLaterDisabled", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_account_get_provider_type: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "ProviderType" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_account_dup_provider_type() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_account_get_provider_type (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_provider_type (object); +} + +/** + * goa_account_dup_provider_type: (skip) + * @object: A #GoaAccount. + * + * Gets a copy of the "ProviderType" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_account_dup_provider_type (GoaAccount *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "provider-type", &value, NULL); + return value; +} + +/** + * goa_account_set_provider_type: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "ProviderType" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_account_set_provider_type (GoaAccount *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "provider-type", value, NULL); +} + +/** + * goa_account_get_provider_name: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "ProviderName" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_account_dup_provider_name() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_account_get_provider_name (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_provider_name (object); +} + +/** + * goa_account_dup_provider_name: (skip) + * @object: A #GoaAccount. + * + * Gets a copy of the "ProviderName" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_account_dup_provider_name (GoaAccount *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "provider-name", &value, NULL); + return value; +} + +/** + * goa_account_set_provider_name: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "ProviderName" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_account_set_provider_name (GoaAccount *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "provider-name", value, NULL); +} + +/** + * goa_account_get_provider_icon: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "ProviderIcon" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_account_dup_provider_icon() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_account_get_provider_icon (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_provider_icon (object); +} + +/** + * goa_account_dup_provider_icon: (skip) + * @object: A #GoaAccount. + * + * Gets a copy of the "ProviderIcon" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_account_dup_provider_icon (GoaAccount *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "provider-icon", &value, NULL); + return value; +} + +/** + * goa_account_set_provider_icon: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "ProviderIcon" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_account_set_provider_icon (GoaAccount *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "provider-icon", value, NULL); +} + +/** + * goa_account_get_id: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "Id" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_account_dup_id() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_account_get_id (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_id (object); +} + +/** + * goa_account_dup_id: (skip) + * @object: A #GoaAccount. + * + * Gets a copy of the "Id" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_account_dup_id (GoaAccount *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "id", &value, NULL); + return value; +} + +/** + * goa_account_set_id: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "Id" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_account_set_id (GoaAccount *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "id", value, NULL); +} + +/** + * goa_account_get_is_locked: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "IsLocked" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.16.0 + */ +gboolean +goa_account_get_is_locked (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_is_locked (object); +} + +/** + * goa_account_set_is_locked: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "IsLocked" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.16.0 + */ +void +goa_account_set_is_locked (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "is-locked", value, NULL); +} + +/** + * goa_account_get_is_temporary: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "IsTemporary" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_account_get_is_temporary (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_is_temporary (object); +} + +/** + * goa_account_set_is_temporary: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "IsTemporary" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + */ +void +goa_account_set_is_temporary (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "is-temporary", value, NULL); +} + +/** + * goa_account_get_attention_needed: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "AttentionNeeded" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_account_get_attention_needed (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_attention_needed (object); +} + +/** + * goa_account_set_attention_needed: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "AttentionNeeded" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_account_set_attention_needed (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "attention-needed", value, NULL); +} + +/** + * goa_account_get_identity: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "Identity" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_account_dup_identity() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_account_get_identity (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_identity (object); +} + +/** + * goa_account_dup_identity: (skip) + * @object: A #GoaAccount. + * + * Gets a copy of the "Identity" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_account_dup_identity (GoaAccount *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "identity", &value, NULL); + return value; +} + +/** + * goa_account_set_identity: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "Identity" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_account_set_identity (GoaAccount *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "identity", value, NULL); +} + +/** + * goa_account_get_presentation_identity: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "PresentationIdentity" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_account_dup_presentation_identity() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_account_get_presentation_identity (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_presentation_identity (object); +} + +/** + * goa_account_dup_presentation_identity: (skip) + * @object: A #GoaAccount. + * + * Gets a copy of the "PresentationIdentity" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_account_dup_presentation_identity (GoaAccount *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "presentation-identity", &value, NULL); + return value; +} + +/** + * goa_account_set_presentation_identity: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "PresentationIdentity" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_account_set_presentation_identity (GoaAccount *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "presentation-identity", value, NULL); +} + +/** + * goa_account_get_mail_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "MailDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_account_get_mail_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_mail_disabled (object); +} + +/** + * goa_account_set_mail_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "MailDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + */ +void +goa_account_set_mail_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "mail-disabled", value, NULL); +} + +/** + * goa_account_get_calendar_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "CalendarDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_account_get_calendar_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_calendar_disabled (object); +} + +/** + * goa_account_set_calendar_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "CalendarDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + */ +void +goa_account_set_calendar_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "calendar-disabled", value, NULL); +} + +/** + * goa_account_get_contacts_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "ContactsDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_account_get_contacts_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_contacts_disabled (object); +} + +/** + * goa_account_set_contacts_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "ContactsDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + */ +void +goa_account_set_contacts_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "contacts-disabled", value, NULL); +} + +/** + * goa_account_get_chat_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "ChatDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_account_get_chat_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_chat_disabled (object); +} + +/** + * goa_account_set_chat_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "ChatDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + */ +void +goa_account_set_chat_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "chat-disabled", value, NULL); +} + +/** + * goa_account_get_documents_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "DocumentsDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_account_get_documents_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_documents_disabled (object); +} + +/** + * goa_account_set_documents_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "DocumentsDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + */ +void +goa_account_set_documents_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "documents-disabled", value, NULL); +} + +/** + * goa_account_get_maps_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "MapsDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.14.0 + */ +gboolean +goa_account_get_maps_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_maps_disabled (object); +} + +/** + * goa_account_set_maps_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "MapsDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.14.0 + */ +void +goa_account_set_maps_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "maps-disabled", value, NULL); +} + +/** + * goa_account_get_music_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "MusicDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.18.0 + */ +gboolean +goa_account_get_music_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_music_disabled (object); +} + +/** + * goa_account_set_music_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "MusicDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.18.0 + */ +void +goa_account_set_music_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "music-disabled", value, NULL); +} + +/** + * goa_account_get_printers_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "PrintersDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.12.0 + */ +gboolean +goa_account_get_printers_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_printers_disabled (object); +} + +/** + * goa_account_set_printers_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "PrintersDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.12.0 + */ +void +goa_account_set_printers_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "printers-disabled", value, NULL); +} + +/** + * goa_account_get_photos_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "PhotosDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_account_get_photos_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_photos_disabled (object); +} + +/** + * goa_account_set_photos_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "PhotosDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.8.0 + */ +void +goa_account_set_photos_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "photos-disabled", value, NULL); +} + +/** + * goa_account_get_files_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "FilesDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_account_get_files_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_files_disabled (object); +} + +/** + * goa_account_set_files_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "FilesDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.8.0 + */ +void +goa_account_set_files_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "files-disabled", value, NULL); +} + +/** + * goa_account_get_ticketing_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "TicketingDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.6.0 + */ +gboolean +goa_account_get_ticketing_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_ticketing_disabled (object); +} + +/** + * goa_account_set_ticketing_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "TicketingDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.6.0 + */ +void +goa_account_set_ticketing_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "ticketing-disabled", value, NULL); +} + +/** + * goa_account_get_todo_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "TodoDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.26.0 + */ +gboolean +goa_account_get_todo_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_todo_disabled (object); +} + +/** + * goa_account_set_todo_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "TodoDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.26.0 + */ +void +goa_account_set_todo_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "todo-disabled", value, NULL); +} + +/** + * goa_account_get_read_later_disabled: (skip) + * @object: A #GoaAccount. + * + * Gets the value of the "ReadLaterDisabled" D-Bus property. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.12.0 + */ +gboolean +goa_account_get_read_later_disabled (GoaAccount *object) +{ + return GOA_ACCOUNT_GET_IFACE (object)->get_read_later_disabled (object); +} + +/** + * goa_account_set_read_later_disabled: (skip) + * @object: A #GoaAccount. + * @value: The value to set. + * + * Sets the "ReadLaterDisabled" D-Bus property to @value. + * + * Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side. + * + * Since: 3.12.0 + */ +void +goa_account_set_read_later_disabled (GoaAccount *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "read-later-disabled", value, NULL); +} + +/** + * goa_account_call_remove: + * @proxy: A #GoaAccountProxy. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the Remove() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_account_call_remove_finish() to get the result of the operation. + * + * See goa_account_call_remove_sync() for the synchronous, blocking version of this method. + */ +void +goa_account_call_remove ( + GoaAccount *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "Remove", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_account_call_remove_finish: + * @proxy: A #GoaAccountProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_account_call_remove(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_account_call_remove(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_account_call_remove_finish ( + GoaAccount *proxy, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "()"); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_account_call_remove_sync: + * @proxy: A #GoaAccountProxy. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Remove() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_account_call_remove() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_account_call_remove_sync ( + GoaAccount *proxy, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Remove", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "()"); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_account_call_ensure_credentials: + * @proxy: A #GoaAccountProxy. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the EnsureCredentials() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_account_call_ensure_credentials_finish() to get the result of the operation. + * + * See goa_account_call_ensure_credentials_sync() for the synchronous, blocking version of this method. + */ +void +goa_account_call_ensure_credentials ( + GoaAccount *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "EnsureCredentials", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_account_call_ensure_credentials_finish: + * @proxy: A #GoaAccountProxy. + * @out_expires_in: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_account_call_ensure_credentials(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_account_call_ensure_credentials(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_account_call_ensure_credentials_finish ( + GoaAccount *proxy, + gint *out_expires_in, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(i)", + out_expires_in); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_account_call_ensure_credentials_sync: + * @proxy: A #GoaAccountProxy. + * @out_expires_in: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the EnsureCredentials() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_account_call_ensure_credentials() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_account_call_ensure_credentials_sync ( + GoaAccount *proxy, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "EnsureCredentials", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(i)", + out_expires_in); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_account_complete_remove: + * @object: A #GoaAccount. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the Remove() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_account_complete_remove ( + GoaAccount *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * goa_account_complete_ensure_credentials: + * @object: A #GoaAccount. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @expires_in: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the EnsureCredentials() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_account_complete_ensure_credentials ( + GoaAccount *object, + GDBusMethodInvocation *invocation, + gint expires_in) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(i)", + expires_in)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaAccountProxy: + * + * The #GoaAccountProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaAccountProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaAccountProxy. + */ + +struct _GoaAccountProxyPrivate +{ + GData *qdata; +}; + +static void goa_account_proxy_iface_init (GoaAccountIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaAccountProxy, goa_account_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaAccountProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_ACCOUNT, goa_account_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaAccountProxy, goa_account_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_ACCOUNT, goa_account_proxy_iface_init)) + +#endif +static void +goa_account_proxy_finalize (GObject *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_account_proxy_parent_class)->finalize (object); +} + +static void +goa_account_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 22); + info = _goa_account_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_account_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.Account: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_account_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 22); + info = _goa_account_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.Account", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_account_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_account_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_account_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_ACCOUNT); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_ACCOUNT); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_account_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_account_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_account_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static const gchar * +goa_account_proxy_get_provider_type (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ProviderType"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_account_proxy_get_provider_name (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ProviderName"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_account_proxy_get_provider_icon (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ProviderIcon"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_account_proxy_get_id (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Id"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_is_locked (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "IsLocked"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_is_temporary (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "IsTemporary"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_attention_needed (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "AttentionNeeded"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_account_proxy_get_identity (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Identity"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_account_proxy_get_presentation_identity (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "PresentationIdentity"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_mail_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "MailDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_calendar_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "CalendarDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_contacts_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ContactsDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_chat_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ChatDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_documents_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "DocumentsDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_maps_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "MapsDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_music_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "MusicDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_printers_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "PrintersDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_photos_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "PhotosDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_files_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "FilesDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_ticketing_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "TicketingDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_todo_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "TodoDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_account_proxy_get_read_later_disabled (GoaAccount *object) +{ + GoaAccountProxy *proxy = GOA_ACCOUNT_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ReadLaterDisabled"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static void +goa_account_proxy_init (GoaAccountProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_account_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_ACCOUNT_PROXY, GoaAccountProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_account_interface_info ()); +} + +static void +goa_account_proxy_class_init (GoaAccountProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_account_proxy_finalize; + gobject_class->get_property = goa_account_proxy_get_property; + gobject_class->set_property = goa_account_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_account_proxy_g_signal; + proxy_class->g_properties_changed = goa_account_proxy_g_properties_changed; + + goa_account_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaAccountProxyPrivate)); +#endif +} + +static void +goa_account_proxy_iface_init (GoaAccountIface *iface) +{ + iface->get_provider_type = goa_account_proxy_get_provider_type; + iface->get_provider_name = goa_account_proxy_get_provider_name; + iface->get_provider_icon = goa_account_proxy_get_provider_icon; + iface->get_id = goa_account_proxy_get_id; + iface->get_is_locked = goa_account_proxy_get_is_locked; + iface->get_is_temporary = goa_account_proxy_get_is_temporary; + iface->get_attention_needed = goa_account_proxy_get_attention_needed; + iface->get_identity = goa_account_proxy_get_identity; + iface->get_presentation_identity = goa_account_proxy_get_presentation_identity; + iface->get_mail_disabled = goa_account_proxy_get_mail_disabled; + iface->get_calendar_disabled = goa_account_proxy_get_calendar_disabled; + iface->get_contacts_disabled = goa_account_proxy_get_contacts_disabled; + iface->get_chat_disabled = goa_account_proxy_get_chat_disabled; + iface->get_documents_disabled = goa_account_proxy_get_documents_disabled; + iface->get_maps_disabled = goa_account_proxy_get_maps_disabled; + iface->get_music_disabled = goa_account_proxy_get_music_disabled; + iface->get_printers_disabled = goa_account_proxy_get_printers_disabled; + iface->get_photos_disabled = goa_account_proxy_get_photos_disabled; + iface->get_files_disabled = goa_account_proxy_get_files_disabled; + iface->get_ticketing_disabled = goa_account_proxy_get_ticketing_disabled; + iface->get_todo_disabled = goa_account_proxy_get_todo_disabled; + iface->get_read_later_disabled = goa_account_proxy_get_read_later_disabled; +} + +/** + * goa_account_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Account. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_account_proxy_new_finish() to get the result of the operation. + * + * See goa_account_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_account_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_ACCOUNT_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Account", NULL); +} + +/** + * goa_account_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_account_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_account_proxy_new(). + * + * Returns: (transfer full) (type GoaAccountProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaAccount * +goa_account_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_ACCOUNT (ret); + else + return NULL; +} + +/** + * goa_account_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Account. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_account_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaAccountProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaAccount * +goa_account_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_ACCOUNT_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Account", NULL); + if (ret != NULL) + return GOA_ACCOUNT (ret); + else + return NULL; +} + + +/** + * goa_account_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_account_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_account_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_account_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_account_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_ACCOUNT_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Account", NULL); +} + +/** + * goa_account_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_account_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_account_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaAccountProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaAccount * +goa_account_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_ACCOUNT (ret); + else + return NULL; +} + +/** + * goa_account_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_account_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_account_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaAccountProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaAccount * +goa_account_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_ACCOUNT_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Account", NULL); + if (ret != NULL) + return GOA_ACCOUNT (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaAccountSkeleton: + * + * The #GoaAccountSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaAccountSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaAccountSkeleton. + */ + +struct _GoaAccountSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_account_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_ACCOUNT); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_ACCOUNT); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_account_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_account_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_account_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_account_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_account_skeleton_vtable = +{ + _goa_account_skeleton_handle_method_call, + _goa_account_skeleton_handle_get_property, + _goa_account_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_account_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_account_interface_info (); +} + +static GDBusInterfaceVTable * +goa_account_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_account_skeleton_vtable; +} + +static GVariant * +goa_account_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_account_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_account_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_account_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_account_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Account", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_account_emit_changed (gpointer user_data); + +static void +goa_account_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_account_emit_changed (skeleton); +} + +static void goa_account_skeleton_iface_init (GoaAccountIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaAccountSkeleton, goa_account_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaAccountSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_ACCOUNT, goa_account_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaAccountSkeleton, goa_account_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_ACCOUNT, goa_account_skeleton_iface_init)) + +#endif +static void +goa_account_skeleton_finalize (GObject *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + guint n; + for (n = 0; n < 22; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_account_skeleton_parent_class)->finalize (object); +} + +static void +goa_account_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 22); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_account_emit_changed (gpointer user_data) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.Account", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_account_schedule_emit_changed (GoaAccountSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_account_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_account_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_account_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_account_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 22); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_account_schedule_emit_changed (skeleton, _goa_account_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_account_skeleton_init (GoaAccountSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_account_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_ACCOUNT_SKELETON, GoaAccountSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 22); + g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[2], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[3], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[4], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[5], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[6], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[7], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[8], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[9], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[10], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[11], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[12], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[13], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[14], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[15], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[16], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[17], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[18], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[19], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[20], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[21], G_TYPE_BOOLEAN); +} + +static const gchar * +goa_account_skeleton_get_provider_type (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_account_skeleton_get_provider_name (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_account_skeleton_get_provider_icon (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[2])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_account_skeleton_get_id (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[3])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_is_locked (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[4])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_is_temporary (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[5])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_attention_needed (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[6])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_account_skeleton_get_identity (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[7])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_account_skeleton_get_presentation_identity (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[8])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_mail_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[9])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_calendar_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[10])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_contacts_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[11])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_chat_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[12])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_documents_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[13])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_maps_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[14])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_music_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[15])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_printers_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[16])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_photos_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[17])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_files_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[18])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_ticketing_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[19])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_todo_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[20])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_account_skeleton_get_read_later_disabled (GoaAccount *object) +{ + GoaAccountSkeleton *skeleton = GOA_ACCOUNT_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[21])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_account_skeleton_class_init (GoaAccountSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_account_skeleton_finalize; + gobject_class->get_property = goa_account_skeleton_get_property; + gobject_class->set_property = goa_account_skeleton_set_property; + gobject_class->notify = goa_account_skeleton_notify; + + + goa_account_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_account_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_account_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_account_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_account_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaAccountSkeletonPrivate)); +#endif +} + +static void +goa_account_skeleton_iface_init (GoaAccountIface *iface) +{ + iface->get_provider_type = goa_account_skeleton_get_provider_type; + iface->get_provider_name = goa_account_skeleton_get_provider_name; + iface->get_provider_icon = goa_account_skeleton_get_provider_icon; + iface->get_id = goa_account_skeleton_get_id; + iface->get_is_locked = goa_account_skeleton_get_is_locked; + iface->get_is_temporary = goa_account_skeleton_get_is_temporary; + iface->get_attention_needed = goa_account_skeleton_get_attention_needed; + iface->get_identity = goa_account_skeleton_get_identity; + iface->get_presentation_identity = goa_account_skeleton_get_presentation_identity; + iface->get_mail_disabled = goa_account_skeleton_get_mail_disabled; + iface->get_calendar_disabled = goa_account_skeleton_get_calendar_disabled; + iface->get_contacts_disabled = goa_account_skeleton_get_contacts_disabled; + iface->get_chat_disabled = goa_account_skeleton_get_chat_disabled; + iface->get_documents_disabled = goa_account_skeleton_get_documents_disabled; + iface->get_maps_disabled = goa_account_skeleton_get_maps_disabled; + iface->get_music_disabled = goa_account_skeleton_get_music_disabled; + iface->get_printers_disabled = goa_account_skeleton_get_printers_disabled; + iface->get_photos_disabled = goa_account_skeleton_get_photos_disabled; + iface->get_files_disabled = goa_account_skeleton_get_files_disabled; + iface->get_ticketing_disabled = goa_account_skeleton_get_ticketing_disabled; + iface->get_todo_disabled = goa_account_skeleton_get_todo_disabled; + iface->get_read_later_disabled = goa_account_skeleton_get_read_later_disabled; +} + +/** + * goa_account_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Account. + * + * Returns: (transfer full) (type GoaAccountSkeleton): The skeleton object. + */ +GoaAccount * +goa_account_skeleton_new (void) +{ + return GOA_ACCOUNT (g_object_new (GOA_TYPE_ACCOUNT_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.OAuth2Based + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaOAuth2Based + * @title: GoaOAuth2Based + * @short_description: Generated C code for the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.OAuth2Based ---- */ + +static const _ExtendedGDBusArgInfo _goa_oauth2_based_method_info_get_access_token_OUT_ARG_access_token = +{ + { + -1, + (gchar *) "access_token", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_oauth2_based_method_info_get_access_token_OUT_ARG_expires_in = +{ + { + -1, + (gchar *) "expires_in", + (gchar *) "i", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_oauth2_based_method_info_get_access_token_OUT_ARG_pointers[] = +{ + &_goa_oauth2_based_method_info_get_access_token_OUT_ARG_access_token, + &_goa_oauth2_based_method_info_get_access_token_OUT_ARG_expires_in, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_oauth2_based_method_info_get_access_token = +{ + { + -1, + (gchar *) "GetAccessToken", + NULL, + (GDBusArgInfo **) &_goa_oauth2_based_method_info_get_access_token_OUT_ARG_pointers, + NULL + }, + "handle-get-access-token", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _goa_oauth2_based_method_info_pointers[] = +{ + &_goa_oauth2_based_method_info_get_access_token, + NULL +}; + +static const _ExtendedGDBusPropertyInfo _goa_oauth2_based_property_info_client_id = +{ + { + -1, + (gchar *) "ClientId", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "client-id", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_oauth2_based_property_info_client_secret = +{ + { + -1, + (gchar *) "ClientSecret", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "client-secret", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_oauth2_based_property_info_pointers[] = +{ + &_goa_oauth2_based_property_info_client_id, + &_goa_oauth2_based_property_info_client_secret, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_oauth2_based_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.OAuth2Based", + (GDBusMethodInfo **) &_goa_oauth2_based_method_info_pointers, + NULL, + (GDBusPropertyInfo **) &_goa_oauth2_based_property_info_pointers, + NULL + }, + "oauth2-based", +}; + + +/** + * goa_oauth2_based_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.OAuth2Based D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_oauth2_based_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_oauth2_based_interface_info.parent_struct; +} + +/** + * goa_oauth2_based_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaOAuth2Based interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_oauth2_based_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "client-id"); + g_object_class_override_property (klass, property_id_begin++, "client-secret"); + return property_id_begin - 1; +} + + + +/** + * GoaOAuth2Based: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based. + */ + +/** + * GoaOAuth2BasedIface: + * @parent_iface: The parent interface. + * @handle_get_access_token: Handler for the #GoaOAuth2Based::handle-get-access-token signal. + * @get_client_id: Getter for the #GoaOAuth2Based:client-id property. + * @get_client_secret: Getter for the #GoaOAuth2Based:client-secret property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based. + */ + +typedef GoaOAuth2BasedIface GoaOAuth2BasedInterface; +G_DEFINE_INTERFACE (GoaOAuth2Based, goa_oauth2_based, G_TYPE_OBJECT) + +static void +goa_oauth2_based_default_init (GoaOAuth2BasedIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * GoaOAuth2Based::handle-get-access-token: + * @object: A #GoaOAuth2Based. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the GetAccessToken() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_oauth2_based_complete_get_access_token() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-get-access-token", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaOAuth2BasedIface, handle_get_access_token), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /* GObject properties for D-Bus properties: */ + /** + * GoaOAuth2Based:client-id: + * + * Represents the D-Bus property "ClientId". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("client-id", "ClientId", "ClientId", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaOAuth2Based:client-secret: + * + * Represents the D-Bus property "ClientSecret". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("client-secret", "ClientSecret", "ClientSecret", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_oauth2_based_get_client_id: (skip) + * @object: A #GoaOAuth2Based. + * + * Gets the value of the "ClientId" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_oauth2_based_dup_client_id() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_oauth2_based_get_client_id (GoaOAuth2Based *object) +{ + return GOA_OAUTH2_BASED_GET_IFACE (object)->get_client_id (object); +} + +/** + * goa_oauth2_based_dup_client_id: (skip) + * @object: A #GoaOAuth2Based. + * + * Gets a copy of the "ClientId" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_oauth2_based_dup_client_id (GoaOAuth2Based *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "client-id", &value, NULL); + return value; +} + +/** + * goa_oauth2_based_set_client_id: (skip) + * @object: A #GoaOAuth2Based. + * @value: The value to set. + * + * Sets the "ClientId" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_oauth2_based_set_client_id (GoaOAuth2Based *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "client-id", value, NULL); +} + +/** + * goa_oauth2_based_get_client_secret: (skip) + * @object: A #GoaOAuth2Based. + * + * Gets the value of the "ClientSecret" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_oauth2_based_dup_client_secret() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_oauth2_based_get_client_secret (GoaOAuth2Based *object) +{ + return GOA_OAUTH2_BASED_GET_IFACE (object)->get_client_secret (object); +} + +/** + * goa_oauth2_based_dup_client_secret: (skip) + * @object: A #GoaOAuth2Based. + * + * Gets a copy of the "ClientSecret" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_oauth2_based_dup_client_secret (GoaOAuth2Based *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "client-secret", &value, NULL); + return value; +} + +/** + * goa_oauth2_based_set_client_secret: (skip) + * @object: A #GoaOAuth2Based. + * @value: The value to set. + * + * Sets the "ClientSecret" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_oauth2_based_set_client_secret (GoaOAuth2Based *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "client-secret", value, NULL); +} + +/** + * goa_oauth2_based_call_get_access_token: + * @proxy: A #GoaOAuth2BasedProxy. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the GetAccessToken() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_oauth2_based_call_get_access_token_finish() to get the result of the operation. + * + * See goa_oauth2_based_call_get_access_token_sync() for the synchronous, blocking version of this method. + */ +void +goa_oauth2_based_call_get_access_token ( + GoaOAuth2Based *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "GetAccessToken", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_oauth2_based_call_get_access_token_finish: + * @proxy: A #GoaOAuth2BasedProxy. + * @out_access_token: (out): Return location for return parameter or %NULL to ignore. + * @out_expires_in: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_oauth2_based_call_get_access_token(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_oauth2_based_call_get_access_token(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_oauth2_based_call_get_access_token_finish ( + GoaOAuth2Based *proxy, + gchar **out_access_token, + gint *out_expires_in, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(si)", + out_access_token, + out_expires_in); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_oauth2_based_call_get_access_token_sync: + * @proxy: A #GoaOAuth2BasedProxy. + * @out_access_token: (out): Return location for return parameter or %NULL to ignore. + * @out_expires_in: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the GetAccessToken() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_oauth2_based_call_get_access_token() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_oauth2_based_call_get_access_token_sync ( + GoaOAuth2Based *proxy, + gchar **out_access_token, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "GetAccessToken", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(si)", + out_access_token, + out_expires_in); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_oauth2_based_complete_get_access_token: + * @object: A #GoaOAuth2Based. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @access_token: Parameter to return. + * @expires_in: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the GetAccessToken() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_oauth2_based_complete_get_access_token ( + GoaOAuth2Based *object, + GDBusMethodInvocation *invocation, + const gchar *access_token, + gint expires_in) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(si)", + access_token, + expires_in)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaOAuth2BasedProxy: + * + * The #GoaOAuth2BasedProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaOAuth2BasedProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaOAuth2BasedProxy. + */ + +struct _GoaOAuth2BasedProxyPrivate +{ + GData *qdata; +}; + +static void goa_oauth2_based_proxy_iface_init (GoaOAuth2BasedIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaOAuth2BasedProxy, goa_oauth2_based_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaOAuth2BasedProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH2_BASED, goa_oauth2_based_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaOAuth2BasedProxy, goa_oauth2_based_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH2_BASED, goa_oauth2_based_proxy_iface_init)) + +#endif +static void +goa_oauth2_based_proxy_finalize (GObject *object) +{ + GoaOAuth2BasedProxy *proxy = GOA_OAUTH2_BASED_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_oauth2_based_proxy_parent_class)->finalize (object); +} + +static void +goa_oauth2_based_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_oauth2_based_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_oauth2_based_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.OAuth2Based: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_oauth2_based_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_oauth2_based_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.OAuth2Based", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_oauth2_based_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_oauth2_based_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_oauth2_based_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_OAUTH2_BASED); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_OAUTH2_BASED); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_oauth2_based_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaOAuth2BasedProxy *proxy = GOA_OAUTH2_BASED_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth2_based_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth2_based_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static const gchar * +goa_oauth2_based_proxy_get_client_id (GoaOAuth2Based *object) +{ + GoaOAuth2BasedProxy *proxy = GOA_OAUTH2_BASED_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ClientId"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_oauth2_based_proxy_get_client_secret (GoaOAuth2Based *object) +{ + GoaOAuth2BasedProxy *proxy = GOA_OAUTH2_BASED_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ClientSecret"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_oauth2_based_proxy_init (GoaOAuth2BasedProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_oauth2_based_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_OAUTH2_BASED_PROXY, GoaOAuth2BasedProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_oauth2_based_interface_info ()); +} + +static void +goa_oauth2_based_proxy_class_init (GoaOAuth2BasedProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_oauth2_based_proxy_finalize; + gobject_class->get_property = goa_oauth2_based_proxy_get_property; + gobject_class->set_property = goa_oauth2_based_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_oauth2_based_proxy_g_signal; + proxy_class->g_properties_changed = goa_oauth2_based_proxy_g_properties_changed; + + goa_oauth2_based_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaOAuth2BasedProxyPrivate)); +#endif +} + +static void +goa_oauth2_based_proxy_iface_init (GoaOAuth2BasedIface *iface) +{ + iface->get_client_id = goa_oauth2_based_proxy_get_client_id; + iface->get_client_secret = goa_oauth2_based_proxy_get_client_secret; +} + +/** + * goa_oauth2_based_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_oauth2_based_proxy_new_finish() to get the result of the operation. + * + * See goa_oauth2_based_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_oauth2_based_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_OAUTH2_BASED_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuth2Based", NULL); +} + +/** + * goa_oauth2_based_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_oauth2_based_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_oauth2_based_proxy_new(). + * + * Returns: (transfer full) (type GoaOAuth2BasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuth2Based * +goa_oauth2_based_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_OAUTH2_BASED (ret); + else + return NULL; +} + +/** + * goa_oauth2_based_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_oauth2_based_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaOAuth2BasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuth2Based * +goa_oauth2_based_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_OAUTH2_BASED_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuth2Based", NULL); + if (ret != NULL) + return GOA_OAUTH2_BASED (ret); + else + return NULL; +} + + +/** + * goa_oauth2_based_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_oauth2_based_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_oauth2_based_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_oauth2_based_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_oauth2_based_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_OAUTH2_BASED_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuth2Based", NULL); +} + +/** + * goa_oauth2_based_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_oauth2_based_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_oauth2_based_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaOAuth2BasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuth2Based * +goa_oauth2_based_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_OAUTH2_BASED (ret); + else + return NULL; +} + +/** + * goa_oauth2_based_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_oauth2_based_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_oauth2_based_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaOAuth2BasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuth2Based * +goa_oauth2_based_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_OAUTH2_BASED_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuth2Based", NULL); + if (ret != NULL) + return GOA_OAUTH2_BASED (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaOAuth2BasedSkeleton: + * + * The #GoaOAuth2BasedSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaOAuth2BasedSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaOAuth2BasedSkeleton. + */ + +struct _GoaOAuth2BasedSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_oauth2_based_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_OAUTH2_BASED); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_OAUTH2_BASED); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_oauth2_based_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth2_based_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_oauth2_based_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth2_based_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_oauth2_based_skeleton_vtable = +{ + _goa_oauth2_based_skeleton_handle_method_call, + _goa_oauth2_based_skeleton_handle_get_property, + _goa_oauth2_based_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_oauth2_based_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_oauth2_based_interface_info (); +} + +static GDBusInterfaceVTable * +goa_oauth2_based_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_oauth2_based_skeleton_vtable; +} + +static GVariant * +goa_oauth2_based_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_oauth2_based_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_oauth2_based_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_oauth2_based_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_oauth2_based_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.OAuth2Based", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_oauth2_based_emit_changed (gpointer user_data); + +static void +goa_oauth2_based_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_oauth2_based_emit_changed (skeleton); +} + +static void goa_oauth2_based_skeleton_iface_init (GoaOAuth2BasedIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaOAuth2BasedSkeleton, goa_oauth2_based_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaOAuth2BasedSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH2_BASED, goa_oauth2_based_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaOAuth2BasedSkeleton, goa_oauth2_based_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH2_BASED, goa_oauth2_based_skeleton_iface_init)) + +#endif +static void +goa_oauth2_based_skeleton_finalize (GObject *object) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (object); + guint n; + for (n = 0; n < 2; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_oauth2_based_skeleton_parent_class)->finalize (object); +} + +static void +goa_oauth2_based_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_oauth2_based_emit_changed (gpointer user_data) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.OAuth2Based", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_oauth2_based_schedule_emit_changed (GoaOAuth2BasedSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_oauth2_based_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_oauth2_based_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_oauth2_based_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_oauth2_based_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_oauth2_based_schedule_emit_changed (skeleton, _goa_oauth2_based_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_oauth2_based_skeleton_init (GoaOAuth2BasedSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_oauth2_based_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_OAUTH2_BASED_SKELETON, GoaOAuth2BasedSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 2); + g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); +} + +static const gchar * +goa_oauth2_based_skeleton_get_client_id (GoaOAuth2Based *object) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_oauth2_based_skeleton_get_client_secret (GoaOAuth2Based *object) +{ + GoaOAuth2BasedSkeleton *skeleton = GOA_OAUTH2_BASED_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_oauth2_based_skeleton_class_init (GoaOAuth2BasedSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_oauth2_based_skeleton_finalize; + gobject_class->get_property = goa_oauth2_based_skeleton_get_property; + gobject_class->set_property = goa_oauth2_based_skeleton_set_property; + gobject_class->notify = goa_oauth2_based_skeleton_notify; + + + goa_oauth2_based_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_oauth2_based_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_oauth2_based_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_oauth2_based_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_oauth2_based_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaOAuth2BasedSkeletonPrivate)); +#endif +} + +static void +goa_oauth2_based_skeleton_iface_init (GoaOAuth2BasedIface *iface) +{ + iface->get_client_id = goa_oauth2_based_skeleton_get_client_id; + iface->get_client_secret = goa_oauth2_based_skeleton_get_client_secret; +} + +/** + * goa_oauth2_based_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based. + * + * Returns: (transfer full) (type GoaOAuth2BasedSkeleton): The skeleton object. + */ +GoaOAuth2Based * +goa_oauth2_based_skeleton_new (void) +{ + return GOA_OAUTH2_BASED (g_object_new (GOA_TYPE_OAUTH2_BASED_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.OAuthBased + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaOAuthBased + * @title: GoaOAuthBased + * @short_description: Generated C code for the org.gnome.OnlineAccounts.OAuthBased D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.OAuthBased D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.OAuthBased ---- */ + +static const _ExtendedGDBusArgInfo _goa_oauth_based_method_info_get_access_token_OUT_ARG_access_token = +{ + { + -1, + (gchar *) "access_token", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_oauth_based_method_info_get_access_token_OUT_ARG_access_token_secret = +{ + { + -1, + (gchar *) "access_token_secret", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_oauth_based_method_info_get_access_token_OUT_ARG_expires_in = +{ + { + -1, + (gchar *) "expires_in", + (gchar *) "i", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_oauth_based_method_info_get_access_token_OUT_ARG_pointers[] = +{ + &_goa_oauth_based_method_info_get_access_token_OUT_ARG_access_token, + &_goa_oauth_based_method_info_get_access_token_OUT_ARG_access_token_secret, + &_goa_oauth_based_method_info_get_access_token_OUT_ARG_expires_in, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_oauth_based_method_info_get_access_token = +{ + { + -1, + (gchar *) "GetAccessToken", + NULL, + (GDBusArgInfo **) &_goa_oauth_based_method_info_get_access_token_OUT_ARG_pointers, + NULL + }, + "handle-get-access-token", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _goa_oauth_based_method_info_pointers[] = +{ + &_goa_oauth_based_method_info_get_access_token, + NULL +}; + +static const _ExtendedGDBusPropertyInfo _goa_oauth_based_property_info_consumer_key = +{ + { + -1, + (gchar *) "ConsumerKey", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "consumer-key", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_oauth_based_property_info_consumer_secret = +{ + { + -1, + (gchar *) "ConsumerSecret", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "consumer-secret", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_oauth_based_property_info_pointers[] = +{ + &_goa_oauth_based_property_info_consumer_key, + &_goa_oauth_based_property_info_consumer_secret, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_oauth_based_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.OAuthBased", + (GDBusMethodInfo **) &_goa_oauth_based_method_info_pointers, + NULL, + (GDBusPropertyInfo **) &_goa_oauth_based_property_info_pointers, + NULL + }, + "oauth-based", +}; + + +/** + * goa_oauth_based_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.OAuthBased D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_oauth_based_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_oauth_based_interface_info.parent_struct; +} + +/** + * goa_oauth_based_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaOAuthBased interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_oauth_based_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "consumer-key"); + g_object_class_override_property (klass, property_id_begin++, "consumer-secret"); + return property_id_begin - 1; +} + + + +/** + * GoaOAuthBased: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased. + */ + +/** + * GoaOAuthBasedIface: + * @parent_iface: The parent interface. + * @handle_get_access_token: Handler for the #GoaOAuthBased::handle-get-access-token signal. + * @get_consumer_key: Getter for the #GoaOAuthBased:consumer-key property. + * @get_consumer_secret: Getter for the #GoaOAuthBased:consumer-secret property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased. + */ + +typedef GoaOAuthBasedIface GoaOAuthBasedInterface; +G_DEFINE_INTERFACE (GoaOAuthBased, goa_oauth_based, G_TYPE_OBJECT) + +static void +goa_oauth_based_default_init (GoaOAuthBasedIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * GoaOAuthBased::handle-get-access-token: + * @object: A #GoaOAuthBased. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the GetAccessToken() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_oauth_based_complete_get_access_token() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-get-access-token", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaOAuthBasedIface, handle_get_access_token), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /* GObject properties for D-Bus properties: */ + /** + * GoaOAuthBased:consumer-key: + * + * Represents the D-Bus property "ConsumerKey". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("consumer-key", "ConsumerKey", "ConsumerKey", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaOAuthBased:consumer-secret: + * + * Represents the D-Bus property "ConsumerSecret". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("consumer-secret", "ConsumerSecret", "ConsumerSecret", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_oauth_based_get_consumer_key: (skip) + * @object: A #GoaOAuthBased. + * + * Gets the value of the "ConsumerKey" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_oauth_based_dup_consumer_key() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_oauth_based_get_consumer_key (GoaOAuthBased *object) +{ + return GOA_OAUTH_BASED_GET_IFACE (object)->get_consumer_key (object); +} + +/** + * goa_oauth_based_dup_consumer_key: (skip) + * @object: A #GoaOAuthBased. + * + * Gets a copy of the "ConsumerKey" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_oauth_based_dup_consumer_key (GoaOAuthBased *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "consumer-key", &value, NULL); + return value; +} + +/** + * goa_oauth_based_set_consumer_key: (skip) + * @object: A #GoaOAuthBased. + * @value: The value to set. + * + * Sets the "ConsumerKey" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_oauth_based_set_consumer_key (GoaOAuthBased *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "consumer-key", value, NULL); +} + +/** + * goa_oauth_based_get_consumer_secret: (skip) + * @object: A #GoaOAuthBased. + * + * Gets the value of the "ConsumerSecret" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_oauth_based_dup_consumer_secret() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_oauth_based_get_consumer_secret (GoaOAuthBased *object) +{ + return GOA_OAUTH_BASED_GET_IFACE (object)->get_consumer_secret (object); +} + +/** + * goa_oauth_based_dup_consumer_secret: (skip) + * @object: A #GoaOAuthBased. + * + * Gets a copy of the "ConsumerSecret" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_oauth_based_dup_consumer_secret (GoaOAuthBased *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "consumer-secret", &value, NULL); + return value; +} + +/** + * goa_oauth_based_set_consumer_secret: (skip) + * @object: A #GoaOAuthBased. + * @value: The value to set. + * + * Sets the "ConsumerSecret" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_oauth_based_set_consumer_secret (GoaOAuthBased *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "consumer-secret", value, NULL); +} + +/** + * goa_oauth_based_call_get_access_token: + * @proxy: A #GoaOAuthBasedProxy. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the GetAccessToken() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_oauth_based_call_get_access_token_finish() to get the result of the operation. + * + * See goa_oauth_based_call_get_access_token_sync() for the synchronous, blocking version of this method. + */ +void +goa_oauth_based_call_get_access_token ( + GoaOAuthBased *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "GetAccessToken", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_oauth_based_call_get_access_token_finish: + * @proxy: A #GoaOAuthBasedProxy. + * @out_access_token: (out): Return location for return parameter or %NULL to ignore. + * @out_access_token_secret: (out): Return location for return parameter or %NULL to ignore. + * @out_expires_in: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_oauth_based_call_get_access_token(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_oauth_based_call_get_access_token(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_oauth_based_call_get_access_token_finish ( + GoaOAuthBased *proxy, + gchar **out_access_token, + gchar **out_access_token_secret, + gint *out_expires_in, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(ssi)", + out_access_token, + out_access_token_secret, + out_expires_in); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_oauth_based_call_get_access_token_sync: + * @proxy: A #GoaOAuthBasedProxy. + * @out_access_token: (out): Return location for return parameter or %NULL to ignore. + * @out_access_token_secret: (out): Return location for return parameter or %NULL to ignore. + * @out_expires_in: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the GetAccessToken() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_oauth_based_call_get_access_token() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_oauth_based_call_get_access_token_sync ( + GoaOAuthBased *proxy, + gchar **out_access_token, + gchar **out_access_token_secret, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "GetAccessToken", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(ssi)", + out_access_token, + out_access_token_secret, + out_expires_in); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_oauth_based_complete_get_access_token: + * @object: A #GoaOAuthBased. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @access_token: Parameter to return. + * @access_token_secret: Parameter to return. + * @expires_in: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the GetAccessToken() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_oauth_based_complete_get_access_token ( + GoaOAuthBased *object, + GDBusMethodInvocation *invocation, + const gchar *access_token, + const gchar *access_token_secret, + gint expires_in) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(ssi)", + access_token, + access_token_secret, + expires_in)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaOAuthBasedProxy: + * + * The #GoaOAuthBasedProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaOAuthBasedProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaOAuthBasedProxy. + */ + +struct _GoaOAuthBasedProxyPrivate +{ + GData *qdata; +}; + +static void goa_oauth_based_proxy_iface_init (GoaOAuthBasedIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaOAuthBasedProxy, goa_oauth_based_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaOAuthBasedProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH_BASED, goa_oauth_based_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaOAuthBasedProxy, goa_oauth_based_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH_BASED, goa_oauth_based_proxy_iface_init)) + +#endif +static void +goa_oauth_based_proxy_finalize (GObject *object) +{ + GoaOAuthBasedProxy *proxy = GOA_OAUTH_BASED_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_oauth_based_proxy_parent_class)->finalize (object); +} + +static void +goa_oauth_based_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_oauth_based_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_oauth_based_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.OAuthBased: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_oauth_based_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_oauth_based_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.OAuthBased", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_oauth_based_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_oauth_based_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_oauth_based_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_OAUTH_BASED); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_OAUTH_BASED); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_oauth_based_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaOAuthBasedProxy *proxy = GOA_OAUTH_BASED_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth_based_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth_based_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static const gchar * +goa_oauth_based_proxy_get_consumer_key (GoaOAuthBased *object) +{ + GoaOAuthBasedProxy *proxy = GOA_OAUTH_BASED_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ConsumerKey"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_oauth_based_proxy_get_consumer_secret (GoaOAuthBased *object) +{ + GoaOAuthBasedProxy *proxy = GOA_OAUTH_BASED_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ConsumerSecret"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_oauth_based_proxy_init (GoaOAuthBasedProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_oauth_based_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_OAUTH_BASED_PROXY, GoaOAuthBasedProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_oauth_based_interface_info ()); +} + +static void +goa_oauth_based_proxy_class_init (GoaOAuthBasedProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_oauth_based_proxy_finalize; + gobject_class->get_property = goa_oauth_based_proxy_get_property; + gobject_class->set_property = goa_oauth_based_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_oauth_based_proxy_g_signal; + proxy_class->g_properties_changed = goa_oauth_based_proxy_g_properties_changed; + + goa_oauth_based_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaOAuthBasedProxyPrivate)); +#endif +} + +static void +goa_oauth_based_proxy_iface_init (GoaOAuthBasedIface *iface) +{ + iface->get_consumer_key = goa_oauth_based_proxy_get_consumer_key; + iface->get_consumer_secret = goa_oauth_based_proxy_get_consumer_secret; +} + +/** + * goa_oauth_based_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_oauth_based_proxy_new_finish() to get the result of the operation. + * + * See goa_oauth_based_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_oauth_based_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_OAUTH_BASED_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuthBased", NULL); +} + +/** + * goa_oauth_based_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_oauth_based_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_oauth_based_proxy_new(). + * + * Returns: (transfer full) (type GoaOAuthBasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuthBased * +goa_oauth_based_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_OAUTH_BASED (ret); + else + return NULL; +} + +/** + * goa_oauth_based_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_oauth_based_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaOAuthBasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuthBased * +goa_oauth_based_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_OAUTH_BASED_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuthBased", NULL); + if (ret != NULL) + return GOA_OAUTH_BASED (ret); + else + return NULL; +} + + +/** + * goa_oauth_based_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_oauth_based_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_oauth_based_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_oauth_based_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_oauth_based_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_OAUTH_BASED_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuthBased", NULL); +} + +/** + * goa_oauth_based_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_oauth_based_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_oauth_based_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaOAuthBasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuthBased * +goa_oauth_based_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_OAUTH_BASED (ret); + else + return NULL; +} + +/** + * goa_oauth_based_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_oauth_based_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_oauth_based_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaOAuthBasedProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaOAuthBased * +goa_oauth_based_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_OAUTH_BASED_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.OAuthBased", NULL); + if (ret != NULL) + return GOA_OAUTH_BASED (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaOAuthBasedSkeleton: + * + * The #GoaOAuthBasedSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaOAuthBasedSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaOAuthBasedSkeleton. + */ + +struct _GoaOAuthBasedSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_oauth_based_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_OAUTH_BASED); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_OAUTH_BASED); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_oauth_based_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth_based_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_oauth_based_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_oauth_based_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_oauth_based_skeleton_vtable = +{ + _goa_oauth_based_skeleton_handle_method_call, + _goa_oauth_based_skeleton_handle_get_property, + _goa_oauth_based_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_oauth_based_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_oauth_based_interface_info (); +} + +static GDBusInterfaceVTable * +goa_oauth_based_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_oauth_based_skeleton_vtable; +} + +static GVariant * +goa_oauth_based_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_oauth_based_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_oauth_based_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_oauth_based_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_oauth_based_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.OAuthBased", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_oauth_based_emit_changed (gpointer user_data); + +static void +goa_oauth_based_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_oauth_based_emit_changed (skeleton); +} + +static void goa_oauth_based_skeleton_iface_init (GoaOAuthBasedIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaOAuthBasedSkeleton, goa_oauth_based_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaOAuthBasedSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH_BASED, goa_oauth_based_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaOAuthBasedSkeleton, goa_oauth_based_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_OAUTH_BASED, goa_oauth_based_skeleton_iface_init)) + +#endif +static void +goa_oauth_based_skeleton_finalize (GObject *object) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (object); + guint n; + for (n = 0; n < 2; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_oauth_based_skeleton_parent_class)->finalize (object); +} + +static void +goa_oauth_based_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_oauth_based_emit_changed (gpointer user_data) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.OAuthBased", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_oauth_based_schedule_emit_changed (GoaOAuthBasedSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_oauth_based_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_oauth_based_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_oauth_based_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_oauth_based_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_oauth_based_schedule_emit_changed (skeleton, _goa_oauth_based_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_oauth_based_skeleton_init (GoaOAuthBasedSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_oauth_based_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_OAUTH_BASED_SKELETON, GoaOAuthBasedSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 2); + g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); +} + +static const gchar * +goa_oauth_based_skeleton_get_consumer_key (GoaOAuthBased *object) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_oauth_based_skeleton_get_consumer_secret (GoaOAuthBased *object) +{ + GoaOAuthBasedSkeleton *skeleton = GOA_OAUTH_BASED_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_oauth_based_skeleton_class_init (GoaOAuthBasedSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_oauth_based_skeleton_finalize; + gobject_class->get_property = goa_oauth_based_skeleton_get_property; + gobject_class->set_property = goa_oauth_based_skeleton_set_property; + gobject_class->notify = goa_oauth_based_skeleton_notify; + + + goa_oauth_based_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_oauth_based_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_oauth_based_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_oauth_based_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_oauth_based_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaOAuthBasedSkeletonPrivate)); +#endif +} + +static void +goa_oauth_based_skeleton_iface_init (GoaOAuthBasedIface *iface) +{ + iface->get_consumer_key = goa_oauth_based_skeleton_get_consumer_key; + iface->get_consumer_secret = goa_oauth_based_skeleton_get_consumer_secret; +} + +/** + * goa_oauth_based_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased. + * + * Returns: (transfer full) (type GoaOAuthBasedSkeleton): The skeleton object. + */ +GoaOAuthBased * +goa_oauth_based_skeleton_new (void) +{ + return GOA_OAUTH_BASED (g_object_new (GOA_TYPE_OAUTH_BASED_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.PasswordBased + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaPasswordBased + * @title: GoaPasswordBased + * @short_description: Generated C code for the org.gnome.OnlineAccounts.PasswordBased D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.PasswordBased D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.PasswordBased ---- */ + +static const _ExtendedGDBusArgInfo _goa_password_based_method_info_get_password_IN_ARG_id = +{ + { + -1, + (gchar *) "id", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_password_based_method_info_get_password_IN_ARG_pointers[] = +{ + &_goa_password_based_method_info_get_password_IN_ARG_id, + NULL +}; + +static const _ExtendedGDBusArgInfo _goa_password_based_method_info_get_password_OUT_ARG_password = +{ + { + -1, + (gchar *) "password", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_password_based_method_info_get_password_OUT_ARG_pointers[] = +{ + &_goa_password_based_method_info_get_password_OUT_ARG_password, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_password_based_method_info_get_password = +{ + { + -1, + (gchar *) "GetPassword", + (GDBusArgInfo **) &_goa_password_based_method_info_get_password_IN_ARG_pointers, + (GDBusArgInfo **) &_goa_password_based_method_info_get_password_OUT_ARG_pointers, + NULL + }, + "handle-get-password", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _goa_password_based_method_info_pointers[] = +{ + &_goa_password_based_method_info_get_password, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_password_based_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.PasswordBased", + (GDBusMethodInfo **) &_goa_password_based_method_info_pointers, + NULL, + NULL, + NULL + }, + "password-based", +}; + + +/** + * goa_password_based_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.PasswordBased D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.6.0 + */ +GDBusInterfaceInfo * +goa_password_based_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_password_based_interface_info.parent_struct; +} + +/** + * goa_password_based_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaPasswordBased interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.6.0 + */ +guint +goa_password_based_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaPasswordBased: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased. + * + * Since: 3.6.0 + */ + +/** + * GoaPasswordBasedIface: + * @parent_iface: The parent interface. + * @handle_get_password: Handler for the #GoaPasswordBased::handle-get-password signal. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased. + * + * Since: 3.6.0 + */ + +typedef GoaPasswordBasedIface GoaPasswordBasedInterface; +G_DEFINE_INTERFACE (GoaPasswordBased, goa_password_based, G_TYPE_OBJECT) + +static void +goa_password_based_default_init (GoaPasswordBasedIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * GoaPasswordBased::handle-get-password: + * @object: A #GoaPasswordBased. + * @invocation: A #GDBusMethodInvocation. + * @arg_id: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the GetPassword() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_password_based_complete_get_password() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + * + * Since: 3.6.0 + */ + g_signal_new ("handle-get-password", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaPasswordBasedIface, handle_get_password), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 2, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); + +} + +/** + * goa_password_based_call_get_password: + * @proxy: A #GoaPasswordBasedProxy. + * @arg_id: Argument to pass with the method invocation. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the GetPassword() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_password_based_call_get_password_finish() to get the result of the operation. + * + * See goa_password_based_call_get_password_sync() for the synchronous, blocking version of this method. + * + * Since: 3.6.0 + */ +void +goa_password_based_call_get_password ( + GoaPasswordBased *proxy, + const gchar *arg_id, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "GetPassword", + g_variant_new ("(s)", + arg_id), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_password_based_call_get_password_finish: + * @proxy: A #GoaPasswordBasedProxy. + * @out_password: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_password_based_call_get_password(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_password_based_call_get_password(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + * + * Since: 3.6.0 + */ +gboolean +goa_password_based_call_get_password_finish ( + GoaPasswordBased *proxy, + gchar **out_password, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(s)", + out_password); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_password_based_call_get_password_sync: + * @proxy: A #GoaPasswordBasedProxy. + * @arg_id: Argument to pass with the method invocation. + * @out_password: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the GetPassword() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_password_based_call_get_password() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + * + * Since: 3.6.0 + */ +gboolean +goa_password_based_call_get_password_sync ( + GoaPasswordBased *proxy, + const gchar *arg_id, + gchar **out_password, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "GetPassword", + g_variant_new ("(s)", + arg_id), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(s)", + out_password); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_password_based_complete_get_password: + * @object: A #GoaPasswordBased. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @password: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the GetPassword() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + * + * Since: 3.6.0 + */ +void +goa_password_based_complete_get_password ( + GoaPasswordBased *object, + GDBusMethodInvocation *invocation, + const gchar *password) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", + password)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaPasswordBasedProxy: + * + * The #GoaPasswordBasedProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.6.0 + */ + +/** + * GoaPasswordBasedProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaPasswordBasedProxy. + * + * Since: 3.6.0 + */ + +struct _GoaPasswordBasedProxyPrivate +{ + GData *qdata; +}; + +static void goa_password_based_proxy_iface_init (GoaPasswordBasedIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaPasswordBasedProxy, goa_password_based_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaPasswordBasedProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_PASSWORD_BASED, goa_password_based_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaPasswordBasedProxy, goa_password_based_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_PASSWORD_BASED, goa_password_based_proxy_iface_init)) + +#endif +static void +goa_password_based_proxy_finalize (GObject *object) +{ + GoaPasswordBasedProxy *proxy = GOA_PASSWORD_BASED_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_password_based_proxy_parent_class)->finalize (object); +} + +static void +goa_password_based_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_password_based_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_password_based_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_password_based_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_PASSWORD_BASED); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_PASSWORD_BASED); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_password_based_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaPasswordBasedProxy *proxy = GOA_PASSWORD_BASED_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_password_based_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_password_based_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_password_based_proxy_init (GoaPasswordBasedProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_password_based_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_PASSWORD_BASED_PROXY, GoaPasswordBasedProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_password_based_interface_info ()); +} + +static void +goa_password_based_proxy_class_init (GoaPasswordBasedProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_password_based_proxy_finalize; + gobject_class->get_property = goa_password_based_proxy_get_property; + gobject_class->set_property = goa_password_based_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_password_based_proxy_g_signal; + proxy_class->g_properties_changed = goa_password_based_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaPasswordBasedProxyPrivate)); +#endif +} + +static void +goa_password_based_proxy_iface_init (GoaPasswordBasedIface *iface) +{ +} + +/** + * goa_password_based_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_password_based_proxy_new_finish() to get the result of the operation. + * + * See goa_password_based_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.6.0 + */ +void +goa_password_based_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_PASSWORD_BASED_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.PasswordBased", NULL); +} + +/** + * goa_password_based_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_password_based_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_password_based_proxy_new(). + * + * Returns: (transfer full) (type GoaPasswordBasedProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaPasswordBased * +goa_password_based_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_PASSWORD_BASED (ret); + else + return NULL; +} + +/** + * goa_password_based_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_password_based_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaPasswordBasedProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaPasswordBased * +goa_password_based_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_PASSWORD_BASED_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.PasswordBased", NULL); + if (ret != NULL) + return GOA_PASSWORD_BASED (ret); + else + return NULL; +} + + +/** + * goa_password_based_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_password_based_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_password_based_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_password_based_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.6.0 + */ +void +goa_password_based_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_PASSWORD_BASED_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.PasswordBased", NULL); +} + +/** + * goa_password_based_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_password_based_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_password_based_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaPasswordBasedProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaPasswordBased * +goa_password_based_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_PASSWORD_BASED (ret); + else + return NULL; +} + +/** + * goa_password_based_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_password_based_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_password_based_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaPasswordBasedProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaPasswordBased * +goa_password_based_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_PASSWORD_BASED_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.PasswordBased", NULL); + if (ret != NULL) + return GOA_PASSWORD_BASED (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaPasswordBasedSkeleton: + * + * The #GoaPasswordBasedSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.6.0 + */ + +/** + * GoaPasswordBasedSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaPasswordBasedSkeleton. + * + * Since: 3.6.0 + */ + +struct _GoaPasswordBasedSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_password_based_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaPasswordBasedSkeleton *skeleton = GOA_PASSWORD_BASED_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_PASSWORD_BASED); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_PASSWORD_BASED); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_password_based_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaPasswordBasedSkeleton *skeleton = GOA_PASSWORD_BASED_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_password_based_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_password_based_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaPasswordBasedSkeleton *skeleton = GOA_PASSWORD_BASED_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_password_based_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_password_based_skeleton_vtable = +{ + _goa_password_based_skeleton_handle_method_call, + _goa_password_based_skeleton_handle_get_property, + _goa_password_based_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_password_based_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_password_based_interface_info (); +} + +static GDBusInterfaceVTable * +goa_password_based_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_password_based_skeleton_vtable; +} + +static GVariant * +goa_password_based_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaPasswordBasedSkeleton *skeleton = GOA_PASSWORD_BASED_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_password_based_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_password_based_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_password_based_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_password_based_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.PasswordBased", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_password_based_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_password_based_skeleton_iface_init (GoaPasswordBasedIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaPasswordBasedSkeleton, goa_password_based_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaPasswordBasedSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_PASSWORD_BASED, goa_password_based_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaPasswordBasedSkeleton, goa_password_based_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_PASSWORD_BASED, goa_password_based_skeleton_iface_init)) + +#endif +static void +goa_password_based_skeleton_finalize (GObject *object) +{ + GoaPasswordBasedSkeleton *skeleton = GOA_PASSWORD_BASED_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_password_based_skeleton_parent_class)->finalize (object); +} + +static void +goa_password_based_skeleton_init (GoaPasswordBasedSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_password_based_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_PASSWORD_BASED_SKELETON, GoaPasswordBasedSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_password_based_skeleton_class_init (GoaPasswordBasedSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_password_based_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_password_based_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_password_based_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_password_based_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_password_based_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaPasswordBasedSkeletonPrivate)); +#endif +} + +static void +goa_password_based_skeleton_iface_init (GoaPasswordBasedIface *iface) +{ +} + +/** + * goa_password_based_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased. + * + * Returns: (transfer full) (type GoaPasswordBasedSkeleton): The skeleton object. + * + * Since: 3.6.0 + */ +GoaPasswordBased * +goa_password_based_skeleton_new (void) +{ + return GOA_PASSWORD_BASED (g_object_new (GOA_TYPE_PASSWORD_BASED_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Manager + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaManager + * @title: GoaManager + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Manager D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Manager D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Manager ---- */ + +static const _ExtendedGDBusArgInfo _goa_manager_method_info_add_account_IN_ARG_provider = +{ + { + -1, + (gchar *) "provider", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_manager_method_info_add_account_IN_ARG_identity = +{ + { + -1, + (gchar *) "identity", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_manager_method_info_add_account_IN_ARG_presentation_identity = +{ + { + -1, + (gchar *) "presentation_identity", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_manager_method_info_add_account_IN_ARG_credentials = +{ + { + -1, + (gchar *) "credentials", + (gchar *) "a{sv}", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_manager_method_info_add_account_IN_ARG_details = +{ + { + -1, + (gchar *) "details", + (gchar *) "a{ss}", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_manager_method_info_add_account_IN_ARG_pointers[] = +{ + &_goa_manager_method_info_add_account_IN_ARG_provider, + &_goa_manager_method_info_add_account_IN_ARG_identity, + &_goa_manager_method_info_add_account_IN_ARG_presentation_identity, + &_goa_manager_method_info_add_account_IN_ARG_credentials, + &_goa_manager_method_info_add_account_IN_ARG_details, + NULL +}; + +static const _ExtendedGDBusArgInfo _goa_manager_method_info_add_account_OUT_ARG_account_object_path = +{ + { + -1, + (gchar *) "account_object_path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_manager_method_info_add_account_OUT_ARG_pointers[] = +{ + &_goa_manager_method_info_add_account_OUT_ARG_account_object_path, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_manager_method_info_add_account = +{ + { + -1, + (gchar *) "AddAccount", + (GDBusArgInfo **) &_goa_manager_method_info_add_account_IN_ARG_pointers, + (GDBusArgInfo **) &_goa_manager_method_info_add_account_OUT_ARG_pointers, + NULL + }, + "handle-add-account", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _goa_manager_method_info_pointers[] = +{ + &_goa_manager_method_info_add_account, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_manager_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Manager", + (GDBusMethodInfo **) &_goa_manager_method_info_pointers, + NULL, + NULL, + NULL + }, + "manager", +}; + + +/** + * goa_manager_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Manager D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_manager_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_manager_interface_info.parent_struct; +} + +/** + * goa_manager_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaManager interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_manager_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaManager: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Manager. + */ + +/** + * GoaManagerIface: + * @parent_iface: The parent interface. + * @handle_add_account: Handler for the #GoaManager::handle-add-account signal. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Manager. + */ + +typedef GoaManagerIface GoaManagerInterface; +G_DEFINE_INTERFACE (GoaManager, goa_manager, G_TYPE_OBJECT) + +static void +goa_manager_default_init (GoaManagerIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * GoaManager::handle-add-account: + * @object: A #GoaManager. + * @invocation: A #GDBusMethodInvocation. + * @arg_provider: Argument passed by remote caller. + * @arg_identity: Argument passed by remote caller. + * @arg_presentation_identity: Argument passed by remote caller. + * @arg_credentials: Argument passed by remote caller. + * @arg_details: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the AddAccount() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_manager_complete_add_account() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-add-account", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaManagerIface, handle_add_account), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 6, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_VARIANT); + +} + +/** + * goa_manager_call_add_account: + * @proxy: A #GoaManagerProxy. + * @arg_provider: Argument to pass with the method invocation. + * @arg_identity: Argument to pass with the method invocation. + * @arg_presentation_identity: Argument to pass with the method invocation. + * @arg_credentials: Argument to pass with the method invocation. + * @arg_details: Argument to pass with the method invocation. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the AddAccount() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_manager_call_add_account_finish() to get the result of the operation. + * + * See goa_manager_call_add_account_sync() for the synchronous, blocking version of this method. + */ +void +goa_manager_call_add_account ( + GoaManager *proxy, + const gchar *arg_provider, + const gchar *arg_identity, + const gchar *arg_presentation_identity, + GVariant *arg_credentials, + GVariant *arg_details, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "AddAccount", + g_variant_new ("(sss@a{sv}@a{ss})", + arg_provider, + arg_identity, + arg_presentation_identity, + arg_credentials, + arg_details), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_manager_call_add_account_finish: + * @proxy: A #GoaManagerProxy. + * @out_account_object_path: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_manager_call_add_account(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_manager_call_add_account(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_manager_call_add_account_finish ( + GoaManager *proxy, + gchar **out_account_object_path, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(o)", + out_account_object_path); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_manager_call_add_account_sync: + * @proxy: A #GoaManagerProxy. + * @arg_provider: Argument to pass with the method invocation. + * @arg_identity: Argument to pass with the method invocation. + * @arg_presentation_identity: Argument to pass with the method invocation. + * @arg_credentials: Argument to pass with the method invocation. + * @arg_details: Argument to pass with the method invocation. + * @out_account_object_path: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the AddAccount() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_manager_call_add_account() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_manager_call_add_account_sync ( + GoaManager *proxy, + const gchar *arg_provider, + const gchar *arg_identity, + const gchar *arg_presentation_identity, + GVariant *arg_credentials, + GVariant *arg_details, + gchar **out_account_object_path, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "AddAccount", + g_variant_new ("(sss@a{sv}@a{ss})", + arg_provider, + arg_identity, + arg_presentation_identity, + arg_credentials, + arg_details), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(o)", + out_account_object_path); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_manager_complete_add_account: + * @object: A #GoaManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @account_object_path: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the AddAccount() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_manager_complete_add_account ( + GoaManager *object, + GDBusMethodInvocation *invocation, + const gchar *account_object_path) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(o)", + account_object_path)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaManagerProxy: + * + * The #GoaManagerProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaManagerProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaManagerProxy. + */ + +struct _GoaManagerProxyPrivate +{ + GData *qdata; +}; + +static void goa_manager_proxy_iface_init (GoaManagerIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaManagerProxy, goa_manager_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaManagerProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MANAGER, goa_manager_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaManagerProxy, goa_manager_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MANAGER, goa_manager_proxy_iface_init)) + +#endif +static void +goa_manager_proxy_finalize (GObject *object) +{ + GoaManagerProxy *proxy = GOA_MANAGER_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_manager_proxy_parent_class)->finalize (object); +} + +static void +goa_manager_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_manager_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_manager_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_manager_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_MANAGER); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MANAGER); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_manager_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaManagerProxy *proxy = GOA_MANAGER_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_manager_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_manager_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_manager_proxy_init (GoaManagerProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_manager_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_MANAGER_PROXY, GoaManagerProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_manager_interface_info ()); +} + +static void +goa_manager_proxy_class_init (GoaManagerProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_manager_proxy_finalize; + gobject_class->get_property = goa_manager_proxy_get_property; + gobject_class->set_property = goa_manager_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_manager_proxy_g_signal; + proxy_class->g_properties_changed = goa_manager_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaManagerProxyPrivate)); +#endif +} + +static void +goa_manager_proxy_iface_init (GoaManagerIface *iface) +{ +} + +/** + * goa_manager_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Manager. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_manager_proxy_new_finish() to get the result of the operation. + * + * See goa_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_manager_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Manager", NULL); +} + +/** + * goa_manager_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_manager_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_manager_proxy_new(). + * + * Returns: (transfer full) (type GoaManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaManager * +goa_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MANAGER (ret); + else + return NULL; +} + +/** + * goa_manager_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Manager. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_manager_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaManager * +goa_manager_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Manager", NULL); + if (ret != NULL) + return GOA_MANAGER (ret); + else + return NULL; +} + + +/** + * goa_manager_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_manager_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_manager_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_manager_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Manager", NULL); +} + +/** + * goa_manager_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_manager_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_manager_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaManager * +goa_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MANAGER (ret); + else + return NULL; +} + +/** + * goa_manager_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_manager_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaManager * +goa_manager_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Manager", NULL); + if (ret != NULL) + return GOA_MANAGER (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaManagerSkeleton: + * + * The #GoaManagerSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaManagerSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaManagerSkeleton. + */ + +struct _GoaManagerSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_manager_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaManagerSkeleton *skeleton = GOA_MANAGER_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_MANAGER); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MANAGER); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_manager_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaManagerSkeleton *skeleton = GOA_MANAGER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_manager_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_manager_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaManagerSkeleton *skeleton = GOA_MANAGER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_manager_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_manager_skeleton_vtable = +{ + _goa_manager_skeleton_handle_method_call, + _goa_manager_skeleton_handle_get_property, + _goa_manager_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_manager_interface_info (); +} + +static GDBusInterfaceVTable * +goa_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_manager_skeleton_vtable; +} + +static GVariant * +goa_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaManagerSkeleton *skeleton = GOA_MANAGER_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_manager_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_manager_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_manager_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_manager_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Manager", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_manager_skeleton_iface_init (GoaManagerIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaManagerSkeleton, goa_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaManagerSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MANAGER, goa_manager_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaManagerSkeleton, goa_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MANAGER, goa_manager_skeleton_iface_init)) + +#endif +static void +goa_manager_skeleton_finalize (GObject *object) +{ + GoaManagerSkeleton *skeleton = GOA_MANAGER_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_manager_skeleton_parent_class)->finalize (object); +} + +static void +goa_manager_skeleton_init (GoaManagerSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_manager_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_MANAGER_SKELETON, GoaManagerSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_manager_skeleton_class_init (GoaManagerSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_manager_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_manager_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_manager_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_manager_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_manager_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaManagerSkeletonPrivate)); +#endif +} + +static void +goa_manager_skeleton_iface_init (GoaManagerIface *iface) +{ +} + +/** + * goa_manager_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Manager. + * + * Returns: (transfer full) (type GoaManagerSkeleton): The skeleton object. + */ +GoaManager * +goa_manager_skeleton_new (void) +{ + return GOA_MANAGER (g_object_new (GOA_TYPE_MANAGER_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Mail + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaMail + * @title: GoaMail + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Mail D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Mail D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Mail ---- */ + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_email_address = +{ + { + -1, + (gchar *) "EmailAddress", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "email-address", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_name = +{ + { + -1, + (gchar *) "Name", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "name", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_imap_supported = +{ + { + -1, + (gchar *) "ImapSupported", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "imap-supported", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_imap_accept_ssl_errors = +{ + { + -1, + (gchar *) "ImapAcceptSslErrors", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "imap-accept-ssl-errors", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_imap_host = +{ + { + -1, + (gchar *) "ImapHost", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "imap-host", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_imap_use_ssl = +{ + { + -1, + (gchar *) "ImapUseSsl", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "imap-use-ssl", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_imap_use_tls = +{ + { + -1, + (gchar *) "ImapUseTls", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "imap-use-tls", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_imap_user_name = +{ + { + -1, + (gchar *) "ImapUserName", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "imap-user-name", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_supported = +{ + { + -1, + (gchar *) "SmtpSupported", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-supported", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_accept_ssl_errors = +{ + { + -1, + (gchar *) "SmtpAcceptSslErrors", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-accept-ssl-errors", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_host = +{ + { + -1, + (gchar *) "SmtpHost", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-host", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_use_auth = +{ + { + -1, + (gchar *) "SmtpUseAuth", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-use-auth", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_auth_login = +{ + { + -1, + (gchar *) "SmtpAuthLogin", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-auth-login", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_auth_plain = +{ + { + -1, + (gchar *) "SmtpAuthPlain", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-auth-plain", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_auth_xoauth2 = +{ + { + -1, + (gchar *) "SmtpAuthXoauth2", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-auth-xoauth2", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_use_ssl = +{ + { + -1, + (gchar *) "SmtpUseSsl", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-use-ssl", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_use_tls = +{ + { + -1, + (gchar *) "SmtpUseTls", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-use-tls", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_mail_property_info_smtp_user_name = +{ + { + -1, + (gchar *) "SmtpUserName", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "smtp-user-name", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_mail_property_info_pointers[] = +{ + &_goa_mail_property_info_email_address, + &_goa_mail_property_info_name, + &_goa_mail_property_info_imap_supported, + &_goa_mail_property_info_imap_accept_ssl_errors, + &_goa_mail_property_info_imap_host, + &_goa_mail_property_info_imap_use_ssl, + &_goa_mail_property_info_imap_use_tls, + &_goa_mail_property_info_imap_user_name, + &_goa_mail_property_info_smtp_supported, + &_goa_mail_property_info_smtp_accept_ssl_errors, + &_goa_mail_property_info_smtp_host, + &_goa_mail_property_info_smtp_use_auth, + &_goa_mail_property_info_smtp_auth_login, + &_goa_mail_property_info_smtp_auth_plain, + &_goa_mail_property_info_smtp_auth_xoauth2, + &_goa_mail_property_info_smtp_use_ssl, + &_goa_mail_property_info_smtp_use_tls, + &_goa_mail_property_info_smtp_user_name, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_mail_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Mail", + NULL, + NULL, + (GDBusPropertyInfo **) &_goa_mail_property_info_pointers, + NULL + }, + "mail", +}; + + +/** + * goa_mail_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Mail D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_mail_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_mail_interface_info.parent_struct; +} + +/** + * goa_mail_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaMail interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_mail_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "email-address"); + g_object_class_override_property (klass, property_id_begin++, "name"); + g_object_class_override_property (klass, property_id_begin++, "imap-supported"); + g_object_class_override_property (klass, property_id_begin++, "imap-accept-ssl-errors"); + g_object_class_override_property (klass, property_id_begin++, "imap-host"); + g_object_class_override_property (klass, property_id_begin++, "imap-use-ssl"); + g_object_class_override_property (klass, property_id_begin++, "imap-use-tls"); + g_object_class_override_property (klass, property_id_begin++, "imap-user-name"); + g_object_class_override_property (klass, property_id_begin++, "smtp-supported"); + g_object_class_override_property (klass, property_id_begin++, "smtp-accept-ssl-errors"); + g_object_class_override_property (klass, property_id_begin++, "smtp-host"); + g_object_class_override_property (klass, property_id_begin++, "smtp-use-auth"); + g_object_class_override_property (klass, property_id_begin++, "smtp-auth-login"); + g_object_class_override_property (klass, property_id_begin++, "smtp-auth-plain"); + g_object_class_override_property (klass, property_id_begin++, "smtp-auth-xoauth2"); + g_object_class_override_property (klass, property_id_begin++, "smtp-use-ssl"); + g_object_class_override_property (klass, property_id_begin++, "smtp-use-tls"); + g_object_class_override_property (klass, property_id_begin++, "smtp-user-name"); + return property_id_begin - 1; +} + + + +/** + * GoaMail: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Mail. + */ + +/** + * GoaMailIface: + * @parent_iface: The parent interface. + * @get_email_address: Getter for the #GoaMail:email-address property. + * @get_imap_host: Getter for the #GoaMail:imap-host property. + * @get_imap_supported: Getter for the #GoaMail:imap-supported property. + * @get_imap_use_tls: Getter for the #GoaMail:imap-use-tls property. + * @get_imap_user_name: Getter for the #GoaMail:imap-user-name property. + * @get_smtp_host: Getter for the #GoaMail:smtp-host property. + * @get_smtp_supported: Getter for the #GoaMail:smtp-supported property. + * @get_smtp_use_tls: Getter for the #GoaMail:smtp-use-tls property. + * @get_smtp_user_name: Getter for the #GoaMail:smtp-user-name property. + * @get_imap_accept_ssl_errors: Getter for the #GoaMail:imap-accept-ssl-errors property. + * @get_imap_use_ssl: Getter for the #GoaMail:imap-use-ssl property. + * @get_name: Getter for the #GoaMail:name property. + * @get_smtp_accept_ssl_errors: Getter for the #GoaMail:smtp-accept-ssl-errors property. + * @get_smtp_use_auth: Getter for the #GoaMail:smtp-use-auth property. + * @get_smtp_use_ssl: Getter for the #GoaMail:smtp-use-ssl property. + * @get_smtp_auth_login: Getter for the #GoaMail:smtp-auth-login property. + * @get_smtp_auth_plain: Getter for the #GoaMail:smtp-auth-plain property. + * @get_smtp_auth_xoauth2: Getter for the #GoaMail:smtp-auth-xoauth2 property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Mail. + */ + +typedef GoaMailIface GoaMailInterface; +G_DEFINE_INTERFACE (GoaMail, goa_mail, G_TYPE_OBJECT) + +static void +goa_mail_default_init (GoaMailIface *iface) +{ + /* GObject properties for D-Bus properties: */ + /** + * GoaMail:email-address: + * + * Represents the D-Bus property "EmailAddress". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("email-address", "EmailAddress", "EmailAddress", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:name: + * + * Represents the D-Bus property "Name". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_string ("name", "Name", "Name", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:imap-supported: + * + * Represents the D-Bus property "ImapSupported". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("imap-supported", "ImapSupported", "ImapSupported", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:imap-accept-ssl-errors: + * + * Represents the D-Bus property "ImapAcceptSslErrors". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("imap-accept-ssl-errors", "ImapAcceptSslErrors", "ImapAcceptSslErrors", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:imap-host: + * + * Represents the D-Bus property "ImapHost". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("imap-host", "ImapHost", "ImapHost", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:imap-use-ssl: + * + * Represents the D-Bus property "ImapUseSsl". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("imap-use-ssl", "ImapUseSsl", "ImapUseSsl", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:imap-use-tls: + * + * Represents the D-Bus property "ImapUseTls". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("imap-use-tls", "ImapUseTls", "ImapUseTls", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:imap-user-name: + * + * Represents the D-Bus property "ImapUserName". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("imap-user-name", "ImapUserName", "ImapUserName", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-supported: + * + * Represents the D-Bus property "SmtpSupported". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-supported", "SmtpSupported", "SmtpSupported", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-accept-ssl-errors: + * + * Represents the D-Bus property "SmtpAcceptSslErrors". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-accept-ssl-errors", "SmtpAcceptSslErrors", "SmtpAcceptSslErrors", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-host: + * + * Represents the D-Bus property "SmtpHost". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("smtp-host", "SmtpHost", "SmtpHost", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-use-auth: + * + * Represents the D-Bus property "SmtpUseAuth". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-use-auth", "SmtpUseAuth", "SmtpUseAuth", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-auth-login: + * + * Represents the D-Bus property "SmtpAuthLogin". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.12.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-auth-login", "SmtpAuthLogin", "SmtpAuthLogin", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-auth-plain: + * + * Represents the D-Bus property "SmtpAuthPlain". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.12.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-auth-plain", "SmtpAuthPlain", "SmtpAuthPlain", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-auth-xoauth2: + * + * Represents the D-Bus property "SmtpAuthXoauth2". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.12.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-auth-xoauth2", "SmtpAuthXoauth2", "SmtpAuthXoauth2", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-use-ssl: + * + * Represents the D-Bus property "SmtpUseSsl". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-use-ssl", "SmtpUseSsl", "SmtpUseSsl", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-use-tls: + * + * Represents the D-Bus property "SmtpUseTls". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("smtp-use-tls", "SmtpUseTls", "SmtpUseTls", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMail:smtp-user-name: + * + * Represents the D-Bus property "SmtpUserName". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("smtp-user-name", "SmtpUserName", "SmtpUserName", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_mail_get_email_address: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "EmailAddress" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_mail_dup_email_address() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_mail_get_email_address (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_email_address (object); +} + +/** + * goa_mail_dup_email_address: (skip) + * @object: A #GoaMail. + * + * Gets a copy of the "EmailAddress" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_mail_dup_email_address (GoaMail *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "email-address", &value, NULL); + return value; +} + +/** + * goa_mail_set_email_address: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "EmailAddress" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_email_address (GoaMail *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "email-address", value, NULL); +} + +/** + * goa_mail_get_name: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "Name" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_mail_dup_name() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + * + * Since: 3.8.0 + */ +const gchar * +goa_mail_get_name (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_name (object); +} + +/** + * goa_mail_dup_name: (skip) + * @object: A #GoaMail. + * + * Gets a copy of the "Name" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + * + * Since: 3.8.0 + */ +gchar * +goa_mail_dup_name (GoaMail *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "name", &value, NULL); + return value; +} + +/** + * goa_mail_set_name: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "Name" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_mail_set_name (GoaMail *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "name", value, NULL); +} + +/** + * goa_mail_get_imap_supported: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "ImapSupported" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_mail_get_imap_supported (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_imap_supported (object); +} + +/** + * goa_mail_set_imap_supported: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "ImapSupported" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_imap_supported (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "imap-supported", value, NULL); +} + +/** + * goa_mail_get_imap_accept_ssl_errors: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "ImapAcceptSslErrors" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_mail_get_imap_accept_ssl_errors (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_imap_accept_ssl_errors (object); +} + +/** + * goa_mail_set_imap_accept_ssl_errors: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "ImapAcceptSslErrors" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_mail_set_imap_accept_ssl_errors (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "imap-accept-ssl-errors", value, NULL); +} + +/** + * goa_mail_get_imap_host: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "ImapHost" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_mail_dup_imap_host() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_mail_get_imap_host (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_imap_host (object); +} + +/** + * goa_mail_dup_imap_host: (skip) + * @object: A #GoaMail. + * + * Gets a copy of the "ImapHost" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_mail_dup_imap_host (GoaMail *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "imap-host", &value, NULL); + return value; +} + +/** + * goa_mail_set_imap_host: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "ImapHost" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_imap_host (GoaMail *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "imap-host", value, NULL); +} + +/** + * goa_mail_get_imap_use_ssl: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "ImapUseSsl" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_mail_get_imap_use_ssl (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_imap_use_ssl (object); +} + +/** + * goa_mail_set_imap_use_ssl: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "ImapUseSsl" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_mail_set_imap_use_ssl (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "imap-use-ssl", value, NULL); +} + +/** + * goa_mail_get_imap_use_tls: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "ImapUseTls" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_mail_get_imap_use_tls (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_imap_use_tls (object); +} + +/** + * goa_mail_set_imap_use_tls: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "ImapUseTls" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_imap_use_tls (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "imap-use-tls", value, NULL); +} + +/** + * goa_mail_get_imap_user_name: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "ImapUserName" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_mail_dup_imap_user_name() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_mail_get_imap_user_name (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_imap_user_name (object); +} + +/** + * goa_mail_dup_imap_user_name: (skip) + * @object: A #GoaMail. + * + * Gets a copy of the "ImapUserName" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_mail_dup_imap_user_name (GoaMail *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "imap-user-name", &value, NULL); + return value; +} + +/** + * goa_mail_set_imap_user_name: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "ImapUserName" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_imap_user_name (GoaMail *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "imap-user-name", value, NULL); +} + +/** + * goa_mail_get_smtp_supported: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpSupported" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_mail_get_smtp_supported (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_supported (object); +} + +/** + * goa_mail_set_smtp_supported: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpSupported" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_smtp_supported (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-supported", value, NULL); +} + +/** + * goa_mail_get_smtp_accept_ssl_errors: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpAcceptSslErrors" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_mail_get_smtp_accept_ssl_errors (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_accept_ssl_errors (object); +} + +/** + * goa_mail_set_smtp_accept_ssl_errors: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpAcceptSslErrors" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_mail_set_smtp_accept_ssl_errors (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-accept-ssl-errors", value, NULL); +} + +/** + * goa_mail_get_smtp_host: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpHost" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_mail_dup_smtp_host() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_mail_get_smtp_host (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_host (object); +} + +/** + * goa_mail_dup_smtp_host: (skip) + * @object: A #GoaMail. + * + * Gets a copy of the "SmtpHost" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_mail_dup_smtp_host (GoaMail *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "smtp-host", &value, NULL); + return value; +} + +/** + * goa_mail_set_smtp_host: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpHost" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_smtp_host (GoaMail *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "smtp-host", value, NULL); +} + +/** + * goa_mail_get_smtp_use_auth: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpUseAuth" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_mail_get_smtp_use_auth (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_use_auth (object); +} + +/** + * goa_mail_set_smtp_use_auth: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpUseAuth" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_mail_set_smtp_use_auth (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-use-auth", value, NULL); +} + +/** + * goa_mail_get_smtp_auth_login: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpAuthLogin" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.12.0 + */ +gboolean +goa_mail_get_smtp_auth_login (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_auth_login (object); +} + +/** + * goa_mail_set_smtp_auth_login: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpAuthLogin" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.12.0 + */ +void +goa_mail_set_smtp_auth_login (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-auth-login", value, NULL); +} + +/** + * goa_mail_get_smtp_auth_plain: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpAuthPlain" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.12.0 + */ +gboolean +goa_mail_get_smtp_auth_plain (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_auth_plain (object); +} + +/** + * goa_mail_set_smtp_auth_plain: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpAuthPlain" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.12.0 + */ +void +goa_mail_set_smtp_auth_plain (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-auth-plain", value, NULL); +} + +/** + * goa_mail_get_smtp_auth_xoauth2: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpAuthXoauth2" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.12.0 + */ +gboolean +goa_mail_get_smtp_auth_xoauth2 (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_auth_xoauth2 (object); +} + +/** + * goa_mail_set_smtp_auth_xoauth2: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpAuthXoauth2" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.12.0 + */ +void +goa_mail_set_smtp_auth_xoauth2 (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-auth-xoauth2", value, NULL); +} + +/** + * goa_mail_get_smtp_use_ssl: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpUseSsl" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_mail_get_smtp_use_ssl (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_use_ssl (object); +} + +/** + * goa_mail_set_smtp_use_ssl: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpUseSsl" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_mail_set_smtp_use_ssl (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-use-ssl", value, NULL); +} + +/** + * goa_mail_get_smtp_use_tls: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpUseTls" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_mail_get_smtp_use_tls (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_use_tls (object); +} + +/** + * goa_mail_set_smtp_use_tls: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpUseTls" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_smtp_use_tls (GoaMail *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "smtp-use-tls", value, NULL); +} + +/** + * goa_mail_get_smtp_user_name: (skip) + * @object: A #GoaMail. + * + * Gets the value of the "SmtpUserName" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_mail_dup_smtp_user_name() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_mail_get_smtp_user_name (GoaMail *object) +{ + return GOA_MAIL_GET_IFACE (object)->get_smtp_user_name (object); +} + +/** + * goa_mail_dup_smtp_user_name: (skip) + * @object: A #GoaMail. + * + * Gets a copy of the "SmtpUserName" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_mail_dup_smtp_user_name (GoaMail *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "smtp-user-name", &value, NULL); + return value; +} + +/** + * goa_mail_set_smtp_user_name: (skip) + * @object: A #GoaMail. + * @value: The value to set. + * + * Sets the "SmtpUserName" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_mail_set_smtp_user_name (GoaMail *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "smtp-user-name", value, NULL); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMailProxy: + * + * The #GoaMailProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaMailProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMailProxy. + */ + +struct _GoaMailProxyPrivate +{ + GData *qdata; +}; + +static void goa_mail_proxy_iface_init (GoaMailIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMailProxy, goa_mail_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaMailProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAIL, goa_mail_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMailProxy, goa_mail_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAIL, goa_mail_proxy_iface_init)) + +#endif +static void +goa_mail_proxy_finalize (GObject *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_mail_proxy_parent_class)->finalize (object); +} + +static void +goa_mail_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 18); + info = _goa_mail_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_mail_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.Mail: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_mail_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 18); + info = _goa_mail_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.Mail", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_mail_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_mail_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_mail_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_MAIL); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MAIL); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_mail_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_mail_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_mail_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static const gchar * +goa_mail_proxy_get_email_address (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "EmailAddress"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_mail_proxy_get_name (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Name"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_imap_supported (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ImapSupported"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_imap_accept_ssl_errors (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ImapAcceptSslErrors"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_mail_proxy_get_imap_host (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ImapHost"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_imap_use_ssl (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ImapUseSsl"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_imap_use_tls (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ImapUseTls"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_mail_proxy_get_imap_user_name (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ImapUserName"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_supported (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpSupported"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_accept_ssl_errors (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpAcceptSslErrors"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_mail_proxy_get_smtp_host (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpHost"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_use_auth (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpUseAuth"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_auth_login (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpAuthLogin"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_auth_plain (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpAuthPlain"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_auth_xoauth2 (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpAuthXoauth2"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_use_ssl (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpUseSsl"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_mail_proxy_get_smtp_use_tls (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpUseTls"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_mail_proxy_get_smtp_user_name (GoaMail *object) +{ + GoaMailProxy *proxy = GOA_MAIL_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "SmtpUserName"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_mail_proxy_init (GoaMailProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_mail_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_MAIL_PROXY, GoaMailProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_mail_interface_info ()); +} + +static void +goa_mail_proxy_class_init (GoaMailProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_mail_proxy_finalize; + gobject_class->get_property = goa_mail_proxy_get_property; + gobject_class->set_property = goa_mail_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_mail_proxy_g_signal; + proxy_class->g_properties_changed = goa_mail_proxy_g_properties_changed; + + goa_mail_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMailProxyPrivate)); +#endif +} + +static void +goa_mail_proxy_iface_init (GoaMailIface *iface) +{ + iface->get_email_address = goa_mail_proxy_get_email_address; + iface->get_name = goa_mail_proxy_get_name; + iface->get_imap_supported = goa_mail_proxy_get_imap_supported; + iface->get_imap_accept_ssl_errors = goa_mail_proxy_get_imap_accept_ssl_errors; + iface->get_imap_host = goa_mail_proxy_get_imap_host; + iface->get_imap_use_ssl = goa_mail_proxy_get_imap_use_ssl; + iface->get_imap_use_tls = goa_mail_proxy_get_imap_use_tls; + iface->get_imap_user_name = goa_mail_proxy_get_imap_user_name; + iface->get_smtp_supported = goa_mail_proxy_get_smtp_supported; + iface->get_smtp_accept_ssl_errors = goa_mail_proxy_get_smtp_accept_ssl_errors; + iface->get_smtp_host = goa_mail_proxy_get_smtp_host; + iface->get_smtp_use_auth = goa_mail_proxy_get_smtp_use_auth; + iface->get_smtp_auth_login = goa_mail_proxy_get_smtp_auth_login; + iface->get_smtp_auth_plain = goa_mail_proxy_get_smtp_auth_plain; + iface->get_smtp_auth_xoauth2 = goa_mail_proxy_get_smtp_auth_xoauth2; + iface->get_smtp_use_ssl = goa_mail_proxy_get_smtp_use_ssl; + iface->get_smtp_use_tls = goa_mail_proxy_get_smtp_use_tls; + iface->get_smtp_user_name = goa_mail_proxy_get_smtp_user_name; +} + +/** + * goa_mail_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Mail. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_mail_proxy_new_finish() to get the result of the operation. + * + * See goa_mail_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_mail_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MAIL_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Mail", NULL); +} + +/** + * goa_mail_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_mail_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_mail_proxy_new(). + * + * Returns: (transfer full) (type GoaMailProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaMail * +goa_mail_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MAIL (ret); + else + return NULL; +} + +/** + * goa_mail_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Mail. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_mail_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMailProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaMail * +goa_mail_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MAIL_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Mail", NULL); + if (ret != NULL) + return GOA_MAIL (ret); + else + return NULL; +} + + +/** + * goa_mail_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_mail_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_mail_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_mail_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_mail_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MAIL_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Mail", NULL); +} + +/** + * goa_mail_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_mail_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_mail_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaMailProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaMail * +goa_mail_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MAIL (ret); + else + return NULL; +} + +/** + * goa_mail_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_mail_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_mail_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMailProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaMail * +goa_mail_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MAIL_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Mail", NULL); + if (ret != NULL) + return GOA_MAIL (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMailSkeleton: + * + * The #GoaMailSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaMailSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMailSkeleton. + */ + +struct _GoaMailSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_mail_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_MAIL); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MAIL); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_mail_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_mail_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_mail_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_mail_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_mail_skeleton_vtable = +{ + _goa_mail_skeleton_handle_method_call, + _goa_mail_skeleton_handle_get_property, + _goa_mail_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_mail_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_mail_interface_info (); +} + +static GDBusInterfaceVTable * +goa_mail_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_mail_skeleton_vtable; +} + +static GVariant * +goa_mail_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_mail_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_mail_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_mail_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_mail_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Mail", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_mail_emit_changed (gpointer user_data); + +static void +goa_mail_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_mail_emit_changed (skeleton); +} + +static void goa_mail_skeleton_iface_init (GoaMailIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMailSkeleton, goa_mail_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaMailSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAIL, goa_mail_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMailSkeleton, goa_mail_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAIL, goa_mail_skeleton_iface_init)) + +#endif +static void +goa_mail_skeleton_finalize (GObject *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + guint n; + for (n = 0; n < 18; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_mail_skeleton_parent_class)->finalize (object); +} + +static void +goa_mail_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 18); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_mail_emit_changed (gpointer user_data) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.Mail", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_mail_schedule_emit_changed (GoaMailSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_mail_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_mail_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_mail_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_mail_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 18); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_mail_schedule_emit_changed (skeleton, _goa_mail_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_mail_skeleton_init (GoaMailSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_mail_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_MAIL_SKELETON, GoaMailSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 18); + g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[2], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[3], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[4], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[5], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[6], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[7], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[8], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[9], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[10], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[11], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[12], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[13], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[14], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[15], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[16], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[17], G_TYPE_STRING); +} + +static const gchar * +goa_mail_skeleton_get_email_address (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_mail_skeleton_get_name (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_imap_supported (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[2])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_imap_accept_ssl_errors (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[3])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_mail_skeleton_get_imap_host (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[4])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_imap_use_ssl (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[5])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_imap_use_tls (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[6])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_mail_skeleton_get_imap_user_name (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[7])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_supported (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[8])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_accept_ssl_errors (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[9])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_mail_skeleton_get_smtp_host (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[10])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_use_auth (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[11])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_auth_login (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[12])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_auth_plain (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[13])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_auth_xoauth2 (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[14])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_use_ssl (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[15])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_mail_skeleton_get_smtp_use_tls (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[16])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_mail_skeleton_get_smtp_user_name (GoaMail *object) +{ + GoaMailSkeleton *skeleton = GOA_MAIL_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[17])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_mail_skeleton_class_init (GoaMailSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_mail_skeleton_finalize; + gobject_class->get_property = goa_mail_skeleton_get_property; + gobject_class->set_property = goa_mail_skeleton_set_property; + gobject_class->notify = goa_mail_skeleton_notify; + + + goa_mail_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_mail_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_mail_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_mail_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_mail_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMailSkeletonPrivate)); +#endif +} + +static void +goa_mail_skeleton_iface_init (GoaMailIface *iface) +{ + iface->get_email_address = goa_mail_skeleton_get_email_address; + iface->get_name = goa_mail_skeleton_get_name; + iface->get_imap_supported = goa_mail_skeleton_get_imap_supported; + iface->get_imap_accept_ssl_errors = goa_mail_skeleton_get_imap_accept_ssl_errors; + iface->get_imap_host = goa_mail_skeleton_get_imap_host; + iface->get_imap_use_ssl = goa_mail_skeleton_get_imap_use_ssl; + iface->get_imap_use_tls = goa_mail_skeleton_get_imap_use_tls; + iface->get_imap_user_name = goa_mail_skeleton_get_imap_user_name; + iface->get_smtp_supported = goa_mail_skeleton_get_smtp_supported; + iface->get_smtp_accept_ssl_errors = goa_mail_skeleton_get_smtp_accept_ssl_errors; + iface->get_smtp_host = goa_mail_skeleton_get_smtp_host; + iface->get_smtp_use_auth = goa_mail_skeleton_get_smtp_use_auth; + iface->get_smtp_auth_login = goa_mail_skeleton_get_smtp_auth_login; + iface->get_smtp_auth_plain = goa_mail_skeleton_get_smtp_auth_plain; + iface->get_smtp_auth_xoauth2 = goa_mail_skeleton_get_smtp_auth_xoauth2; + iface->get_smtp_use_ssl = goa_mail_skeleton_get_smtp_use_ssl; + iface->get_smtp_use_tls = goa_mail_skeleton_get_smtp_use_tls; + iface->get_smtp_user_name = goa_mail_skeleton_get_smtp_user_name; +} + +/** + * goa_mail_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Mail. + * + * Returns: (transfer full) (type GoaMailSkeleton): The skeleton object. + */ +GoaMail * +goa_mail_skeleton_new (void) +{ + return GOA_MAIL (g_object_new (GOA_TYPE_MAIL_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Calendar + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaCalendar + * @title: GoaCalendar + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Calendar D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Calendar D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Calendar ---- */ + +static const _ExtendedGDBusPropertyInfo _goa_calendar_property_info_accept_ssl_errors = +{ + { + -1, + (gchar *) "AcceptSslErrors", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "accept-ssl-errors", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_calendar_property_info_uri = +{ + { + -1, + (gchar *) "Uri", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "uri", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_calendar_property_info_pointers[] = +{ + &_goa_calendar_property_info_accept_ssl_errors, + &_goa_calendar_property_info_uri, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_calendar_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Calendar", + NULL, + NULL, + (GDBusPropertyInfo **) &_goa_calendar_property_info_pointers, + NULL + }, + "calendar", +}; + + +/** + * goa_calendar_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Calendar D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_calendar_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_calendar_interface_info.parent_struct; +} + +/** + * goa_calendar_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaCalendar interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_calendar_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "accept-ssl-errors"); + g_object_class_override_property (klass, property_id_begin++, "uri"); + return property_id_begin - 1; +} + + + +/** + * GoaCalendar: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Calendar. + */ + +/** + * GoaCalendarIface: + * @parent_iface: The parent interface. + * @get_accept_ssl_errors: Getter for the #GoaCalendar:accept-ssl-errors property. + * @get_uri: Getter for the #GoaCalendar:uri property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Calendar. + */ + +typedef GoaCalendarIface GoaCalendarInterface; +G_DEFINE_INTERFACE (GoaCalendar, goa_calendar, G_TYPE_OBJECT) + +static void +goa_calendar_default_init (GoaCalendarIface *iface) +{ + /* GObject properties for D-Bus properties: */ + /** + * GoaCalendar:accept-ssl-errors: + * + * Represents the D-Bus property "AcceptSslErrors". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("accept-ssl-errors", "AcceptSslErrors", "AcceptSslErrors", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaCalendar:uri: + * + * Represents the D-Bus property "Uri". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_string ("uri", "Uri", "Uri", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_calendar_get_accept_ssl_errors: (skip) + * @object: A #GoaCalendar. + * + * Gets the value of the "AcceptSslErrors" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_calendar_get_accept_ssl_errors (GoaCalendar *object) +{ + return GOA_CALENDAR_GET_IFACE (object)->get_accept_ssl_errors (object); +} + +/** + * goa_calendar_set_accept_ssl_errors: (skip) + * @object: A #GoaCalendar. + * @value: The value to set. + * + * Sets the "AcceptSslErrors" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_calendar_set_accept_ssl_errors (GoaCalendar *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "accept-ssl-errors", value, NULL); +} + +/** + * goa_calendar_get_uri: (skip) + * @object: A #GoaCalendar. + * + * Gets the value of the "Uri" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_calendar_dup_uri() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + * + * Since: 3.8.0 + */ +const gchar * +goa_calendar_get_uri (GoaCalendar *object) +{ + return GOA_CALENDAR_GET_IFACE (object)->get_uri (object); +} + +/** + * goa_calendar_dup_uri: (skip) + * @object: A #GoaCalendar. + * + * Gets a copy of the "Uri" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + * + * Since: 3.8.0 + */ +gchar * +goa_calendar_dup_uri (GoaCalendar *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "uri", &value, NULL); + return value; +} + +/** + * goa_calendar_set_uri: (skip) + * @object: A #GoaCalendar. + * @value: The value to set. + * + * Sets the "Uri" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_calendar_set_uri (GoaCalendar *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "uri", value, NULL); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaCalendarProxy: + * + * The #GoaCalendarProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaCalendarProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaCalendarProxy. + */ + +struct _GoaCalendarProxyPrivate +{ + GData *qdata; +}; + +static void goa_calendar_proxy_iface_init (GoaCalendarIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaCalendarProxy, goa_calendar_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaCalendarProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_CALENDAR, goa_calendar_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaCalendarProxy, goa_calendar_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_CALENDAR, goa_calendar_proxy_iface_init)) + +#endif +static void +goa_calendar_proxy_finalize (GObject *object) +{ + GoaCalendarProxy *proxy = GOA_CALENDAR_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_calendar_proxy_parent_class)->finalize (object); +} + +static void +goa_calendar_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_calendar_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_calendar_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.Calendar: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_calendar_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_calendar_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.Calendar", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_calendar_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_calendar_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_calendar_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_CALENDAR); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_CALENDAR); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_calendar_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaCalendarProxy *proxy = GOA_CALENDAR_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_calendar_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_calendar_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static gboolean +goa_calendar_proxy_get_accept_ssl_errors (GoaCalendar *object) +{ + GoaCalendarProxy *proxy = GOA_CALENDAR_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "AcceptSslErrors"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_calendar_proxy_get_uri (GoaCalendar *object) +{ + GoaCalendarProxy *proxy = GOA_CALENDAR_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Uri"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_calendar_proxy_init (GoaCalendarProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_calendar_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_CALENDAR_PROXY, GoaCalendarProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_calendar_interface_info ()); +} + +static void +goa_calendar_proxy_class_init (GoaCalendarProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_calendar_proxy_finalize; + gobject_class->get_property = goa_calendar_proxy_get_property; + gobject_class->set_property = goa_calendar_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_calendar_proxy_g_signal; + proxy_class->g_properties_changed = goa_calendar_proxy_g_properties_changed; + + goa_calendar_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaCalendarProxyPrivate)); +#endif +} + +static void +goa_calendar_proxy_iface_init (GoaCalendarIface *iface) +{ + iface->get_accept_ssl_errors = goa_calendar_proxy_get_accept_ssl_errors; + iface->get_uri = goa_calendar_proxy_get_uri; +} + +/** + * goa_calendar_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Calendar. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_calendar_proxy_new_finish() to get the result of the operation. + * + * See goa_calendar_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_calendar_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_CALENDAR_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Calendar", NULL); +} + +/** + * goa_calendar_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_calendar_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_calendar_proxy_new(). + * + * Returns: (transfer full) (type GoaCalendarProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaCalendar * +goa_calendar_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_CALENDAR (ret); + else + return NULL; +} + +/** + * goa_calendar_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Calendar. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_calendar_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaCalendarProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaCalendar * +goa_calendar_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_CALENDAR_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Calendar", NULL); + if (ret != NULL) + return GOA_CALENDAR (ret); + else + return NULL; +} + + +/** + * goa_calendar_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_calendar_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_calendar_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_calendar_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_calendar_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_CALENDAR_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Calendar", NULL); +} + +/** + * goa_calendar_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_calendar_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_calendar_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaCalendarProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaCalendar * +goa_calendar_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_CALENDAR (ret); + else + return NULL; +} + +/** + * goa_calendar_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_calendar_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_calendar_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaCalendarProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaCalendar * +goa_calendar_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_CALENDAR_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Calendar", NULL); + if (ret != NULL) + return GOA_CALENDAR (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaCalendarSkeleton: + * + * The #GoaCalendarSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaCalendarSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaCalendarSkeleton. + */ + +struct _GoaCalendarSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_calendar_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_CALENDAR); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_CALENDAR); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_calendar_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_calendar_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_calendar_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_calendar_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_calendar_skeleton_vtable = +{ + _goa_calendar_skeleton_handle_method_call, + _goa_calendar_skeleton_handle_get_property, + _goa_calendar_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_calendar_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_calendar_interface_info (); +} + +static GDBusInterfaceVTable * +goa_calendar_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_calendar_skeleton_vtable; +} + +static GVariant * +goa_calendar_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_calendar_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_calendar_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_calendar_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_calendar_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Calendar", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_calendar_emit_changed (gpointer user_data); + +static void +goa_calendar_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_calendar_emit_changed (skeleton); +} + +static void goa_calendar_skeleton_iface_init (GoaCalendarIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaCalendarSkeleton, goa_calendar_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaCalendarSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_CALENDAR, goa_calendar_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaCalendarSkeleton, goa_calendar_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_CALENDAR, goa_calendar_skeleton_iface_init)) + +#endif +static void +goa_calendar_skeleton_finalize (GObject *object) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (object); + guint n; + for (n = 0; n < 2; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_calendar_skeleton_parent_class)->finalize (object); +} + +static void +goa_calendar_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_calendar_emit_changed (gpointer user_data) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.Calendar", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_calendar_schedule_emit_changed (GoaCalendarSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_calendar_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_calendar_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_calendar_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_calendar_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_calendar_schedule_emit_changed (skeleton, _goa_calendar_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_calendar_skeleton_init (GoaCalendarSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_calendar_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_CALENDAR_SKELETON, GoaCalendarSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 2); + g_value_init (&skeleton->priv->properties[0], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); +} + +static gboolean +goa_calendar_skeleton_get_accept_ssl_errors (GoaCalendar *object) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_calendar_skeleton_get_uri (GoaCalendar *object) +{ + GoaCalendarSkeleton *skeleton = GOA_CALENDAR_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_calendar_skeleton_class_init (GoaCalendarSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_calendar_skeleton_finalize; + gobject_class->get_property = goa_calendar_skeleton_get_property; + gobject_class->set_property = goa_calendar_skeleton_set_property; + gobject_class->notify = goa_calendar_skeleton_notify; + + + goa_calendar_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_calendar_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_calendar_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_calendar_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_calendar_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaCalendarSkeletonPrivate)); +#endif +} + +static void +goa_calendar_skeleton_iface_init (GoaCalendarIface *iface) +{ + iface->get_accept_ssl_errors = goa_calendar_skeleton_get_accept_ssl_errors; + iface->get_uri = goa_calendar_skeleton_get_uri; +} + +/** + * goa_calendar_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Calendar. + * + * Returns: (transfer full) (type GoaCalendarSkeleton): The skeleton object. + */ +GoaCalendar * +goa_calendar_skeleton_new (void) +{ + return GOA_CALENDAR (g_object_new (GOA_TYPE_CALENDAR_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Contacts + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaContacts + * @title: GoaContacts + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Contacts D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Contacts D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Contacts ---- */ + +static const _ExtendedGDBusPropertyInfo _goa_contacts_property_info_accept_ssl_errors = +{ + { + -1, + (gchar *) "AcceptSslErrors", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "accept-ssl-errors", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_contacts_property_info_uri = +{ + { + -1, + (gchar *) "Uri", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "uri", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_contacts_property_info_pointers[] = +{ + &_goa_contacts_property_info_accept_ssl_errors, + &_goa_contacts_property_info_uri, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_contacts_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Contacts", + NULL, + NULL, + (GDBusPropertyInfo **) &_goa_contacts_property_info_pointers, + NULL + }, + "contacts", +}; + + +/** + * goa_contacts_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Contacts D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_contacts_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_contacts_interface_info.parent_struct; +} + +/** + * goa_contacts_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaContacts interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_contacts_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "accept-ssl-errors"); + g_object_class_override_property (klass, property_id_begin++, "uri"); + return property_id_begin - 1; +} + + + +/** + * GoaContacts: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Contacts. + */ + +/** + * GoaContactsIface: + * @parent_iface: The parent interface. + * @get_accept_ssl_errors: Getter for the #GoaContacts:accept-ssl-errors property. + * @get_uri: Getter for the #GoaContacts:uri property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Contacts. + */ + +typedef GoaContactsIface GoaContactsInterface; +G_DEFINE_INTERFACE (GoaContacts, goa_contacts, G_TYPE_OBJECT) + +static void +goa_contacts_default_init (GoaContactsIface *iface) +{ + /* GObject properties for D-Bus properties: */ + /** + * GoaContacts:accept-ssl-errors: + * + * Represents the D-Bus property "AcceptSslErrors". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("accept-ssl-errors", "AcceptSslErrors", "AcceptSslErrors", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaContacts:uri: + * + * Represents the D-Bus property "Uri". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_string ("uri", "Uri", "Uri", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_contacts_get_accept_ssl_errors: (skip) + * @object: A #GoaContacts. + * + * Gets the value of the "AcceptSslErrors" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_contacts_get_accept_ssl_errors (GoaContacts *object) +{ + return GOA_CONTACTS_GET_IFACE (object)->get_accept_ssl_errors (object); +} + +/** + * goa_contacts_set_accept_ssl_errors: (skip) + * @object: A #GoaContacts. + * @value: The value to set. + * + * Sets the "AcceptSslErrors" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_contacts_set_accept_ssl_errors (GoaContacts *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "accept-ssl-errors", value, NULL); +} + +/** + * goa_contacts_get_uri: (skip) + * @object: A #GoaContacts. + * + * Gets the value of the "Uri" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_contacts_dup_uri() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + * + * Since: 3.8.0 + */ +const gchar * +goa_contacts_get_uri (GoaContacts *object) +{ + return GOA_CONTACTS_GET_IFACE (object)->get_uri (object); +} + +/** + * goa_contacts_dup_uri: (skip) + * @object: A #GoaContacts. + * + * Gets a copy of the "Uri" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + * + * Since: 3.8.0 + */ +gchar * +goa_contacts_dup_uri (GoaContacts *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "uri", &value, NULL); + return value; +} + +/** + * goa_contacts_set_uri: (skip) + * @object: A #GoaContacts. + * @value: The value to set. + * + * Sets the "Uri" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_contacts_set_uri (GoaContacts *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "uri", value, NULL); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaContactsProxy: + * + * The #GoaContactsProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaContactsProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaContactsProxy. + */ + +struct _GoaContactsProxyPrivate +{ + GData *qdata; +}; + +static void goa_contacts_proxy_iface_init (GoaContactsIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaContactsProxy, goa_contacts_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaContactsProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_CONTACTS, goa_contacts_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaContactsProxy, goa_contacts_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_CONTACTS, goa_contacts_proxy_iface_init)) + +#endif +static void +goa_contacts_proxy_finalize (GObject *object) +{ + GoaContactsProxy *proxy = GOA_CONTACTS_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_contacts_proxy_parent_class)->finalize (object); +} + +static void +goa_contacts_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_contacts_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_contacts_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.Contacts: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_contacts_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_contacts_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.Contacts", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_contacts_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_contacts_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_contacts_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_CONTACTS); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_CONTACTS); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_contacts_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaContactsProxy *proxy = GOA_CONTACTS_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_contacts_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_contacts_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static gboolean +goa_contacts_proxy_get_accept_ssl_errors (GoaContacts *object) +{ + GoaContactsProxy *proxy = GOA_CONTACTS_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "AcceptSslErrors"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_contacts_proxy_get_uri (GoaContacts *object) +{ + GoaContactsProxy *proxy = GOA_CONTACTS_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Uri"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_contacts_proxy_init (GoaContactsProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_contacts_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_CONTACTS_PROXY, GoaContactsProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_contacts_interface_info ()); +} + +static void +goa_contacts_proxy_class_init (GoaContactsProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_contacts_proxy_finalize; + gobject_class->get_property = goa_contacts_proxy_get_property; + gobject_class->set_property = goa_contacts_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_contacts_proxy_g_signal; + proxy_class->g_properties_changed = goa_contacts_proxy_g_properties_changed; + + goa_contacts_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaContactsProxyPrivate)); +#endif +} + +static void +goa_contacts_proxy_iface_init (GoaContactsIface *iface) +{ + iface->get_accept_ssl_errors = goa_contacts_proxy_get_accept_ssl_errors; + iface->get_uri = goa_contacts_proxy_get_uri; +} + +/** + * goa_contacts_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Contacts. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_contacts_proxy_new_finish() to get the result of the operation. + * + * See goa_contacts_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_contacts_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_CONTACTS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Contacts", NULL); +} + +/** + * goa_contacts_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_contacts_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_contacts_proxy_new(). + * + * Returns: (transfer full) (type GoaContactsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaContacts * +goa_contacts_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_CONTACTS (ret); + else + return NULL; +} + +/** + * goa_contacts_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Contacts. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_contacts_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaContactsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaContacts * +goa_contacts_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_CONTACTS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Contacts", NULL); + if (ret != NULL) + return GOA_CONTACTS (ret); + else + return NULL; +} + + +/** + * goa_contacts_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_contacts_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_contacts_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_contacts_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_contacts_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_CONTACTS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Contacts", NULL); +} + +/** + * goa_contacts_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_contacts_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_contacts_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaContactsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaContacts * +goa_contacts_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_CONTACTS (ret); + else + return NULL; +} + +/** + * goa_contacts_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_contacts_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_contacts_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaContactsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaContacts * +goa_contacts_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_CONTACTS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Contacts", NULL); + if (ret != NULL) + return GOA_CONTACTS (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaContactsSkeleton: + * + * The #GoaContactsSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaContactsSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaContactsSkeleton. + */ + +struct _GoaContactsSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_contacts_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_CONTACTS); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_CONTACTS); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_contacts_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_contacts_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_contacts_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_contacts_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_contacts_skeleton_vtable = +{ + _goa_contacts_skeleton_handle_method_call, + _goa_contacts_skeleton_handle_get_property, + _goa_contacts_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_contacts_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_contacts_interface_info (); +} + +static GDBusInterfaceVTable * +goa_contacts_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_contacts_skeleton_vtable; +} + +static GVariant * +goa_contacts_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_contacts_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_contacts_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_contacts_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_contacts_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Contacts", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_contacts_emit_changed (gpointer user_data); + +static void +goa_contacts_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_contacts_emit_changed (skeleton); +} + +static void goa_contacts_skeleton_iface_init (GoaContactsIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaContactsSkeleton, goa_contacts_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaContactsSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_CONTACTS, goa_contacts_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaContactsSkeleton, goa_contacts_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_CONTACTS, goa_contacts_skeleton_iface_init)) + +#endif +static void +goa_contacts_skeleton_finalize (GObject *object) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (object); + guint n; + for (n = 0; n < 2; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_contacts_skeleton_parent_class)->finalize (object); +} + +static void +goa_contacts_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_contacts_emit_changed (gpointer user_data) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.Contacts", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_contacts_schedule_emit_changed (GoaContactsSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_contacts_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_contacts_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_contacts_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_contacts_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_contacts_schedule_emit_changed (skeleton, _goa_contacts_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_contacts_skeleton_init (GoaContactsSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_contacts_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_CONTACTS_SKELETON, GoaContactsSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 2); + g_value_init (&skeleton->priv->properties[0], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); +} + +static gboolean +goa_contacts_skeleton_get_accept_ssl_errors (GoaContacts *object) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_contacts_skeleton_get_uri (GoaContacts *object) +{ + GoaContactsSkeleton *skeleton = GOA_CONTACTS_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_contacts_skeleton_class_init (GoaContactsSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_contacts_skeleton_finalize; + gobject_class->get_property = goa_contacts_skeleton_get_property; + gobject_class->set_property = goa_contacts_skeleton_set_property; + gobject_class->notify = goa_contacts_skeleton_notify; + + + goa_contacts_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_contacts_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_contacts_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_contacts_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_contacts_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaContactsSkeletonPrivate)); +#endif +} + +static void +goa_contacts_skeleton_iface_init (GoaContactsIface *iface) +{ + iface->get_accept_ssl_errors = goa_contacts_skeleton_get_accept_ssl_errors; + iface->get_uri = goa_contacts_skeleton_get_uri; +} + +/** + * goa_contacts_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Contacts. + * + * Returns: (transfer full) (type GoaContactsSkeleton): The skeleton object. + */ +GoaContacts * +goa_contacts_skeleton_new (void) +{ + return GOA_CONTACTS (g_object_new (GOA_TYPE_CONTACTS_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Chat + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaChat + * @title: GoaChat + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Chat D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Chat D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Chat ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_chat_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Chat", + NULL, + NULL, + NULL, + NULL + }, + "chat", +}; + + +/** + * goa_chat_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Chat D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_chat_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_chat_interface_info.parent_struct; +} + +/** + * goa_chat_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaChat interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_chat_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaChat: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Chat. + */ + +/** + * GoaChatIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Chat. + */ + +typedef GoaChatIface GoaChatInterface; +G_DEFINE_INTERFACE (GoaChat, goa_chat, G_TYPE_OBJECT) + +static void +goa_chat_default_init (GoaChatIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaChatProxy: + * + * The #GoaChatProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaChatProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaChatProxy. + */ + +struct _GoaChatProxyPrivate +{ + GData *qdata; +}; + +static void goa_chat_proxy_iface_init (GoaChatIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaChatProxy, goa_chat_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaChatProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_CHAT, goa_chat_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaChatProxy, goa_chat_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_CHAT, goa_chat_proxy_iface_init)) + +#endif +static void +goa_chat_proxy_finalize (GObject *object) +{ + GoaChatProxy *proxy = GOA_CHAT_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_chat_proxy_parent_class)->finalize (object); +} + +static void +goa_chat_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_chat_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_chat_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_chat_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_CHAT); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_CHAT); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_chat_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaChatProxy *proxy = GOA_CHAT_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_chat_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_chat_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_chat_proxy_init (GoaChatProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_chat_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_CHAT_PROXY, GoaChatProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_chat_interface_info ()); +} + +static void +goa_chat_proxy_class_init (GoaChatProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_chat_proxy_finalize; + gobject_class->get_property = goa_chat_proxy_get_property; + gobject_class->set_property = goa_chat_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_chat_proxy_g_signal; + proxy_class->g_properties_changed = goa_chat_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaChatProxyPrivate)); +#endif +} + +static void +goa_chat_proxy_iface_init (GoaChatIface *iface) +{ +} + +/** + * goa_chat_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Chat. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_chat_proxy_new_finish() to get the result of the operation. + * + * See goa_chat_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_chat_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_CHAT_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Chat", NULL); +} + +/** + * goa_chat_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_chat_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_chat_proxy_new(). + * + * Returns: (transfer full) (type GoaChatProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaChat * +goa_chat_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_CHAT (ret); + else + return NULL; +} + +/** + * goa_chat_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Chat. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_chat_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaChatProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaChat * +goa_chat_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_CHAT_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Chat", NULL); + if (ret != NULL) + return GOA_CHAT (ret); + else + return NULL; +} + + +/** + * goa_chat_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_chat_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_chat_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_chat_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_chat_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_CHAT_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Chat", NULL); +} + +/** + * goa_chat_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_chat_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_chat_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaChatProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaChat * +goa_chat_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_CHAT (ret); + else + return NULL; +} + +/** + * goa_chat_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_chat_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_chat_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaChatProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaChat * +goa_chat_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_CHAT_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Chat", NULL); + if (ret != NULL) + return GOA_CHAT (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaChatSkeleton: + * + * The #GoaChatSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaChatSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaChatSkeleton. + */ + +struct _GoaChatSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_chat_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaChatSkeleton *skeleton = GOA_CHAT_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_CHAT); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_CHAT); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_chat_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaChatSkeleton *skeleton = GOA_CHAT_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_chat_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_chat_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaChatSkeleton *skeleton = GOA_CHAT_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_chat_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_chat_skeleton_vtable = +{ + _goa_chat_skeleton_handle_method_call, + _goa_chat_skeleton_handle_get_property, + _goa_chat_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_chat_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_chat_interface_info (); +} + +static GDBusInterfaceVTable * +goa_chat_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_chat_skeleton_vtable; +} + +static GVariant * +goa_chat_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaChatSkeleton *skeleton = GOA_CHAT_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_chat_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_chat_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_chat_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_chat_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Chat", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_chat_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_chat_skeleton_iface_init (GoaChatIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaChatSkeleton, goa_chat_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaChatSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_CHAT, goa_chat_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaChatSkeleton, goa_chat_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_CHAT, goa_chat_skeleton_iface_init)) + +#endif +static void +goa_chat_skeleton_finalize (GObject *object) +{ + GoaChatSkeleton *skeleton = GOA_CHAT_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_chat_skeleton_parent_class)->finalize (object); +} + +static void +goa_chat_skeleton_init (GoaChatSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_chat_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_CHAT_SKELETON, GoaChatSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_chat_skeleton_class_init (GoaChatSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_chat_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_chat_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_chat_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_chat_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_chat_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaChatSkeletonPrivate)); +#endif +} + +static void +goa_chat_skeleton_iface_init (GoaChatIface *iface) +{ +} + +/** + * goa_chat_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Chat. + * + * Returns: (transfer full) (type GoaChatSkeleton): The skeleton object. + */ +GoaChat * +goa_chat_skeleton_new (void) +{ + return GOA_CHAT (g_object_new (GOA_TYPE_CHAT_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Documents + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaDocuments + * @title: GoaDocuments + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Documents D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Documents D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Documents ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_documents_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Documents", + NULL, + NULL, + NULL, + NULL + }, + "documents", +}; + + +/** + * goa_documents_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Documents D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_documents_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_documents_interface_info.parent_struct; +} + +/** + * goa_documents_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaDocuments interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_documents_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaDocuments: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Documents. + */ + +/** + * GoaDocumentsIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Documents. + */ + +typedef GoaDocumentsIface GoaDocumentsInterface; +G_DEFINE_INTERFACE (GoaDocuments, goa_documents, G_TYPE_OBJECT) + +static void +goa_documents_default_init (GoaDocumentsIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaDocumentsProxy: + * + * The #GoaDocumentsProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaDocumentsProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaDocumentsProxy. + */ + +struct _GoaDocumentsProxyPrivate +{ + GData *qdata; +}; + +static void goa_documents_proxy_iface_init (GoaDocumentsIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaDocumentsProxy, goa_documents_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaDocumentsProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_DOCUMENTS, goa_documents_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaDocumentsProxy, goa_documents_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_DOCUMENTS, goa_documents_proxy_iface_init)) + +#endif +static void +goa_documents_proxy_finalize (GObject *object) +{ + GoaDocumentsProxy *proxy = GOA_DOCUMENTS_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_documents_proxy_parent_class)->finalize (object); +} + +static void +goa_documents_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_documents_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_documents_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_documents_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_DOCUMENTS); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_DOCUMENTS); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_documents_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaDocumentsProxy *proxy = GOA_DOCUMENTS_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_documents_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_documents_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_documents_proxy_init (GoaDocumentsProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_documents_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_DOCUMENTS_PROXY, GoaDocumentsProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_documents_interface_info ()); +} + +static void +goa_documents_proxy_class_init (GoaDocumentsProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_documents_proxy_finalize; + gobject_class->get_property = goa_documents_proxy_get_property; + gobject_class->set_property = goa_documents_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_documents_proxy_g_signal; + proxy_class->g_properties_changed = goa_documents_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaDocumentsProxyPrivate)); +#endif +} + +static void +goa_documents_proxy_iface_init (GoaDocumentsIface *iface) +{ +} + +/** + * goa_documents_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Documents. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_documents_proxy_new_finish() to get the result of the operation. + * + * See goa_documents_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_documents_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_DOCUMENTS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Documents", NULL); +} + +/** + * goa_documents_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_documents_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_documents_proxy_new(). + * + * Returns: (transfer full) (type GoaDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaDocuments * +goa_documents_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_DOCUMENTS (ret); + else + return NULL; +} + +/** + * goa_documents_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Documents. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_documents_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaDocuments * +goa_documents_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_DOCUMENTS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Documents", NULL); + if (ret != NULL) + return GOA_DOCUMENTS (ret); + else + return NULL; +} + + +/** + * goa_documents_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_documents_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_documents_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_documents_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_documents_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_DOCUMENTS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Documents", NULL); +} + +/** + * goa_documents_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_documents_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_documents_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaDocuments * +goa_documents_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_DOCUMENTS (ret); + else + return NULL; +} + +/** + * goa_documents_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_documents_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_documents_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaDocumentsProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaDocuments * +goa_documents_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_DOCUMENTS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Documents", NULL); + if (ret != NULL) + return GOA_DOCUMENTS (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaDocumentsSkeleton: + * + * The #GoaDocumentsSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaDocumentsSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaDocumentsSkeleton. + */ + +struct _GoaDocumentsSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_documents_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaDocumentsSkeleton *skeleton = GOA_DOCUMENTS_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_DOCUMENTS); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_DOCUMENTS); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_documents_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaDocumentsSkeleton *skeleton = GOA_DOCUMENTS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_documents_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_documents_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaDocumentsSkeleton *skeleton = GOA_DOCUMENTS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_documents_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_documents_skeleton_vtable = +{ + _goa_documents_skeleton_handle_method_call, + _goa_documents_skeleton_handle_get_property, + _goa_documents_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_documents_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_documents_interface_info (); +} + +static GDBusInterfaceVTable * +goa_documents_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_documents_skeleton_vtable; +} + +static GVariant * +goa_documents_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaDocumentsSkeleton *skeleton = GOA_DOCUMENTS_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_documents_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_documents_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_documents_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_documents_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Documents", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_documents_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_documents_skeleton_iface_init (GoaDocumentsIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaDocumentsSkeleton, goa_documents_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaDocumentsSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_DOCUMENTS, goa_documents_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaDocumentsSkeleton, goa_documents_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_DOCUMENTS, goa_documents_skeleton_iface_init)) + +#endif +static void +goa_documents_skeleton_finalize (GObject *object) +{ + GoaDocumentsSkeleton *skeleton = GOA_DOCUMENTS_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_documents_skeleton_parent_class)->finalize (object); +} + +static void +goa_documents_skeleton_init (GoaDocumentsSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_documents_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_DOCUMENTS_SKELETON, GoaDocumentsSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_documents_skeleton_class_init (GoaDocumentsSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_documents_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_documents_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_documents_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_documents_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_documents_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaDocumentsSkeletonPrivate)); +#endif +} + +static void +goa_documents_skeleton_iface_init (GoaDocumentsIface *iface) +{ +} + +/** + * goa_documents_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Documents. + * + * Returns: (transfer full) (type GoaDocumentsSkeleton): The skeleton object. + */ +GoaDocuments * +goa_documents_skeleton_new (void) +{ + return GOA_DOCUMENTS (g_object_new (GOA_TYPE_DOCUMENTS_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Maps + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaMaps + * @title: GoaMaps + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Maps D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Maps D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Maps ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_maps_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Maps", + NULL, + NULL, + NULL, + NULL + }, + "maps", +}; + + +/** + * goa_maps_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Maps D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.14.0 + */ +GDBusInterfaceInfo * +goa_maps_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_maps_interface_info.parent_struct; +} + +/** + * goa_maps_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaMaps interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.14.0 + */ +guint +goa_maps_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaMaps: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Maps. + * + * Since: 3.14.0 + */ + +/** + * GoaMapsIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Maps. + * + * Since: 3.14.0 + */ + +typedef GoaMapsIface GoaMapsInterface; +G_DEFINE_INTERFACE (GoaMaps, goa_maps, G_TYPE_OBJECT) + +static void +goa_maps_default_init (GoaMapsIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMapsProxy: + * + * The #GoaMapsProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.14.0 + */ + +/** + * GoaMapsProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMapsProxy. + * + * Since: 3.14.0 + */ + +struct _GoaMapsProxyPrivate +{ + GData *qdata; +}; + +static void goa_maps_proxy_iface_init (GoaMapsIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMapsProxy, goa_maps_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaMapsProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAPS, goa_maps_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMapsProxy, goa_maps_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAPS, goa_maps_proxy_iface_init)) + +#endif +static void +goa_maps_proxy_finalize (GObject *object) +{ + GoaMapsProxy *proxy = GOA_MAPS_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_maps_proxy_parent_class)->finalize (object); +} + +static void +goa_maps_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_maps_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_maps_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_maps_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_MAPS); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MAPS); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_maps_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaMapsProxy *proxy = GOA_MAPS_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_maps_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_maps_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_maps_proxy_init (GoaMapsProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_maps_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_MAPS_PROXY, GoaMapsProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_maps_interface_info ()); +} + +static void +goa_maps_proxy_class_init (GoaMapsProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_maps_proxy_finalize; + gobject_class->get_property = goa_maps_proxy_get_property; + gobject_class->set_property = goa_maps_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_maps_proxy_g_signal; + proxy_class->g_properties_changed = goa_maps_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMapsProxyPrivate)); +#endif +} + +static void +goa_maps_proxy_iface_init (GoaMapsIface *iface) +{ +} + +/** + * goa_maps_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Maps. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_maps_proxy_new_finish() to get the result of the operation. + * + * See goa_maps_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.14.0 + */ +void +goa_maps_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MAPS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Maps", NULL); +} + +/** + * goa_maps_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_maps_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_maps_proxy_new(). + * + * Returns: (transfer full) (type GoaMapsProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14.0 + */ +GoaMaps * +goa_maps_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MAPS (ret); + else + return NULL; +} + +/** + * goa_maps_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Maps. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_maps_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMapsProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14.0 + */ +GoaMaps * +goa_maps_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MAPS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Maps", NULL); + if (ret != NULL) + return GOA_MAPS (ret); + else + return NULL; +} + + +/** + * goa_maps_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_maps_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_maps_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_maps_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.14.0 + */ +void +goa_maps_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MAPS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Maps", NULL); +} + +/** + * goa_maps_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_maps_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_maps_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaMapsProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14.0 + */ +GoaMaps * +goa_maps_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MAPS (ret); + else + return NULL; +} + +/** + * goa_maps_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_maps_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_maps_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMapsProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14.0 + */ +GoaMaps * +goa_maps_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MAPS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Maps", NULL); + if (ret != NULL) + return GOA_MAPS (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMapsSkeleton: + * + * The #GoaMapsSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.14.0 + */ + +/** + * GoaMapsSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMapsSkeleton. + * + * Since: 3.14.0 + */ + +struct _GoaMapsSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_maps_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaMapsSkeleton *skeleton = GOA_MAPS_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_MAPS); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MAPS); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_maps_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaMapsSkeleton *skeleton = GOA_MAPS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_maps_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_maps_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaMapsSkeleton *skeleton = GOA_MAPS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_maps_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_maps_skeleton_vtable = +{ + _goa_maps_skeleton_handle_method_call, + _goa_maps_skeleton_handle_get_property, + _goa_maps_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_maps_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_maps_interface_info (); +} + +static GDBusInterfaceVTable * +goa_maps_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_maps_skeleton_vtable; +} + +static GVariant * +goa_maps_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaMapsSkeleton *skeleton = GOA_MAPS_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_maps_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_maps_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_maps_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_maps_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Maps", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_maps_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_maps_skeleton_iface_init (GoaMapsIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMapsSkeleton, goa_maps_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaMapsSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAPS, goa_maps_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMapsSkeleton, goa_maps_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MAPS, goa_maps_skeleton_iface_init)) + +#endif +static void +goa_maps_skeleton_finalize (GObject *object) +{ + GoaMapsSkeleton *skeleton = GOA_MAPS_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_maps_skeleton_parent_class)->finalize (object); +} + +static void +goa_maps_skeleton_init (GoaMapsSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_maps_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_MAPS_SKELETON, GoaMapsSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_maps_skeleton_class_init (GoaMapsSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_maps_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_maps_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_maps_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_maps_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_maps_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMapsSkeletonPrivate)); +#endif +} + +static void +goa_maps_skeleton_iface_init (GoaMapsIface *iface) +{ +} + +/** + * goa_maps_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Maps. + * + * Returns: (transfer full) (type GoaMapsSkeleton): The skeleton object. + * + * Since: 3.14.0 + */ +GoaMaps * +goa_maps_skeleton_new (void) +{ + return GOA_MAPS (g_object_new (GOA_TYPE_MAPS_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Music + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaMusic + * @title: GoaMusic + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Music D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Music D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Music ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_music_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Music", + NULL, + NULL, + NULL, + NULL + }, + "music", +}; + + +/** + * goa_music_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Music D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.18.0 + */ +GDBusInterfaceInfo * +goa_music_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_music_interface_info.parent_struct; +} + +/** + * goa_music_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaMusic interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.18.0 + */ +guint +goa_music_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaMusic: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Music. + * + * Since: 3.18.0 + */ + +/** + * GoaMusicIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Music. + * + * Since: 3.18.0 + */ + +typedef GoaMusicIface GoaMusicInterface; +G_DEFINE_INTERFACE (GoaMusic, goa_music, G_TYPE_OBJECT) + +static void +goa_music_default_init (GoaMusicIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMusicProxy: + * + * The #GoaMusicProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.18.0 + */ + +/** + * GoaMusicProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMusicProxy. + * + * Since: 3.18.0 + */ + +struct _GoaMusicProxyPrivate +{ + GData *qdata; +}; + +static void goa_music_proxy_iface_init (GoaMusicIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMusicProxy, goa_music_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaMusicProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MUSIC, goa_music_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMusicProxy, goa_music_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MUSIC, goa_music_proxy_iface_init)) + +#endif +static void +goa_music_proxy_finalize (GObject *object) +{ + GoaMusicProxy *proxy = GOA_MUSIC_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_music_proxy_parent_class)->finalize (object); +} + +static void +goa_music_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_music_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_music_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_music_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_MUSIC); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MUSIC); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_music_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaMusicProxy *proxy = GOA_MUSIC_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_music_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_music_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_music_proxy_init (GoaMusicProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_music_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_MUSIC_PROXY, GoaMusicProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_music_interface_info ()); +} + +static void +goa_music_proxy_class_init (GoaMusicProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_music_proxy_finalize; + gobject_class->get_property = goa_music_proxy_get_property; + gobject_class->set_property = goa_music_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_music_proxy_g_signal; + proxy_class->g_properties_changed = goa_music_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMusicProxyPrivate)); +#endif +} + +static void +goa_music_proxy_iface_init (GoaMusicIface *iface) +{ +} + +/** + * goa_music_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Music. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_music_proxy_new_finish() to get the result of the operation. + * + * See goa_music_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.18.0 + */ +void +goa_music_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MUSIC_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Music", NULL); +} + +/** + * goa_music_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_music_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_music_proxy_new(). + * + * Returns: (transfer full) (type GoaMusicProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.18.0 + */ +GoaMusic * +goa_music_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MUSIC (ret); + else + return NULL; +} + +/** + * goa_music_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Music. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_music_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMusicProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.18.0 + */ +GoaMusic * +goa_music_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MUSIC_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Music", NULL); + if (ret != NULL) + return GOA_MUSIC (ret); + else + return NULL; +} + + +/** + * goa_music_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_music_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_music_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_music_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.18.0 + */ +void +goa_music_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MUSIC_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Music", NULL); +} + +/** + * goa_music_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_music_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_music_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaMusicProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.18.0 + */ +GoaMusic * +goa_music_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MUSIC (ret); + else + return NULL; +} + +/** + * goa_music_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_music_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_music_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMusicProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.18.0 + */ +GoaMusic * +goa_music_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MUSIC_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Music", NULL); + if (ret != NULL) + return GOA_MUSIC (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMusicSkeleton: + * + * The #GoaMusicSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.18.0 + */ + +/** + * GoaMusicSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMusicSkeleton. + * + * Since: 3.18.0 + */ + +struct _GoaMusicSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_music_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaMusicSkeleton *skeleton = GOA_MUSIC_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_MUSIC); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MUSIC); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_music_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaMusicSkeleton *skeleton = GOA_MUSIC_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_music_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_music_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaMusicSkeleton *skeleton = GOA_MUSIC_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_music_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_music_skeleton_vtable = +{ + _goa_music_skeleton_handle_method_call, + _goa_music_skeleton_handle_get_property, + _goa_music_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_music_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_music_interface_info (); +} + +static GDBusInterfaceVTable * +goa_music_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_music_skeleton_vtable; +} + +static GVariant * +goa_music_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaMusicSkeleton *skeleton = GOA_MUSIC_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_music_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_music_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_music_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_music_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Music", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_music_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_music_skeleton_iface_init (GoaMusicIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMusicSkeleton, goa_music_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaMusicSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MUSIC, goa_music_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMusicSkeleton, goa_music_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MUSIC, goa_music_skeleton_iface_init)) + +#endif +static void +goa_music_skeleton_finalize (GObject *object) +{ + GoaMusicSkeleton *skeleton = GOA_MUSIC_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_music_skeleton_parent_class)->finalize (object); +} + +static void +goa_music_skeleton_init (GoaMusicSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_music_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_MUSIC_SKELETON, GoaMusicSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_music_skeleton_class_init (GoaMusicSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_music_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_music_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_music_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_music_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_music_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMusicSkeletonPrivate)); +#endif +} + +static void +goa_music_skeleton_iface_init (GoaMusicIface *iface) +{ +} + +/** + * goa_music_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Music. + * + * Returns: (transfer full) (type GoaMusicSkeleton): The skeleton object. + * + * Since: 3.18.0 + */ +GoaMusic * +goa_music_skeleton_new (void) +{ + return GOA_MUSIC (g_object_new (GOA_TYPE_MUSIC_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Photos + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaPhotos + * @title: GoaPhotos + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Photos D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Photos D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Photos ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_photos_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Photos", + NULL, + NULL, + NULL, + NULL + }, + "photos", +}; + + +/** + * goa_photos_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Photos D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.8.0 + */ +GDBusInterfaceInfo * +goa_photos_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_photos_interface_info.parent_struct; +} + +/** + * goa_photos_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaPhotos interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.8.0 + */ +guint +goa_photos_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaPhotos: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Photos. + * + * Since: 3.8.0 + */ + +/** + * GoaPhotosIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Photos. + * + * Since: 3.8.0 + */ + +typedef GoaPhotosIface GoaPhotosInterface; +G_DEFINE_INTERFACE (GoaPhotos, goa_photos, G_TYPE_OBJECT) + +static void +goa_photos_default_init (GoaPhotosIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaPhotosProxy: + * + * The #GoaPhotosProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.8.0 + */ + +/** + * GoaPhotosProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaPhotosProxy. + * + * Since: 3.8.0 + */ + +struct _GoaPhotosProxyPrivate +{ + GData *qdata; +}; + +static void goa_photos_proxy_iface_init (GoaPhotosIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaPhotosProxy, goa_photos_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaPhotosProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_PHOTOS, goa_photos_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaPhotosProxy, goa_photos_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_PHOTOS, goa_photos_proxy_iface_init)) + +#endif +static void +goa_photos_proxy_finalize (GObject *object) +{ + GoaPhotosProxy *proxy = GOA_PHOTOS_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_photos_proxy_parent_class)->finalize (object); +} + +static void +goa_photos_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_photos_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_photos_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_photos_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_PHOTOS); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_PHOTOS); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_photos_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaPhotosProxy *proxy = GOA_PHOTOS_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_photos_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_photos_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_photos_proxy_init (GoaPhotosProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_photos_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_PHOTOS_PROXY, GoaPhotosProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_photos_interface_info ()); +} + +static void +goa_photos_proxy_class_init (GoaPhotosProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_photos_proxy_finalize; + gobject_class->get_property = goa_photos_proxy_get_property; + gobject_class->set_property = goa_photos_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_photos_proxy_g_signal; + proxy_class->g_properties_changed = goa_photos_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaPhotosProxyPrivate)); +#endif +} + +static void +goa_photos_proxy_iface_init (GoaPhotosIface *iface) +{ +} + +/** + * goa_photos_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Photos. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_photos_proxy_new_finish() to get the result of the operation. + * + * See goa_photos_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.8.0 + */ +void +goa_photos_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_PHOTOS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Photos", NULL); +} + +/** + * goa_photos_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_photos_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_photos_proxy_new(). + * + * Returns: (transfer full) (type GoaPhotosProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaPhotos * +goa_photos_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_PHOTOS (ret); + else + return NULL; +} + +/** + * goa_photos_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Photos. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_photos_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaPhotosProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaPhotos * +goa_photos_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_PHOTOS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Photos", NULL); + if (ret != NULL) + return GOA_PHOTOS (ret); + else + return NULL; +} + + +/** + * goa_photos_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_photos_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_photos_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_photos_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.8.0 + */ +void +goa_photos_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_PHOTOS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Photos", NULL); +} + +/** + * goa_photos_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_photos_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_photos_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaPhotosProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaPhotos * +goa_photos_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_PHOTOS (ret); + else + return NULL; +} + +/** + * goa_photos_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_photos_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_photos_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaPhotosProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaPhotos * +goa_photos_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_PHOTOS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Photos", NULL); + if (ret != NULL) + return GOA_PHOTOS (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaPhotosSkeleton: + * + * The #GoaPhotosSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.8.0 + */ + +/** + * GoaPhotosSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaPhotosSkeleton. + * + * Since: 3.8.0 + */ + +struct _GoaPhotosSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_photos_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaPhotosSkeleton *skeleton = GOA_PHOTOS_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_PHOTOS); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_PHOTOS); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_photos_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaPhotosSkeleton *skeleton = GOA_PHOTOS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_photos_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_photos_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaPhotosSkeleton *skeleton = GOA_PHOTOS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_photos_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_photos_skeleton_vtable = +{ + _goa_photos_skeleton_handle_method_call, + _goa_photos_skeleton_handle_get_property, + _goa_photos_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_photos_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_photos_interface_info (); +} + +static GDBusInterfaceVTable * +goa_photos_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_photos_skeleton_vtable; +} + +static GVariant * +goa_photos_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaPhotosSkeleton *skeleton = GOA_PHOTOS_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_photos_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_photos_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_photos_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_photos_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Photos", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_photos_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_photos_skeleton_iface_init (GoaPhotosIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaPhotosSkeleton, goa_photos_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaPhotosSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_PHOTOS, goa_photos_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaPhotosSkeleton, goa_photos_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_PHOTOS, goa_photos_skeleton_iface_init)) + +#endif +static void +goa_photos_skeleton_finalize (GObject *object) +{ + GoaPhotosSkeleton *skeleton = GOA_PHOTOS_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_photos_skeleton_parent_class)->finalize (object); +} + +static void +goa_photos_skeleton_init (GoaPhotosSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_photos_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_PHOTOS_SKELETON, GoaPhotosSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_photos_skeleton_class_init (GoaPhotosSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_photos_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_photos_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_photos_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_photos_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_photos_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaPhotosSkeletonPrivate)); +#endif +} + +static void +goa_photos_skeleton_iface_init (GoaPhotosIface *iface) +{ +} + +/** + * goa_photos_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Photos. + * + * Returns: (transfer full) (type GoaPhotosSkeleton): The skeleton object. + * + * Since: 3.8.0 + */ +GoaPhotos * +goa_photos_skeleton_new (void) +{ + return GOA_PHOTOS (g_object_new (GOA_TYPE_PHOTOS_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Files + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaFiles + * @title: GoaFiles + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Files D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Files D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Files ---- */ + +static const _ExtendedGDBusPropertyInfo _goa_files_property_info_accept_ssl_errors = +{ + { + -1, + (gchar *) "AcceptSslErrors", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "accept-ssl-errors", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_files_property_info_uri = +{ + { + -1, + (gchar *) "Uri", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "uri", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_files_property_info_pointers[] = +{ + &_goa_files_property_info_accept_ssl_errors, + &_goa_files_property_info_uri, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_files_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Files", + NULL, + NULL, + (GDBusPropertyInfo **) &_goa_files_property_info_pointers, + NULL + }, + "files", +}; + + +/** + * goa_files_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Files D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.8.0 + */ +GDBusInterfaceInfo * +goa_files_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_files_interface_info.parent_struct; +} + +/** + * goa_files_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaFiles interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.8.0 + */ +guint +goa_files_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "accept-ssl-errors"); + g_object_class_override_property (klass, property_id_begin++, "uri"); + return property_id_begin - 1; +} + + + +/** + * GoaFiles: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Files. + * + * Since: 3.8.0 + */ + +/** + * GoaFilesIface: + * @parent_iface: The parent interface. + * @get_accept_ssl_errors: Getter for the #GoaFiles:accept-ssl-errors property. + * @get_uri: Getter for the #GoaFiles:uri property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Files. + * + * Since: 3.8.0 + */ + +typedef GoaFilesIface GoaFilesInterface; +G_DEFINE_INTERFACE (GoaFiles, goa_files, G_TYPE_OBJECT) + +static void +goa_files_default_init (GoaFilesIface *iface) +{ + /* GObject properties for D-Bus properties: */ + /** + * GoaFiles:accept-ssl-errors: + * + * Represents the D-Bus property "AcceptSslErrors". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("accept-ssl-errors", "AcceptSslErrors", "AcceptSslErrors", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaFiles:uri: + * + * Represents the D-Bus property "Uri". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_string ("uri", "Uri", "Uri", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_files_get_accept_ssl_errors: (skip) + * @object: A #GoaFiles. + * + * Gets the value of the "AcceptSslErrors" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_files_get_accept_ssl_errors (GoaFiles *object) +{ + return GOA_FILES_GET_IFACE (object)->get_accept_ssl_errors (object); +} + +/** + * goa_files_set_accept_ssl_errors: (skip) + * @object: A #GoaFiles. + * @value: The value to set. + * + * Sets the "AcceptSslErrors" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_files_set_accept_ssl_errors (GoaFiles *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "accept-ssl-errors", value, NULL); +} + +/** + * goa_files_get_uri: (skip) + * @object: A #GoaFiles. + * + * Gets the value of the "Uri" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_files_dup_uri() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + * + * Since: 3.8.0 + */ +const gchar * +goa_files_get_uri (GoaFiles *object) +{ + return GOA_FILES_GET_IFACE (object)->get_uri (object); +} + +/** + * goa_files_dup_uri: (skip) + * @object: A #GoaFiles. + * + * Gets a copy of the "Uri" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + * + * Since: 3.8.0 + */ +gchar * +goa_files_dup_uri (GoaFiles *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "uri", &value, NULL); + return value; +} + +/** + * goa_files_set_uri: (skip) + * @object: A #GoaFiles. + * @value: The value to set. + * + * Sets the "Uri" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_files_set_uri (GoaFiles *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "uri", value, NULL); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaFilesProxy: + * + * The #GoaFilesProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.8.0 + */ + +/** + * GoaFilesProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaFilesProxy. + * + * Since: 3.8.0 + */ + +struct _GoaFilesProxyPrivate +{ + GData *qdata; +}; + +static void goa_files_proxy_iface_init (GoaFilesIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaFilesProxy, goa_files_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaFilesProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_FILES, goa_files_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaFilesProxy, goa_files_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_FILES, goa_files_proxy_iface_init)) + +#endif +static void +goa_files_proxy_finalize (GObject *object) +{ + GoaFilesProxy *proxy = GOA_FILES_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_files_proxy_parent_class)->finalize (object); +} + +static void +goa_files_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_files_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_files_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.Files: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_files_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_files_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.Files", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_files_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_files_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_files_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_FILES); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_FILES); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_files_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaFilesProxy *proxy = GOA_FILES_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_files_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_files_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static gboolean +goa_files_proxy_get_accept_ssl_errors (GoaFiles *object) +{ + GoaFilesProxy *proxy = GOA_FILES_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "AcceptSslErrors"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_files_proxy_get_uri (GoaFiles *object) +{ + GoaFilesProxy *proxy = GOA_FILES_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Uri"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_files_proxy_init (GoaFilesProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_files_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_FILES_PROXY, GoaFilesProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_files_interface_info ()); +} + +static void +goa_files_proxy_class_init (GoaFilesProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_files_proxy_finalize; + gobject_class->get_property = goa_files_proxy_get_property; + gobject_class->set_property = goa_files_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_files_proxy_g_signal; + proxy_class->g_properties_changed = goa_files_proxy_g_properties_changed; + + goa_files_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaFilesProxyPrivate)); +#endif +} + +static void +goa_files_proxy_iface_init (GoaFilesIface *iface) +{ + iface->get_accept_ssl_errors = goa_files_proxy_get_accept_ssl_errors; + iface->get_uri = goa_files_proxy_get_uri; +} + +/** + * goa_files_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Files. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_files_proxy_new_finish() to get the result of the operation. + * + * See goa_files_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.8.0 + */ +void +goa_files_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_FILES_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Files", NULL); +} + +/** + * goa_files_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_files_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_files_proxy_new(). + * + * Returns: (transfer full) (type GoaFilesProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaFiles * +goa_files_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_FILES (ret); + else + return NULL; +} + +/** + * goa_files_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Files. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_files_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaFilesProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaFiles * +goa_files_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_FILES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Files", NULL); + if (ret != NULL) + return GOA_FILES (ret); + else + return NULL; +} + + +/** + * goa_files_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_files_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_files_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_files_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.8.0 + */ +void +goa_files_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_FILES_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Files", NULL); +} + +/** + * goa_files_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_files_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_files_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaFilesProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaFiles * +goa_files_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_FILES (ret); + else + return NULL; +} + +/** + * goa_files_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_files_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_files_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaFilesProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.8.0 + */ +GoaFiles * +goa_files_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_FILES_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Files", NULL); + if (ret != NULL) + return GOA_FILES (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaFilesSkeleton: + * + * The #GoaFilesSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.8.0 + */ + +/** + * GoaFilesSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaFilesSkeleton. + * + * Since: 3.8.0 + */ + +struct _GoaFilesSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_files_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_FILES); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_FILES); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_files_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_files_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_files_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_files_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_files_skeleton_vtable = +{ + _goa_files_skeleton_handle_method_call, + _goa_files_skeleton_handle_get_property, + _goa_files_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_files_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_files_interface_info (); +} + +static GDBusInterfaceVTable * +goa_files_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_files_skeleton_vtable; +} + +static GVariant * +goa_files_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_files_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_files_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_files_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_files_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Files", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_files_emit_changed (gpointer user_data); + +static void +goa_files_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_files_emit_changed (skeleton); +} + +static void goa_files_skeleton_iface_init (GoaFilesIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaFilesSkeleton, goa_files_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaFilesSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_FILES, goa_files_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaFilesSkeleton, goa_files_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_FILES, goa_files_skeleton_iface_init)) + +#endif +static void +goa_files_skeleton_finalize (GObject *object) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (object); + guint n; + for (n = 0; n < 2; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_files_skeleton_parent_class)->finalize (object); +} + +static void +goa_files_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_files_emit_changed (gpointer user_data) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.Files", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_files_schedule_emit_changed (GoaFilesSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_files_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_files_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_files_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_files_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_files_schedule_emit_changed (skeleton, _goa_files_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_files_skeleton_init (GoaFilesSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_files_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_FILES_SKELETON, GoaFilesSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 2); + g_value_init (&skeleton->priv->properties[0], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); +} + +static gboolean +goa_files_skeleton_get_accept_ssl_errors (GoaFiles *object) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_files_skeleton_get_uri (GoaFiles *object) +{ + GoaFilesSkeleton *skeleton = GOA_FILES_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_files_skeleton_class_init (GoaFilesSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_files_skeleton_finalize; + gobject_class->get_property = goa_files_skeleton_get_property; + gobject_class->set_property = goa_files_skeleton_set_property; + gobject_class->notify = goa_files_skeleton_notify; + + + goa_files_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_files_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_files_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_files_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_files_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaFilesSkeletonPrivate)); +#endif +} + +static void +goa_files_skeleton_iface_init (GoaFilesIface *iface) +{ + iface->get_accept_ssl_errors = goa_files_skeleton_get_accept_ssl_errors; + iface->get_uri = goa_files_skeleton_get_uri; +} + +/** + * goa_files_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Files. + * + * Returns: (transfer full) (type GoaFilesSkeleton): The skeleton object. + * + * Since: 3.8.0 + */ +GoaFiles * +goa_files_skeleton_new (void) +{ + return GOA_FILES (g_object_new (GOA_TYPE_FILES_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Exchange + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaExchange + * @title: GoaExchange + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Exchange D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Exchange D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Exchange ---- */ + +static const _ExtendedGDBusPropertyInfo _goa_exchange_property_info_accept_ssl_errors = +{ + { + -1, + (gchar *) "AcceptSslErrors", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "accept-ssl-errors", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_exchange_property_info_host = +{ + { + -1, + (gchar *) "Host", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "host", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_exchange_property_info_pointers[] = +{ + &_goa_exchange_property_info_accept_ssl_errors, + &_goa_exchange_property_info_host, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_exchange_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Exchange", + NULL, + NULL, + (GDBusPropertyInfo **) &_goa_exchange_property_info_pointers, + NULL + }, + "exchange", +}; + + +/** + * goa_exchange_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Exchange D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.6.0 + */ +GDBusInterfaceInfo * +goa_exchange_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_exchange_interface_info.parent_struct; +} + +/** + * goa_exchange_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaExchange interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.6.0 + */ +guint +goa_exchange_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "accept-ssl-errors"); + g_object_class_override_property (klass, property_id_begin++, "host"); + return property_id_begin - 1; +} + + + +/** + * GoaExchange: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Exchange. + * + * Since: 3.6.0 + */ + +/** + * GoaExchangeIface: + * @parent_iface: The parent interface. + * @get_host: Getter for the #GoaExchange:host property. + * @get_accept_ssl_errors: Getter for the #GoaExchange:accept-ssl-errors property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Exchange. + * + * Since: 3.6.0 + */ + +typedef GoaExchangeIface GoaExchangeInterface; +G_DEFINE_INTERFACE (GoaExchange, goa_exchange, G_TYPE_OBJECT) + +static void +goa_exchange_default_init (GoaExchangeIface *iface) +{ + /* GObject properties for D-Bus properties: */ + /** + * GoaExchange:accept-ssl-errors: + * + * Represents the D-Bus property "AcceptSslErrors". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("accept-ssl-errors", "AcceptSslErrors", "AcceptSslErrors", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaExchange:host: + * + * Represents the D-Bus property "Host". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.6.0 + */ + g_object_interface_install_property (iface, + g_param_spec_string ("host", "Host", "Host", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_exchange_get_accept_ssl_errors: (skip) + * @object: A #GoaExchange. + * + * Gets the value of the "AcceptSslErrors" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.8.0 + */ +gboolean +goa_exchange_get_accept_ssl_errors (GoaExchange *object) +{ + return GOA_EXCHANGE_GET_IFACE (object)->get_accept_ssl_errors (object); +} + +/** + * goa_exchange_set_accept_ssl_errors: (skip) + * @object: A #GoaExchange. + * @value: The value to set. + * + * Sets the "AcceptSslErrors" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.8.0 + */ +void +goa_exchange_set_accept_ssl_errors (GoaExchange *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "accept-ssl-errors", value, NULL); +} + +/** + * goa_exchange_get_host: (skip) + * @object: A #GoaExchange. + * + * Gets the value of the "Host" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_exchange_dup_host() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + * + * Since: 3.6.0 + */ +const gchar * +goa_exchange_get_host (GoaExchange *object) +{ + return GOA_EXCHANGE_GET_IFACE (object)->get_host (object); +} + +/** + * goa_exchange_dup_host: (skip) + * @object: A #GoaExchange. + * + * Gets a copy of the "Host" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + * + * Since: 3.6.0 + */ +gchar * +goa_exchange_dup_host (GoaExchange *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "host", &value, NULL); + return value; +} + +/** + * goa_exchange_set_host: (skip) + * @object: A #GoaExchange. + * @value: The value to set. + * + * Sets the "Host" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.6.0 + */ +void +goa_exchange_set_host (GoaExchange *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "host", value, NULL); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaExchangeProxy: + * + * The #GoaExchangeProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.6.0 + */ + +/** + * GoaExchangeProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaExchangeProxy. + * + * Since: 3.6.0 + */ + +struct _GoaExchangeProxyPrivate +{ + GData *qdata; +}; + +static void goa_exchange_proxy_iface_init (GoaExchangeIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaExchangeProxy, goa_exchange_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaExchangeProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_EXCHANGE, goa_exchange_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaExchangeProxy, goa_exchange_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_EXCHANGE, goa_exchange_proxy_iface_init)) + +#endif +static void +goa_exchange_proxy_finalize (GObject *object) +{ + GoaExchangeProxy *proxy = GOA_EXCHANGE_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_exchange_proxy_parent_class)->finalize (object); +} + +static void +goa_exchange_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_exchange_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_exchange_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.Exchange: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_exchange_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_exchange_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.Exchange", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_exchange_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_exchange_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_exchange_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_EXCHANGE); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_EXCHANGE); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_exchange_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaExchangeProxy *proxy = GOA_EXCHANGE_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_exchange_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_exchange_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static gboolean +goa_exchange_proxy_get_accept_ssl_errors (GoaExchange *object) +{ + GoaExchangeProxy *proxy = GOA_EXCHANGE_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "AcceptSslErrors"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_exchange_proxy_get_host (GoaExchange *object) +{ + GoaExchangeProxy *proxy = GOA_EXCHANGE_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Host"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_exchange_proxy_init (GoaExchangeProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_exchange_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_EXCHANGE_PROXY, GoaExchangeProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_exchange_interface_info ()); +} + +static void +goa_exchange_proxy_class_init (GoaExchangeProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_exchange_proxy_finalize; + gobject_class->get_property = goa_exchange_proxy_get_property; + gobject_class->set_property = goa_exchange_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_exchange_proxy_g_signal; + proxy_class->g_properties_changed = goa_exchange_proxy_g_properties_changed; + + goa_exchange_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaExchangeProxyPrivate)); +#endif +} + +static void +goa_exchange_proxy_iface_init (GoaExchangeIface *iface) +{ + iface->get_accept_ssl_errors = goa_exchange_proxy_get_accept_ssl_errors; + iface->get_host = goa_exchange_proxy_get_host; +} + +/** + * goa_exchange_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Exchange. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_exchange_proxy_new_finish() to get the result of the operation. + * + * See goa_exchange_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.6.0 + */ +void +goa_exchange_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_EXCHANGE_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Exchange", NULL); +} + +/** + * goa_exchange_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_exchange_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_exchange_proxy_new(). + * + * Returns: (transfer full) (type GoaExchangeProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaExchange * +goa_exchange_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_EXCHANGE (ret); + else + return NULL; +} + +/** + * goa_exchange_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Exchange. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_exchange_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaExchangeProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaExchange * +goa_exchange_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_EXCHANGE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Exchange", NULL); + if (ret != NULL) + return GOA_EXCHANGE (ret); + else + return NULL; +} + + +/** + * goa_exchange_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_exchange_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_exchange_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_exchange_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.6.0 + */ +void +goa_exchange_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_EXCHANGE_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Exchange", NULL); +} + +/** + * goa_exchange_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_exchange_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_exchange_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaExchangeProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaExchange * +goa_exchange_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_EXCHANGE (ret); + else + return NULL; +} + +/** + * goa_exchange_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_exchange_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_exchange_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaExchangeProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaExchange * +goa_exchange_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_EXCHANGE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Exchange", NULL); + if (ret != NULL) + return GOA_EXCHANGE (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaExchangeSkeleton: + * + * The #GoaExchangeSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.6.0 + */ + +/** + * GoaExchangeSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaExchangeSkeleton. + * + * Since: 3.6.0 + */ + +struct _GoaExchangeSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_exchange_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_EXCHANGE); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_EXCHANGE); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_exchange_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_exchange_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_exchange_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_exchange_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_exchange_skeleton_vtable = +{ + _goa_exchange_skeleton_handle_method_call, + _goa_exchange_skeleton_handle_get_property, + _goa_exchange_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_exchange_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_exchange_interface_info (); +} + +static GDBusInterfaceVTable * +goa_exchange_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_exchange_skeleton_vtable; +} + +static GVariant * +goa_exchange_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_exchange_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_exchange_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_exchange_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_exchange_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Exchange", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_exchange_emit_changed (gpointer user_data); + +static void +goa_exchange_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_exchange_emit_changed (skeleton); +} + +static void goa_exchange_skeleton_iface_init (GoaExchangeIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaExchangeSkeleton, goa_exchange_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaExchangeSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_EXCHANGE, goa_exchange_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaExchangeSkeleton, goa_exchange_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_EXCHANGE, goa_exchange_skeleton_iface_init)) + +#endif +static void +goa_exchange_skeleton_finalize (GObject *object) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (object); + guint n; + for (n = 0; n < 2; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_exchange_skeleton_parent_class)->finalize (object); +} + +static void +goa_exchange_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_exchange_emit_changed (gpointer user_data) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.Exchange", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_exchange_schedule_emit_changed (GoaExchangeSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_exchange_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_exchange_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_exchange_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_exchange_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_exchange_schedule_emit_changed (skeleton, _goa_exchange_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_exchange_skeleton_init (GoaExchangeSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_exchange_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_EXCHANGE_SKELETON, GoaExchangeSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 2); + g_value_init (&skeleton->priv->properties[0], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); +} + +static gboolean +goa_exchange_skeleton_get_accept_ssl_errors (GoaExchange *object) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_exchange_skeleton_get_host (GoaExchange *object) +{ + GoaExchangeSkeleton *skeleton = GOA_EXCHANGE_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_exchange_skeleton_class_init (GoaExchangeSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_exchange_skeleton_finalize; + gobject_class->get_property = goa_exchange_skeleton_get_property; + gobject_class->set_property = goa_exchange_skeleton_set_property; + gobject_class->notify = goa_exchange_skeleton_notify; + + + goa_exchange_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_exchange_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_exchange_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_exchange_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_exchange_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaExchangeSkeletonPrivate)); +#endif +} + +static void +goa_exchange_skeleton_iface_init (GoaExchangeIface *iface) +{ + iface->get_accept_ssl_errors = goa_exchange_skeleton_get_accept_ssl_errors; + iface->get_host = goa_exchange_skeleton_get_host; +} + +/** + * goa_exchange_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Exchange. + * + * Returns: (transfer full) (type GoaExchangeSkeleton): The skeleton object. + * + * Since: 3.6.0 + */ +GoaExchange * +goa_exchange_skeleton_new (void) +{ + return GOA_EXCHANGE (g_object_new (GOA_TYPE_EXCHANGE_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.MediaServer + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaMediaServer + * @title: GoaMediaServer + * @short_description: Generated C code for the org.gnome.OnlineAccounts.MediaServer D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.MediaServer D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.MediaServer ---- */ + +static const _ExtendedGDBusPropertyInfo _goa_media_server_property_info_dlna_supported = +{ + { + -1, + (gchar *) "DlnaSupported", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "dlna-supported", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_media_server_property_info_udn = +{ + { + -1, + (gchar *) "Udn", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "udn", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_media_server_property_info_pointers[] = +{ + &_goa_media_server_property_info_dlna_supported, + &_goa_media_server_property_info_udn, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_media_server_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.MediaServer", + NULL, + NULL, + (GDBusPropertyInfo **) &_goa_media_server_property_info_pointers, + NULL + }, + "media-server", +}; + + +/** + * goa_media_server_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.MediaServer D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.14 + */ +GDBusInterfaceInfo * +goa_media_server_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_media_server_interface_info.parent_struct; +} + +/** + * goa_media_server_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaMediaServer interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.14 + */ +guint +goa_media_server_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "dlna-supported"); + g_object_class_override_property (klass, property_id_begin++, "udn"); + return property_id_begin - 1; +} + + + +/** + * GoaMediaServer: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.MediaServer. + * + * Since: 3.14 + */ + +/** + * GoaMediaServerIface: + * @parent_iface: The parent interface. + * @get_dlna_supported: Getter for the #GoaMediaServer:dlna-supported property. + * @get_udn: Getter for the #GoaMediaServer:udn property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.MediaServer. + * + * Since: 3.14 + */ + +typedef GoaMediaServerIface GoaMediaServerInterface; +G_DEFINE_INTERFACE (GoaMediaServer, goa_media_server, G_TYPE_OBJECT) + +static void +goa_media_server_default_init (GoaMediaServerIface *iface) +{ + /* GObject properties for D-Bus properties: */ + /** + * GoaMediaServer:dlna-supported: + * + * Represents the D-Bus property "DlnaSupported". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.14 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("dlna-supported", "DlnaSupported", "DlnaSupported", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaMediaServer:udn: + * + * Represents the D-Bus property "Udn". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.14 + */ + g_object_interface_install_property (iface, + g_param_spec_string ("udn", "Udn", "Udn", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_media_server_get_dlna_supported: (skip) + * @object: A #GoaMediaServer. + * + * Gets the value of the "DlnaSupported" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + * + * Since: 3.14 + */ +gboolean +goa_media_server_get_dlna_supported (GoaMediaServer *object) +{ + return GOA_MEDIA_SERVER_GET_IFACE (object)->get_dlna_supported (object); +} + +/** + * goa_media_server_set_dlna_supported: (skip) + * @object: A #GoaMediaServer. + * @value: The value to set. + * + * Sets the "DlnaSupported" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.14 + */ +void +goa_media_server_set_dlna_supported (GoaMediaServer *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "dlna-supported", value, NULL); +} + +/** + * goa_media_server_get_udn: (skip) + * @object: A #GoaMediaServer. + * + * Gets the value of the "Udn" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_media_server_dup_udn() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + * + * Since: 3.14 + */ +const gchar * +goa_media_server_get_udn (GoaMediaServer *object) +{ + return GOA_MEDIA_SERVER_GET_IFACE (object)->get_udn (object); +} + +/** + * goa_media_server_dup_udn: (skip) + * @object: A #GoaMediaServer. + * + * Gets a copy of the "Udn" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + * + * Since: 3.14 + */ +gchar * +goa_media_server_dup_udn (GoaMediaServer *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "udn", &value, NULL); + return value; +} + +/** + * goa_media_server_set_udn: (skip) + * @object: A #GoaMediaServer. + * @value: The value to set. + * + * Sets the "Udn" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.14 + */ +void +goa_media_server_set_udn (GoaMediaServer *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "udn", value, NULL); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMediaServerProxy: + * + * The #GoaMediaServerProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.14 + */ + +/** + * GoaMediaServerProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMediaServerProxy. + * + * Since: 3.14 + */ + +struct _GoaMediaServerProxyPrivate +{ + GData *qdata; +}; + +static void goa_media_server_proxy_iface_init (GoaMediaServerIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMediaServerProxy, goa_media_server_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaMediaServerProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MEDIA_SERVER, goa_media_server_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMediaServerProxy, goa_media_server_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MEDIA_SERVER, goa_media_server_proxy_iface_init)) + +#endif +static void +goa_media_server_proxy_finalize (GObject *object) +{ + GoaMediaServerProxy *proxy = GOA_MEDIA_SERVER_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_media_server_proxy_parent_class)->finalize (object); +} + +static void +goa_media_server_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_media_server_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_media_server_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.MediaServer: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_media_server_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 2); + info = _goa_media_server_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.MediaServer", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_media_server_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_media_server_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_media_server_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_MEDIA_SERVER); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MEDIA_SERVER); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_media_server_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaMediaServerProxy *proxy = GOA_MEDIA_SERVER_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_media_server_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_media_server_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static gboolean +goa_media_server_proxy_get_dlna_supported (GoaMediaServer *object) +{ + GoaMediaServerProxy *proxy = GOA_MEDIA_SERVER_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "DlnaSupported"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static const gchar * +goa_media_server_proxy_get_udn (GoaMediaServer *object) +{ + GoaMediaServerProxy *proxy = GOA_MEDIA_SERVER_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Udn"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static void +goa_media_server_proxy_init (GoaMediaServerProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_media_server_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_MEDIA_SERVER_PROXY, GoaMediaServerProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_media_server_interface_info ()); +} + +static void +goa_media_server_proxy_class_init (GoaMediaServerProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_media_server_proxy_finalize; + gobject_class->get_property = goa_media_server_proxy_get_property; + gobject_class->set_property = goa_media_server_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_media_server_proxy_g_signal; + proxy_class->g_properties_changed = goa_media_server_proxy_g_properties_changed; + + goa_media_server_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMediaServerProxyPrivate)); +#endif +} + +static void +goa_media_server_proxy_iface_init (GoaMediaServerIface *iface) +{ + iface->get_dlna_supported = goa_media_server_proxy_get_dlna_supported; + iface->get_udn = goa_media_server_proxy_get_udn; +} + +/** + * goa_media_server_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.MediaServer. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_media_server_proxy_new_finish() to get the result of the operation. + * + * See goa_media_server_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.14 + */ +void +goa_media_server_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MEDIA_SERVER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.MediaServer", NULL); +} + +/** + * goa_media_server_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_media_server_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_media_server_proxy_new(). + * + * Returns: (transfer full) (type GoaMediaServerProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14 + */ +GoaMediaServer * +goa_media_server_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MEDIA_SERVER (ret); + else + return NULL; +} + +/** + * goa_media_server_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.MediaServer. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_media_server_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMediaServerProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14 + */ +GoaMediaServer * +goa_media_server_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MEDIA_SERVER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.MediaServer", NULL); + if (ret != NULL) + return GOA_MEDIA_SERVER (ret); + else + return NULL; +} + + +/** + * goa_media_server_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_media_server_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_media_server_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_media_server_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.14 + */ +void +goa_media_server_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_MEDIA_SERVER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.MediaServer", NULL); +} + +/** + * goa_media_server_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_media_server_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_media_server_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaMediaServerProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14 + */ +GoaMediaServer * +goa_media_server_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_MEDIA_SERVER (ret); + else + return NULL; +} + +/** + * goa_media_server_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_media_server_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_media_server_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaMediaServerProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.14 + */ +GoaMediaServer * +goa_media_server_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_MEDIA_SERVER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.MediaServer", NULL); + if (ret != NULL) + return GOA_MEDIA_SERVER (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaMediaServerSkeleton: + * + * The #GoaMediaServerSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.14 + */ + +/** + * GoaMediaServerSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaMediaServerSkeleton. + * + * Since: 3.14 + */ + +struct _GoaMediaServerSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_media_server_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_MEDIA_SERVER); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_MEDIA_SERVER); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_media_server_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_media_server_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_media_server_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_media_server_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_media_server_skeleton_vtable = +{ + _goa_media_server_skeleton_handle_method_call, + _goa_media_server_skeleton_handle_get_property, + _goa_media_server_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_media_server_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_media_server_interface_info (); +} + +static GDBusInterfaceVTable * +goa_media_server_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_media_server_skeleton_vtable; +} + +static GVariant * +goa_media_server_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_media_server_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_media_server_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_media_server_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_media_server_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.MediaServer", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_media_server_emit_changed (gpointer user_data); + +static void +goa_media_server_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_media_server_emit_changed (skeleton); +} + +static void goa_media_server_skeleton_iface_init (GoaMediaServerIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaMediaServerSkeleton, goa_media_server_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaMediaServerSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_MEDIA_SERVER, goa_media_server_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaMediaServerSkeleton, goa_media_server_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_MEDIA_SERVER, goa_media_server_skeleton_iface_init)) + +#endif +static void +goa_media_server_skeleton_finalize (GObject *object) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (object); + guint n; + for (n = 0; n < 2; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_media_server_skeleton_parent_class)->finalize (object); +} + +static void +goa_media_server_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_media_server_emit_changed (gpointer user_data) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.MediaServer", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_media_server_schedule_emit_changed (GoaMediaServerSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_media_server_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_media_server_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_media_server_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_media_server_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 2); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_media_server_schedule_emit_changed (skeleton, _goa_media_server_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_media_server_skeleton_init (GoaMediaServerSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_media_server_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_MEDIA_SERVER_SKELETON, GoaMediaServerSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 2); + g_value_init (&skeleton->priv->properties[0], G_TYPE_BOOLEAN); + g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING); +} + +static gboolean +goa_media_server_skeleton_get_dlna_supported (GoaMediaServer *object) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static const gchar * +goa_media_server_skeleton_get_udn (GoaMediaServer *object) +{ + GoaMediaServerSkeleton *skeleton = GOA_MEDIA_SERVER_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_media_server_skeleton_class_init (GoaMediaServerSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_media_server_skeleton_finalize; + gobject_class->get_property = goa_media_server_skeleton_get_property; + gobject_class->set_property = goa_media_server_skeleton_set_property; + gobject_class->notify = goa_media_server_skeleton_notify; + + + goa_media_server_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_media_server_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_media_server_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_media_server_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_media_server_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaMediaServerSkeletonPrivate)); +#endif +} + +static void +goa_media_server_skeleton_iface_init (GoaMediaServerIface *iface) +{ + iface->get_dlna_supported = goa_media_server_skeleton_get_dlna_supported; + iface->get_udn = goa_media_server_skeleton_get_udn; +} + +/** + * goa_media_server_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.MediaServer. + * + * Returns: (transfer full) (type GoaMediaServerSkeleton): The skeleton object. + * + * Since: 3.14 + */ +GoaMediaServer * +goa_media_server_skeleton_new (void) +{ + return GOA_MEDIA_SERVER (g_object_new (GOA_TYPE_MEDIA_SERVER_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Ticketing + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaTicketing + * @title: GoaTicketing + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Ticketing D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Ticketing D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Ticketing ---- */ + +static const _ExtendedGDBusMethodInfo _goa_ticketing_method_info_get_ticket = +{ + { + -1, + (gchar *) "GetTicket", + NULL, + NULL, + NULL + }, + "handle-get-ticket", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _goa_ticketing_method_info_pointers[] = +{ + &_goa_ticketing_method_info_get_ticket, + NULL +}; + +static const _ExtendedGDBusPropertyInfo _goa_ticketing_property_info_details = +{ + { + -1, + (gchar *) "Details", + (gchar *) "a{ss}", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "details", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_ticketing_property_info_pointers[] = +{ + &_goa_ticketing_property_info_details, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_ticketing_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Ticketing", + (GDBusMethodInfo **) &_goa_ticketing_method_info_pointers, + NULL, + (GDBusPropertyInfo **) &_goa_ticketing_property_info_pointers, + NULL + }, + "ticketing", +}; + + +/** + * goa_ticketing_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Ticketing D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.6.0 + */ +GDBusInterfaceInfo * +goa_ticketing_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_ticketing_interface_info.parent_struct; +} + +/** + * goa_ticketing_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaTicketing interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.6.0 + */ +guint +goa_ticketing_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "details"); + return property_id_begin - 1; +} + + + +/** + * GoaTicketing: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Ticketing. + * + * Since: 3.6.0 + */ + +/** + * GoaTicketingIface: + * @parent_iface: The parent interface. + * @handle_get_ticket: Handler for the #GoaTicketing::handle-get-ticket signal. + * @get_details: Getter for the #GoaTicketing:details property. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Ticketing. + * + * Since: 3.6.0 + */ + +typedef GoaTicketingIface GoaTicketingInterface; +G_DEFINE_INTERFACE (GoaTicketing, goa_ticketing, G_TYPE_OBJECT) + +static void +goa_ticketing_default_init (GoaTicketingIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * GoaTicketing::handle-get-ticket: + * @object: A #GoaTicketing. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the GetTicket() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_ticketing_complete_get_ticket() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + * + * Since: 3.6.0 + */ + g_signal_new ("handle-get-ticket", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaTicketingIface, handle_get_ticket), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /* GObject properties for D-Bus properties: */ + /** + * GoaTicketing:details: + * + * Represents the D-Bus property "Details". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + * + * Since: 3.18 + */ + g_object_interface_install_property (iface, + g_param_spec_variant ("details", "Details", "Details", G_VARIANT_TYPE ("a{ss}"), NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_ticketing_get_details: (skip) + * @object: A #GoaTicketing. + * + * Gets the value of the "Details" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_ticketing_dup_details() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + * + * Since: 3.18 + */ +GVariant * +goa_ticketing_get_details (GoaTicketing *object) +{ + return GOA_TICKETING_GET_IFACE (object)->get_details (object); +} + +/** + * goa_ticketing_dup_details: (skip) + * @object: A #GoaTicketing. + * + * Gets a copy of the "Details" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref(). + * + * Since: 3.18 + */ +GVariant * +goa_ticketing_dup_details (GoaTicketing *object) +{ + GVariant *value; + g_object_get (G_OBJECT (object), "details", &value, NULL); + return value; +} + +/** + * goa_ticketing_set_details: (skip) + * @object: A #GoaTicketing. + * @value: The value to set. + * + * Sets the "Details" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + * + * Since: 3.18 + */ +void +goa_ticketing_set_details (GoaTicketing *object, GVariant *value) +{ + g_object_set (G_OBJECT (object), "details", value, NULL); +} + +/** + * goa_ticketing_call_get_ticket: + * @proxy: A #GoaTicketingProxy. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the GetTicket() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_ticketing_call_get_ticket_finish() to get the result of the operation. + * + * See goa_ticketing_call_get_ticket_sync() for the synchronous, blocking version of this method. + * + * Since: 3.6.0 + */ +void +goa_ticketing_call_get_ticket ( + GoaTicketing *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "GetTicket", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_ticketing_call_get_ticket_finish: + * @proxy: A #GoaTicketingProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_ticketing_call_get_ticket(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_ticketing_call_get_ticket(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + * + * Since: 3.6.0 + */ +gboolean +goa_ticketing_call_get_ticket_finish ( + GoaTicketing *proxy, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "()"); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_ticketing_call_get_ticket_sync: + * @proxy: A #GoaTicketingProxy. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the GetTicket() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_ticketing_call_get_ticket() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + * + * Since: 3.6.0 + */ +gboolean +goa_ticketing_call_get_ticket_sync ( + GoaTicketing *proxy, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "GetTicket", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "()"); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_ticketing_complete_get_ticket: + * @object: A #GoaTicketing. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the GetTicket() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + * + * Since: 3.6.0 + */ +void +goa_ticketing_complete_get_ticket ( + GoaTicketing *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaTicketingProxy: + * + * The #GoaTicketingProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.6.0 + */ + +/** + * GoaTicketingProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaTicketingProxy. + * + * Since: 3.6.0 + */ + +struct _GoaTicketingProxyPrivate +{ + GData *qdata; +}; + +static void goa_ticketing_proxy_iface_init (GoaTicketingIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaTicketingProxy, goa_ticketing_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaTicketingProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_TICKETING, goa_ticketing_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaTicketingProxy, goa_ticketing_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_TICKETING, goa_ticketing_proxy_iface_init)) + +#endif +static void +goa_ticketing_proxy_finalize (GObject *object) +{ + GoaTicketingProxy *proxy = GOA_TICKETING_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_ticketing_proxy_parent_class)->finalize (object); +} + +static void +goa_ticketing_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 1); + info = _goa_ticketing_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_ticketing_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.OnlineAccounts.Ticketing: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_ticketing_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 1); + info = _goa_ticketing_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.OnlineAccounts.Ticketing", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_ticketing_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_ticketing_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_ticketing_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_TICKETING); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_TICKETING); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_ticketing_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaTicketingProxy *proxy = GOA_TICKETING_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_ticketing_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_ticketing_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static GVariant * +goa_ticketing_proxy_get_details (GoaTicketing *object) +{ + GoaTicketingProxy *proxy = GOA_TICKETING_PROXY (object); + GVariant *variant; + GVariant *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Details"); + value = variant; + if (variant != NULL) + g_variant_unref (variant); + return value; +} + +static void +goa_ticketing_proxy_init (GoaTicketingProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_ticketing_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_TICKETING_PROXY, GoaTicketingProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_ticketing_interface_info ()); +} + +static void +goa_ticketing_proxy_class_init (GoaTicketingProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_ticketing_proxy_finalize; + gobject_class->get_property = goa_ticketing_proxy_get_property; + gobject_class->set_property = goa_ticketing_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_ticketing_proxy_g_signal; + proxy_class->g_properties_changed = goa_ticketing_proxy_g_properties_changed; + + goa_ticketing_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaTicketingProxyPrivate)); +#endif +} + +static void +goa_ticketing_proxy_iface_init (GoaTicketingIface *iface) +{ + iface->get_details = goa_ticketing_proxy_get_details; +} + +/** + * goa_ticketing_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Ticketing. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_ticketing_proxy_new_finish() to get the result of the operation. + * + * See goa_ticketing_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.6.0 + */ +void +goa_ticketing_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_TICKETING_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Ticketing", NULL); +} + +/** + * goa_ticketing_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_ticketing_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_ticketing_proxy_new(). + * + * Returns: (transfer full) (type GoaTicketingProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaTicketing * +goa_ticketing_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_TICKETING (ret); + else + return NULL; +} + +/** + * goa_ticketing_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Ticketing. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_ticketing_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaTicketingProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaTicketing * +goa_ticketing_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_TICKETING_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Ticketing", NULL); + if (ret != NULL) + return GOA_TICKETING (ret); + else + return NULL; +} + + +/** + * goa_ticketing_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_ticketing_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_ticketing_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_ticketing_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.6.0 + */ +void +goa_ticketing_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_TICKETING_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Ticketing", NULL); +} + +/** + * goa_ticketing_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_ticketing_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_ticketing_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaTicketingProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaTicketing * +goa_ticketing_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_TICKETING (ret); + else + return NULL; +} + +/** + * goa_ticketing_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_ticketing_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_ticketing_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaTicketingProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.6.0 + */ +GoaTicketing * +goa_ticketing_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_TICKETING_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Ticketing", NULL); + if (ret != NULL) + return GOA_TICKETING (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaTicketingSkeleton: + * + * The #GoaTicketingSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.6.0 + */ + +/** + * GoaTicketingSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaTicketingSkeleton. + * + * Since: 3.6.0 + */ + +struct _GoaTicketingSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_ticketing_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_TICKETING); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_TICKETING); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_ticketing_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_ticketing_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_ticketing_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_ticketing_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_ticketing_skeleton_vtable = +{ + _goa_ticketing_skeleton_handle_method_call, + _goa_ticketing_skeleton_handle_get_property, + _goa_ticketing_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_ticketing_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_ticketing_interface_info (); +} + +static GDBusInterfaceVTable * +goa_ticketing_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_ticketing_skeleton_vtable; +} + +static GVariant * +goa_ticketing_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_ticketing_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_ticketing_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_ticketing_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_ticketing_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Ticketing", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_ticketing_emit_changed (gpointer user_data); + +static void +goa_ticketing_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_ticketing_emit_changed (skeleton); +} + +static void goa_ticketing_skeleton_iface_init (GoaTicketingIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaTicketingSkeleton, goa_ticketing_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaTicketingSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_TICKETING, goa_ticketing_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaTicketingSkeleton, goa_ticketing_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_TICKETING, goa_ticketing_skeleton_iface_init)) + +#endif +static void +goa_ticketing_skeleton_finalize (GObject *object) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (object); + guint n; + for (n = 0; n < 1; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_ticketing_skeleton_parent_class)->finalize (object); +} + +static void +goa_ticketing_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 1); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_ticketing_emit_changed (gpointer user_data) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.OnlineAccounts.Ticketing", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_ticketing_schedule_emit_changed (GoaTicketingSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_ticketing_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_ticketing_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_ticketing_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_ticketing_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 1); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_ticketing_schedule_emit_changed (skeleton, _goa_ticketing_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_ticketing_skeleton_init (GoaTicketingSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_ticketing_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_TICKETING_SKELETON, GoaTicketingSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 1); + g_value_init (&skeleton->priv->properties[0], G_TYPE_VARIANT); +} + +static GVariant * +goa_ticketing_skeleton_get_details (GoaTicketing *object) +{ + GoaTicketingSkeleton *skeleton = GOA_TICKETING_SKELETON (object); + GVariant *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_variant (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_ticketing_skeleton_class_init (GoaTicketingSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_ticketing_skeleton_finalize; + gobject_class->get_property = goa_ticketing_skeleton_get_property; + gobject_class->set_property = goa_ticketing_skeleton_set_property; + gobject_class->notify = goa_ticketing_skeleton_notify; + + + goa_ticketing_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_ticketing_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_ticketing_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_ticketing_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_ticketing_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaTicketingSkeletonPrivate)); +#endif +} + +static void +goa_ticketing_skeleton_iface_init (GoaTicketingIface *iface) +{ + iface->get_details = goa_ticketing_skeleton_get_details; +} + +/** + * goa_ticketing_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Ticketing. + * + * Returns: (transfer full) (type GoaTicketingSkeleton): The skeleton object. + * + * Since: 3.6.0 + */ +GoaTicketing * +goa_ticketing_skeleton_new (void) +{ + return GOA_TICKETING (g_object_new (GOA_TYPE_TICKETING_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Todo + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaTodo + * @title: GoaTodo + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Todo D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Todo D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Todo ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_todo_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Todo", + NULL, + NULL, + NULL, + NULL + }, + "todo", +}; + + +/** + * goa_todo_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Todo D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.26.0 + */ +GDBusInterfaceInfo * +goa_todo_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_todo_interface_info.parent_struct; +} + +/** + * goa_todo_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaTodo interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.26.0 + */ +guint +goa_todo_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaTodo: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Todo. + * + * Since: 3.26.0 + */ + +/** + * GoaTodoIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Todo. + * + * Since: 3.26.0 + */ + +typedef GoaTodoIface GoaTodoInterface; +G_DEFINE_INTERFACE (GoaTodo, goa_todo, G_TYPE_OBJECT) + +static void +goa_todo_default_init (GoaTodoIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaTodoProxy: + * + * The #GoaTodoProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.26.0 + */ + +/** + * GoaTodoProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaTodoProxy. + * + * Since: 3.26.0 + */ + +struct _GoaTodoProxyPrivate +{ + GData *qdata; +}; + +static void goa_todo_proxy_iface_init (GoaTodoIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaTodoProxy, goa_todo_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaTodoProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_TODO, goa_todo_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaTodoProxy, goa_todo_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_TODO, goa_todo_proxy_iface_init)) + +#endif +static void +goa_todo_proxy_finalize (GObject *object) +{ + GoaTodoProxy *proxy = GOA_TODO_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_todo_proxy_parent_class)->finalize (object); +} + +static void +goa_todo_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_todo_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_todo_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_todo_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_TODO); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_TODO); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_todo_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaTodoProxy *proxy = GOA_TODO_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_todo_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_todo_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_todo_proxy_init (GoaTodoProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_todo_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_TODO_PROXY, GoaTodoProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_todo_interface_info ()); +} + +static void +goa_todo_proxy_class_init (GoaTodoProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_todo_proxy_finalize; + gobject_class->get_property = goa_todo_proxy_get_property; + gobject_class->set_property = goa_todo_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_todo_proxy_g_signal; + proxy_class->g_properties_changed = goa_todo_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaTodoProxyPrivate)); +#endif +} + +static void +goa_todo_proxy_iface_init (GoaTodoIface *iface) +{ +} + +/** + * goa_todo_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Todo. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_todo_proxy_new_finish() to get the result of the operation. + * + * See goa_todo_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.26.0 + */ +void +goa_todo_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_TODO_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Todo", NULL); +} + +/** + * goa_todo_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_todo_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_todo_proxy_new(). + * + * Returns: (transfer full) (type GoaTodoProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.26.0 + */ +GoaTodo * +goa_todo_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_TODO (ret); + else + return NULL; +} + +/** + * goa_todo_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Todo. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_todo_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaTodoProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.26.0 + */ +GoaTodo * +goa_todo_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_TODO_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Todo", NULL); + if (ret != NULL) + return GOA_TODO (ret); + else + return NULL; +} + + +/** + * goa_todo_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_todo_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_todo_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_todo_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.26.0 + */ +void +goa_todo_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_TODO_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Todo", NULL); +} + +/** + * goa_todo_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_todo_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_todo_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaTodoProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.26.0 + */ +GoaTodo * +goa_todo_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_TODO (ret); + else + return NULL; +} + +/** + * goa_todo_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_todo_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_todo_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaTodoProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.26.0 + */ +GoaTodo * +goa_todo_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_TODO_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Todo", NULL); + if (ret != NULL) + return GOA_TODO (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaTodoSkeleton: + * + * The #GoaTodoSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.26.0 + */ + +/** + * GoaTodoSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaTodoSkeleton. + * + * Since: 3.26.0 + */ + +struct _GoaTodoSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_todo_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaTodoSkeleton *skeleton = GOA_TODO_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_TODO); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_TODO); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_todo_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaTodoSkeleton *skeleton = GOA_TODO_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_todo_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_todo_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaTodoSkeleton *skeleton = GOA_TODO_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_todo_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_todo_skeleton_vtable = +{ + _goa_todo_skeleton_handle_method_call, + _goa_todo_skeleton_handle_get_property, + _goa_todo_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_todo_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_todo_interface_info (); +} + +static GDBusInterfaceVTable * +goa_todo_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_todo_skeleton_vtable; +} + +static GVariant * +goa_todo_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaTodoSkeleton *skeleton = GOA_TODO_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_todo_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_todo_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_todo_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_todo_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Todo", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_todo_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_todo_skeleton_iface_init (GoaTodoIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaTodoSkeleton, goa_todo_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaTodoSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_TODO, goa_todo_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaTodoSkeleton, goa_todo_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_TODO, goa_todo_skeleton_iface_init)) + +#endif +static void +goa_todo_skeleton_finalize (GObject *object) +{ + GoaTodoSkeleton *skeleton = GOA_TODO_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_todo_skeleton_parent_class)->finalize (object); +} + +static void +goa_todo_skeleton_init (GoaTodoSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_todo_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_TODO_SKELETON, GoaTodoSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_todo_skeleton_class_init (GoaTodoSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_todo_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_todo_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_todo_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_todo_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_todo_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaTodoSkeletonPrivate)); +#endif +} + +static void +goa_todo_skeleton_iface_init (GoaTodoIface *iface) +{ +} + +/** + * goa_todo_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Todo. + * + * Returns: (transfer full) (type GoaTodoSkeleton): The skeleton object. + * + * Since: 3.26.0 + */ +GoaTodo * +goa_todo_skeleton_new (void) +{ + return GOA_TODO (g_object_new (GOA_TYPE_TODO_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.ReadLater + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaReadLater + * @title: GoaReadLater + * @short_description: Generated C code for the org.gnome.OnlineAccounts.ReadLater D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.ReadLater D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.ReadLater ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_read_later_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.ReadLater", + NULL, + NULL, + NULL, + NULL + }, + "read-later", +}; + + +/** + * goa_read_later_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.ReadLater D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.12.0 + */ +GDBusInterfaceInfo * +goa_read_later_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_read_later_interface_info.parent_struct; +} + +/** + * goa_read_later_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaReadLater interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.12.0 + */ +guint +goa_read_later_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaReadLater: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.ReadLater. + * + * Since: 3.12.0 + */ + +/** + * GoaReadLaterIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.ReadLater. + * + * Since: 3.12.0 + */ + +typedef GoaReadLaterIface GoaReadLaterInterface; +G_DEFINE_INTERFACE (GoaReadLater, goa_read_later, G_TYPE_OBJECT) + +static void +goa_read_later_default_init (GoaReadLaterIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaReadLaterProxy: + * + * The #GoaReadLaterProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.12.0 + */ + +/** + * GoaReadLaterProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaReadLaterProxy. + * + * Since: 3.12.0 + */ + +struct _GoaReadLaterProxyPrivate +{ + GData *qdata; +}; + +static void goa_read_later_proxy_iface_init (GoaReadLaterIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaReadLaterProxy, goa_read_later_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaReadLaterProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_READ_LATER, goa_read_later_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaReadLaterProxy, goa_read_later_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_READ_LATER, goa_read_later_proxy_iface_init)) + +#endif +static void +goa_read_later_proxy_finalize (GObject *object) +{ + GoaReadLaterProxy *proxy = GOA_READ_LATER_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_read_later_proxy_parent_class)->finalize (object); +} + +static void +goa_read_later_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_read_later_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_read_later_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_read_later_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_READ_LATER); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_READ_LATER); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_read_later_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaReadLaterProxy *proxy = GOA_READ_LATER_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_read_later_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_read_later_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_read_later_proxy_init (GoaReadLaterProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_read_later_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_READ_LATER_PROXY, GoaReadLaterProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_read_later_interface_info ()); +} + +static void +goa_read_later_proxy_class_init (GoaReadLaterProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_read_later_proxy_finalize; + gobject_class->get_property = goa_read_later_proxy_get_property; + gobject_class->set_property = goa_read_later_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_read_later_proxy_g_signal; + proxy_class->g_properties_changed = goa_read_later_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaReadLaterProxyPrivate)); +#endif +} + +static void +goa_read_later_proxy_iface_init (GoaReadLaterIface *iface) +{ +} + +/** + * goa_read_later_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.ReadLater. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_read_later_proxy_new_finish() to get the result of the operation. + * + * See goa_read_later_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.12.0 + */ +void +goa_read_later_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_READ_LATER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.ReadLater", NULL); +} + +/** + * goa_read_later_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_read_later_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_read_later_proxy_new(). + * + * Returns: (transfer full) (type GoaReadLaterProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaReadLater * +goa_read_later_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_READ_LATER (ret); + else + return NULL; +} + +/** + * goa_read_later_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.ReadLater. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_read_later_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaReadLaterProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaReadLater * +goa_read_later_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_READ_LATER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.ReadLater", NULL); + if (ret != NULL) + return GOA_READ_LATER (ret); + else + return NULL; +} + + +/** + * goa_read_later_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_read_later_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_read_later_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_read_later_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.12.0 + */ +void +goa_read_later_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_READ_LATER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.ReadLater", NULL); +} + +/** + * goa_read_later_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_read_later_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_read_later_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaReadLaterProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaReadLater * +goa_read_later_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_READ_LATER (ret); + else + return NULL; +} + +/** + * goa_read_later_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_read_later_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_read_later_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaReadLaterProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaReadLater * +goa_read_later_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_READ_LATER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.ReadLater", NULL); + if (ret != NULL) + return GOA_READ_LATER (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaReadLaterSkeleton: + * + * The #GoaReadLaterSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.12.0 + */ + +/** + * GoaReadLaterSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaReadLaterSkeleton. + * + * Since: 3.12.0 + */ + +struct _GoaReadLaterSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_read_later_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaReadLaterSkeleton *skeleton = GOA_READ_LATER_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_READ_LATER); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_READ_LATER); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_read_later_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaReadLaterSkeleton *skeleton = GOA_READ_LATER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_read_later_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_read_later_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaReadLaterSkeleton *skeleton = GOA_READ_LATER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_read_later_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_read_later_skeleton_vtable = +{ + _goa_read_later_skeleton_handle_method_call, + _goa_read_later_skeleton_handle_get_property, + _goa_read_later_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_read_later_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_read_later_interface_info (); +} + +static GDBusInterfaceVTable * +goa_read_later_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_read_later_skeleton_vtable; +} + +static GVariant * +goa_read_later_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaReadLaterSkeleton *skeleton = GOA_READ_LATER_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_read_later_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_read_later_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_read_later_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_read_later_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.ReadLater", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_read_later_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_read_later_skeleton_iface_init (GoaReadLaterIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaReadLaterSkeleton, goa_read_later_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaReadLaterSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_READ_LATER, goa_read_later_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaReadLaterSkeleton, goa_read_later_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_READ_LATER, goa_read_later_skeleton_iface_init)) + +#endif +static void +goa_read_later_skeleton_finalize (GObject *object) +{ + GoaReadLaterSkeleton *skeleton = GOA_READ_LATER_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_read_later_skeleton_parent_class)->finalize (object); +} + +static void +goa_read_later_skeleton_init (GoaReadLaterSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_read_later_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_READ_LATER_SKELETON, GoaReadLaterSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_read_later_skeleton_class_init (GoaReadLaterSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_read_later_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_read_later_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_read_later_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_read_later_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_read_later_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaReadLaterSkeletonPrivate)); +#endif +} + +static void +goa_read_later_skeleton_iface_init (GoaReadLaterIface *iface) +{ +} + +/** + * goa_read_later_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.ReadLater. + * + * Returns: (transfer full) (type GoaReadLaterSkeleton): The skeleton object. + * + * Since: 3.12.0 + */ +GoaReadLater * +goa_read_later_skeleton_new (void) +{ + return GOA_READ_LATER (g_object_new (GOA_TYPE_READ_LATER_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.OnlineAccounts.Printers + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaPrinters + * @title: GoaPrinters + * @short_description: Generated C code for the org.gnome.OnlineAccounts.Printers D-Bus interface + * + * This section contains code for working with the org.gnome.OnlineAccounts.Printers D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.OnlineAccounts.Printers ---- */ + +static const _ExtendedGDBusInterfaceInfo _goa_printers_interface_info = +{ + { + -1, + (gchar *) "org.gnome.OnlineAccounts.Printers", + NULL, + NULL, + NULL, + NULL + }, + "printers", +}; + + +/** + * goa_printers_interface_info: + * + * Gets a machine-readable description of the org.gnome.OnlineAccounts.Printers D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + * + * Since: 3.12.0 + */ +GDBusInterfaceInfo * +goa_printers_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_printers_interface_info.parent_struct; +} + +/** + * goa_printers_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaPrinters interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + * + * Since: 3.12.0 + */ +guint +goa_printers_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaPrinters: + * + * Abstract interface type for the D-Bus interface org.gnome.OnlineAccounts.Printers. + * + * Since: 3.12.0 + */ + +/** + * GoaPrintersIface: + * @parent_iface: The parent interface. + * + * Virtual table for the D-Bus interface org.gnome.OnlineAccounts.Printers. + * + * Since: 3.12.0 + */ + +typedef GoaPrintersIface GoaPrintersInterface; +G_DEFINE_INTERFACE (GoaPrinters, goa_printers, G_TYPE_OBJECT) + +static void +goa_printers_default_init (GoaPrintersIface *iface) +{ +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaPrintersProxy: + * + * The #GoaPrintersProxy structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.12.0 + */ + +/** + * GoaPrintersProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaPrintersProxy. + * + * Since: 3.12.0 + */ + +struct _GoaPrintersProxyPrivate +{ + GData *qdata; +}; + +static void goa_printers_proxy_iface_init (GoaPrintersIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaPrintersProxy, goa_printers_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaPrintersProxy) + G_IMPLEMENT_INTERFACE (GOA_TYPE_PRINTERS, goa_printers_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaPrintersProxy, goa_printers_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_PRINTERS, goa_printers_proxy_iface_init)) + +#endif +static void +goa_printers_proxy_finalize (GObject *object) +{ + GoaPrintersProxy *proxy = GOA_PRINTERS_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_printers_proxy_parent_class)->finalize (object); +} + +static void +goa_printers_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_printers_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_printers_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_printers_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_TYPE_PRINTERS); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_PRINTERS); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_printers_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaPrintersProxy *proxy = GOA_PRINTERS_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_printers_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_printers_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_printers_proxy_init (GoaPrintersProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_printers_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_TYPE_PRINTERS_PROXY, GoaPrintersProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_printers_interface_info ()); +} + +static void +goa_printers_proxy_class_init (GoaPrintersProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_printers_proxy_finalize; + gobject_class->get_property = goa_printers_proxy_get_property; + gobject_class->set_property = goa_printers_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_printers_proxy_g_signal; + proxy_class->g_properties_changed = goa_printers_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaPrintersProxyPrivate)); +#endif +} + +static void +goa_printers_proxy_iface_init (GoaPrintersIface *iface) +{ +} + +/** + * goa_printers_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Printers. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_printers_proxy_new_finish() to get the result of the operation. + * + * See goa_printers_proxy_new_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.12.0 + */ +void +goa_printers_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_PRINTERS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Printers", NULL); +} + +/** + * goa_printers_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_printers_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_printers_proxy_new(). + * + * Returns: (transfer full) (type GoaPrintersProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaPrinters * +goa_printers_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_PRINTERS (ret); + else + return NULL; +} + +/** + * goa_printers_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.OnlineAccounts.Printers. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_printers_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaPrintersProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaPrinters * +goa_printers_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_PRINTERS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Printers", NULL); + if (ret != NULL) + return GOA_PRINTERS (ret); + else + return NULL; +} + + +/** + * goa_printers_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_printers_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_printers_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_printers_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + * + * Since: 3.12.0 + */ +void +goa_printers_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_PRINTERS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Printers", NULL); +} + +/** + * goa_printers_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_printers_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_printers_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaPrintersProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaPrinters * +goa_printers_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_PRINTERS (ret); + else + return NULL; +} + +/** + * goa_printers_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_printers_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_printers_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaPrintersProxy): The constructed proxy object or %NULL if @error is set. + * + * Since: 3.12.0 + */ +GoaPrinters * +goa_printers_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_PRINTERS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.OnlineAccounts.Printers", NULL); + if (ret != NULL) + return GOA_PRINTERS (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaPrintersSkeleton: + * + * The #GoaPrintersSkeleton structure contains only private data and should only be accessed using the provided API. + * + * Since: 3.12.0 + */ + +/** + * GoaPrintersSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaPrintersSkeleton. + * + * Since: 3.12.0 + */ + +struct _GoaPrintersSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_printers_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaPrintersSkeleton *skeleton = GOA_PRINTERS_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_TYPE_PRINTERS); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_TYPE_PRINTERS); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_printers_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaPrintersSkeleton *skeleton = GOA_PRINTERS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_printers_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_printers_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaPrintersSkeleton *skeleton = GOA_PRINTERS_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_printers_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_printers_skeleton_vtable = +{ + _goa_printers_skeleton_handle_method_call, + _goa_printers_skeleton_handle_get_property, + _goa_printers_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_printers_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_printers_interface_info (); +} + +static GDBusInterfaceVTable * +goa_printers_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_printers_skeleton_vtable; +} + +static GVariant * +goa_printers_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaPrintersSkeleton *skeleton = GOA_PRINTERS_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_printers_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_printers_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_printers_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_printers_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.OnlineAccounts.Printers", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_printers_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_printers_skeleton_iface_init (GoaPrintersIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaPrintersSkeleton, goa_printers_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaPrintersSkeleton) + G_IMPLEMENT_INTERFACE (GOA_TYPE_PRINTERS, goa_printers_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaPrintersSkeleton, goa_printers_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_PRINTERS, goa_printers_skeleton_iface_init)) + +#endif +static void +goa_printers_skeleton_finalize (GObject *object) +{ + GoaPrintersSkeleton *skeleton = GOA_PRINTERS_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_printers_skeleton_parent_class)->finalize (object); +} + +static void +goa_printers_skeleton_init (GoaPrintersSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_printers_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_TYPE_PRINTERS_SKELETON, GoaPrintersSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_printers_skeleton_class_init (GoaPrintersSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_printers_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_printers_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_printers_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_printers_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_printers_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaPrintersSkeletonPrivate)); +#endif +} + +static void +goa_printers_skeleton_iface_init (GoaPrintersIface *iface) +{ +} + +/** + * goa_printers_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.OnlineAccounts.Printers. + * + * Returns: (transfer full) (type GoaPrintersSkeleton): The skeleton object. + * + * Since: 3.12.0 + */ +GoaPrinters * +goa_printers_skeleton_new (void) +{ + return GOA_PRINTERS (g_object_new (GOA_TYPE_PRINTERS_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for Object, ObjectProxy and ObjectSkeleton + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaObject + * @title: GoaObject + * @short_description: Specialized GDBusObject types + * + * This section contains the #GoaObject, #GoaObjectProxy, and #GoaObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces. + */ + +/** + * GoaObject: + * + * The #GoaObject type is a specialized container of interfaces. + */ + +/** + * GoaObjectIface: + * @parent_iface: The parent interface. + * + * Virtual table for the #GoaObject interface. + */ + +typedef GoaObjectIface GoaObjectInterface; +G_DEFINE_INTERFACE_WITH_CODE (GoaObject, goa_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT);) + +static void +goa_object_default_init (GoaObjectIface *iface) +{ + /** + * GoaObject:account: + * + * The #GoaAccount instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Account, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("account", "account", "account", GOA_TYPE_ACCOUNT, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:oauth2-based: + * + * The #GoaOAuth2Based instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("oauth2-based", "oauth2-based", "oauth2-based", GOA_TYPE_OAUTH2_BASED, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:oauth-based: + * + * The #GoaOAuthBased instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.OAuthBased, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("oauth-based", "oauth-based", "oauth-based", GOA_TYPE_OAUTH_BASED, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:password-based: + * + * The #GoaPasswordBased instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.PasswordBased, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.6.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("password-based", "password-based", "password-based", GOA_TYPE_PASSWORD_BASED, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:manager: + * + * The #GoaManager instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Manager, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("manager", "manager", "manager", GOA_TYPE_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:mail: + * + * The #GoaMail instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Mail, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("mail", "mail", "mail", GOA_TYPE_MAIL, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:calendar: + * + * The #GoaCalendar instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Calendar, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("calendar", "calendar", "calendar", GOA_TYPE_CALENDAR, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:contacts: + * + * The #GoaContacts instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Contacts, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("contacts", "contacts", "contacts", GOA_TYPE_CONTACTS, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:chat: + * + * The #GoaChat instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Chat, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("chat", "chat", "chat", GOA_TYPE_CHAT, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:documents: + * + * The #GoaDocuments instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Documents, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("documents", "documents", "documents", GOA_TYPE_DOCUMENTS, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:maps: + * + * The #GoaMaps instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Maps, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.14.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("maps", "maps", "maps", GOA_TYPE_MAPS, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:music: + * + * The #GoaMusic instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Music, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.18.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("music", "music", "music", GOA_TYPE_MUSIC, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:photos: + * + * The #GoaPhotos instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Photos, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("photos", "photos", "photos", GOA_TYPE_PHOTOS, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:files: + * + * The #GoaFiles instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Files, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.8.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("files", "files", "files", GOA_TYPE_FILES, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:exchange: + * + * The #GoaExchange instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Exchange, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.6.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("exchange", "exchange", "exchange", GOA_TYPE_EXCHANGE, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:media-server: + * + * The #GoaMediaServer instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.MediaServer, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.14 + */ + g_object_interface_install_property (iface, g_param_spec_object ("media-server", "media-server", "media-server", GOA_TYPE_MEDIA_SERVER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:ticketing: + * + * The #GoaTicketing instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Ticketing, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.6.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("ticketing", "ticketing", "ticketing", GOA_TYPE_TICKETING, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:todo: + * + * The #GoaTodo instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Todo, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.26.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("todo", "todo", "todo", GOA_TYPE_TODO, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:read-later: + * + * The #GoaReadLater instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.ReadLater, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.12.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("read-later", "read-later", "read-later", GOA_TYPE_READ_LATER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaObject:printers: + * + * The #GoaPrinters instance corresponding to the D-Bus interface org.gnome.OnlineAccounts.Printers, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + * + * Since: 3.12.0 + */ + g_object_interface_install_property (iface, g_param_spec_object ("printers", "printers", "printers", GOA_TYPE_PRINTERS, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + +} + +/** + * goa_object_get_account: + * @object: A #GoaObject. + * + * Gets the #GoaAccount instance for the D-Bus interface org.gnome.OnlineAccounts.Account on @object, if any. + * + * Returns: (transfer full): A #GoaAccount that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaAccount *goa_object_get_account (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Account"); + if (ret == NULL) + return NULL; + return GOA_ACCOUNT (ret); +} + +/** + * goa_object_get_oauth2_based: + * @object: A #GoaObject. + * + * Gets the #GoaOAuth2Based instance for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based on @object, if any. + * + * Returns: (transfer full): A #GoaOAuth2Based that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaOAuth2Based *goa_object_get_oauth2_based (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuth2Based"); + if (ret == NULL) + return NULL; + return GOA_OAUTH2_BASED (ret); +} + +/** + * goa_object_get_oauth_based: + * @object: A #GoaObject. + * + * Gets the #GoaOAuthBased instance for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased on @object, if any. + * + * Returns: (transfer full): A #GoaOAuthBased that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaOAuthBased *goa_object_get_oauth_based (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuthBased"); + if (ret == NULL) + return NULL; + return GOA_OAUTH_BASED (ret); +} + +/** + * goa_object_get_password_based: + * @object: A #GoaObject. + * + * Gets the #GoaPasswordBased instance for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased on @object, if any. + * + * Returns: (transfer full): A #GoaPasswordBased that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.6.0 + */ +GoaPasswordBased *goa_object_get_password_based (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.PasswordBased"); + if (ret == NULL) + return NULL; + return GOA_PASSWORD_BASED (ret); +} + +/** + * goa_object_get_manager: + * @object: A #GoaObject. + * + * Gets the #GoaManager instance for the D-Bus interface org.gnome.OnlineAccounts.Manager on @object, if any. + * + * Returns: (transfer full): A #GoaManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaManager *goa_object_get_manager (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Manager"); + if (ret == NULL) + return NULL; + return GOA_MANAGER (ret); +} + +/** + * goa_object_get_mail: + * @object: A #GoaObject. + * + * Gets the #GoaMail instance for the D-Bus interface org.gnome.OnlineAccounts.Mail on @object, if any. + * + * Returns: (transfer full): A #GoaMail that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaMail *goa_object_get_mail (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Mail"); + if (ret == NULL) + return NULL; + return GOA_MAIL (ret); +} + +/** + * goa_object_get_calendar: + * @object: A #GoaObject. + * + * Gets the #GoaCalendar instance for the D-Bus interface org.gnome.OnlineAccounts.Calendar on @object, if any. + * + * Returns: (transfer full): A #GoaCalendar that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaCalendar *goa_object_get_calendar (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Calendar"); + if (ret == NULL) + return NULL; + return GOA_CALENDAR (ret); +} + +/** + * goa_object_get_contacts: + * @object: A #GoaObject. + * + * Gets the #GoaContacts instance for the D-Bus interface org.gnome.OnlineAccounts.Contacts on @object, if any. + * + * Returns: (transfer full): A #GoaContacts that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaContacts *goa_object_get_contacts (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Contacts"); + if (ret == NULL) + return NULL; + return GOA_CONTACTS (ret); +} + +/** + * goa_object_get_chat: + * @object: A #GoaObject. + * + * Gets the #GoaChat instance for the D-Bus interface org.gnome.OnlineAccounts.Chat on @object, if any. + * + * Returns: (transfer full): A #GoaChat that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaChat *goa_object_get_chat (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Chat"); + if (ret == NULL) + return NULL; + return GOA_CHAT (ret); +} + +/** + * goa_object_get_documents: + * @object: A #GoaObject. + * + * Gets the #GoaDocuments instance for the D-Bus interface org.gnome.OnlineAccounts.Documents on @object, if any. + * + * Returns: (transfer full): A #GoaDocuments that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaDocuments *goa_object_get_documents (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Documents"); + if (ret == NULL) + return NULL; + return GOA_DOCUMENTS (ret); +} + +/** + * goa_object_get_maps: + * @object: A #GoaObject. + * + * Gets the #GoaMaps instance for the D-Bus interface org.gnome.OnlineAccounts.Maps on @object, if any. + * + * Returns: (transfer full): A #GoaMaps that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.14.0 + */ +GoaMaps *goa_object_get_maps (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Maps"); + if (ret == NULL) + return NULL; + return GOA_MAPS (ret); +} + +/** + * goa_object_get_music: + * @object: A #GoaObject. + * + * Gets the #GoaMusic instance for the D-Bus interface org.gnome.OnlineAccounts.Music on @object, if any. + * + * Returns: (transfer full): A #GoaMusic that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.18.0 + */ +GoaMusic *goa_object_get_music (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Music"); + if (ret == NULL) + return NULL; + return GOA_MUSIC (ret); +} + +/** + * goa_object_get_photos: + * @object: A #GoaObject. + * + * Gets the #GoaPhotos instance for the D-Bus interface org.gnome.OnlineAccounts.Photos on @object, if any. + * + * Returns: (transfer full): A #GoaPhotos that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.8.0 + */ +GoaPhotos *goa_object_get_photos (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Photos"); + if (ret == NULL) + return NULL; + return GOA_PHOTOS (ret); +} + +/** + * goa_object_get_files: + * @object: A #GoaObject. + * + * Gets the #GoaFiles instance for the D-Bus interface org.gnome.OnlineAccounts.Files on @object, if any. + * + * Returns: (transfer full): A #GoaFiles that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.8.0 + */ +GoaFiles *goa_object_get_files (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Files"); + if (ret == NULL) + return NULL; + return GOA_FILES (ret); +} + +/** + * goa_object_get_exchange: + * @object: A #GoaObject. + * + * Gets the #GoaExchange instance for the D-Bus interface org.gnome.OnlineAccounts.Exchange on @object, if any. + * + * Returns: (transfer full): A #GoaExchange that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.6.0 + */ +GoaExchange *goa_object_get_exchange (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Exchange"); + if (ret == NULL) + return NULL; + return GOA_EXCHANGE (ret); +} + +/** + * goa_object_get_media_server: + * @object: A #GoaObject. + * + * Gets the #GoaMediaServer instance for the D-Bus interface org.gnome.OnlineAccounts.MediaServer on @object, if any. + * + * Returns: (transfer full): A #GoaMediaServer that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.14 + */ +GoaMediaServer *goa_object_get_media_server (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.MediaServer"); + if (ret == NULL) + return NULL; + return GOA_MEDIA_SERVER (ret); +} + +/** + * goa_object_get_ticketing: + * @object: A #GoaObject. + * + * Gets the #GoaTicketing instance for the D-Bus interface org.gnome.OnlineAccounts.Ticketing on @object, if any. + * + * Returns: (transfer full): A #GoaTicketing that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.6.0 + */ +GoaTicketing *goa_object_get_ticketing (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Ticketing"); + if (ret == NULL) + return NULL; + return GOA_TICKETING (ret); +} + +/** + * goa_object_get_todo: + * @object: A #GoaObject. + * + * Gets the #GoaTodo instance for the D-Bus interface org.gnome.OnlineAccounts.Todo on @object, if any. + * + * Returns: (transfer full): A #GoaTodo that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.26.0 + */ +GoaTodo *goa_object_get_todo (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Todo"); + if (ret == NULL) + return NULL; + return GOA_TODO (ret); +} + +/** + * goa_object_get_read_later: + * @object: A #GoaObject. + * + * Gets the #GoaReadLater instance for the D-Bus interface org.gnome.OnlineAccounts.ReadLater on @object, if any. + * + * Returns: (transfer full): A #GoaReadLater that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.12.0 + */ +GoaReadLater *goa_object_get_read_later (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.ReadLater"); + if (ret == NULL) + return NULL; + return GOA_READ_LATER (ret); +} + +/** + * goa_object_get_printers: + * @object: A #GoaObject. + * + * Gets the #GoaPrinters instance for the D-Bus interface org.gnome.OnlineAccounts.Printers on @object, if any. + * + * Returns: (transfer full): A #GoaPrinters that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + * + * Since: 3.12.0 + */ +GoaPrinters *goa_object_get_printers (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Printers"); + if (ret == NULL) + return NULL; + return GOA_PRINTERS (ret); +} + + +/** + * goa_object_peek_account: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_account() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaAccount or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaAccount *goa_object_peek_account (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Account"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_ACCOUNT (ret); +} + +/** + * goa_object_peek_oauth2_based: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_oauth2_based() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaOAuth2Based or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaOAuth2Based *goa_object_peek_oauth2_based (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuth2Based"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_OAUTH2_BASED (ret); +} + +/** + * goa_object_peek_oauth_based: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_oauth_based() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaOAuthBased or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaOAuthBased *goa_object_peek_oauth_based (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuthBased"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_OAUTH_BASED (ret); +} + +/** + * goa_object_peek_password_based: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_password_based() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaPasswordBased or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.6.0 + */ +GoaPasswordBased *goa_object_peek_password_based (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.PasswordBased"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_PASSWORD_BASED (ret); +} + +/** + * goa_object_peek_manager: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_manager() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaManager *goa_object_peek_manager (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Manager"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_MANAGER (ret); +} + +/** + * goa_object_peek_mail: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_mail() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaMail or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaMail *goa_object_peek_mail (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Mail"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_MAIL (ret); +} + +/** + * goa_object_peek_calendar: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_calendar() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaCalendar or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaCalendar *goa_object_peek_calendar (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Calendar"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_CALENDAR (ret); +} + +/** + * goa_object_peek_contacts: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_contacts() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaContacts or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaContacts *goa_object_peek_contacts (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Contacts"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_CONTACTS (ret); +} + +/** + * goa_object_peek_chat: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_chat() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaChat or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaChat *goa_object_peek_chat (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Chat"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_CHAT (ret); +} + +/** + * goa_object_peek_documents: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_documents() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaDocuments or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaDocuments *goa_object_peek_documents (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Documents"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_DOCUMENTS (ret); +} + +/** + * goa_object_peek_maps: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_maps() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaMaps or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.14.0 + */ +GoaMaps *goa_object_peek_maps (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Maps"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_MAPS (ret); +} + +/** + * goa_object_peek_music: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_music() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaMusic or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.18.0 + */ +GoaMusic *goa_object_peek_music (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Music"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_MUSIC (ret); +} + +/** + * goa_object_peek_photos: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_photos() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaPhotos or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.8.0 + */ +GoaPhotos *goa_object_peek_photos (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Photos"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_PHOTOS (ret); +} + +/** + * goa_object_peek_files: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_files() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaFiles or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.8.0 + */ +GoaFiles *goa_object_peek_files (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Files"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_FILES (ret); +} + +/** + * goa_object_peek_exchange: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_exchange() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaExchange or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.6.0 + */ +GoaExchange *goa_object_peek_exchange (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Exchange"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_EXCHANGE (ret); +} + +/** + * goa_object_peek_media_server: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_media_server() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaMediaServer or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.14 + */ +GoaMediaServer *goa_object_peek_media_server (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.MediaServer"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_MEDIA_SERVER (ret); +} + +/** + * goa_object_peek_ticketing: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_ticketing() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaTicketing or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.6.0 + */ +GoaTicketing *goa_object_peek_ticketing (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Ticketing"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_TICKETING (ret); +} + +/** + * goa_object_peek_todo: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_todo() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaTodo or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.26.0 + */ +GoaTodo *goa_object_peek_todo (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Todo"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_TODO (ret); +} + +/** + * goa_object_peek_read_later: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_read_later() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaReadLater or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.12.0 + */ +GoaReadLater *goa_object_peek_read_later (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.ReadLater"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_READ_LATER (ret); +} + +/** + * goa_object_peek_printers: (skip) + * @object: A #GoaObject. + * + * Like goa_object_get_printers() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaPrinters or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + * + * Since: 3.12.0 + */ +GoaPrinters *goa_object_peek_printers (GoaObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Printers"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_PRINTERS (ret); +} + + +static void +goa_object_notify (GDBusObject *object, GDBusInterface *interface) +{ + _ExtendedGDBusInterfaceInfo *info = (_ExtendedGDBusInterfaceInfo *) g_dbus_interface_get_info (interface); + /* info can be NULL if the other end is using a D-Bus interface we don't know + * anything about, for example old generated code in this process talking to + * newer generated code in the other process. */ + if (info != NULL) + g_object_notify (G_OBJECT (object), info->hyphen_name); +} + +/** + * GoaObjectProxy: + * + * The #GoaObjectProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaObjectProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaObjectProxy. + */ + +static void +goa_object_proxy__goa_object_iface_init (GoaObjectIface *iface G_GNUC_UNUSED) +{ +} + +static void +goa_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = goa_object_notify; + iface->interface_removed = goa_object_notify; +} + + +G_DEFINE_TYPE_WITH_CODE (GoaObjectProxy, goa_object_proxy, G_TYPE_DBUS_OBJECT_PROXY, + G_IMPLEMENT_INTERFACE (GOA_TYPE_OBJECT, goa_object_proxy__goa_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, goa_object_proxy__g_dbus_object_iface_init)) + +static void +goa_object_proxy_init (GoaObjectProxy *object G_GNUC_UNUSED) +{ +} + +static void +goa_object_proxy_set_property (GObject *gobject, + guint prop_id, + const GValue *value G_GNUC_UNUSED, + GParamSpec *pspec) +{ + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); +} + +static void +goa_object_proxy_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaObjectProxy *object = GOA_OBJECT_PROXY (gobject); + GDBusInterface *interface; + + switch (prop_id) + { + case 1: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Account"); + g_value_take_object (value, interface); + break; + + case 2: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuth2Based"); + g_value_take_object (value, interface); + break; + + case 3: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuthBased"); + g_value_take_object (value, interface); + break; + + case 4: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.PasswordBased"); + g_value_take_object (value, interface); + break; + + case 5: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Manager"); + g_value_take_object (value, interface); + break; + + case 6: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Mail"); + g_value_take_object (value, interface); + break; + + case 7: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Calendar"); + g_value_take_object (value, interface); + break; + + case 8: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Contacts"); + g_value_take_object (value, interface); + break; + + case 9: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Chat"); + g_value_take_object (value, interface); + break; + + case 10: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Documents"); + g_value_take_object (value, interface); + break; + + case 11: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Maps"); + g_value_take_object (value, interface); + break; + + case 12: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Music"); + g_value_take_object (value, interface); + break; + + case 13: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Photos"); + g_value_take_object (value, interface); + break; + + case 14: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Files"); + g_value_take_object (value, interface); + break; + + case 15: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Exchange"); + g_value_take_object (value, interface); + break; + + case 16: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.MediaServer"); + g_value_take_object (value, interface); + break; + + case 17: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Ticketing"); + g_value_take_object (value, interface); + break; + + case 18: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Todo"); + g_value_take_object (value, interface); + break; + + case 19: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.ReadLater"); + g_value_take_object (value, interface); + break; + + case 20: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Printers"); + g_value_take_object (value, interface); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +goa_object_proxy_class_init (GoaObjectProxyClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = goa_object_proxy_set_property; + gobject_class->get_property = goa_object_proxy_get_property; + + g_object_class_override_property (gobject_class, 1, "account"); + g_object_class_override_property (gobject_class, 2, "oauth2-based"); + g_object_class_override_property (gobject_class, 3, "oauth-based"); + g_object_class_override_property (gobject_class, 4, "password-based"); + g_object_class_override_property (gobject_class, 5, "manager"); + g_object_class_override_property (gobject_class, 6, "mail"); + g_object_class_override_property (gobject_class, 7, "calendar"); + g_object_class_override_property (gobject_class, 8, "contacts"); + g_object_class_override_property (gobject_class, 9, "chat"); + g_object_class_override_property (gobject_class, 10, "documents"); + g_object_class_override_property (gobject_class, 11, "maps"); + g_object_class_override_property (gobject_class, 12, "music"); + g_object_class_override_property (gobject_class, 13, "photos"); + g_object_class_override_property (gobject_class, 14, "files"); + g_object_class_override_property (gobject_class, 15, "exchange"); + g_object_class_override_property (gobject_class, 16, "media-server"); + g_object_class_override_property (gobject_class, 17, "ticketing"); + g_object_class_override_property (gobject_class, 18, "todo"); + g_object_class_override_property (gobject_class, 19, "read-later"); + g_object_class_override_property (gobject_class, 20, "printers"); +} + +/** + * goa_object_proxy_new: + * @connection: A #GDBusConnection. + * @object_path: An object path. + * + * Creates a new proxy object. + * + * Returns: (transfer full): The proxy object. + */ +GoaObjectProxy * +goa_object_proxy_new (GDBusConnection *connection, + const gchar *object_path) +{ + g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL); + g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); + return GOA_OBJECT_PROXY (g_object_new (GOA_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL)); +} + +/** + * GoaObjectSkeleton: + * + * The #GoaObjectSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaObjectSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaObjectSkeleton. + */ + +static void +goa_object_skeleton__goa_object_iface_init (GoaObjectIface *iface G_GNUC_UNUSED) +{ +} + + +static void +goa_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = goa_object_notify; + iface->interface_removed = goa_object_notify; +} + +G_DEFINE_TYPE_WITH_CODE (GoaObjectSkeleton, goa_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_TYPE_OBJECT, goa_object_skeleton__goa_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, goa_object_skeleton__g_dbus_object_iface_init)) + +static void +goa_object_skeleton_init (GoaObjectSkeleton *object G_GNUC_UNUSED) +{ +} + +static void +goa_object_skeleton_set_property (GObject *gobject, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaObjectSkeleton *object = GOA_OBJECT_SKELETON (gobject); + GDBusInterfaceSkeleton *interface; + + switch (prop_id) + { + case 1: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_ACCOUNT (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Account"); + } + break; + + case 2: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_OAUTH2_BASED (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.OAuth2Based"); + } + break; + + case 3: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_OAUTH_BASED (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.OAuthBased"); + } + break; + + case 4: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_PASSWORD_BASED (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.PasswordBased"); + } + break; + + case 5: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_MANAGER (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Manager"); + } + break; + + case 6: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_MAIL (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Mail"); + } + break; + + case 7: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_CALENDAR (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Calendar"); + } + break; + + case 8: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_CONTACTS (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Contacts"); + } + break; + + case 9: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_CHAT (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Chat"); + } + break; + + case 10: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_DOCUMENTS (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Documents"); + } + break; + + case 11: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_MAPS (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Maps"); + } + break; + + case 12: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_MUSIC (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Music"); + } + break; + + case 13: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_PHOTOS (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Photos"); + } + break; + + case 14: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_FILES (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Files"); + } + break; + + case 15: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_EXCHANGE (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Exchange"); + } + break; + + case 16: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_MEDIA_SERVER (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.MediaServer"); + } + break; + + case 17: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_TICKETING (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Ticketing"); + } + break; + + case 18: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_TODO (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Todo"); + } + break; + + case 19: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_READ_LATER (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.ReadLater"); + } + break; + + case 20: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IS_PRINTERS (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.OnlineAccounts.Printers"); + } + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +goa_object_skeleton_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaObjectSkeleton *object = GOA_OBJECT_SKELETON (gobject); + GDBusInterface *interface; + + switch (prop_id) + { + case 1: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Account"); + g_value_take_object (value, interface); + break; + + case 2: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuth2Based"); + g_value_take_object (value, interface); + break; + + case 3: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.OAuthBased"); + g_value_take_object (value, interface); + break; + + case 4: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.PasswordBased"); + g_value_take_object (value, interface); + break; + + case 5: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Manager"); + g_value_take_object (value, interface); + break; + + case 6: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Mail"); + g_value_take_object (value, interface); + break; + + case 7: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Calendar"); + g_value_take_object (value, interface); + break; + + case 8: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Contacts"); + g_value_take_object (value, interface); + break; + + case 9: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Chat"); + g_value_take_object (value, interface); + break; + + case 10: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Documents"); + g_value_take_object (value, interface); + break; + + case 11: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Maps"); + g_value_take_object (value, interface); + break; + + case 12: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Music"); + g_value_take_object (value, interface); + break; + + case 13: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Photos"); + g_value_take_object (value, interface); + break; + + case 14: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Files"); + g_value_take_object (value, interface); + break; + + case 15: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Exchange"); + g_value_take_object (value, interface); + break; + + case 16: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.MediaServer"); + g_value_take_object (value, interface); + break; + + case 17: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Ticketing"); + g_value_take_object (value, interface); + break; + + case 18: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Todo"); + g_value_take_object (value, interface); + break; + + case 19: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.ReadLater"); + g_value_take_object (value, interface); + break; + + case 20: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.OnlineAccounts.Printers"); + g_value_take_object (value, interface); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +goa_object_skeleton_class_init (GoaObjectSkeletonClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = goa_object_skeleton_set_property; + gobject_class->get_property = goa_object_skeleton_get_property; + + g_object_class_override_property (gobject_class, 1, "account"); + g_object_class_override_property (gobject_class, 2, "oauth2-based"); + g_object_class_override_property (gobject_class, 3, "oauth-based"); + g_object_class_override_property (gobject_class, 4, "password-based"); + g_object_class_override_property (gobject_class, 5, "manager"); + g_object_class_override_property (gobject_class, 6, "mail"); + g_object_class_override_property (gobject_class, 7, "calendar"); + g_object_class_override_property (gobject_class, 8, "contacts"); + g_object_class_override_property (gobject_class, 9, "chat"); + g_object_class_override_property (gobject_class, 10, "documents"); + g_object_class_override_property (gobject_class, 11, "maps"); + g_object_class_override_property (gobject_class, 12, "music"); + g_object_class_override_property (gobject_class, 13, "photos"); + g_object_class_override_property (gobject_class, 14, "files"); + g_object_class_override_property (gobject_class, 15, "exchange"); + g_object_class_override_property (gobject_class, 16, "media-server"); + g_object_class_override_property (gobject_class, 17, "ticketing"); + g_object_class_override_property (gobject_class, 18, "todo"); + g_object_class_override_property (gobject_class, 19, "read-later"); + g_object_class_override_property (gobject_class, 20, "printers"); +} + +/** + * goa_object_skeleton_new: + * @object_path: An object path. + * + * Creates a new skeleton object. + * + * Returns: (transfer full): The skeleton object. + */ +GoaObjectSkeleton * +goa_object_skeleton_new (const gchar *object_path) +{ + g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); + return GOA_OBJECT_SKELETON (g_object_new (GOA_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL)); +} + +/** + * goa_object_skeleton_set_account: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaAccount or %NULL to clear the interface. + * + * Sets the #GoaAccount instance for the D-Bus interface org.gnome.OnlineAccounts.Account on @object. + */ +void goa_object_skeleton_set_account (GoaObjectSkeleton *object, GoaAccount *interface_) +{ + g_object_set (G_OBJECT (object), "account", interface_, NULL); +} + +/** + * goa_object_skeleton_set_oauth2_based: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaOAuth2Based or %NULL to clear the interface. + * + * Sets the #GoaOAuth2Based instance for the D-Bus interface org.gnome.OnlineAccounts.OAuth2Based on @object. + */ +void goa_object_skeleton_set_oauth2_based (GoaObjectSkeleton *object, GoaOAuth2Based *interface_) +{ + g_object_set (G_OBJECT (object), "oauth2-based", interface_, NULL); +} + +/** + * goa_object_skeleton_set_oauth_based: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaOAuthBased or %NULL to clear the interface. + * + * Sets the #GoaOAuthBased instance for the D-Bus interface org.gnome.OnlineAccounts.OAuthBased on @object. + */ +void goa_object_skeleton_set_oauth_based (GoaObjectSkeleton *object, GoaOAuthBased *interface_) +{ + g_object_set (G_OBJECT (object), "oauth-based", interface_, NULL); +} + +/** + * goa_object_skeleton_set_password_based: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaPasswordBased or %NULL to clear the interface. + * + * Sets the #GoaPasswordBased instance for the D-Bus interface org.gnome.OnlineAccounts.PasswordBased on @object. + * + * Since: 3.6.0 + */ +void goa_object_skeleton_set_password_based (GoaObjectSkeleton *object, GoaPasswordBased *interface_) +{ + g_object_set (G_OBJECT (object), "password-based", interface_, NULL); +} + +/** + * goa_object_skeleton_set_manager: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaManager or %NULL to clear the interface. + * + * Sets the #GoaManager instance for the D-Bus interface org.gnome.OnlineAccounts.Manager on @object. + */ +void goa_object_skeleton_set_manager (GoaObjectSkeleton *object, GoaManager *interface_) +{ + g_object_set (G_OBJECT (object), "manager", interface_, NULL); +} + +/** + * goa_object_skeleton_set_mail: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaMail or %NULL to clear the interface. + * + * Sets the #GoaMail instance for the D-Bus interface org.gnome.OnlineAccounts.Mail on @object. + */ +void goa_object_skeleton_set_mail (GoaObjectSkeleton *object, GoaMail *interface_) +{ + g_object_set (G_OBJECT (object), "mail", interface_, NULL); +} + +/** + * goa_object_skeleton_set_calendar: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaCalendar or %NULL to clear the interface. + * + * Sets the #GoaCalendar instance for the D-Bus interface org.gnome.OnlineAccounts.Calendar on @object. + */ +void goa_object_skeleton_set_calendar (GoaObjectSkeleton *object, GoaCalendar *interface_) +{ + g_object_set (G_OBJECT (object), "calendar", interface_, NULL); +} + +/** + * goa_object_skeleton_set_contacts: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaContacts or %NULL to clear the interface. + * + * Sets the #GoaContacts instance for the D-Bus interface org.gnome.OnlineAccounts.Contacts on @object. + */ +void goa_object_skeleton_set_contacts (GoaObjectSkeleton *object, GoaContacts *interface_) +{ + g_object_set (G_OBJECT (object), "contacts", interface_, NULL); +} + +/** + * goa_object_skeleton_set_chat: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaChat or %NULL to clear the interface. + * + * Sets the #GoaChat instance for the D-Bus interface org.gnome.OnlineAccounts.Chat on @object. + */ +void goa_object_skeleton_set_chat (GoaObjectSkeleton *object, GoaChat *interface_) +{ + g_object_set (G_OBJECT (object), "chat", interface_, NULL); +} + +/** + * goa_object_skeleton_set_documents: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaDocuments or %NULL to clear the interface. + * + * Sets the #GoaDocuments instance for the D-Bus interface org.gnome.OnlineAccounts.Documents on @object. + */ +void goa_object_skeleton_set_documents (GoaObjectSkeleton *object, GoaDocuments *interface_) +{ + g_object_set (G_OBJECT (object), "documents", interface_, NULL); +} + +/** + * goa_object_skeleton_set_maps: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaMaps or %NULL to clear the interface. + * + * Sets the #GoaMaps instance for the D-Bus interface org.gnome.OnlineAccounts.Maps on @object. + * + * Since: 3.14.0 + */ +void goa_object_skeleton_set_maps (GoaObjectSkeleton *object, GoaMaps *interface_) +{ + g_object_set (G_OBJECT (object), "maps", interface_, NULL); +} + +/** + * goa_object_skeleton_set_music: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaMusic or %NULL to clear the interface. + * + * Sets the #GoaMusic instance for the D-Bus interface org.gnome.OnlineAccounts.Music on @object. + * + * Since: 3.18.0 + */ +void goa_object_skeleton_set_music (GoaObjectSkeleton *object, GoaMusic *interface_) +{ + g_object_set (G_OBJECT (object), "music", interface_, NULL); +} + +/** + * goa_object_skeleton_set_photos: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaPhotos or %NULL to clear the interface. + * + * Sets the #GoaPhotos instance for the D-Bus interface org.gnome.OnlineAccounts.Photos on @object. + * + * Since: 3.8.0 + */ +void goa_object_skeleton_set_photos (GoaObjectSkeleton *object, GoaPhotos *interface_) +{ + g_object_set (G_OBJECT (object), "photos", interface_, NULL); +} + +/** + * goa_object_skeleton_set_files: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaFiles or %NULL to clear the interface. + * + * Sets the #GoaFiles instance for the D-Bus interface org.gnome.OnlineAccounts.Files on @object. + * + * Since: 3.8.0 + */ +void goa_object_skeleton_set_files (GoaObjectSkeleton *object, GoaFiles *interface_) +{ + g_object_set (G_OBJECT (object), "files", interface_, NULL); +} + +/** + * goa_object_skeleton_set_exchange: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaExchange or %NULL to clear the interface. + * + * Sets the #GoaExchange instance for the D-Bus interface org.gnome.OnlineAccounts.Exchange on @object. + * + * Since: 3.6.0 + */ +void goa_object_skeleton_set_exchange (GoaObjectSkeleton *object, GoaExchange *interface_) +{ + g_object_set (G_OBJECT (object), "exchange", interface_, NULL); +} + +/** + * goa_object_skeleton_set_media_server: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaMediaServer or %NULL to clear the interface. + * + * Sets the #GoaMediaServer instance for the D-Bus interface org.gnome.OnlineAccounts.MediaServer on @object. + * + * Since: 3.14 + */ +void goa_object_skeleton_set_media_server (GoaObjectSkeleton *object, GoaMediaServer *interface_) +{ + g_object_set (G_OBJECT (object), "media-server", interface_, NULL); +} + +/** + * goa_object_skeleton_set_ticketing: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaTicketing or %NULL to clear the interface. + * + * Sets the #GoaTicketing instance for the D-Bus interface org.gnome.OnlineAccounts.Ticketing on @object. + * + * Since: 3.6.0 + */ +void goa_object_skeleton_set_ticketing (GoaObjectSkeleton *object, GoaTicketing *interface_) +{ + g_object_set (G_OBJECT (object), "ticketing", interface_, NULL); +} + +/** + * goa_object_skeleton_set_todo: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaTodo or %NULL to clear the interface. + * + * Sets the #GoaTodo instance for the D-Bus interface org.gnome.OnlineAccounts.Todo on @object. + * + * Since: 3.26.0 + */ +void goa_object_skeleton_set_todo (GoaObjectSkeleton *object, GoaTodo *interface_) +{ + g_object_set (G_OBJECT (object), "todo", interface_, NULL); +} + +/** + * goa_object_skeleton_set_read_later: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaReadLater or %NULL to clear the interface. + * + * Sets the #GoaReadLater instance for the D-Bus interface org.gnome.OnlineAccounts.ReadLater on @object. + * + * Since: 3.12.0 + */ +void goa_object_skeleton_set_read_later (GoaObjectSkeleton *object, GoaReadLater *interface_) +{ + g_object_set (G_OBJECT (object), "read-later", interface_, NULL); +} + +/** + * goa_object_skeleton_set_printers: + * @object: A #GoaObjectSkeleton. + * @interface_: (nullable): A #GoaPrinters or %NULL to clear the interface. + * + * Sets the #GoaPrinters instance for the D-Bus interface org.gnome.OnlineAccounts.Printers on @object. + * + * Since: 3.12.0 + */ +void goa_object_skeleton_set_printers (GoaObjectSkeleton *object, GoaPrinters *interface_) +{ + g_object_set (G_OBJECT (object), "printers", interface_, NULL); +} + + +/* ------------------------------------------------------------------------ + * Code for ObjectManager client + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaObjectManagerClient + * @title: GoaObjectManagerClient + * @short_description: Generated GDBusObjectManagerClient type + * + * This section contains a #GDBusObjectManagerClient that uses goa_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. + */ + +/** + * GoaObjectManagerClient: + * + * The #GoaObjectManagerClient structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaObjectManagerClientClass: + * @parent_class: The parent class. + * + * Class structure for #GoaObjectManagerClient. + */ + +G_DEFINE_TYPE (GoaObjectManagerClient, goa_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT) + +static void +goa_object_manager_client_init (GoaObjectManagerClient *manager G_GNUC_UNUSED) +{ +} + +static void +goa_object_manager_client_class_init (GoaObjectManagerClientClass *klass G_GNUC_UNUSED) +{ +} + +/** + * goa_object_manager_client_get_proxy_type: + * @manager: A #GDBusObjectManagerClient. + * @object_path: The object path of the remote object (unused). + * @interface_name: (nullable): Interface name of the remote object or %NULL to get the object proxy #GType. + * @user_data: User data (unused). + * + * A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy derived and #GDBusProxy derived types. + * + * Returns: A #GDBusProxy derived #GType if @interface_name is not %NULL, otherwise the #GType for #GoaObjectProxy. + */ +GType +goa_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, gpointer user_data G_GNUC_UNUSED) +{ + static gsize once_init_value = 0; + static GHashTable *lookup_hash; + GType ret; + + if (interface_name == NULL) + return GOA_TYPE_OBJECT_PROXY; + if (g_once_init_enter (&once_init_value)) + { + lookup_hash = g_hash_table_new (g_str_hash, g_str_equal); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Account", GSIZE_TO_POINTER (GOA_TYPE_ACCOUNT_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.OAuth2Based", GSIZE_TO_POINTER (GOA_TYPE_OAUTH2_BASED_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.OAuthBased", GSIZE_TO_POINTER (GOA_TYPE_OAUTH_BASED_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.PasswordBased", GSIZE_TO_POINTER (GOA_TYPE_PASSWORD_BASED_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Manager", GSIZE_TO_POINTER (GOA_TYPE_MANAGER_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Mail", GSIZE_TO_POINTER (GOA_TYPE_MAIL_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Calendar", GSIZE_TO_POINTER (GOA_TYPE_CALENDAR_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Contacts", GSIZE_TO_POINTER (GOA_TYPE_CONTACTS_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Chat", GSIZE_TO_POINTER (GOA_TYPE_CHAT_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Documents", GSIZE_TO_POINTER (GOA_TYPE_DOCUMENTS_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Maps", GSIZE_TO_POINTER (GOA_TYPE_MAPS_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Music", GSIZE_TO_POINTER (GOA_TYPE_MUSIC_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Photos", GSIZE_TO_POINTER (GOA_TYPE_PHOTOS_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Files", GSIZE_TO_POINTER (GOA_TYPE_FILES_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Exchange", GSIZE_TO_POINTER (GOA_TYPE_EXCHANGE_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.MediaServer", GSIZE_TO_POINTER (GOA_TYPE_MEDIA_SERVER_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Ticketing", GSIZE_TO_POINTER (GOA_TYPE_TICKETING_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Todo", GSIZE_TO_POINTER (GOA_TYPE_TODO_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.ReadLater", GSIZE_TO_POINTER (GOA_TYPE_READ_LATER_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.OnlineAccounts.Printers", GSIZE_TO_POINTER (GOA_TYPE_PRINTERS_PROXY)); + g_once_init_leave (&once_init_value, 1); + } + ret = (GType) GPOINTER_TO_SIZE (g_hash_table_lookup (lookup_hash, interface_name)); + if (ret == (GType) 0) + ret = G_TYPE_DBUS_PROXY; + return ret; +} + +/** + * goa_object_manager_client_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates #GDBusObjectManagerClient using goa_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_object_manager_client_new_finish() to get the result of the operation. + * + * See goa_object_manager_client_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_object_manager_client_new ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", goa_object_manager_client_get_proxy_type, NULL); +} + +/** + * goa_object_manager_client_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_object_manager_client_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_object_manager_client_new(). + * + * Returns: (transfer full) (type GoaObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_object_manager_client_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + +/** + * goa_object_manager_client_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates #GDBusObjectManagerClient using goa_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_object_manager_client_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_object_manager_client_new_sync ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", goa_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + +/** + * goa_object_manager_client_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_object_manager_client_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_object_manager_client_new_for_bus_finish() to get the result of the operation. + * + * See goa_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_object_manager_client_new_for_bus ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", goa_object_manager_client_get_proxy_type, NULL); +} + +/** + * goa_object_manager_client_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_object_manager_client_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_object_manager_client_new_for_bus(). + * + * Returns: (transfer full) (type GoaObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_object_manager_client_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + +/** + * goa_object_manager_client_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_object_manager_client_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_object_manager_client_new_for_bus_sync ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", goa_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + diff --git a/src/goa/goa-generated.h b/src/goa/goa-generated.h new file mode 100644 index 0000000..6f3c1b8 --- /dev/null +++ b/src/goa/goa-generated.h @@ -0,0 +1,3350 @@ +/* + * Generated by gdbus-codegen 2.56.4. DO NOT EDIT. + * + * The license of this code is the same as for the D-Bus interface description + * it was derived from. + */ + +#ifndef __GOA_GENERATED_H__ +#define __GOA_GENERATED_H__ + +#include + +G_BEGIN_DECLS + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Account */ + +#define GOA_TYPE_ACCOUNT (goa_account_get_type ()) +#define GOA_ACCOUNT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_ACCOUNT, GoaAccount)) +#define GOA_IS_ACCOUNT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_ACCOUNT)) +#define GOA_ACCOUNT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_ACCOUNT, GoaAccountIface)) + +struct _GoaAccount; +typedef struct _GoaAccount GoaAccount; +typedef struct _GoaAccountIface GoaAccountIface; + +struct _GoaAccountIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_ensure_credentials) ( + GoaAccount *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_remove) ( + GoaAccount *object, + GDBusMethodInvocation *invocation); + + gboolean (*get_attention_needed) (GoaAccount *object); + + gboolean (*get_calendar_disabled) (GoaAccount *object); + + gboolean (*get_chat_disabled) (GoaAccount *object); + + gboolean (*get_contacts_disabled) (GoaAccount *object); + + gboolean (*get_documents_disabled) (GoaAccount *object); + + const gchar * (*get_id) (GoaAccount *object); + + const gchar * (*get_identity) (GoaAccount *object); + + gboolean (*get_is_temporary) (GoaAccount *object); + + gboolean (*get_mail_disabled) (GoaAccount *object); + + const gchar * (*get_presentation_identity) (GoaAccount *object); + + const gchar * (*get_provider_icon) (GoaAccount *object); + + const gchar * (*get_provider_name) (GoaAccount *object); + + const gchar * (*get_provider_type) (GoaAccount *object); + + gboolean (*get_ticketing_disabled) (GoaAccount *object); + + gboolean (*get_files_disabled) (GoaAccount *object); + + gboolean (*get_photos_disabled) (GoaAccount *object); + + gboolean (*get_printers_disabled) (GoaAccount *object); + + gboolean (*get_read_later_disabled) (GoaAccount *object); + + gboolean (*get_maps_disabled) (GoaAccount *object); + + gboolean (*get_is_locked) (GoaAccount *object); + + gboolean (*get_music_disabled) (GoaAccount *object); + + gboolean (*get_todo_disabled) (GoaAccount *object); + +}; + +GType goa_account_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_account_interface_info (void); +guint goa_account_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void goa_account_complete_remove ( + GoaAccount *object, + GDBusMethodInvocation *invocation); + +void goa_account_complete_ensure_credentials ( + GoaAccount *object, + GDBusMethodInvocation *invocation, + gint expires_in); + + + +/* D-Bus method calls: */ +void goa_account_call_remove ( + GoaAccount *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_account_call_remove_finish ( + GoaAccount *proxy, + GAsyncResult *res, + GError **error); + +gboolean goa_account_call_remove_sync ( + GoaAccount *proxy, + GCancellable *cancellable, + GError **error); + +void goa_account_call_ensure_credentials ( + GoaAccount *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_account_call_ensure_credentials_finish ( + GoaAccount *proxy, + gint *out_expires_in, + GAsyncResult *res, + GError **error); + +gboolean goa_account_call_ensure_credentials_sync ( + GoaAccount *proxy, + gint *out_expires_in, + GCancellable *cancellable, + GError **error); + + + +/* D-Bus property accessors: */ +const gchar *goa_account_get_provider_type (GoaAccount *object); +gchar *goa_account_dup_provider_type (GoaAccount *object); +void goa_account_set_provider_type (GoaAccount *object, const gchar *value); + +const gchar *goa_account_get_provider_name (GoaAccount *object); +gchar *goa_account_dup_provider_name (GoaAccount *object); +void goa_account_set_provider_name (GoaAccount *object, const gchar *value); + +const gchar *goa_account_get_provider_icon (GoaAccount *object); +gchar *goa_account_dup_provider_icon (GoaAccount *object); +void goa_account_set_provider_icon (GoaAccount *object, const gchar *value); + +const gchar *goa_account_get_id (GoaAccount *object); +gchar *goa_account_dup_id (GoaAccount *object); +void goa_account_set_id (GoaAccount *object, const gchar *value); + +gboolean goa_account_get_is_locked (GoaAccount *object); +void goa_account_set_is_locked (GoaAccount *object, gboolean value); + +gboolean goa_account_get_is_temporary (GoaAccount *object); +void goa_account_set_is_temporary (GoaAccount *object, gboolean value); + +gboolean goa_account_get_attention_needed (GoaAccount *object); +void goa_account_set_attention_needed (GoaAccount *object, gboolean value); + +const gchar *goa_account_get_identity (GoaAccount *object); +gchar *goa_account_dup_identity (GoaAccount *object); +void goa_account_set_identity (GoaAccount *object, const gchar *value); + +const gchar *goa_account_get_presentation_identity (GoaAccount *object); +gchar *goa_account_dup_presentation_identity (GoaAccount *object); +void goa_account_set_presentation_identity (GoaAccount *object, const gchar *value); + +gboolean goa_account_get_mail_disabled (GoaAccount *object); +void goa_account_set_mail_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_calendar_disabled (GoaAccount *object); +void goa_account_set_calendar_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_contacts_disabled (GoaAccount *object); +void goa_account_set_contacts_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_chat_disabled (GoaAccount *object); +void goa_account_set_chat_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_documents_disabled (GoaAccount *object); +void goa_account_set_documents_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_maps_disabled (GoaAccount *object); +void goa_account_set_maps_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_music_disabled (GoaAccount *object); +void goa_account_set_music_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_printers_disabled (GoaAccount *object); +void goa_account_set_printers_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_photos_disabled (GoaAccount *object); +void goa_account_set_photos_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_files_disabled (GoaAccount *object); +void goa_account_set_files_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_ticketing_disabled (GoaAccount *object); +void goa_account_set_ticketing_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_todo_disabled (GoaAccount *object); +void goa_account_set_todo_disabled (GoaAccount *object, gboolean value); + +gboolean goa_account_get_read_later_disabled (GoaAccount *object); +void goa_account_set_read_later_disabled (GoaAccount *object, gboolean value); + + +/* ---- */ + +#define GOA_TYPE_ACCOUNT_PROXY (goa_account_proxy_get_type ()) +#define GOA_ACCOUNT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_ACCOUNT_PROXY, GoaAccountProxy)) +#define GOA_ACCOUNT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_ACCOUNT_PROXY, GoaAccountProxyClass)) +#define GOA_ACCOUNT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_ACCOUNT_PROXY, GoaAccountProxyClass)) +#define GOA_IS_ACCOUNT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_ACCOUNT_PROXY)) +#define GOA_IS_ACCOUNT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_ACCOUNT_PROXY)) + +typedef struct _GoaAccountProxy GoaAccountProxy; +typedef struct _GoaAccountProxyClass GoaAccountProxyClass; +typedef struct _GoaAccountProxyPrivate GoaAccountProxyPrivate; + +struct _GoaAccountProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaAccountProxyPrivate *priv; +}; + +struct _GoaAccountProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_account_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaAccountProxy, g_object_unref) +#endif + +void goa_account_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaAccount *goa_account_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaAccount *goa_account_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_account_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaAccount *goa_account_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaAccount *goa_account_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_ACCOUNT_SKELETON (goa_account_skeleton_get_type ()) +#define GOA_ACCOUNT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_ACCOUNT_SKELETON, GoaAccountSkeleton)) +#define GOA_ACCOUNT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_ACCOUNT_SKELETON, GoaAccountSkeletonClass)) +#define GOA_ACCOUNT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_ACCOUNT_SKELETON, GoaAccountSkeletonClass)) +#define GOA_IS_ACCOUNT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_ACCOUNT_SKELETON)) +#define GOA_IS_ACCOUNT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_ACCOUNT_SKELETON)) + +typedef struct _GoaAccountSkeleton GoaAccountSkeleton; +typedef struct _GoaAccountSkeletonClass GoaAccountSkeletonClass; +typedef struct _GoaAccountSkeletonPrivate GoaAccountSkeletonPrivate; + +struct _GoaAccountSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaAccountSkeletonPrivate *priv; +}; + +struct _GoaAccountSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_account_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaAccountSkeleton, g_object_unref) +#endif + +GoaAccount *goa_account_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.OAuth2Based */ + +#define GOA_TYPE_OAUTH2_BASED (goa_oauth2_based_get_type ()) +#define GOA_OAUTH2_BASED(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OAUTH2_BASED, GoaOAuth2Based)) +#define GOA_IS_OAUTH2_BASED(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OAUTH2_BASED)) +#define GOA_OAUTH2_BASED_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_OAUTH2_BASED, GoaOAuth2BasedIface)) + +struct _GoaOAuth2Based; +typedef struct _GoaOAuth2Based GoaOAuth2Based; +typedef struct _GoaOAuth2BasedIface GoaOAuth2BasedIface; + +struct _GoaOAuth2BasedIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_access_token) ( + GoaOAuth2Based *object, + GDBusMethodInvocation *invocation); + + const gchar * (*get_client_id) (GoaOAuth2Based *object); + + const gchar * (*get_client_secret) (GoaOAuth2Based *object); + +}; + +GType goa_oauth2_based_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_oauth2_based_interface_info (void); +guint goa_oauth2_based_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void goa_oauth2_based_complete_get_access_token ( + GoaOAuth2Based *object, + GDBusMethodInvocation *invocation, + const gchar *access_token, + gint expires_in); + + + +/* D-Bus method calls: */ +void goa_oauth2_based_call_get_access_token ( + GoaOAuth2Based *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_oauth2_based_call_get_access_token_finish ( + GoaOAuth2Based *proxy, + gchar **out_access_token, + gint *out_expires_in, + GAsyncResult *res, + GError **error); + +gboolean goa_oauth2_based_call_get_access_token_sync ( + GoaOAuth2Based *proxy, + gchar **out_access_token, + gint *out_expires_in, + GCancellable *cancellable, + GError **error); + + + +/* D-Bus property accessors: */ +const gchar *goa_oauth2_based_get_client_id (GoaOAuth2Based *object); +gchar *goa_oauth2_based_dup_client_id (GoaOAuth2Based *object); +void goa_oauth2_based_set_client_id (GoaOAuth2Based *object, const gchar *value); + +const gchar *goa_oauth2_based_get_client_secret (GoaOAuth2Based *object); +gchar *goa_oauth2_based_dup_client_secret (GoaOAuth2Based *object); +void goa_oauth2_based_set_client_secret (GoaOAuth2Based *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_OAUTH2_BASED_PROXY (goa_oauth2_based_proxy_get_type ()) +#define GOA_OAUTH2_BASED_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OAUTH2_BASED_PROXY, GoaOAuth2BasedProxy)) +#define GOA_OAUTH2_BASED_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_OAUTH2_BASED_PROXY, GoaOAuth2BasedProxyClass)) +#define GOA_OAUTH2_BASED_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_OAUTH2_BASED_PROXY, GoaOAuth2BasedProxyClass)) +#define GOA_IS_OAUTH2_BASED_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OAUTH2_BASED_PROXY)) +#define GOA_IS_OAUTH2_BASED_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_OAUTH2_BASED_PROXY)) + +typedef struct _GoaOAuth2BasedProxy GoaOAuth2BasedProxy; +typedef struct _GoaOAuth2BasedProxyClass GoaOAuth2BasedProxyClass; +typedef struct _GoaOAuth2BasedProxyPrivate GoaOAuth2BasedProxyPrivate; + +struct _GoaOAuth2BasedProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaOAuth2BasedProxyPrivate *priv; +}; + +struct _GoaOAuth2BasedProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_oauth2_based_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaOAuth2BasedProxy, g_object_unref) +#endif + +void goa_oauth2_based_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaOAuth2Based *goa_oauth2_based_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaOAuth2Based *goa_oauth2_based_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_oauth2_based_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaOAuth2Based *goa_oauth2_based_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaOAuth2Based *goa_oauth2_based_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_OAUTH2_BASED_SKELETON (goa_oauth2_based_skeleton_get_type ()) +#define GOA_OAUTH2_BASED_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OAUTH2_BASED_SKELETON, GoaOAuth2BasedSkeleton)) +#define GOA_OAUTH2_BASED_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_OAUTH2_BASED_SKELETON, GoaOAuth2BasedSkeletonClass)) +#define GOA_OAUTH2_BASED_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_OAUTH2_BASED_SKELETON, GoaOAuth2BasedSkeletonClass)) +#define GOA_IS_OAUTH2_BASED_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OAUTH2_BASED_SKELETON)) +#define GOA_IS_OAUTH2_BASED_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_OAUTH2_BASED_SKELETON)) + +typedef struct _GoaOAuth2BasedSkeleton GoaOAuth2BasedSkeleton; +typedef struct _GoaOAuth2BasedSkeletonClass GoaOAuth2BasedSkeletonClass; +typedef struct _GoaOAuth2BasedSkeletonPrivate GoaOAuth2BasedSkeletonPrivate; + +struct _GoaOAuth2BasedSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaOAuth2BasedSkeletonPrivate *priv; +}; + +struct _GoaOAuth2BasedSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_oauth2_based_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaOAuth2BasedSkeleton, g_object_unref) +#endif + +GoaOAuth2Based *goa_oauth2_based_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.OAuthBased */ + +#define GOA_TYPE_OAUTH_BASED (goa_oauth_based_get_type ()) +#define GOA_OAUTH_BASED(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OAUTH_BASED, GoaOAuthBased)) +#define GOA_IS_OAUTH_BASED(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OAUTH_BASED)) +#define GOA_OAUTH_BASED_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_OAUTH_BASED, GoaOAuthBasedIface)) + +struct _GoaOAuthBased; +typedef struct _GoaOAuthBased GoaOAuthBased; +typedef struct _GoaOAuthBasedIface GoaOAuthBasedIface; + +struct _GoaOAuthBasedIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_access_token) ( + GoaOAuthBased *object, + GDBusMethodInvocation *invocation); + + const gchar * (*get_consumer_key) (GoaOAuthBased *object); + + const gchar * (*get_consumer_secret) (GoaOAuthBased *object); + +}; + +GType goa_oauth_based_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_oauth_based_interface_info (void); +guint goa_oauth_based_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void goa_oauth_based_complete_get_access_token ( + GoaOAuthBased *object, + GDBusMethodInvocation *invocation, + const gchar *access_token, + const gchar *access_token_secret, + gint expires_in); + + + +/* D-Bus method calls: */ +void goa_oauth_based_call_get_access_token ( + GoaOAuthBased *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_oauth_based_call_get_access_token_finish ( + GoaOAuthBased *proxy, + gchar **out_access_token, + gchar **out_access_token_secret, + gint *out_expires_in, + GAsyncResult *res, + GError **error); + +gboolean goa_oauth_based_call_get_access_token_sync ( + GoaOAuthBased *proxy, + gchar **out_access_token, + gchar **out_access_token_secret, + gint *out_expires_in, + GCancellable *cancellable, + GError **error); + + + +/* D-Bus property accessors: */ +const gchar *goa_oauth_based_get_consumer_key (GoaOAuthBased *object); +gchar *goa_oauth_based_dup_consumer_key (GoaOAuthBased *object); +void goa_oauth_based_set_consumer_key (GoaOAuthBased *object, const gchar *value); + +const gchar *goa_oauth_based_get_consumer_secret (GoaOAuthBased *object); +gchar *goa_oauth_based_dup_consumer_secret (GoaOAuthBased *object); +void goa_oauth_based_set_consumer_secret (GoaOAuthBased *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_OAUTH_BASED_PROXY (goa_oauth_based_proxy_get_type ()) +#define GOA_OAUTH_BASED_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OAUTH_BASED_PROXY, GoaOAuthBasedProxy)) +#define GOA_OAUTH_BASED_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_OAUTH_BASED_PROXY, GoaOAuthBasedProxyClass)) +#define GOA_OAUTH_BASED_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_OAUTH_BASED_PROXY, GoaOAuthBasedProxyClass)) +#define GOA_IS_OAUTH_BASED_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OAUTH_BASED_PROXY)) +#define GOA_IS_OAUTH_BASED_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_OAUTH_BASED_PROXY)) + +typedef struct _GoaOAuthBasedProxy GoaOAuthBasedProxy; +typedef struct _GoaOAuthBasedProxyClass GoaOAuthBasedProxyClass; +typedef struct _GoaOAuthBasedProxyPrivate GoaOAuthBasedProxyPrivate; + +struct _GoaOAuthBasedProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaOAuthBasedProxyPrivate *priv; +}; + +struct _GoaOAuthBasedProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_oauth_based_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaOAuthBasedProxy, g_object_unref) +#endif + +void goa_oauth_based_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaOAuthBased *goa_oauth_based_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaOAuthBased *goa_oauth_based_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_oauth_based_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaOAuthBased *goa_oauth_based_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaOAuthBased *goa_oauth_based_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_OAUTH_BASED_SKELETON (goa_oauth_based_skeleton_get_type ()) +#define GOA_OAUTH_BASED_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OAUTH_BASED_SKELETON, GoaOAuthBasedSkeleton)) +#define GOA_OAUTH_BASED_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_OAUTH_BASED_SKELETON, GoaOAuthBasedSkeletonClass)) +#define GOA_OAUTH_BASED_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_OAUTH_BASED_SKELETON, GoaOAuthBasedSkeletonClass)) +#define GOA_IS_OAUTH_BASED_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OAUTH_BASED_SKELETON)) +#define GOA_IS_OAUTH_BASED_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_OAUTH_BASED_SKELETON)) + +typedef struct _GoaOAuthBasedSkeleton GoaOAuthBasedSkeleton; +typedef struct _GoaOAuthBasedSkeletonClass GoaOAuthBasedSkeletonClass; +typedef struct _GoaOAuthBasedSkeletonPrivate GoaOAuthBasedSkeletonPrivate; + +struct _GoaOAuthBasedSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaOAuthBasedSkeletonPrivate *priv; +}; + +struct _GoaOAuthBasedSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_oauth_based_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaOAuthBasedSkeleton, g_object_unref) +#endif + +GoaOAuthBased *goa_oauth_based_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.PasswordBased */ + +#define GOA_TYPE_PASSWORD_BASED (goa_password_based_get_type ()) +#define GOA_PASSWORD_BASED(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PASSWORD_BASED, GoaPasswordBased)) +#define GOA_IS_PASSWORD_BASED(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PASSWORD_BASED)) +#define GOA_PASSWORD_BASED_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_PASSWORD_BASED, GoaPasswordBasedIface)) + +struct _GoaPasswordBased; +typedef struct _GoaPasswordBased GoaPasswordBased; +typedef struct _GoaPasswordBasedIface GoaPasswordBasedIface; + +struct _GoaPasswordBasedIface +{ + GTypeInterface parent_iface; + + gboolean (*handle_get_password) ( + GoaPasswordBased *object, + GDBusMethodInvocation *invocation, + const gchar *arg_id); + +}; + +GType goa_password_based_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_password_based_interface_info (void); +guint goa_password_based_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void goa_password_based_complete_get_password ( + GoaPasswordBased *object, + GDBusMethodInvocation *invocation, + const gchar *password); + + + +/* D-Bus method calls: */ +void goa_password_based_call_get_password ( + GoaPasswordBased *proxy, + const gchar *arg_id, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_password_based_call_get_password_finish ( + GoaPasswordBased *proxy, + gchar **out_password, + GAsyncResult *res, + GError **error); + +gboolean goa_password_based_call_get_password_sync ( + GoaPasswordBased *proxy, + const gchar *arg_id, + gchar **out_password, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define GOA_TYPE_PASSWORD_BASED_PROXY (goa_password_based_proxy_get_type ()) +#define GOA_PASSWORD_BASED_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PASSWORD_BASED_PROXY, GoaPasswordBasedProxy)) +#define GOA_PASSWORD_BASED_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_PASSWORD_BASED_PROXY, GoaPasswordBasedProxyClass)) +#define GOA_PASSWORD_BASED_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_PASSWORD_BASED_PROXY, GoaPasswordBasedProxyClass)) +#define GOA_IS_PASSWORD_BASED_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PASSWORD_BASED_PROXY)) +#define GOA_IS_PASSWORD_BASED_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_PASSWORD_BASED_PROXY)) + +typedef struct _GoaPasswordBasedProxy GoaPasswordBasedProxy; +typedef struct _GoaPasswordBasedProxyClass GoaPasswordBasedProxyClass; +typedef struct _GoaPasswordBasedProxyPrivate GoaPasswordBasedProxyPrivate; + +struct _GoaPasswordBasedProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaPasswordBasedProxyPrivate *priv; +}; + +struct _GoaPasswordBasedProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_password_based_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaPasswordBasedProxy, g_object_unref) +#endif + +void goa_password_based_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaPasswordBased *goa_password_based_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaPasswordBased *goa_password_based_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_password_based_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaPasswordBased *goa_password_based_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaPasswordBased *goa_password_based_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_PASSWORD_BASED_SKELETON (goa_password_based_skeleton_get_type ()) +#define GOA_PASSWORD_BASED_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PASSWORD_BASED_SKELETON, GoaPasswordBasedSkeleton)) +#define GOA_PASSWORD_BASED_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_PASSWORD_BASED_SKELETON, GoaPasswordBasedSkeletonClass)) +#define GOA_PASSWORD_BASED_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_PASSWORD_BASED_SKELETON, GoaPasswordBasedSkeletonClass)) +#define GOA_IS_PASSWORD_BASED_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PASSWORD_BASED_SKELETON)) +#define GOA_IS_PASSWORD_BASED_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_PASSWORD_BASED_SKELETON)) + +typedef struct _GoaPasswordBasedSkeleton GoaPasswordBasedSkeleton; +typedef struct _GoaPasswordBasedSkeletonClass GoaPasswordBasedSkeletonClass; +typedef struct _GoaPasswordBasedSkeletonPrivate GoaPasswordBasedSkeletonPrivate; + +struct _GoaPasswordBasedSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaPasswordBasedSkeletonPrivate *priv; +}; + +struct _GoaPasswordBasedSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_password_based_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaPasswordBasedSkeleton, g_object_unref) +#endif + +GoaPasswordBased *goa_password_based_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Manager */ + +#define GOA_TYPE_MANAGER (goa_manager_get_type ()) +#define GOA_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MANAGER, GoaManager)) +#define GOA_IS_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MANAGER)) +#define GOA_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_MANAGER, GoaManagerIface)) + +struct _GoaManager; +typedef struct _GoaManager GoaManager; +typedef struct _GoaManagerIface GoaManagerIface; + +struct _GoaManagerIface +{ + GTypeInterface parent_iface; + + gboolean (*handle_add_account) ( + GoaManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_provider, + const gchar *arg_identity, + const gchar *arg_presentation_identity, + GVariant *arg_credentials, + GVariant *arg_details); + +}; + +GType goa_manager_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_manager_interface_info (void); +guint goa_manager_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void goa_manager_complete_add_account ( + GoaManager *object, + GDBusMethodInvocation *invocation, + const gchar *account_object_path); + + + +/* D-Bus method calls: */ +void goa_manager_call_add_account ( + GoaManager *proxy, + const gchar *arg_provider, + const gchar *arg_identity, + const gchar *arg_presentation_identity, + GVariant *arg_credentials, + GVariant *arg_details, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_manager_call_add_account_finish ( + GoaManager *proxy, + gchar **out_account_object_path, + GAsyncResult *res, + GError **error); + +gboolean goa_manager_call_add_account_sync ( + GoaManager *proxy, + const gchar *arg_provider, + const gchar *arg_identity, + const gchar *arg_presentation_identity, + GVariant *arg_credentials, + GVariant *arg_details, + gchar **out_account_object_path, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define GOA_TYPE_MANAGER_PROXY (goa_manager_proxy_get_type ()) +#define GOA_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MANAGER_PROXY, GoaManagerProxy)) +#define GOA_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MANAGER_PROXY, GoaManagerProxyClass)) +#define GOA_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MANAGER_PROXY, GoaManagerProxyClass)) +#define GOA_IS_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MANAGER_PROXY)) +#define GOA_IS_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MANAGER_PROXY)) + +typedef struct _GoaManagerProxy GoaManagerProxy; +typedef struct _GoaManagerProxyClass GoaManagerProxyClass; +typedef struct _GoaManagerProxyPrivate GoaManagerProxyPrivate; + +struct _GoaManagerProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaManagerProxyPrivate *priv; +}; + +struct _GoaManagerProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_manager_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaManagerProxy, g_object_unref) +#endif + +void goa_manager_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaManager *goa_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaManager *goa_manager_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_manager_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaManager *goa_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaManager *goa_manager_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_MANAGER_SKELETON (goa_manager_skeleton_get_type ()) +#define GOA_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MANAGER_SKELETON, GoaManagerSkeleton)) +#define GOA_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MANAGER_SKELETON, GoaManagerSkeletonClass)) +#define GOA_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MANAGER_SKELETON, GoaManagerSkeletonClass)) +#define GOA_IS_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MANAGER_SKELETON)) +#define GOA_IS_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MANAGER_SKELETON)) + +typedef struct _GoaManagerSkeleton GoaManagerSkeleton; +typedef struct _GoaManagerSkeletonClass GoaManagerSkeletonClass; +typedef struct _GoaManagerSkeletonPrivate GoaManagerSkeletonPrivate; + +struct _GoaManagerSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaManagerSkeletonPrivate *priv; +}; + +struct _GoaManagerSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_manager_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaManagerSkeleton, g_object_unref) +#endif + +GoaManager *goa_manager_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Mail */ + +#define GOA_TYPE_MAIL (goa_mail_get_type ()) +#define GOA_MAIL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MAIL, GoaMail)) +#define GOA_IS_MAIL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MAIL)) +#define GOA_MAIL_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_MAIL, GoaMailIface)) + +struct _GoaMail; +typedef struct _GoaMail GoaMail; +typedef struct _GoaMailIface GoaMailIface; + +struct _GoaMailIface +{ + GTypeInterface parent_iface; + + const gchar * (*get_email_address) (GoaMail *object); + + const gchar * (*get_imap_host) (GoaMail *object); + + gboolean (*get_imap_supported) (GoaMail *object); + + gboolean (*get_imap_use_tls) (GoaMail *object); + + const gchar * (*get_imap_user_name) (GoaMail *object); + + const gchar * (*get_smtp_host) (GoaMail *object); + + gboolean (*get_smtp_supported) (GoaMail *object); + + gboolean (*get_smtp_use_tls) (GoaMail *object); + + const gchar * (*get_smtp_user_name) (GoaMail *object); + + gboolean (*get_imap_accept_ssl_errors) (GoaMail *object); + + gboolean (*get_imap_use_ssl) (GoaMail *object); + + const gchar * (*get_name) (GoaMail *object); + + gboolean (*get_smtp_accept_ssl_errors) (GoaMail *object); + + gboolean (*get_smtp_use_auth) (GoaMail *object); + + gboolean (*get_smtp_use_ssl) (GoaMail *object); + + gboolean (*get_smtp_auth_login) (GoaMail *object); + + gboolean (*get_smtp_auth_plain) (GoaMail *object); + + gboolean (*get_smtp_auth_xoauth2) (GoaMail *object); + +}; + +GType goa_mail_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_mail_interface_info (void); +guint goa_mail_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus property accessors: */ +const gchar *goa_mail_get_email_address (GoaMail *object); +gchar *goa_mail_dup_email_address (GoaMail *object); +void goa_mail_set_email_address (GoaMail *object, const gchar *value); + +const gchar *goa_mail_get_name (GoaMail *object); +gchar *goa_mail_dup_name (GoaMail *object); +void goa_mail_set_name (GoaMail *object, const gchar *value); + +gboolean goa_mail_get_imap_supported (GoaMail *object); +void goa_mail_set_imap_supported (GoaMail *object, gboolean value); + +gboolean goa_mail_get_imap_accept_ssl_errors (GoaMail *object); +void goa_mail_set_imap_accept_ssl_errors (GoaMail *object, gboolean value); + +const gchar *goa_mail_get_imap_host (GoaMail *object); +gchar *goa_mail_dup_imap_host (GoaMail *object); +void goa_mail_set_imap_host (GoaMail *object, const gchar *value); + +gboolean goa_mail_get_imap_use_ssl (GoaMail *object); +void goa_mail_set_imap_use_ssl (GoaMail *object, gboolean value); + +gboolean goa_mail_get_imap_use_tls (GoaMail *object); +void goa_mail_set_imap_use_tls (GoaMail *object, gboolean value); + +const gchar *goa_mail_get_imap_user_name (GoaMail *object); +gchar *goa_mail_dup_imap_user_name (GoaMail *object); +void goa_mail_set_imap_user_name (GoaMail *object, const gchar *value); + +gboolean goa_mail_get_smtp_supported (GoaMail *object); +void goa_mail_set_smtp_supported (GoaMail *object, gboolean value); + +gboolean goa_mail_get_smtp_accept_ssl_errors (GoaMail *object); +void goa_mail_set_smtp_accept_ssl_errors (GoaMail *object, gboolean value); + +const gchar *goa_mail_get_smtp_host (GoaMail *object); +gchar *goa_mail_dup_smtp_host (GoaMail *object); +void goa_mail_set_smtp_host (GoaMail *object, const gchar *value); + +gboolean goa_mail_get_smtp_use_auth (GoaMail *object); +void goa_mail_set_smtp_use_auth (GoaMail *object, gboolean value); + +gboolean goa_mail_get_smtp_auth_login (GoaMail *object); +void goa_mail_set_smtp_auth_login (GoaMail *object, gboolean value); + +gboolean goa_mail_get_smtp_auth_plain (GoaMail *object); +void goa_mail_set_smtp_auth_plain (GoaMail *object, gboolean value); + +gboolean goa_mail_get_smtp_auth_xoauth2 (GoaMail *object); +void goa_mail_set_smtp_auth_xoauth2 (GoaMail *object, gboolean value); + +gboolean goa_mail_get_smtp_use_ssl (GoaMail *object); +void goa_mail_set_smtp_use_ssl (GoaMail *object, gboolean value); + +gboolean goa_mail_get_smtp_use_tls (GoaMail *object); +void goa_mail_set_smtp_use_tls (GoaMail *object, gboolean value); + +const gchar *goa_mail_get_smtp_user_name (GoaMail *object); +gchar *goa_mail_dup_smtp_user_name (GoaMail *object); +void goa_mail_set_smtp_user_name (GoaMail *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_MAIL_PROXY (goa_mail_proxy_get_type ()) +#define GOA_MAIL_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MAIL_PROXY, GoaMailProxy)) +#define GOA_MAIL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MAIL_PROXY, GoaMailProxyClass)) +#define GOA_MAIL_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MAIL_PROXY, GoaMailProxyClass)) +#define GOA_IS_MAIL_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MAIL_PROXY)) +#define GOA_IS_MAIL_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MAIL_PROXY)) + +typedef struct _GoaMailProxy GoaMailProxy; +typedef struct _GoaMailProxyClass GoaMailProxyClass; +typedef struct _GoaMailProxyPrivate GoaMailProxyPrivate; + +struct _GoaMailProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaMailProxyPrivate *priv; +}; + +struct _GoaMailProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_mail_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMailProxy, g_object_unref) +#endif + +void goa_mail_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMail *goa_mail_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaMail *goa_mail_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_mail_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMail *goa_mail_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaMail *goa_mail_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_MAIL_SKELETON (goa_mail_skeleton_get_type ()) +#define GOA_MAIL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MAIL_SKELETON, GoaMailSkeleton)) +#define GOA_MAIL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MAIL_SKELETON, GoaMailSkeletonClass)) +#define GOA_MAIL_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MAIL_SKELETON, GoaMailSkeletonClass)) +#define GOA_IS_MAIL_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MAIL_SKELETON)) +#define GOA_IS_MAIL_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MAIL_SKELETON)) + +typedef struct _GoaMailSkeleton GoaMailSkeleton; +typedef struct _GoaMailSkeletonClass GoaMailSkeletonClass; +typedef struct _GoaMailSkeletonPrivate GoaMailSkeletonPrivate; + +struct _GoaMailSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaMailSkeletonPrivate *priv; +}; + +struct _GoaMailSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_mail_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMailSkeleton, g_object_unref) +#endif + +GoaMail *goa_mail_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Calendar */ + +#define GOA_TYPE_CALENDAR (goa_calendar_get_type ()) +#define GOA_CALENDAR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CALENDAR, GoaCalendar)) +#define GOA_IS_CALENDAR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CALENDAR)) +#define GOA_CALENDAR_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_CALENDAR, GoaCalendarIface)) + +struct _GoaCalendar; +typedef struct _GoaCalendar GoaCalendar; +typedef struct _GoaCalendarIface GoaCalendarIface; + +struct _GoaCalendarIface +{ + GTypeInterface parent_iface; + + gboolean (*get_accept_ssl_errors) (GoaCalendar *object); + + const gchar * (*get_uri) (GoaCalendar *object); + +}; + +GType goa_calendar_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_calendar_interface_info (void); +guint goa_calendar_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus property accessors: */ +gboolean goa_calendar_get_accept_ssl_errors (GoaCalendar *object); +void goa_calendar_set_accept_ssl_errors (GoaCalendar *object, gboolean value); + +const gchar *goa_calendar_get_uri (GoaCalendar *object); +gchar *goa_calendar_dup_uri (GoaCalendar *object); +void goa_calendar_set_uri (GoaCalendar *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_CALENDAR_PROXY (goa_calendar_proxy_get_type ()) +#define GOA_CALENDAR_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CALENDAR_PROXY, GoaCalendarProxy)) +#define GOA_CALENDAR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_CALENDAR_PROXY, GoaCalendarProxyClass)) +#define GOA_CALENDAR_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_CALENDAR_PROXY, GoaCalendarProxyClass)) +#define GOA_IS_CALENDAR_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CALENDAR_PROXY)) +#define GOA_IS_CALENDAR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_CALENDAR_PROXY)) + +typedef struct _GoaCalendarProxy GoaCalendarProxy; +typedef struct _GoaCalendarProxyClass GoaCalendarProxyClass; +typedef struct _GoaCalendarProxyPrivate GoaCalendarProxyPrivate; + +struct _GoaCalendarProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaCalendarProxyPrivate *priv; +}; + +struct _GoaCalendarProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_calendar_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaCalendarProxy, g_object_unref) +#endif + +void goa_calendar_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaCalendar *goa_calendar_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaCalendar *goa_calendar_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_calendar_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaCalendar *goa_calendar_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaCalendar *goa_calendar_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_CALENDAR_SKELETON (goa_calendar_skeleton_get_type ()) +#define GOA_CALENDAR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CALENDAR_SKELETON, GoaCalendarSkeleton)) +#define GOA_CALENDAR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_CALENDAR_SKELETON, GoaCalendarSkeletonClass)) +#define GOA_CALENDAR_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_CALENDAR_SKELETON, GoaCalendarSkeletonClass)) +#define GOA_IS_CALENDAR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CALENDAR_SKELETON)) +#define GOA_IS_CALENDAR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_CALENDAR_SKELETON)) + +typedef struct _GoaCalendarSkeleton GoaCalendarSkeleton; +typedef struct _GoaCalendarSkeletonClass GoaCalendarSkeletonClass; +typedef struct _GoaCalendarSkeletonPrivate GoaCalendarSkeletonPrivate; + +struct _GoaCalendarSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaCalendarSkeletonPrivate *priv; +}; + +struct _GoaCalendarSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_calendar_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaCalendarSkeleton, g_object_unref) +#endif + +GoaCalendar *goa_calendar_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Contacts */ + +#define GOA_TYPE_CONTACTS (goa_contacts_get_type ()) +#define GOA_CONTACTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CONTACTS, GoaContacts)) +#define GOA_IS_CONTACTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CONTACTS)) +#define GOA_CONTACTS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_CONTACTS, GoaContactsIface)) + +struct _GoaContacts; +typedef struct _GoaContacts GoaContacts; +typedef struct _GoaContactsIface GoaContactsIface; + +struct _GoaContactsIface +{ + GTypeInterface parent_iface; + + gboolean (*get_accept_ssl_errors) (GoaContacts *object); + + const gchar * (*get_uri) (GoaContacts *object); + +}; + +GType goa_contacts_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_contacts_interface_info (void); +guint goa_contacts_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus property accessors: */ +gboolean goa_contacts_get_accept_ssl_errors (GoaContacts *object); +void goa_contacts_set_accept_ssl_errors (GoaContacts *object, gboolean value); + +const gchar *goa_contacts_get_uri (GoaContacts *object); +gchar *goa_contacts_dup_uri (GoaContacts *object); +void goa_contacts_set_uri (GoaContacts *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_CONTACTS_PROXY (goa_contacts_proxy_get_type ()) +#define GOA_CONTACTS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CONTACTS_PROXY, GoaContactsProxy)) +#define GOA_CONTACTS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_CONTACTS_PROXY, GoaContactsProxyClass)) +#define GOA_CONTACTS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_CONTACTS_PROXY, GoaContactsProxyClass)) +#define GOA_IS_CONTACTS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CONTACTS_PROXY)) +#define GOA_IS_CONTACTS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_CONTACTS_PROXY)) + +typedef struct _GoaContactsProxy GoaContactsProxy; +typedef struct _GoaContactsProxyClass GoaContactsProxyClass; +typedef struct _GoaContactsProxyPrivate GoaContactsProxyPrivate; + +struct _GoaContactsProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaContactsProxyPrivate *priv; +}; + +struct _GoaContactsProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_contacts_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaContactsProxy, g_object_unref) +#endif + +void goa_contacts_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaContacts *goa_contacts_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaContacts *goa_contacts_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_contacts_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaContacts *goa_contacts_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaContacts *goa_contacts_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_CONTACTS_SKELETON (goa_contacts_skeleton_get_type ()) +#define GOA_CONTACTS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CONTACTS_SKELETON, GoaContactsSkeleton)) +#define GOA_CONTACTS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_CONTACTS_SKELETON, GoaContactsSkeletonClass)) +#define GOA_CONTACTS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_CONTACTS_SKELETON, GoaContactsSkeletonClass)) +#define GOA_IS_CONTACTS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CONTACTS_SKELETON)) +#define GOA_IS_CONTACTS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_CONTACTS_SKELETON)) + +typedef struct _GoaContactsSkeleton GoaContactsSkeleton; +typedef struct _GoaContactsSkeletonClass GoaContactsSkeletonClass; +typedef struct _GoaContactsSkeletonPrivate GoaContactsSkeletonPrivate; + +struct _GoaContactsSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaContactsSkeletonPrivate *priv; +}; + +struct _GoaContactsSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_contacts_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaContactsSkeleton, g_object_unref) +#endif + +GoaContacts *goa_contacts_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Chat */ + +#define GOA_TYPE_CHAT (goa_chat_get_type ()) +#define GOA_CHAT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CHAT, GoaChat)) +#define GOA_IS_CHAT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CHAT)) +#define GOA_CHAT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_CHAT, GoaChatIface)) + +struct _GoaChat; +typedef struct _GoaChat GoaChat; +typedef struct _GoaChatIface GoaChatIface; + +struct _GoaChatIface +{ + GTypeInterface parent_iface; +}; + +GType goa_chat_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_chat_interface_info (void); +guint goa_chat_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_CHAT_PROXY (goa_chat_proxy_get_type ()) +#define GOA_CHAT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CHAT_PROXY, GoaChatProxy)) +#define GOA_CHAT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_CHAT_PROXY, GoaChatProxyClass)) +#define GOA_CHAT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_CHAT_PROXY, GoaChatProxyClass)) +#define GOA_IS_CHAT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CHAT_PROXY)) +#define GOA_IS_CHAT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_CHAT_PROXY)) + +typedef struct _GoaChatProxy GoaChatProxy; +typedef struct _GoaChatProxyClass GoaChatProxyClass; +typedef struct _GoaChatProxyPrivate GoaChatProxyPrivate; + +struct _GoaChatProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaChatProxyPrivate *priv; +}; + +struct _GoaChatProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_chat_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaChatProxy, g_object_unref) +#endif + +void goa_chat_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaChat *goa_chat_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaChat *goa_chat_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_chat_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaChat *goa_chat_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaChat *goa_chat_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_CHAT_SKELETON (goa_chat_skeleton_get_type ()) +#define GOA_CHAT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_CHAT_SKELETON, GoaChatSkeleton)) +#define GOA_CHAT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_CHAT_SKELETON, GoaChatSkeletonClass)) +#define GOA_CHAT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_CHAT_SKELETON, GoaChatSkeletonClass)) +#define GOA_IS_CHAT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_CHAT_SKELETON)) +#define GOA_IS_CHAT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_CHAT_SKELETON)) + +typedef struct _GoaChatSkeleton GoaChatSkeleton; +typedef struct _GoaChatSkeletonClass GoaChatSkeletonClass; +typedef struct _GoaChatSkeletonPrivate GoaChatSkeletonPrivate; + +struct _GoaChatSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaChatSkeletonPrivate *priv; +}; + +struct _GoaChatSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_chat_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaChatSkeleton, g_object_unref) +#endif + +GoaChat *goa_chat_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Documents */ + +#define GOA_TYPE_DOCUMENTS (goa_documents_get_type ()) +#define GOA_DOCUMENTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_DOCUMENTS, GoaDocuments)) +#define GOA_IS_DOCUMENTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_DOCUMENTS)) +#define GOA_DOCUMENTS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_DOCUMENTS, GoaDocumentsIface)) + +struct _GoaDocuments; +typedef struct _GoaDocuments GoaDocuments; +typedef struct _GoaDocumentsIface GoaDocumentsIface; + +struct _GoaDocumentsIface +{ + GTypeInterface parent_iface; +}; + +GType goa_documents_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_documents_interface_info (void); +guint goa_documents_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_DOCUMENTS_PROXY (goa_documents_proxy_get_type ()) +#define GOA_DOCUMENTS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_DOCUMENTS_PROXY, GoaDocumentsProxy)) +#define GOA_DOCUMENTS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_DOCUMENTS_PROXY, GoaDocumentsProxyClass)) +#define GOA_DOCUMENTS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_DOCUMENTS_PROXY, GoaDocumentsProxyClass)) +#define GOA_IS_DOCUMENTS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_DOCUMENTS_PROXY)) +#define GOA_IS_DOCUMENTS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_DOCUMENTS_PROXY)) + +typedef struct _GoaDocumentsProxy GoaDocumentsProxy; +typedef struct _GoaDocumentsProxyClass GoaDocumentsProxyClass; +typedef struct _GoaDocumentsProxyPrivate GoaDocumentsProxyPrivate; + +struct _GoaDocumentsProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaDocumentsProxyPrivate *priv; +}; + +struct _GoaDocumentsProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_documents_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaDocumentsProxy, g_object_unref) +#endif + +void goa_documents_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaDocuments *goa_documents_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaDocuments *goa_documents_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_documents_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaDocuments *goa_documents_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaDocuments *goa_documents_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_DOCUMENTS_SKELETON (goa_documents_skeleton_get_type ()) +#define GOA_DOCUMENTS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_DOCUMENTS_SKELETON, GoaDocumentsSkeleton)) +#define GOA_DOCUMENTS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_DOCUMENTS_SKELETON, GoaDocumentsSkeletonClass)) +#define GOA_DOCUMENTS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_DOCUMENTS_SKELETON, GoaDocumentsSkeletonClass)) +#define GOA_IS_DOCUMENTS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_DOCUMENTS_SKELETON)) +#define GOA_IS_DOCUMENTS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_DOCUMENTS_SKELETON)) + +typedef struct _GoaDocumentsSkeleton GoaDocumentsSkeleton; +typedef struct _GoaDocumentsSkeletonClass GoaDocumentsSkeletonClass; +typedef struct _GoaDocumentsSkeletonPrivate GoaDocumentsSkeletonPrivate; + +struct _GoaDocumentsSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaDocumentsSkeletonPrivate *priv; +}; + +struct _GoaDocumentsSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_documents_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaDocumentsSkeleton, g_object_unref) +#endif + +GoaDocuments *goa_documents_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Maps */ + +#define GOA_TYPE_MAPS (goa_maps_get_type ()) +#define GOA_MAPS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MAPS, GoaMaps)) +#define GOA_IS_MAPS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MAPS)) +#define GOA_MAPS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_MAPS, GoaMapsIface)) + +struct _GoaMaps; +typedef struct _GoaMaps GoaMaps; +typedef struct _GoaMapsIface GoaMapsIface; + +struct _GoaMapsIface +{ + GTypeInterface parent_iface; +}; + +GType goa_maps_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_maps_interface_info (void); +guint goa_maps_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_MAPS_PROXY (goa_maps_proxy_get_type ()) +#define GOA_MAPS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MAPS_PROXY, GoaMapsProxy)) +#define GOA_MAPS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MAPS_PROXY, GoaMapsProxyClass)) +#define GOA_MAPS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MAPS_PROXY, GoaMapsProxyClass)) +#define GOA_IS_MAPS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MAPS_PROXY)) +#define GOA_IS_MAPS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MAPS_PROXY)) + +typedef struct _GoaMapsProxy GoaMapsProxy; +typedef struct _GoaMapsProxyClass GoaMapsProxyClass; +typedef struct _GoaMapsProxyPrivate GoaMapsProxyPrivate; + +struct _GoaMapsProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaMapsProxyPrivate *priv; +}; + +struct _GoaMapsProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_maps_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMapsProxy, g_object_unref) +#endif + +void goa_maps_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMaps *goa_maps_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaMaps *goa_maps_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_maps_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMaps *goa_maps_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaMaps *goa_maps_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_MAPS_SKELETON (goa_maps_skeleton_get_type ()) +#define GOA_MAPS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MAPS_SKELETON, GoaMapsSkeleton)) +#define GOA_MAPS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MAPS_SKELETON, GoaMapsSkeletonClass)) +#define GOA_MAPS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MAPS_SKELETON, GoaMapsSkeletonClass)) +#define GOA_IS_MAPS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MAPS_SKELETON)) +#define GOA_IS_MAPS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MAPS_SKELETON)) + +typedef struct _GoaMapsSkeleton GoaMapsSkeleton; +typedef struct _GoaMapsSkeletonClass GoaMapsSkeletonClass; +typedef struct _GoaMapsSkeletonPrivate GoaMapsSkeletonPrivate; + +struct _GoaMapsSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaMapsSkeletonPrivate *priv; +}; + +struct _GoaMapsSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_maps_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMapsSkeleton, g_object_unref) +#endif + +GoaMaps *goa_maps_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Music */ + +#define GOA_TYPE_MUSIC (goa_music_get_type ()) +#define GOA_MUSIC(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MUSIC, GoaMusic)) +#define GOA_IS_MUSIC(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MUSIC)) +#define GOA_MUSIC_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_MUSIC, GoaMusicIface)) + +struct _GoaMusic; +typedef struct _GoaMusic GoaMusic; +typedef struct _GoaMusicIface GoaMusicIface; + +struct _GoaMusicIface +{ + GTypeInterface parent_iface; +}; + +GType goa_music_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_music_interface_info (void); +guint goa_music_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_MUSIC_PROXY (goa_music_proxy_get_type ()) +#define GOA_MUSIC_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MUSIC_PROXY, GoaMusicProxy)) +#define GOA_MUSIC_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MUSIC_PROXY, GoaMusicProxyClass)) +#define GOA_MUSIC_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MUSIC_PROXY, GoaMusicProxyClass)) +#define GOA_IS_MUSIC_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MUSIC_PROXY)) +#define GOA_IS_MUSIC_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MUSIC_PROXY)) + +typedef struct _GoaMusicProxy GoaMusicProxy; +typedef struct _GoaMusicProxyClass GoaMusicProxyClass; +typedef struct _GoaMusicProxyPrivate GoaMusicProxyPrivate; + +struct _GoaMusicProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaMusicProxyPrivate *priv; +}; + +struct _GoaMusicProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_music_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMusicProxy, g_object_unref) +#endif + +void goa_music_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMusic *goa_music_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaMusic *goa_music_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_music_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMusic *goa_music_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaMusic *goa_music_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_MUSIC_SKELETON (goa_music_skeleton_get_type ()) +#define GOA_MUSIC_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MUSIC_SKELETON, GoaMusicSkeleton)) +#define GOA_MUSIC_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MUSIC_SKELETON, GoaMusicSkeletonClass)) +#define GOA_MUSIC_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MUSIC_SKELETON, GoaMusicSkeletonClass)) +#define GOA_IS_MUSIC_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MUSIC_SKELETON)) +#define GOA_IS_MUSIC_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MUSIC_SKELETON)) + +typedef struct _GoaMusicSkeleton GoaMusicSkeleton; +typedef struct _GoaMusicSkeletonClass GoaMusicSkeletonClass; +typedef struct _GoaMusicSkeletonPrivate GoaMusicSkeletonPrivate; + +struct _GoaMusicSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaMusicSkeletonPrivate *priv; +}; + +struct _GoaMusicSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_music_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMusicSkeleton, g_object_unref) +#endif + +GoaMusic *goa_music_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Photos */ + +#define GOA_TYPE_PHOTOS (goa_photos_get_type ()) +#define GOA_PHOTOS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PHOTOS, GoaPhotos)) +#define GOA_IS_PHOTOS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PHOTOS)) +#define GOA_PHOTOS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_PHOTOS, GoaPhotosIface)) + +struct _GoaPhotos; +typedef struct _GoaPhotos GoaPhotos; +typedef struct _GoaPhotosIface GoaPhotosIface; + +struct _GoaPhotosIface +{ + GTypeInterface parent_iface; +}; + +GType goa_photos_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_photos_interface_info (void); +guint goa_photos_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_PHOTOS_PROXY (goa_photos_proxy_get_type ()) +#define GOA_PHOTOS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PHOTOS_PROXY, GoaPhotosProxy)) +#define GOA_PHOTOS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_PHOTOS_PROXY, GoaPhotosProxyClass)) +#define GOA_PHOTOS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_PHOTOS_PROXY, GoaPhotosProxyClass)) +#define GOA_IS_PHOTOS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PHOTOS_PROXY)) +#define GOA_IS_PHOTOS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_PHOTOS_PROXY)) + +typedef struct _GoaPhotosProxy GoaPhotosProxy; +typedef struct _GoaPhotosProxyClass GoaPhotosProxyClass; +typedef struct _GoaPhotosProxyPrivate GoaPhotosProxyPrivate; + +struct _GoaPhotosProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaPhotosProxyPrivate *priv; +}; + +struct _GoaPhotosProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_photos_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaPhotosProxy, g_object_unref) +#endif + +void goa_photos_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaPhotos *goa_photos_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaPhotos *goa_photos_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_photos_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaPhotos *goa_photos_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaPhotos *goa_photos_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_PHOTOS_SKELETON (goa_photos_skeleton_get_type ()) +#define GOA_PHOTOS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PHOTOS_SKELETON, GoaPhotosSkeleton)) +#define GOA_PHOTOS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_PHOTOS_SKELETON, GoaPhotosSkeletonClass)) +#define GOA_PHOTOS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_PHOTOS_SKELETON, GoaPhotosSkeletonClass)) +#define GOA_IS_PHOTOS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PHOTOS_SKELETON)) +#define GOA_IS_PHOTOS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_PHOTOS_SKELETON)) + +typedef struct _GoaPhotosSkeleton GoaPhotosSkeleton; +typedef struct _GoaPhotosSkeletonClass GoaPhotosSkeletonClass; +typedef struct _GoaPhotosSkeletonPrivate GoaPhotosSkeletonPrivate; + +struct _GoaPhotosSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaPhotosSkeletonPrivate *priv; +}; + +struct _GoaPhotosSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_photos_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaPhotosSkeleton, g_object_unref) +#endif + +GoaPhotos *goa_photos_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Files */ + +#define GOA_TYPE_FILES (goa_files_get_type ()) +#define GOA_FILES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_FILES, GoaFiles)) +#define GOA_IS_FILES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_FILES)) +#define GOA_FILES_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_FILES, GoaFilesIface)) + +struct _GoaFiles; +typedef struct _GoaFiles GoaFiles; +typedef struct _GoaFilesIface GoaFilesIface; + +struct _GoaFilesIface +{ + GTypeInterface parent_iface; + + gboolean (*get_accept_ssl_errors) (GoaFiles *object); + + const gchar * (*get_uri) (GoaFiles *object); + +}; + +GType goa_files_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_files_interface_info (void); +guint goa_files_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus property accessors: */ +gboolean goa_files_get_accept_ssl_errors (GoaFiles *object); +void goa_files_set_accept_ssl_errors (GoaFiles *object, gboolean value); + +const gchar *goa_files_get_uri (GoaFiles *object); +gchar *goa_files_dup_uri (GoaFiles *object); +void goa_files_set_uri (GoaFiles *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_FILES_PROXY (goa_files_proxy_get_type ()) +#define GOA_FILES_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_FILES_PROXY, GoaFilesProxy)) +#define GOA_FILES_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_FILES_PROXY, GoaFilesProxyClass)) +#define GOA_FILES_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_FILES_PROXY, GoaFilesProxyClass)) +#define GOA_IS_FILES_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_FILES_PROXY)) +#define GOA_IS_FILES_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_FILES_PROXY)) + +typedef struct _GoaFilesProxy GoaFilesProxy; +typedef struct _GoaFilesProxyClass GoaFilesProxyClass; +typedef struct _GoaFilesProxyPrivate GoaFilesProxyPrivate; + +struct _GoaFilesProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaFilesProxyPrivate *priv; +}; + +struct _GoaFilesProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_files_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaFilesProxy, g_object_unref) +#endif + +void goa_files_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaFiles *goa_files_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaFiles *goa_files_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_files_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaFiles *goa_files_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaFiles *goa_files_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_FILES_SKELETON (goa_files_skeleton_get_type ()) +#define GOA_FILES_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_FILES_SKELETON, GoaFilesSkeleton)) +#define GOA_FILES_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_FILES_SKELETON, GoaFilesSkeletonClass)) +#define GOA_FILES_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_FILES_SKELETON, GoaFilesSkeletonClass)) +#define GOA_IS_FILES_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_FILES_SKELETON)) +#define GOA_IS_FILES_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_FILES_SKELETON)) + +typedef struct _GoaFilesSkeleton GoaFilesSkeleton; +typedef struct _GoaFilesSkeletonClass GoaFilesSkeletonClass; +typedef struct _GoaFilesSkeletonPrivate GoaFilesSkeletonPrivate; + +struct _GoaFilesSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaFilesSkeletonPrivate *priv; +}; + +struct _GoaFilesSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_files_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaFilesSkeleton, g_object_unref) +#endif + +GoaFiles *goa_files_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Exchange */ + +#define GOA_TYPE_EXCHANGE (goa_exchange_get_type ()) +#define GOA_EXCHANGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_EXCHANGE, GoaExchange)) +#define GOA_IS_EXCHANGE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_EXCHANGE)) +#define GOA_EXCHANGE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_EXCHANGE, GoaExchangeIface)) + +struct _GoaExchange; +typedef struct _GoaExchange GoaExchange; +typedef struct _GoaExchangeIface GoaExchangeIface; + +struct _GoaExchangeIface +{ + GTypeInterface parent_iface; + + const gchar * (*get_host) (GoaExchange *object); + + gboolean (*get_accept_ssl_errors) (GoaExchange *object); + +}; + +GType goa_exchange_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_exchange_interface_info (void); +guint goa_exchange_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus property accessors: */ +gboolean goa_exchange_get_accept_ssl_errors (GoaExchange *object); +void goa_exchange_set_accept_ssl_errors (GoaExchange *object, gboolean value); + +const gchar *goa_exchange_get_host (GoaExchange *object); +gchar *goa_exchange_dup_host (GoaExchange *object); +void goa_exchange_set_host (GoaExchange *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_EXCHANGE_PROXY (goa_exchange_proxy_get_type ()) +#define GOA_EXCHANGE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_EXCHANGE_PROXY, GoaExchangeProxy)) +#define GOA_EXCHANGE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_EXCHANGE_PROXY, GoaExchangeProxyClass)) +#define GOA_EXCHANGE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_EXCHANGE_PROXY, GoaExchangeProxyClass)) +#define GOA_IS_EXCHANGE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_EXCHANGE_PROXY)) +#define GOA_IS_EXCHANGE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_EXCHANGE_PROXY)) + +typedef struct _GoaExchangeProxy GoaExchangeProxy; +typedef struct _GoaExchangeProxyClass GoaExchangeProxyClass; +typedef struct _GoaExchangeProxyPrivate GoaExchangeProxyPrivate; + +struct _GoaExchangeProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaExchangeProxyPrivate *priv; +}; + +struct _GoaExchangeProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_exchange_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaExchangeProxy, g_object_unref) +#endif + +void goa_exchange_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaExchange *goa_exchange_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaExchange *goa_exchange_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_exchange_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaExchange *goa_exchange_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaExchange *goa_exchange_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_EXCHANGE_SKELETON (goa_exchange_skeleton_get_type ()) +#define GOA_EXCHANGE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_EXCHANGE_SKELETON, GoaExchangeSkeleton)) +#define GOA_EXCHANGE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_EXCHANGE_SKELETON, GoaExchangeSkeletonClass)) +#define GOA_EXCHANGE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_EXCHANGE_SKELETON, GoaExchangeSkeletonClass)) +#define GOA_IS_EXCHANGE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_EXCHANGE_SKELETON)) +#define GOA_IS_EXCHANGE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_EXCHANGE_SKELETON)) + +typedef struct _GoaExchangeSkeleton GoaExchangeSkeleton; +typedef struct _GoaExchangeSkeletonClass GoaExchangeSkeletonClass; +typedef struct _GoaExchangeSkeletonPrivate GoaExchangeSkeletonPrivate; + +struct _GoaExchangeSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaExchangeSkeletonPrivate *priv; +}; + +struct _GoaExchangeSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_exchange_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaExchangeSkeleton, g_object_unref) +#endif + +GoaExchange *goa_exchange_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.MediaServer */ + +#define GOA_TYPE_MEDIA_SERVER (goa_media_server_get_type ()) +#define GOA_MEDIA_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MEDIA_SERVER, GoaMediaServer)) +#define GOA_IS_MEDIA_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MEDIA_SERVER)) +#define GOA_MEDIA_SERVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_MEDIA_SERVER, GoaMediaServerIface)) + +struct _GoaMediaServer; +typedef struct _GoaMediaServer GoaMediaServer; +typedef struct _GoaMediaServerIface GoaMediaServerIface; + +struct _GoaMediaServerIface +{ + GTypeInterface parent_iface; + + gboolean (*get_dlna_supported) (GoaMediaServer *object); + + const gchar * (*get_udn) (GoaMediaServer *object); + +}; + +GType goa_media_server_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_media_server_interface_info (void); +guint goa_media_server_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus property accessors: */ +gboolean goa_media_server_get_dlna_supported (GoaMediaServer *object); +void goa_media_server_set_dlna_supported (GoaMediaServer *object, gboolean value); + +const gchar *goa_media_server_get_udn (GoaMediaServer *object); +gchar *goa_media_server_dup_udn (GoaMediaServer *object); +void goa_media_server_set_udn (GoaMediaServer *object, const gchar *value); + + +/* ---- */ + +#define GOA_TYPE_MEDIA_SERVER_PROXY (goa_media_server_proxy_get_type ()) +#define GOA_MEDIA_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MEDIA_SERVER_PROXY, GoaMediaServerProxy)) +#define GOA_MEDIA_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MEDIA_SERVER_PROXY, GoaMediaServerProxyClass)) +#define GOA_MEDIA_SERVER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MEDIA_SERVER_PROXY, GoaMediaServerProxyClass)) +#define GOA_IS_MEDIA_SERVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MEDIA_SERVER_PROXY)) +#define GOA_IS_MEDIA_SERVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MEDIA_SERVER_PROXY)) + +typedef struct _GoaMediaServerProxy GoaMediaServerProxy; +typedef struct _GoaMediaServerProxyClass GoaMediaServerProxyClass; +typedef struct _GoaMediaServerProxyPrivate GoaMediaServerProxyPrivate; + +struct _GoaMediaServerProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaMediaServerProxyPrivate *priv; +}; + +struct _GoaMediaServerProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_media_server_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMediaServerProxy, g_object_unref) +#endif + +void goa_media_server_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMediaServer *goa_media_server_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaMediaServer *goa_media_server_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_media_server_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaMediaServer *goa_media_server_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaMediaServer *goa_media_server_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_MEDIA_SERVER_SKELETON (goa_media_server_skeleton_get_type ()) +#define GOA_MEDIA_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MEDIA_SERVER_SKELETON, GoaMediaServerSkeleton)) +#define GOA_MEDIA_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_MEDIA_SERVER_SKELETON, GoaMediaServerSkeletonClass)) +#define GOA_MEDIA_SERVER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_MEDIA_SERVER_SKELETON, GoaMediaServerSkeletonClass)) +#define GOA_IS_MEDIA_SERVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MEDIA_SERVER_SKELETON)) +#define GOA_IS_MEDIA_SERVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_MEDIA_SERVER_SKELETON)) + +typedef struct _GoaMediaServerSkeleton GoaMediaServerSkeleton; +typedef struct _GoaMediaServerSkeletonClass GoaMediaServerSkeletonClass; +typedef struct _GoaMediaServerSkeletonPrivate GoaMediaServerSkeletonPrivate; + +struct _GoaMediaServerSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaMediaServerSkeletonPrivate *priv; +}; + +struct _GoaMediaServerSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_media_server_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaMediaServerSkeleton, g_object_unref) +#endif + +GoaMediaServer *goa_media_server_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Ticketing */ + +#define GOA_TYPE_TICKETING (goa_ticketing_get_type ()) +#define GOA_TICKETING(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TICKETING, GoaTicketing)) +#define GOA_IS_TICKETING(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TICKETING)) +#define GOA_TICKETING_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_TICKETING, GoaTicketingIface)) + +struct _GoaTicketing; +typedef struct _GoaTicketing GoaTicketing; +typedef struct _GoaTicketingIface GoaTicketingIface; + +struct _GoaTicketingIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_ticket) ( + GoaTicketing *object, + GDBusMethodInvocation *invocation); + + GVariant * (*get_details) (GoaTicketing *object); + +}; + +GType goa_ticketing_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_ticketing_interface_info (void); +guint goa_ticketing_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void goa_ticketing_complete_get_ticket ( + GoaTicketing *object, + GDBusMethodInvocation *invocation); + + + +/* D-Bus method calls: */ +void goa_ticketing_call_get_ticket ( + GoaTicketing *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_ticketing_call_get_ticket_finish ( + GoaTicketing *proxy, + GAsyncResult *res, + GError **error); + +gboolean goa_ticketing_call_get_ticket_sync ( + GoaTicketing *proxy, + GCancellable *cancellable, + GError **error); + + + +/* D-Bus property accessors: */ +GVariant *goa_ticketing_get_details (GoaTicketing *object); +GVariant *goa_ticketing_dup_details (GoaTicketing *object); +void goa_ticketing_set_details (GoaTicketing *object, GVariant *value); + + +/* ---- */ + +#define GOA_TYPE_TICKETING_PROXY (goa_ticketing_proxy_get_type ()) +#define GOA_TICKETING_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TICKETING_PROXY, GoaTicketingProxy)) +#define GOA_TICKETING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_TICKETING_PROXY, GoaTicketingProxyClass)) +#define GOA_TICKETING_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_TICKETING_PROXY, GoaTicketingProxyClass)) +#define GOA_IS_TICKETING_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TICKETING_PROXY)) +#define GOA_IS_TICKETING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_TICKETING_PROXY)) + +typedef struct _GoaTicketingProxy GoaTicketingProxy; +typedef struct _GoaTicketingProxyClass GoaTicketingProxyClass; +typedef struct _GoaTicketingProxyPrivate GoaTicketingProxyPrivate; + +struct _GoaTicketingProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaTicketingProxyPrivate *priv; +}; + +struct _GoaTicketingProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_ticketing_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaTicketingProxy, g_object_unref) +#endif + +void goa_ticketing_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaTicketing *goa_ticketing_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaTicketing *goa_ticketing_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_ticketing_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaTicketing *goa_ticketing_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaTicketing *goa_ticketing_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_TICKETING_SKELETON (goa_ticketing_skeleton_get_type ()) +#define GOA_TICKETING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TICKETING_SKELETON, GoaTicketingSkeleton)) +#define GOA_TICKETING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_TICKETING_SKELETON, GoaTicketingSkeletonClass)) +#define GOA_TICKETING_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_TICKETING_SKELETON, GoaTicketingSkeletonClass)) +#define GOA_IS_TICKETING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TICKETING_SKELETON)) +#define GOA_IS_TICKETING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_TICKETING_SKELETON)) + +typedef struct _GoaTicketingSkeleton GoaTicketingSkeleton; +typedef struct _GoaTicketingSkeletonClass GoaTicketingSkeletonClass; +typedef struct _GoaTicketingSkeletonPrivate GoaTicketingSkeletonPrivate; + +struct _GoaTicketingSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaTicketingSkeletonPrivate *priv; +}; + +struct _GoaTicketingSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_ticketing_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaTicketingSkeleton, g_object_unref) +#endif + +GoaTicketing *goa_ticketing_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Todo */ + +#define GOA_TYPE_TODO (goa_todo_get_type ()) +#define GOA_TODO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TODO, GoaTodo)) +#define GOA_IS_TODO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TODO)) +#define GOA_TODO_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_TODO, GoaTodoIface)) + +struct _GoaTodo; +typedef struct _GoaTodo GoaTodo; +typedef struct _GoaTodoIface GoaTodoIface; + +struct _GoaTodoIface +{ + GTypeInterface parent_iface; +}; + +GType goa_todo_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_todo_interface_info (void); +guint goa_todo_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_TODO_PROXY (goa_todo_proxy_get_type ()) +#define GOA_TODO_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TODO_PROXY, GoaTodoProxy)) +#define GOA_TODO_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_TODO_PROXY, GoaTodoProxyClass)) +#define GOA_TODO_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_TODO_PROXY, GoaTodoProxyClass)) +#define GOA_IS_TODO_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TODO_PROXY)) +#define GOA_IS_TODO_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_TODO_PROXY)) + +typedef struct _GoaTodoProxy GoaTodoProxy; +typedef struct _GoaTodoProxyClass GoaTodoProxyClass; +typedef struct _GoaTodoProxyPrivate GoaTodoProxyPrivate; + +struct _GoaTodoProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaTodoProxyPrivate *priv; +}; + +struct _GoaTodoProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_todo_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaTodoProxy, g_object_unref) +#endif + +void goa_todo_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaTodo *goa_todo_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaTodo *goa_todo_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_todo_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaTodo *goa_todo_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaTodo *goa_todo_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_TODO_SKELETON (goa_todo_skeleton_get_type ()) +#define GOA_TODO_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TODO_SKELETON, GoaTodoSkeleton)) +#define GOA_TODO_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_TODO_SKELETON, GoaTodoSkeletonClass)) +#define GOA_TODO_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_TODO_SKELETON, GoaTodoSkeletonClass)) +#define GOA_IS_TODO_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TODO_SKELETON)) +#define GOA_IS_TODO_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_TODO_SKELETON)) + +typedef struct _GoaTodoSkeleton GoaTodoSkeleton; +typedef struct _GoaTodoSkeletonClass GoaTodoSkeletonClass; +typedef struct _GoaTodoSkeletonPrivate GoaTodoSkeletonPrivate; + +struct _GoaTodoSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaTodoSkeletonPrivate *priv; +}; + +struct _GoaTodoSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_todo_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaTodoSkeleton, g_object_unref) +#endif + +GoaTodo *goa_todo_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.ReadLater */ + +#define GOA_TYPE_READ_LATER (goa_read_later_get_type ()) +#define GOA_READ_LATER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_READ_LATER, GoaReadLater)) +#define GOA_IS_READ_LATER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_READ_LATER)) +#define GOA_READ_LATER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_READ_LATER, GoaReadLaterIface)) + +struct _GoaReadLater; +typedef struct _GoaReadLater GoaReadLater; +typedef struct _GoaReadLaterIface GoaReadLaterIface; + +struct _GoaReadLaterIface +{ + GTypeInterface parent_iface; +}; + +GType goa_read_later_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_read_later_interface_info (void); +guint goa_read_later_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_READ_LATER_PROXY (goa_read_later_proxy_get_type ()) +#define GOA_READ_LATER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_READ_LATER_PROXY, GoaReadLaterProxy)) +#define GOA_READ_LATER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_READ_LATER_PROXY, GoaReadLaterProxyClass)) +#define GOA_READ_LATER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_READ_LATER_PROXY, GoaReadLaterProxyClass)) +#define GOA_IS_READ_LATER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_READ_LATER_PROXY)) +#define GOA_IS_READ_LATER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_READ_LATER_PROXY)) + +typedef struct _GoaReadLaterProxy GoaReadLaterProxy; +typedef struct _GoaReadLaterProxyClass GoaReadLaterProxyClass; +typedef struct _GoaReadLaterProxyPrivate GoaReadLaterProxyPrivate; + +struct _GoaReadLaterProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaReadLaterProxyPrivate *priv; +}; + +struct _GoaReadLaterProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_read_later_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaReadLaterProxy, g_object_unref) +#endif + +void goa_read_later_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaReadLater *goa_read_later_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaReadLater *goa_read_later_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_read_later_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaReadLater *goa_read_later_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaReadLater *goa_read_later_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_READ_LATER_SKELETON (goa_read_later_skeleton_get_type ()) +#define GOA_READ_LATER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_READ_LATER_SKELETON, GoaReadLaterSkeleton)) +#define GOA_READ_LATER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_READ_LATER_SKELETON, GoaReadLaterSkeletonClass)) +#define GOA_READ_LATER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_READ_LATER_SKELETON, GoaReadLaterSkeletonClass)) +#define GOA_IS_READ_LATER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_READ_LATER_SKELETON)) +#define GOA_IS_READ_LATER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_READ_LATER_SKELETON)) + +typedef struct _GoaReadLaterSkeleton GoaReadLaterSkeleton; +typedef struct _GoaReadLaterSkeletonClass GoaReadLaterSkeletonClass; +typedef struct _GoaReadLaterSkeletonPrivate GoaReadLaterSkeletonPrivate; + +struct _GoaReadLaterSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaReadLaterSkeletonPrivate *priv; +}; + +struct _GoaReadLaterSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_read_later_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaReadLaterSkeleton, g_object_unref) +#endif + +GoaReadLater *goa_read_later_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.OnlineAccounts.Printers */ + +#define GOA_TYPE_PRINTERS (goa_printers_get_type ()) +#define GOA_PRINTERS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PRINTERS, GoaPrinters)) +#define GOA_IS_PRINTERS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PRINTERS)) +#define GOA_PRINTERS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_PRINTERS, GoaPrintersIface)) + +struct _GoaPrinters; +typedef struct _GoaPrinters GoaPrinters; +typedef struct _GoaPrintersIface GoaPrintersIface; + +struct _GoaPrintersIface +{ + GTypeInterface parent_iface; +}; + +GType goa_printers_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_printers_interface_info (void); +guint goa_printers_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* ---- */ + +#define GOA_TYPE_PRINTERS_PROXY (goa_printers_proxy_get_type ()) +#define GOA_PRINTERS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PRINTERS_PROXY, GoaPrintersProxy)) +#define GOA_PRINTERS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_PRINTERS_PROXY, GoaPrintersProxyClass)) +#define GOA_PRINTERS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_PRINTERS_PROXY, GoaPrintersProxyClass)) +#define GOA_IS_PRINTERS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PRINTERS_PROXY)) +#define GOA_IS_PRINTERS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_PRINTERS_PROXY)) + +typedef struct _GoaPrintersProxy GoaPrintersProxy; +typedef struct _GoaPrintersProxyClass GoaPrintersProxyClass; +typedef struct _GoaPrintersProxyPrivate GoaPrintersProxyPrivate; + +struct _GoaPrintersProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaPrintersProxyPrivate *priv; +}; + +struct _GoaPrintersProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_printers_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaPrintersProxy, g_object_unref) +#endif + +void goa_printers_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaPrinters *goa_printers_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaPrinters *goa_printers_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_printers_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaPrinters *goa_printers_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaPrinters *goa_printers_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_TYPE_PRINTERS_SKELETON (goa_printers_skeleton_get_type ()) +#define GOA_PRINTERS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PRINTERS_SKELETON, GoaPrintersSkeleton)) +#define GOA_PRINTERS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_PRINTERS_SKELETON, GoaPrintersSkeletonClass)) +#define GOA_PRINTERS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_PRINTERS_SKELETON, GoaPrintersSkeletonClass)) +#define GOA_IS_PRINTERS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PRINTERS_SKELETON)) +#define GOA_IS_PRINTERS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_PRINTERS_SKELETON)) + +typedef struct _GoaPrintersSkeleton GoaPrintersSkeleton; +typedef struct _GoaPrintersSkeletonClass GoaPrintersSkeletonClass; +typedef struct _GoaPrintersSkeletonPrivate GoaPrintersSkeletonPrivate; + +struct _GoaPrintersSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaPrintersSkeletonPrivate *priv; +}; + +struct _GoaPrintersSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_printers_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaPrintersSkeleton, g_object_unref) +#endif + +GoaPrinters *goa_printers_skeleton_new (void); + + +/* ---- */ + +#define GOA_TYPE_OBJECT (goa_object_get_type ()) +#define GOA_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OBJECT, GoaObject)) +#define GOA_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OBJECT)) +#define GOA_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_TYPE_OBJECT, GoaObject)) + +struct _GoaObject; +typedef struct _GoaObject GoaObject; +typedef struct _GoaObjectIface GoaObjectIface; + +struct _GoaObjectIface +{ + GTypeInterface parent_iface; +}; + +GType goa_object_get_type (void) G_GNUC_CONST; + +GoaAccount *goa_object_get_account (GoaObject *object); +GoaOAuth2Based *goa_object_get_oauth2_based (GoaObject *object); +GoaOAuthBased *goa_object_get_oauth_based (GoaObject *object); +GoaPasswordBased *goa_object_get_password_based (GoaObject *object); +GoaManager *goa_object_get_manager (GoaObject *object); +GoaMail *goa_object_get_mail (GoaObject *object); +GoaCalendar *goa_object_get_calendar (GoaObject *object); +GoaContacts *goa_object_get_contacts (GoaObject *object); +GoaChat *goa_object_get_chat (GoaObject *object); +GoaDocuments *goa_object_get_documents (GoaObject *object); +GoaMaps *goa_object_get_maps (GoaObject *object); +GoaMusic *goa_object_get_music (GoaObject *object); +GoaPhotos *goa_object_get_photos (GoaObject *object); +GoaFiles *goa_object_get_files (GoaObject *object); +GoaExchange *goa_object_get_exchange (GoaObject *object); +GoaMediaServer *goa_object_get_media_server (GoaObject *object); +GoaTicketing *goa_object_get_ticketing (GoaObject *object); +GoaTodo *goa_object_get_todo (GoaObject *object); +GoaReadLater *goa_object_get_read_later (GoaObject *object); +GoaPrinters *goa_object_get_printers (GoaObject *object); +GoaAccount *goa_object_peek_account (GoaObject *object); +GoaOAuth2Based *goa_object_peek_oauth2_based (GoaObject *object); +GoaOAuthBased *goa_object_peek_oauth_based (GoaObject *object); +GoaPasswordBased *goa_object_peek_password_based (GoaObject *object); +GoaManager *goa_object_peek_manager (GoaObject *object); +GoaMail *goa_object_peek_mail (GoaObject *object); +GoaCalendar *goa_object_peek_calendar (GoaObject *object); +GoaContacts *goa_object_peek_contacts (GoaObject *object); +GoaChat *goa_object_peek_chat (GoaObject *object); +GoaDocuments *goa_object_peek_documents (GoaObject *object); +GoaMaps *goa_object_peek_maps (GoaObject *object); +GoaMusic *goa_object_peek_music (GoaObject *object); +GoaPhotos *goa_object_peek_photos (GoaObject *object); +GoaFiles *goa_object_peek_files (GoaObject *object); +GoaExchange *goa_object_peek_exchange (GoaObject *object); +GoaMediaServer *goa_object_peek_media_server (GoaObject *object); +GoaTicketing *goa_object_peek_ticketing (GoaObject *object); +GoaTodo *goa_object_peek_todo (GoaObject *object); +GoaReadLater *goa_object_peek_read_later (GoaObject *object); +GoaPrinters *goa_object_peek_printers (GoaObject *object); + +#define GOA_TYPE_OBJECT_PROXY (goa_object_proxy_get_type ()) +#define GOA_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OBJECT_PROXY, GoaObjectProxy)) +#define GOA_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_OBJECT_PROXY, GoaObjectProxyClass)) +#define GOA_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_OBJECT_PROXY, GoaObjectProxyClass)) +#define GOA_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OBJECT_PROXY)) +#define GOA_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_OBJECT_PROXY)) + +typedef struct _GoaObjectProxy GoaObjectProxy; +typedef struct _GoaObjectProxyClass GoaObjectProxyClass; +typedef struct _GoaObjectProxyPrivate GoaObjectProxyPrivate; + +struct _GoaObjectProxy +{ + /*< private >*/ + GDBusObjectProxy parent_instance; + GoaObjectProxyPrivate *priv; +}; + +struct _GoaObjectProxyClass +{ + GDBusObjectProxyClass parent_class; +}; + +GType goa_object_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaObjectProxy, g_object_unref) +#endif + +GoaObjectProxy *goa_object_proxy_new (GDBusConnection *connection, const gchar *object_path); + +#define GOA_TYPE_OBJECT_SKELETON (goa_object_skeleton_get_type ()) +#define GOA_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OBJECT_SKELETON, GoaObjectSkeleton)) +#define GOA_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_OBJECT_SKELETON, GoaObjectSkeletonClass)) +#define GOA_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_OBJECT_SKELETON, GoaObjectSkeletonClass)) +#define GOA_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OBJECT_SKELETON)) +#define GOA_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_OBJECT_SKELETON)) + +typedef struct _GoaObjectSkeleton GoaObjectSkeleton; +typedef struct _GoaObjectSkeletonClass GoaObjectSkeletonClass; +typedef struct _GoaObjectSkeletonPrivate GoaObjectSkeletonPrivate; + +struct _GoaObjectSkeleton +{ + /*< private >*/ + GDBusObjectSkeleton parent_instance; + GoaObjectSkeletonPrivate *priv; +}; + +struct _GoaObjectSkeletonClass +{ + GDBusObjectSkeletonClass parent_class; +}; + +GType goa_object_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaObjectSkeleton, g_object_unref) +#endif + +GoaObjectSkeleton *goa_object_skeleton_new (const gchar *object_path); +void goa_object_skeleton_set_account (GoaObjectSkeleton *object, GoaAccount *interface_); +void goa_object_skeleton_set_oauth2_based (GoaObjectSkeleton *object, GoaOAuth2Based *interface_); +void goa_object_skeleton_set_oauth_based (GoaObjectSkeleton *object, GoaOAuthBased *interface_); +void goa_object_skeleton_set_password_based (GoaObjectSkeleton *object, GoaPasswordBased *interface_); +void goa_object_skeleton_set_manager (GoaObjectSkeleton *object, GoaManager *interface_); +void goa_object_skeleton_set_mail (GoaObjectSkeleton *object, GoaMail *interface_); +void goa_object_skeleton_set_calendar (GoaObjectSkeleton *object, GoaCalendar *interface_); +void goa_object_skeleton_set_contacts (GoaObjectSkeleton *object, GoaContacts *interface_); +void goa_object_skeleton_set_chat (GoaObjectSkeleton *object, GoaChat *interface_); +void goa_object_skeleton_set_documents (GoaObjectSkeleton *object, GoaDocuments *interface_); +void goa_object_skeleton_set_maps (GoaObjectSkeleton *object, GoaMaps *interface_); +void goa_object_skeleton_set_music (GoaObjectSkeleton *object, GoaMusic *interface_); +void goa_object_skeleton_set_photos (GoaObjectSkeleton *object, GoaPhotos *interface_); +void goa_object_skeleton_set_files (GoaObjectSkeleton *object, GoaFiles *interface_); +void goa_object_skeleton_set_exchange (GoaObjectSkeleton *object, GoaExchange *interface_); +void goa_object_skeleton_set_media_server (GoaObjectSkeleton *object, GoaMediaServer *interface_); +void goa_object_skeleton_set_ticketing (GoaObjectSkeleton *object, GoaTicketing *interface_); +void goa_object_skeleton_set_todo (GoaObjectSkeleton *object, GoaTodo *interface_); +void goa_object_skeleton_set_read_later (GoaObjectSkeleton *object, GoaReadLater *interface_); +void goa_object_skeleton_set_printers (GoaObjectSkeleton *object, GoaPrinters *interface_); + +/* ---- */ + +#define GOA_TYPE_OBJECT_MANAGER_CLIENT (goa_object_manager_client_get_type ()) +#define GOA_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_OBJECT_MANAGER_CLIENT, GoaObjectManagerClient)) +#define GOA_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_OBJECT_MANAGER_CLIENT, GoaObjectManagerClientClass)) +#define GOA_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_OBJECT_MANAGER_CLIENT, GoaObjectManagerClientClass)) +#define GOA_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_OBJECT_MANAGER_CLIENT)) +#define GOA_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_OBJECT_MANAGER_CLIENT)) + +typedef struct _GoaObjectManagerClient GoaObjectManagerClient; +typedef struct _GoaObjectManagerClientClass GoaObjectManagerClientClass; +typedef struct _GoaObjectManagerClientPrivate GoaObjectManagerClientPrivate; + +struct _GoaObjectManagerClient +{ + /*< private >*/ + GDBusObjectManagerClient parent_instance; + GoaObjectManagerClientPrivate *priv; +}; + +struct _GoaObjectManagerClientClass +{ + GDBusObjectManagerClientClass parent_class; +}; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaObjectManagerClient, g_object_unref) +#endif + +GType goa_object_manager_client_get_type (void) G_GNUC_CONST; + +GType goa_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); + +void goa_object_manager_client_new ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDBusObjectManager *goa_object_manager_client_new_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *goa_object_manager_client_new_sync ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_object_manager_client_new_for_bus ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDBusObjectManager *goa_object_manager_client_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *goa_object_manager_client_new_for_bus_sync ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +G_END_DECLS + +#endif /* __GOA_GENERATED_H__ */ diff --git a/src/goa/goa.h b/src/goa/goa.h new file mode 100644 index 0000000..b3e3dfa --- /dev/null +++ b/src/goa/goa.h @@ -0,0 +1,34 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_H__ +#define __GOA_H__ + +#if !defined(GOA_API_IS_SUBJECT_TO_CHANGE) && !defined(GOA_COMPILATION) +#error libgoa is unstable API. You must define GOA_API_IS_SUBJECT_TO_CHANGE before including goa/goa.h +#endif + +#define __GOA_INSIDE_GOA_H__ +#include +#include +#include +#include +#include +#undef __GOA_INSIDE_GOA_H__ + +#endif /* __GOA_H__ */ diff --git a/src/goa/goaclient.c b/src/goa/goaclient.c new file mode 100644 index 0000000..afec710 --- /dev/null +++ b/src/goa/goaclient.c @@ -0,0 +1,563 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include "goaclient.h" +#include "goaerror.h" + +G_LOCK_DEFINE_STATIC (init_lock); + +/** + * SECTION:goaclient + * @title: GoaClient + * @short_description: Object for accessing account information + * + * #GoaClient is used for accessing the GNOME Online Accounts service + * from a client program. + */ + +/** + * GoaClient: + * + * The #GoaClient structure contains only private data and should + * only be accessed using the provided API. + */ +struct _GoaClient +{ + GObject parent_instance; + + gboolean is_initialized; + GError *initialization_error; + + GDBusObjectManager *object_manager; +}; + +enum +{ + PROP_0, + PROP_OBJECT_MANAGER +}; + +enum +{ + ACCOUNT_ADDED_SIGNAL, + ACCOUNT_REMOVED_SIGNAL, + ACCOUNT_CHANGED_SIGNAL, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +static void initable_iface_init (GInitableIface *initable_iface); +static void async_initable_iface_init (GAsyncInitableIface *async_initable_iface); + +static void on_object_added (GDBusObjectManager *manager, + GDBusObject *object, + gpointer user_data); +static void on_object_removed (GDBusObjectManager *manager, + GDBusObject *object, + gpointer user_data); +static void on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager, + GDBusObjectProxy *object_proxy, + GDBusProxy *interface_proxy, + GVariant *changed_properties, + const gchar* const *invalidated_properties, + gpointer user_data); +static void on_interface_added (GDBusObjectManager *manager, + GDBusObject *object, + GDBusInterface *interface, + gpointer user_data); +static void on_interface_removed (GDBusObjectManager *manager, + GDBusObject *object, + GDBusInterface *interface, + gpointer user_data); + +G_DEFINE_TYPE_WITH_CODE (GoaClient, goa_client, G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, initable_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, async_initable_iface_init) + ); + +static void +goa_client_finalize (GObject *object) +{ + GoaClient *self = GOA_CLIENT (object); + + if (self->initialization_error != NULL) + g_error_free (self->initialization_error); + + if (self->object_manager != NULL) + { + g_signal_handlers_disconnect_by_func (self->object_manager, G_CALLBACK (on_object_added), self); + g_signal_handlers_disconnect_by_func (self->object_manager, G_CALLBACK (on_object_removed), self); + g_signal_handlers_disconnect_by_func (self->object_manager, G_CALLBACK (on_interface_proxy_properties_changed), self); + g_signal_handlers_disconnect_by_func (self->object_manager, G_CALLBACK (on_interface_added), self); + g_signal_handlers_disconnect_by_func (self->object_manager, G_CALLBACK (on_interface_removed), self); + g_object_unref (self->object_manager); + } + + G_OBJECT_CLASS (goa_client_parent_class)->finalize (object); +} + +static void +goa_client_init (GoaClient *self) +{ + static volatile GQuark goa_error_domain = 0; + /* this will force associating errors in the GOA_ERROR error domain + * with org.freedesktop.Goa.Error.* errors via g_dbus_error_register_error_domain(). + */ + goa_error_domain = GOA_ERROR; + goa_error_domain; /* shut up -Wunused-but-set-variable */ +} + +static void +goa_client_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaClient *self = GOA_CLIENT (object); + + switch (prop_id) + { + case PROP_OBJECT_MANAGER: + g_value_set_object (value, goa_client_get_object_manager (self)); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +goa_client_class_init (GoaClientClass *klass) +{ + GObjectClass *gobject_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_client_finalize; + gobject_class->get_property = goa_client_get_property; + + /** + * GoaClient:object-manager: + * + * The #GDBusObjectManager used by the #GoaClient instance. + */ + g_object_class_install_property (gobject_class, + PROP_OBJECT_MANAGER, + g_param_spec_object ("object-manager", + "object manager", + "The GDBusObjectManager used by the GoaClient", + G_TYPE_DBUS_OBJECT_MANAGER, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); + + /** + * GoaClient::account-added: + * @client: The #GoaClient object emitting the signal. + * @object: The #GoaObject for the added account. + * + * Emitted when @object has been added. See + * goa_client_get_accounts() for information about how to use this + * object. + */ + signals[ACCOUNT_ADDED_SIGNAL] = + g_signal_new ("account-added", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + GOA_TYPE_OBJECT); + + /** + * GoaClient::account-removed: + * @client: The #GoaClient object emitting the signal. + * @object: The #GoaObject for the removed account. + * + * Emitted when @object has been removed. + */ + signals[ACCOUNT_REMOVED_SIGNAL] = + g_signal_new ("account-removed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + GOA_TYPE_OBJECT); + + /** + * GoaClient::account-changed: + * @client: The #GoaClient object emitting the signal. + * @object: The #GoaObject for the account with changes. + * + * Emitted when something on @object changes. + */ + signals[ACCOUNT_CHANGED_SIGNAL] = + g_signal_new ("account-changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + GOA_TYPE_OBJECT); + +} + +/** + * goa_client_new: + * @cancellable: A #GCancellable or %NULL. + * @callback: Function that will be called when the result is ready. + * @user_data: Data to pass to @callback. + * + * Asynchronously gets a #GoaClient. When the operation is + * finished, @callback will be invoked in the thread-default main + * loop of the thread you are calling this method from. + */ +void +goa_client_new (GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_TYPE_CLIENT, + G_PRIORITY_DEFAULT, + cancellable, + callback, + user_data, + NULL); +} + +/** + * goa_client_new_finish: + * @res: A #GAsyncResult. + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_client_new(). + * + * Returns: A #GoaClient or %NULL if @error is set. Free with + * g_object_unref() when done with it. + */ +GoaClient * +goa_client_new_finish (GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_CLIENT (ret); + else + return NULL; +} + +/** + * goa_client_new_sync: + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: (allow-none): Return location for error or %NULL. + * + * Synchronously gets a #GoaClient for the local system. + * + * Returns: A #GoaClient or %NULL if @error is set. Free with + * g_object_unref() when done with it. + */ +GoaClient * +goa_client_new_sync (GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_TYPE_CLIENT, + cancellable, + error, + NULL); + if (ret != NULL) + return GOA_CLIENT (ret); + else + return NULL; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +initable_init (GInitable *initable, + GCancellable *cancellable, + GError **error) +{ + GoaClient *self = GOA_CLIENT (initable); + gboolean ret = FALSE; + + /* This method needs to be idempotent to work with the singleton + * pattern. See the docs for g_initable_init(). We implement this by + * locking. + */ + G_LOCK (init_lock); + if (self->is_initialized) + { + if (self->object_manager != NULL) + ret = TRUE; + else + g_assert (self->initialization_error != NULL); + goto out; + } + g_assert (self->initialization_error == NULL); + + self->object_manager = goa_object_manager_client_new_for_bus_sync (G_BUS_TYPE_SESSION, + G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE, + "org.gnome.OnlineAccounts", + "/org/gnome/OnlineAccounts", + cancellable, + &self->initialization_error); + if (self->object_manager == NULL) + goto out; + g_signal_connect (self->object_manager, + "object-added", + G_CALLBACK (on_object_added), + self); + g_signal_connect (self->object_manager, + "object-removed", + G_CALLBACK (on_object_removed), + self); + g_signal_connect (self->object_manager, + "interface-proxy-properties-changed", + G_CALLBACK (on_interface_proxy_properties_changed), + self); + g_signal_connect (self->object_manager, + "interface-added", + G_CALLBACK (on_interface_added), + self); + g_signal_connect (self->object_manager, + "interface-removed", + G_CALLBACK (on_interface_removed), + self); + + ret = TRUE; + +out: + self->is_initialized = TRUE; + if (!ret) + { + g_assert (self->initialization_error != NULL); + g_propagate_error (error, g_error_copy (self->initialization_error)); + } + G_UNLOCK (init_lock); + return ret; +} + +static void +initable_iface_init (GInitableIface *initable_iface) +{ + initable_iface->init = initable_init; +} + +static void +async_initable_iface_init (GAsyncInitableIface *async_initable_iface) +{ + /* Use default implementation (e.g. run GInitable code in a thread) */ +} + +/** + * goa_client_get_object_manager: + * @self: A #GoaClient. + * + * Gets the #GDBusObjectManager used by @self. + * + * Returns: (transfer none): A #GDBusObjectManager. Do not free, the + * instance is owned by @self. + */ +GDBusObjectManager * +goa_client_get_object_manager (GoaClient *self) +{ + g_return_val_if_fail (GOA_IS_CLIENT (self), NULL); + return self->object_manager; +} + +/** + * goa_client_get_manager: + * @self: A #GoaClient. + * + * Gets the #GoaManager for @self. + * + * Returns: (transfer none): A #GoaManager. Do not free, the returned + * object belongs to @self. + */ +GoaManager * +goa_client_get_manager (GoaClient *self) +{ + GDBusObject *object; + GoaManager *manager = NULL; + + object = g_dbus_object_manager_get_object (self->object_manager, "/org/gnome/OnlineAccounts/Manager"); + if (object == NULL) + goto out; + + manager = goa_object_peek_manager (GOA_OBJECT (object)); + + out: + g_clear_object (&object); + return manager; +} + +/** + * goa_client_get_accounts: + * @self: A #GoaClient. + * + * Gets all accounts that @self knows about. The result is a list of + * #GoaObject instances where each object at least has an #GoaAccount + * interface (that can be obtained via the goa_object_get_account() + * method) but may also implement other interfaces such as + * #GoaMail or #GoaFiles. + * + * Returns: (transfer full) (element-type GoaObject): A list of + * #GoaObject instances that must be freed with g_list_free() after + * each element has been freed with g_object_unref(). + */ +GList * +goa_client_get_accounts (GoaClient *self) +{ + GList *ret = NULL; + GList *objects; + GList *l; + + g_return_val_if_fail (GOA_IS_CLIENT (self), NULL); + + objects = g_dbus_object_manager_get_objects (self->object_manager); + for (l = objects; l != NULL; l = l->next) + { + GoaObject *object = GOA_OBJECT (l->data); + + if (goa_object_peek_account (object) != NULL) + ret = g_list_prepend (ret, g_object_ref (object)); + } + g_list_free_full (objects, g_object_unref); + + return ret; +} + +/** + * goa_client_lookup_by_id: + * @self: A #GoaClient. + * @id: The ID to look for. + * + * Finds and returns the #GoaObject instance whose + * "Id" + * D-Bus property matches @id. + * + * Returns: (transfer full): A #GoaObject. Free the returned + * object with g_object_unref(). + * + * Since: 3.6 + */ +GoaObject * +goa_client_lookup_by_id (GoaClient *self, + const gchar *id) +{ + GList *accounts; + GList *l; + GoaObject *ret = NULL; + + accounts = goa_client_get_accounts (self); + for (l = accounts; l != NULL; l = g_list_next (l)) + { + GoaAccount *account; + GoaObject *object = GOA_OBJECT (l->data); + + account = goa_object_peek_account (object); + if (account == NULL) + continue; + + if (g_strcmp0 (goa_account_get_id (account), id) == 0) + { + ret = g_object_ref (object); + break; + } + } + + g_list_free_full (accounts, g_object_unref); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +on_object_added (GDBusObjectManager *manager, + GDBusObject *object, + gpointer user_data) +{ + GoaClient *self = GOA_CLIENT (user_data); + if (goa_object_peek_account (GOA_OBJECT (object)) != NULL) + g_signal_emit (self, signals[ACCOUNT_ADDED_SIGNAL], 0, object); +} + +static void +on_object_removed (GDBusObjectManager *manager, + GDBusObject *object, + gpointer user_data) +{ + GoaClient *self = GOA_CLIENT (user_data); + if (goa_object_peek_account (GOA_OBJECT (object)) != NULL) + g_signal_emit (self, signals[ACCOUNT_REMOVED_SIGNAL], 0, object); +} + +static void +on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager, + GDBusObjectProxy *object_proxy, + GDBusProxy *interface_proxy, + GVariant *changed_properties, + const gchar* const *invalidated_properties, + gpointer user_data) +{ + GoaClient *self = GOA_CLIENT (user_data); + if (goa_object_peek_account (GOA_OBJECT (object_proxy)) != NULL) + g_signal_emit (self, signals[ACCOUNT_CHANGED_SIGNAL], 0, object_proxy); +} + +static void +on_interface_added (GDBusObjectManager *manager, + GDBusObject *object, + GDBusInterface *interface, + gpointer user_data) +{ + GoaClient *self = GOA_CLIENT (user_data); + if (goa_object_peek_account (GOA_OBJECT (object)) != NULL) + g_signal_emit (self, signals[ACCOUNT_CHANGED_SIGNAL], 0, object); +} + +static void +on_interface_removed (GDBusObjectManager *manager, + GDBusObject *object, + GDBusInterface *interface, + gpointer user_data) +{ + GoaClient *self = GOA_CLIENT (user_data); + if (goa_object_peek_account (GOA_OBJECT (object)) != NULL) + g_signal_emit (self, signals[ACCOUNT_CHANGED_SIGNAL], 0, object); +} diff --git a/src/goa/goaclient.h b/src/goa/goaclient.h new file mode 100644 index 0000000..f3e3d38 --- /dev/null +++ b/src/goa/goaclient.h @@ -0,0 +1,49 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_INSIDE_GOA_H__) && !defined (GOA_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_CLIENT_H__ +#define __GOA_CLIENT_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_CLIENT (goa_client_get_type ()) +G_DECLARE_FINAL_TYPE (GoaClient, goa_client, GOA, CLIENT, GObject) + +void goa_client_new (GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaClient *goa_client_new_finish (GAsyncResult *res, + GError **error); +GoaClient *goa_client_new_sync (GCancellable *cancellable, + GError **error); +GDBusObjectManager *goa_client_get_object_manager (GoaClient *self); +GoaManager *goa_client_get_manager (GoaClient *self); +GList *goa_client_get_accounts (GoaClient *self); +GoaObject *goa_client_lookup_by_id (GoaClient *self, + const gchar *id); + +G_END_DECLS + +#endif /* __GOA_CLIENT_H__ */ diff --git a/src/goa/goaenums.h b/src/goa/goaenums.h new file mode 100644 index 0000000..62b51d1 --- /dev/null +++ b/src/goa/goaenums.h @@ -0,0 +1,56 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_INSIDE_GOA_H__) && !defined (GOA_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_ENUMS_H__ +#define __GOA_ENUMS_H__ + +#include + +G_BEGIN_DECLS + +/** + * GoaError: + * @GOA_ERROR_FAILED: The operation failed. + * @GOA_ERROR_NOT_SUPPORTED: The operation is not supported. + * @GOA_ERROR_DIALOG_DISMISSED: The dialog was dismissed. + * @GOA_ERROR_ACCOUNT_EXISTS: Account already exists. + * @GOA_ERROR_NOT_AUTHORIZED: Not authorized to perform operation. + * @GOA_ERROR_SSL: Invalid SSL certificate. + * + * Error codes for the #GOA_ERROR error domain and the + * corresponding D-Bus error names. + */ +typedef enum +{ + GOA_ERROR_FAILED, /* org.gnome.OnlineAccounts.Error.Failed */ + GOA_ERROR_NOT_SUPPORTED, /* org.gnome.OnlineAccounts.Error.NotSupported */ + GOA_ERROR_DIALOG_DISMISSED, /* org.gnome.OnlineAccounts.Error.DialogDismissed */ + GOA_ERROR_ACCOUNT_EXISTS, /* org.gnome.OnlineAccounts.Error.AccountExists */ + GOA_ERROR_NOT_AUTHORIZED, /* org.gnome.OnlineAccounts.Error.NotAuthorized */ + GOA_ERROR_SSL /* org.gnome.OnlineAccounts.Error.SSL */ +} GoaError; + +#define GOA_ERROR_NUM_ENTRIES (GOA_ERROR_SSL + 1) + +G_END_DECLS + +#endif /* __GOA_ENUMS_H__ */ diff --git a/src/goa/goaenumtypes.c b/src/goa/goaenumtypes.c new file mode 100644 index 0000000..ca35048 --- /dev/null +++ b/src/goa/goaenumtypes.c @@ -0,0 +1,32 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + +#include "goaenums.h" +#include "goaenumtypes.h" +/* enumerations from "goaenums.h" */ +GType +goa_error_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GEnumValue values[] = { + { GOA_ERROR_FAILED, "GOA_ERROR_FAILED", "failed" }, + { GOA_ERROR_NOT_SUPPORTED, "GOA_ERROR_NOT_SUPPORTED", "not-supported" }, + { GOA_ERROR_DIALOG_DISMISSED, "GOA_ERROR_DIALOG_DISMISSED", "dialog-dismissed" }, + { GOA_ERROR_ACCOUNT_EXISTS, "GOA_ERROR_ACCOUNT_EXISTS", "account-exists" }, + { GOA_ERROR_NOT_AUTHORIZED, "GOA_ERROR_NOT_AUTHORIZED", "not-authorized" }, + { GOA_ERROR_SSL, "GOA_ERROR_SSL", "ssl" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_enum_register_static (g_intern_static_string ("GoaError"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/* Generated data ends here */ + diff --git a/src/goa/goaenumtypes.c.template b/src/goa/goaenumtypes.c.template new file mode 100644 index 0000000..78d4a20 --- /dev/null +++ b/src/goa/goaenumtypes.c.template @@ -0,0 +1,40 @@ +/*** BEGIN file-header ***/ +#include "goaenums.h" +#include "goaenumtypes.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType +@enum_name@_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ +/*** END file-tail ***/ diff --git a/src/goa/goaenumtypes.h b/src/goa/goaenumtypes.h new file mode 100644 index 0000000..c8cf482 --- /dev/null +++ b/src/goa/goaenumtypes.h @@ -0,0 +1,19 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + +#ifndef __GOA_ENUM_TYPES_H__ +#define __GOA_ENUM_TYPES_H__ + +#include + +G_BEGIN_DECLS + +/* enumerations from "goaenums.h" */ +GType goa_error_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_ERROR (goa_error_get_type ()) +G_END_DECLS + +#endif /* __GOA_ENUM_TYPES_H__ */ + +/* Generated data ends here */ + diff --git a/src/goa/goaenumtypes.h.template b/src/goa/goaenumtypes.h.template new file mode 100644 index 0000000..040428c --- /dev/null +++ b/src/goa/goaenumtypes.h.template @@ -0,0 +1,24 @@ +/*** BEGIN file-header ***/ +#ifndef __GOA_ENUM_TYPES_H__ +#define __GOA_ENUM_TYPES_H__ + +#include + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* __GOA_ENUM_TYPES_H__ */ +/*** END file-tail ***/ diff --git a/src/goa/goaerror.c b/src/goa/goaerror.c new file mode 100644 index 0000000..fda9159 --- /dev/null +++ b/src/goa/goaerror.c @@ -0,0 +1,54 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goaenums.h" +#include "goaerror.h" + +/** + * SECTION:goaerror + * @title: GoaError + * @short_description: Error codes + * + * Error codes and D-Bus errors. + */ + +static const GDBusErrorEntry dbus_error_entries[] = +{ + {GOA_ERROR_FAILED, "org.freedesktop.Goa.Error.Failed"}, + {GOA_ERROR_NOT_SUPPORTED, "org.freedesktop.Goa.Error.NotSupported"}, + {GOA_ERROR_DIALOG_DISMISSED, "org.gnome.OnlineAccounts.Error.DialogDismissed"}, + {GOA_ERROR_ACCOUNT_EXISTS, "org.gnome.OnlineAccounts.Error.AccountExists"}, + {GOA_ERROR_NOT_AUTHORIZED, "org.gnome.OnlineAccounts.Error.NotAuthorized"}, + {GOA_ERROR_SSL, "org.gnome.OnlineAccounts.Error.SSL"} +}; + +GQuark +goa_error_quark (void) +{ + G_STATIC_ASSERT (G_N_ELEMENTS (dbus_error_entries) == GOA_ERROR_NUM_ENTRIES); + static volatile gsize quark_volatile = 0; + g_dbus_error_register_error_domain ("goa-error-quark", + &quark_volatile, + dbus_error_entries, + G_N_ELEMENTS (dbus_error_entries)); + return (GQuark) quark_volatile; +} diff --git a/src/goa/goaerror.h b/src/goa/goaerror.h new file mode 100644 index 0000000..93908cc --- /dev/null +++ b/src/goa/goaerror.h @@ -0,0 +1,43 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_INSIDE_GOA_H__) && !defined (GOA_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_ERROR_H__ +#define __GOA_ERROR_H__ + +#include + +G_BEGIN_DECLS + +/** + * GOA_ERROR: + * + * Error domain for Goa. Errors in this domain will be form the + * #GoaError enumeration. See #GError for more information on error + * domains. + */ +#define GOA_ERROR (goa_error_quark ()) + +GQuark goa_error_quark (void); + +G_END_DECLS + +#endif /* __GOA_ERROR_H__ */ diff --git a/src/goa/goaversion.c b/src/goa/goaversion.c new file mode 100644 index 0000000..07b2baa --- /dev/null +++ b/src/goa/goaversion.c @@ -0,0 +1,141 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include "goaversion.h" + +/** + * SECTION:goaversion + * @Title: Version Information + * @Short_description: variables and functions to check the GOA version + * + * GOA provides version information, primarily useful in configure + * checks for builds that have a configure script. Applications will + * not typically use the features described here. + */ + +/** + * GOA_MAJOR_VERSION: + * + * The major version number of the GOA daemon and library. + * + * Like #goa_major_version, but from the headers used at + * application compile time, rather than from the library + * linked against at application run time. + * + * Since: 3.8 + */ + +/** + * GOA_MINOR_VERSION: + * + * The minor version number of the GOA daemon and library. + * + * Like #goa_minor_version, but from the headers used at + * application compile time, rather than from the library + * linked against at application run time. + * + * Since: 3.8 + */ + +/** + * GOA_MICRO_VERSION: + * + * The micro version number of the GOA daemon and library. + * + * Like #goa_micro_version, but from the headers used at + * application compile time, rather than from the library + * linked against at application run time. + * + * Since: 3.8 + */ + +/** + * GOA_CHECK_VERSION: + * @major: the major version to check for + * @minor: the minor version to check for + * @micro: the micro version to check for + * + * Checks the version of the GOA library that is being compiled + * against. + * + * + * Checking the version of the GOA library + * + * if (!GOA_CHECK_VERSION (3, 8, 0)) + * g_error ("GOA version 3.8.0 or above is needed"); + * + * + * + * See goa_check_version() for a runtime check. + * + * Returns: %TRUE if the version of the GOA header files + * is the same as or newer than the passed-in version. + * + * Since: 3.8 + */ + +const guint goa_major_version = GOA_MAJOR_VERSION; +const guint goa_minor_version = GOA_MINOR_VERSION; +const guint goa_micro_version = GOA_MICRO_VERSION; + +/** + * goa_check_version: + * @required_major: the required major version. + * @required_minor: the required minor version. + * @required_micro: the required micro version. + * + * Checks that the GOA library in use is compatible with the + * given version. Generally you would pass in the constants + * #GOA_MAJOR_VERSION, #GOA_MINOR_VERSION, #GOA_MICRO_VERSION + * as the three arguments to this function; that produces + * a check that the library in use is compatible with + * the version of GOA the application or module was compiled + * against. + * + * Compatibility is defined by two things: first the version + * of the running library is newer than the version + * @required_major.@required_minor.@required_micro. Second + * the running library must be binary compatible with the + * version @required_major.@required_minor.@required_micro + * (same major and minor version). + * + * Return value: %NULL if the GOA library is compatible with the + * given version, or a string describing the version mismatch. + * The returned string is owned by GOA and must not be modified + * or freed. + * + * Since: 3.8 + */ +const gchar * +goa_check_version (guint required_major, + guint required_minor, + guint required_micro) +{ + if (required_major > GOA_MAJOR_VERSION) + return "GOA version too old (major mismatch)"; + if (required_major < GOA_MAJOR_VERSION) + return "GOA version too new (major mismatch)"; + if (required_minor > GOA_MINOR_VERSION) + return "GOA version too old (minor mismatch)"; + if (required_minor < GOA_MINOR_VERSION) + return "GOA version too new (minor mismatch)"; + if (required_micro > GOA_MICRO_VERSION) + return "GOA version too old (micro mismatch)"; + return NULL; +} diff --git a/src/goa/goaversion.h b/src/goa/goaversion.h new file mode 100644 index 0000000..3c4ba10 --- /dev/null +++ b/src/goa/goaversion.h @@ -0,0 +1,47 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_INSIDE_GOA_H__) && !defined (GOA_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_VERSION_H__ +#define __GOA_VERSION_H__ + +#include +#include + +G_BEGIN_DECLS + +extern const guint goa_major_version; +extern const guint goa_minor_version; +extern const guint goa_micro_version; + +const gchar * goa_check_version (guint required_major, + guint required_minor, + guint required_micro); + +#define GOA_CHECK_VERSION(major,minor,micro) \ + (GOA_MAJOR_VERSION > (major) || \ + (GOA_MAJOR_VERSION == (major) && GOA_MINOR_VERSION > (minor)) || \ + (GOA_MAJOR_VERSION == (major) && GOA_MINOR_VERSION == (minor) && \ + GOA_MICRO_VERSION >= (micro))) + +G_END_DECLS + +#endif /* __GOA_VERSION_H__ */ diff --git a/src/goabackend/Makefile.am b/src/goabackend/Makefile.am new file mode 100644 index 0000000..c254594 --- /dev/null +++ b/src/goabackend/Makefile.am @@ -0,0 +1,230 @@ + +NULL = +CLEANFILES = +EXTRA_DIST = + +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -I$(top_srcdir)/src/goaidentity \ + -I$(top_builddir)/src/goaidentity \ + -DG_LOG_DOMAIN=\"GoaBackend\" \ + -DGOA_BACKEND_COMPILATION \ + -DGOA_API_IS_SUBJECT_TO_CHANGE \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -DPACKAGE_WEB_EXTENSIONS_DIR=\""$(libdir)/goa-1.0/web-extensions"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + $(WARN_CFLAGS) \ + $(NULL) + +# ---------------------------------------------------------------------------------------------------- + +goabackendenumtypes.h: goabackendenums.h goabackendenumtypes.h.template + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goabackendenumtypes.h.template goabackendenums.h ) > \ + goabackendenumtypes.h.tmp && mv goabackendenumtypes.h.tmp goabackendenumtypes.h + +goabackendenumtypes.c: goabackendenums.h goabackendenumtypes.c.template goabackendenumtypes.h + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goabackendenumtypes.c.template goabackendenums.h ) > \ + goabackendenumtypes.c.tmp && mv goabackendenumtypes.c.tmp goabackendenumtypes.c + +enum_built_sources = \ + goabackendenumtypes.h goabackendenumtypes.c \ + $(NULL) + +EXTRA_DIST += goabackendenumtypes.h.template goabackendenumtypes.c.template + +# ---------------------------------------------------------------------------------------------------- + +lib_LTLIBRARIES = libgoa-backend-1.0.la + +libgoa_backend_1_0_ladir = $(includedir)/goa-1.0/goabackend + +libgoa_backend_1_0_la_HEADERS = \ + goabackend.h \ + goabackendenums.h \ + goabackendenumtypes.h \ + goaprovider.h \ + $(NULL) + +libgoa_backend_1_0_la_built_sources = \ + goadleynaservermanager.h goadleynaservermanager.c \ + goadleynaservermediadevice.h goadleynaservermediadevice.c \ + $(NULL) + +nodist_libgoa_backend_1_0_la_SOURCES = \ + $(libgoa_backend_1_0_la_built_sources) \ + $(NULL) + +libgoa_backend_1_0_la_SOURCES = \ + goabackend.h \ + goabackendenums-priv.h \ + goabackendenumtypes.h goabackendenumtypes.c \ + gconstructor.h goabackendinit.c \ + goadlnaservermanager.h goadlnaservermanager.c \ + goaewsclient.h goaewsclient.c \ + goahttpclient.h goahttpclient.c \ + goaprovider-priv.h goaprovider.c \ + goaproviderfactory.h goaproviderfactory.c \ + goamailauth.h goamailauth.c \ + goaimapauthlogin.h goaimapauthlogin.c \ + goarestproxy.h goarestproxy.c \ + goasmtpauth.h goasmtpauth.c \ + goasouplogger.h goasouplogger.c \ + goamailclient.h goamailclient.c \ + goaexchangeprovider.h goaexchangeprovider.c \ + goaoauthprovider.h goaoauthprovider.c \ + goaoauth2provider.h goaoauth2provider-priv.h \ + goaoauth2provider-web-extension.h \ + goaoauth2provider-web-view.h \ + goaoauth2provider.c \ + goagoogleprovider.h goagoogleprovider.c \ + goafacebookprovider.h goafacebookprovider.c \ + goaimapsmtpprovider.h goaimapsmtpprovider.c \ + goamediaserverprovider.h goamediaserverprovider.c \ + goaowncloudprovider.h goaowncloudprovider.c \ + goaflickrprovider.h goaflickrprovider.c \ + goafoursquareprovider.h goafoursquareprovider.c \ + goawindowsliveprovider.h goawindowsliveprovider.c \ + goapocketprovider.h goapocketprovider.c \ + goalastfmprovider.h goalastfmprovider.c \ + goatodoistprovider.h goatodoistprovider.c \ + goaobjectskeletonutils.h goaobjectskeletonutils.c \ + goautils.h goautils.c \ + goawebview.h goawebview.c \ + nautilus-floating-bar.h nautilus-floating-bar.c \ + $(top_builddir)/src/goaidentity/org.gnome.Identity.c \ + $(top_srcdir)/src/goaidentity/goaidentitymanagererror.c \ + $(NULL) + +if BUILD_KERBEROS +libgoa_backend_1_0_la_SOURCES += \ + goakerberosprovider.h goakerberosprovider.c +endif + +if BUILD_TELEPATHY +libgoa_backend_1_0_la_SOURCES += \ + goatelepathyfactory.h goatelepathyfactory.c \ + goatelepathyprovider.h goatelepathyprovider.c \ + goatpaccountlinker.h goatpaccountlinker.c \ + $(NULL) +endif + +libgoa_backend_1_0_la_CFLAGS = \ + $(WEBKIT_GTK_CFLAGS) \ + $(JSON_GLIB_CFLAGS) \ + $(GCR_CFLAGS) \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) \ + $(REST_CFLAGS) \ + $(SECRET_CFLAGS) \ + $(LIBSOUP_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(TP_CFLAGS) \ + $(TPAW_CFLAGS) \ + $(NULL) + +libgoa_backend_1_0_la_LIBADD = \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(WEBKIT_GTK_LIBS) \ + $(JSON_GLIB_LIBS) \ + $(GCR_LIBS) \ + $(GLIB_LIBS) \ + $(GTK_LIBS) \ + $(REST_LIBS) \ + $(SECRET_LIBS) \ + $(LIBSOUP_LIBS) \ + $(LIBXML_LIBS) \ + $(TP_LIBS) \ + $(TPAW_LIBS) \ + $(NULL) + +libgoa_backend_1_0_la_LDFLAGS = \ + $(WARN_LDFLAGS) \ + -version-info $(GOA_BACKEND_LT_VERSION) \ + $(NULL) + +# ---------------------------------------------------------------------------------------------------- + +webextension_LTLIBRARIES = libgoawebextension.la + +webextensiondir = $(libdir)/goa-1.0/web-extensions + +libgoawebextension_la_SOURCES = \ + goawebextension.h goawebextension.c \ + goawebextensionmain.c \ + $(NULL) + +libgoawebextension_la_CFLAGS = \ + $(REST_CFLAGS) \ + $(WEBKIT_GTK_CFLAGS) \ + $(NULL) + +libgoawebextension_la_LIBADD = \ + libgoa-backend-1.0.la \ + $(REST_LIBS) \ + $(WEBKIT_GTK_LIBS) \ + $(NULL) + +libgoawebextension_la_LDFLAGS = \ + -avoid-version \ + -module \ + -no-undefined \ + $(NULL) + +# Force installation order: libgoa-backend-1.0 must be installed first, othwerwise +# libtool will incorrectly relink libgoawebextension.la under parallel make install. +# Requires ugly automake syntax - see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328 + +installwebextensionLTLIBRARIES = install-webextensionLTLIBRARIES +$(installwebextensionLTLIBRARIES): install-libLTLIBRARIES + +# ---------------------------------------------------------------------------------------------------- + +BUILT_SOURCES = \ + $(libgoa_backend_1_0_la_built_sources) \ + $(NULL) + +EXTRA_DIST += \ + goadleynaservermanager.xml \ + goadleynaservermediadevice.xml \ + $(NULL) + +goadleynaservermanager.h goadleynaservermanager.c: goadleynaservermanager.xml + $(AM_V_GEN)gdbus-codegen \ + --c-namespace DleynaServer \ + --generate-c-code goadleynaservermanager \ + --interface-prefix com.intel.dLeynaServer. \ + $< + +goadleynaservermediadevice.h goadleynaservermediadevice.c: goadleynaservermediadevice.xml + $(AM_V_GEN)gdbus-codegen \ + --c-namespace DleynaServer \ + --generate-c-code goadleynaservermediadevice \ + --interface-prefix com.intel.dLeynaServer. \ + $< + +# ---------------------------------------------------------------------------------------------------- + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = goa-backend-1.0.pc + +# ---------------------------------------------------------------------------------------------------- + +CLEANFILES += \ + $(BUILT_SOURCES) \ + $(enum_built_sources) \ + $(NULL) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/src/goabackend/Makefile.in b/src/goabackend/Makefile.in new file mode 100644 index 0000000..12fd51d --- /dev/null +++ b/src/goabackend/Makefile.in @@ -0,0 +1,1462 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_KERBEROS_TRUE@am__append_1 = \ +@BUILD_KERBEROS_TRUE@ goakerberosprovider.h goakerberosprovider.c + +@BUILD_TELEPATHY_TRUE@am__append_2 = \ +@BUILD_TELEPATHY_TRUE@ goatelepathyfactory.h goatelepathyfactory.c \ +@BUILD_TELEPATHY_TRUE@ goatelepathyprovider.h goatelepathyprovider.c \ +@BUILD_TELEPATHY_TRUE@ goatpaccountlinker.h goatpaccountlinker.c \ +@BUILD_TELEPATHY_TRUE@ $(NULL) + +subdir = src/goabackend +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(libgoa_backend_1_0_la_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = goa-backend-1.0.pc +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(webextensiondir)" \ + "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(libgoa_backend_1_0_ladir)" +LTLIBRARIES = $(lib_LTLIBRARIES) $(webextension_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgoa_backend_1_0_la_DEPENDENCIES = \ + $(top_builddir)/src/goa/libgoa-1.0.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am__libgoa_backend_1_0_la_SOURCES_DIST = goabackend.h \ + goabackendenums-priv.h goabackendenumtypes.h \ + goabackendenumtypes.c gconstructor.h goabackendinit.c \ + goadlnaservermanager.h goadlnaservermanager.c goaewsclient.h \ + goaewsclient.c goahttpclient.h goahttpclient.c \ + goaprovider-priv.h goaprovider.c goaproviderfactory.h \ + goaproviderfactory.c goamailauth.h goamailauth.c \ + goaimapauthlogin.h goaimapauthlogin.c goarestproxy.h \ + goarestproxy.c goasmtpauth.h goasmtpauth.c goasouplogger.h \ + goasouplogger.c goamailclient.h goamailclient.c \ + goaexchangeprovider.h goaexchangeprovider.c goaoauthprovider.h \ + goaoauthprovider.c goaoauth2provider.h \ + goaoauth2provider-priv.h goaoauth2provider-web-extension.h \ + goaoauth2provider-web-view.h goaoauth2provider.c \ + goagoogleprovider.h goagoogleprovider.c goafacebookprovider.h \ + goafacebookprovider.c goaimapsmtpprovider.h \ + goaimapsmtpprovider.c goamediaserverprovider.h \ + goamediaserverprovider.c goaowncloudprovider.h \ + goaowncloudprovider.c goaflickrprovider.h goaflickrprovider.c \ + goafoursquareprovider.h goafoursquareprovider.c \ + goawindowsliveprovider.h goawindowsliveprovider.c \ + goapocketprovider.h goapocketprovider.c goalastfmprovider.h \ + goalastfmprovider.c goatodoistprovider.h goatodoistprovider.c \ + goaobjectskeletonutils.h goaobjectskeletonutils.c goautils.h \ + goautils.c goawebview.h goawebview.c nautilus-floating-bar.h \ + nautilus-floating-bar.c \ + $(top_builddir)/src/goaidentity/org.gnome.Identity.c \ + $(top_srcdir)/src/goaidentity/goaidentitymanagererror.c \ + goakerberosprovider.h goakerberosprovider.c \ + goatelepathyfactory.h goatelepathyfactory.c \ + goatelepathyprovider.h goatelepathyprovider.c \ + goatpaccountlinker.h goatpaccountlinker.c +am__objects_1 = +@BUILD_KERBEROS_TRUE@am__objects_2 = libgoa_backend_1_0_la-goakerberosprovider.lo +@BUILD_TELEPATHY_TRUE@am__objects_3 = libgoa_backend_1_0_la-goatelepathyfactory.lo \ +@BUILD_TELEPATHY_TRUE@ libgoa_backend_1_0_la-goatelepathyprovider.lo \ +@BUILD_TELEPATHY_TRUE@ libgoa_backend_1_0_la-goatpaccountlinker.lo \ +@BUILD_TELEPATHY_TRUE@ $(am__objects_1) +am_libgoa_backend_1_0_la_OBJECTS = \ + libgoa_backend_1_0_la-goabackendenumtypes.lo \ + libgoa_backend_1_0_la-goabackendinit.lo \ + libgoa_backend_1_0_la-goadlnaservermanager.lo \ + libgoa_backend_1_0_la-goaewsclient.lo \ + libgoa_backend_1_0_la-goahttpclient.lo \ + libgoa_backend_1_0_la-goaprovider.lo \ + libgoa_backend_1_0_la-goaproviderfactory.lo \ + libgoa_backend_1_0_la-goamailauth.lo \ + libgoa_backend_1_0_la-goaimapauthlogin.lo \ + libgoa_backend_1_0_la-goarestproxy.lo \ + libgoa_backend_1_0_la-goasmtpauth.lo \ + libgoa_backend_1_0_la-goasouplogger.lo \ + libgoa_backend_1_0_la-goamailclient.lo \ + libgoa_backend_1_0_la-goaexchangeprovider.lo \ + libgoa_backend_1_0_la-goaoauthprovider.lo \ + libgoa_backend_1_0_la-goaoauth2provider.lo \ + libgoa_backend_1_0_la-goagoogleprovider.lo \ + libgoa_backend_1_0_la-goafacebookprovider.lo \ + libgoa_backend_1_0_la-goaimapsmtpprovider.lo \ + libgoa_backend_1_0_la-goamediaserverprovider.lo \ + libgoa_backend_1_0_la-goaowncloudprovider.lo \ + libgoa_backend_1_0_la-goaflickrprovider.lo \ + libgoa_backend_1_0_la-goafoursquareprovider.lo \ + libgoa_backend_1_0_la-goawindowsliveprovider.lo \ + libgoa_backend_1_0_la-goapocketprovider.lo \ + libgoa_backend_1_0_la-goalastfmprovider.lo \ + libgoa_backend_1_0_la-goatodoistprovider.lo \ + libgoa_backend_1_0_la-goaobjectskeletonutils.lo \ + libgoa_backend_1_0_la-goautils.lo \ + libgoa_backend_1_0_la-goawebview.lo \ + libgoa_backend_1_0_la-nautilus-floating-bar.lo \ + libgoa_backend_1_0_la-org.gnome.Identity.lo \ + libgoa_backend_1_0_la-goaidentitymanagererror.lo \ + $(am__objects_1) $(am__objects_2) $(am__objects_3) +am__objects_4 = libgoa_backend_1_0_la-goadleynaservermanager.lo \ + libgoa_backend_1_0_la-goadleynaservermediadevice.lo \ + $(am__objects_1) +nodist_libgoa_backend_1_0_la_OBJECTS = $(am__objects_4) \ + $(am__objects_1) +libgoa_backend_1_0_la_OBJECTS = $(am_libgoa_backend_1_0_la_OBJECTS) \ + $(nodist_libgoa_backend_1_0_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libgoa_backend_1_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) \ + $(libgoa_backend_1_0_la_LDFLAGS) $(LDFLAGS) -o $@ +libgoawebextension_la_DEPENDENCIES = libgoa-backend-1.0.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgoawebextension_la_OBJECTS = \ + libgoawebextension_la-goawebextension.lo \ + libgoawebextension_la-goawebextensionmain.lo $(am__objects_1) +libgoawebextension_la_OBJECTS = $(am_libgoawebextension_la_OBJECTS) +libgoawebextension_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgoawebextension_la_CFLAGS) $(CFLAGS) \ + $(libgoawebextension_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libgoa_backend_1_0_la_SOURCES) \ + $(nodist_libgoa_backend_1_0_la_SOURCES) \ + $(libgoawebextension_la_SOURCES) +DIST_SOURCES = $(am__libgoa_backend_1_0_la_SOURCES_DIST) \ + $(libgoawebextension_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(pkgconfig_DATA) +HEADERS = $(libgoa_backend_1_0_la_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(srcdir)/goa-backend-1.0.pc.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = + +# ---------------------------------------------------------------------------------------------------- +CLEANFILES = $(BUILT_SOURCES) $(enum_built_sources) $(NULL) +EXTRA_DIST = goabackendenumtypes.h.template \ + goabackendenumtypes.c.template goadleynaservermanager.xml \ + goadleynaservermediadevice.xml $(NULL) +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -I$(top_srcdir)/src/goaidentity \ + -I$(top_builddir)/src/goaidentity \ + -DG_LOG_DOMAIN=\"GoaBackend\" \ + -DGOA_BACKEND_COMPILATION \ + -DGOA_API_IS_SUBJECT_TO_CHANGE \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -DPACKAGE_WEB_EXTENSIONS_DIR=\""$(libdir)/goa-1.0/web-extensions"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + $(WARN_CFLAGS) \ + $(NULL) + +enum_built_sources = \ + goabackendenumtypes.h goabackendenumtypes.c \ + $(NULL) + + +# ---------------------------------------------------------------------------------------------------- +lib_LTLIBRARIES = libgoa-backend-1.0.la +libgoa_backend_1_0_ladir = $(includedir)/goa-1.0/goabackend +libgoa_backend_1_0_la_HEADERS = \ + goabackend.h \ + goabackendenums.h \ + goabackendenumtypes.h \ + goaprovider.h \ + $(NULL) + +libgoa_backend_1_0_la_built_sources = \ + goadleynaservermanager.h goadleynaservermanager.c \ + goadleynaservermediadevice.h goadleynaservermediadevice.c \ + $(NULL) + +nodist_libgoa_backend_1_0_la_SOURCES = \ + $(libgoa_backend_1_0_la_built_sources) \ + $(NULL) + +libgoa_backend_1_0_la_SOURCES = goabackend.h goabackendenums-priv.h \ + goabackendenumtypes.h goabackendenumtypes.c gconstructor.h \ + goabackendinit.c goadlnaservermanager.h goadlnaservermanager.c \ + goaewsclient.h goaewsclient.c goahttpclient.h goahttpclient.c \ + goaprovider-priv.h goaprovider.c goaproviderfactory.h \ + goaproviderfactory.c goamailauth.h goamailauth.c \ + goaimapauthlogin.h goaimapauthlogin.c goarestproxy.h \ + goarestproxy.c goasmtpauth.h goasmtpauth.c goasouplogger.h \ + goasouplogger.c goamailclient.h goamailclient.c \ + goaexchangeprovider.h goaexchangeprovider.c goaoauthprovider.h \ + goaoauthprovider.c goaoauth2provider.h \ + goaoauth2provider-priv.h goaoauth2provider-web-extension.h \ + goaoauth2provider-web-view.h goaoauth2provider.c \ + goagoogleprovider.h goagoogleprovider.c goafacebookprovider.h \ + goafacebookprovider.c goaimapsmtpprovider.h \ + goaimapsmtpprovider.c goamediaserverprovider.h \ + goamediaserverprovider.c goaowncloudprovider.h \ + goaowncloudprovider.c goaflickrprovider.h goaflickrprovider.c \ + goafoursquareprovider.h goafoursquareprovider.c \ + goawindowsliveprovider.h goawindowsliveprovider.c \ + goapocketprovider.h goapocketprovider.c goalastfmprovider.h \ + goalastfmprovider.c goatodoistprovider.h goatodoistprovider.c \ + goaobjectskeletonutils.h goaobjectskeletonutils.c goautils.h \ + goautils.c goawebview.h goawebview.c nautilus-floating-bar.h \ + nautilus-floating-bar.c \ + $(top_builddir)/src/goaidentity/org.gnome.Identity.c \ + $(top_srcdir)/src/goaidentity/goaidentitymanagererror.c \ + $(NULL) $(am__append_1) $(am__append_2) +libgoa_backend_1_0_la_CFLAGS = \ + $(WEBKIT_GTK_CFLAGS) \ + $(JSON_GLIB_CFLAGS) \ + $(GCR_CFLAGS) \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) \ + $(REST_CFLAGS) \ + $(SECRET_CFLAGS) \ + $(LIBSOUP_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(TP_CFLAGS) \ + $(TPAW_CFLAGS) \ + $(NULL) + +libgoa_backend_1_0_la_LIBADD = \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(WEBKIT_GTK_LIBS) \ + $(JSON_GLIB_LIBS) \ + $(GCR_LIBS) \ + $(GLIB_LIBS) \ + $(GTK_LIBS) \ + $(REST_LIBS) \ + $(SECRET_LIBS) \ + $(LIBSOUP_LIBS) \ + $(LIBXML_LIBS) \ + $(TP_LIBS) \ + $(TPAW_LIBS) \ + $(NULL) + +libgoa_backend_1_0_la_LDFLAGS = \ + $(WARN_LDFLAGS) \ + -version-info $(GOA_BACKEND_LT_VERSION) \ + $(NULL) + + +# ---------------------------------------------------------------------------------------------------- +webextension_LTLIBRARIES = libgoawebextension.la +webextensiondir = $(libdir)/goa-1.0/web-extensions +libgoawebextension_la_SOURCES = \ + goawebextension.h goawebextension.c \ + goawebextensionmain.c \ + $(NULL) + +libgoawebextension_la_CFLAGS = \ + $(REST_CFLAGS) \ + $(WEBKIT_GTK_CFLAGS) \ + $(NULL) + +libgoawebextension_la_LIBADD = \ + libgoa-backend-1.0.la \ + $(REST_LIBS) \ + $(WEBKIT_GTK_LIBS) \ + $(NULL) + +libgoawebextension_la_LDFLAGS = \ + -avoid-version \ + -module \ + -no-undefined \ + $(NULL) + + +# Force installation order: libgoa-backend-1.0 must be installed first, othwerwise +# libtool will incorrectly relink libgoawebextension.la under parallel make install. +# Requires ugly automake syntax - see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7328 +installwebextensionLTLIBRARIES = install-webextensionLTLIBRARIES + +# ---------------------------------------------------------------------------------------------------- +BUILT_SOURCES = \ + $(libgoa_backend_1_0_la_built_sources) \ + $(NULL) + + +# ---------------------------------------------------------------------------------------------------- +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = goa-backend-1.0.pc +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/goabackend/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/goabackend/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +goa-backend-1.0.pc: $(top_builddir)/config.status $(srcdir)/goa-backend-1.0.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +install-webextensionLTLIBRARIES: $(webextension_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(webextension_LTLIBRARIES)'; test -n "$(webextensiondir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(webextensiondir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(webextensiondir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(webextensiondir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(webextensiondir)"; \ + } + +uninstall-webextensionLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(webextension_LTLIBRARIES)'; test -n "$(webextensiondir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(webextensiondir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(webextensiondir)/$$f"; \ + done + +clean-webextensionLTLIBRARIES: + -test -z "$(webextension_LTLIBRARIES)" || rm -f $(webextension_LTLIBRARIES) + @list='$(webextension_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgoa-backend-1.0.la: $(libgoa_backend_1_0_la_OBJECTS) $(libgoa_backend_1_0_la_DEPENDENCIES) $(EXTRA_libgoa_backend_1_0_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgoa_backend_1_0_la_LINK) -rpath $(libdir) $(libgoa_backend_1_0_la_OBJECTS) $(libgoa_backend_1_0_la_LIBADD) $(LIBS) + +libgoawebextension.la: $(libgoawebextension_la_OBJECTS) $(libgoawebextension_la_DEPENDENCIES) $(EXTRA_libgoawebextension_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgoawebextension_la_LINK) -rpath $(webextensiondir) $(libgoawebextension_la_OBJECTS) $(libgoawebextension_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goabackendenumtypes.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goabackendinit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermanager.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermediadevice.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goadlnaservermanager.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaewsclient.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaexchangeprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goafacebookprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaflickrprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goafoursquareprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goagoogleprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goahttpclient.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaidentitymanagererror.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaimapauthlogin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaimapsmtpprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goakerberosprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goalastfmprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goamailauth.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goamailclient.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goamediaserverprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaoauth2provider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaoauthprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaobjectskeletonutils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaowncloudprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goapocketprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goaproviderfactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goarestproxy.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goasmtpauth.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goasouplogger.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goatelepathyfactory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goatelepathyprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goatodoistprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goatpaccountlinker.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goautils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goawebview.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-goawindowsliveprovider.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-nautilus-floating-bar.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoa_backend_1_0_la-org.gnome.Identity.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoawebextension_la-goawebextension.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgoawebextension_la-goawebextensionmain.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libgoa_backend_1_0_la-goabackendenumtypes.lo: goabackendenumtypes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goabackendenumtypes.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goabackendenumtypes.Tpo -c -o libgoa_backend_1_0_la-goabackendenumtypes.lo `test -f 'goabackendenumtypes.c' || echo '$(srcdir)/'`goabackendenumtypes.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goabackendenumtypes.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goabackendenumtypes.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goabackendenumtypes.c' object='libgoa_backend_1_0_la-goabackendenumtypes.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goabackendenumtypes.lo `test -f 'goabackendenumtypes.c' || echo '$(srcdir)/'`goabackendenumtypes.c + +libgoa_backend_1_0_la-goabackendinit.lo: goabackendinit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goabackendinit.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goabackendinit.Tpo -c -o libgoa_backend_1_0_la-goabackendinit.lo `test -f 'goabackendinit.c' || echo '$(srcdir)/'`goabackendinit.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goabackendinit.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goabackendinit.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goabackendinit.c' object='libgoa_backend_1_0_la-goabackendinit.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goabackendinit.lo `test -f 'goabackendinit.c' || echo '$(srcdir)/'`goabackendinit.c + +libgoa_backend_1_0_la-goadlnaservermanager.lo: goadlnaservermanager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goadlnaservermanager.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goadlnaservermanager.Tpo -c -o libgoa_backend_1_0_la-goadlnaservermanager.lo `test -f 'goadlnaservermanager.c' || echo '$(srcdir)/'`goadlnaservermanager.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goadlnaservermanager.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goadlnaservermanager.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goadlnaservermanager.c' object='libgoa_backend_1_0_la-goadlnaservermanager.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goadlnaservermanager.lo `test -f 'goadlnaservermanager.c' || echo '$(srcdir)/'`goadlnaservermanager.c + +libgoa_backend_1_0_la-goaewsclient.lo: goaewsclient.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaewsclient.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaewsclient.Tpo -c -o libgoa_backend_1_0_la-goaewsclient.lo `test -f 'goaewsclient.c' || echo '$(srcdir)/'`goaewsclient.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaewsclient.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaewsclient.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaewsclient.c' object='libgoa_backend_1_0_la-goaewsclient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaewsclient.lo `test -f 'goaewsclient.c' || echo '$(srcdir)/'`goaewsclient.c + +libgoa_backend_1_0_la-goahttpclient.lo: goahttpclient.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goahttpclient.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goahttpclient.Tpo -c -o libgoa_backend_1_0_la-goahttpclient.lo `test -f 'goahttpclient.c' || echo '$(srcdir)/'`goahttpclient.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goahttpclient.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goahttpclient.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goahttpclient.c' object='libgoa_backend_1_0_la-goahttpclient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goahttpclient.lo `test -f 'goahttpclient.c' || echo '$(srcdir)/'`goahttpclient.c + +libgoa_backend_1_0_la-goaprovider.lo: goaprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaprovider.Tpo -c -o libgoa_backend_1_0_la-goaprovider.lo `test -f 'goaprovider.c' || echo '$(srcdir)/'`goaprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaprovider.c' object='libgoa_backend_1_0_la-goaprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaprovider.lo `test -f 'goaprovider.c' || echo '$(srcdir)/'`goaprovider.c + +libgoa_backend_1_0_la-goaproviderfactory.lo: goaproviderfactory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaproviderfactory.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaproviderfactory.Tpo -c -o libgoa_backend_1_0_la-goaproviderfactory.lo `test -f 'goaproviderfactory.c' || echo '$(srcdir)/'`goaproviderfactory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaproviderfactory.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaproviderfactory.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaproviderfactory.c' object='libgoa_backend_1_0_la-goaproviderfactory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaproviderfactory.lo `test -f 'goaproviderfactory.c' || echo '$(srcdir)/'`goaproviderfactory.c + +libgoa_backend_1_0_la-goamailauth.lo: goamailauth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goamailauth.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goamailauth.Tpo -c -o libgoa_backend_1_0_la-goamailauth.lo `test -f 'goamailauth.c' || echo '$(srcdir)/'`goamailauth.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goamailauth.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goamailauth.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goamailauth.c' object='libgoa_backend_1_0_la-goamailauth.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goamailauth.lo `test -f 'goamailauth.c' || echo '$(srcdir)/'`goamailauth.c + +libgoa_backend_1_0_la-goaimapauthlogin.lo: goaimapauthlogin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaimapauthlogin.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaimapauthlogin.Tpo -c -o libgoa_backend_1_0_la-goaimapauthlogin.lo `test -f 'goaimapauthlogin.c' || echo '$(srcdir)/'`goaimapauthlogin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaimapauthlogin.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaimapauthlogin.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaimapauthlogin.c' object='libgoa_backend_1_0_la-goaimapauthlogin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaimapauthlogin.lo `test -f 'goaimapauthlogin.c' || echo '$(srcdir)/'`goaimapauthlogin.c + +libgoa_backend_1_0_la-goarestproxy.lo: goarestproxy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goarestproxy.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goarestproxy.Tpo -c -o libgoa_backend_1_0_la-goarestproxy.lo `test -f 'goarestproxy.c' || echo '$(srcdir)/'`goarestproxy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goarestproxy.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goarestproxy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goarestproxy.c' object='libgoa_backend_1_0_la-goarestproxy.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goarestproxy.lo `test -f 'goarestproxy.c' || echo '$(srcdir)/'`goarestproxy.c + +libgoa_backend_1_0_la-goasmtpauth.lo: goasmtpauth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goasmtpauth.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goasmtpauth.Tpo -c -o libgoa_backend_1_0_la-goasmtpauth.lo `test -f 'goasmtpauth.c' || echo '$(srcdir)/'`goasmtpauth.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goasmtpauth.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goasmtpauth.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goasmtpauth.c' object='libgoa_backend_1_0_la-goasmtpauth.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goasmtpauth.lo `test -f 'goasmtpauth.c' || echo '$(srcdir)/'`goasmtpauth.c + +libgoa_backend_1_0_la-goasouplogger.lo: goasouplogger.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goasouplogger.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goasouplogger.Tpo -c -o libgoa_backend_1_0_la-goasouplogger.lo `test -f 'goasouplogger.c' || echo '$(srcdir)/'`goasouplogger.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goasouplogger.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goasouplogger.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goasouplogger.c' object='libgoa_backend_1_0_la-goasouplogger.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goasouplogger.lo `test -f 'goasouplogger.c' || echo '$(srcdir)/'`goasouplogger.c + +libgoa_backend_1_0_la-goamailclient.lo: goamailclient.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goamailclient.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goamailclient.Tpo -c -o libgoa_backend_1_0_la-goamailclient.lo `test -f 'goamailclient.c' || echo '$(srcdir)/'`goamailclient.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goamailclient.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goamailclient.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goamailclient.c' object='libgoa_backend_1_0_la-goamailclient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goamailclient.lo `test -f 'goamailclient.c' || echo '$(srcdir)/'`goamailclient.c + +libgoa_backend_1_0_la-goaexchangeprovider.lo: goaexchangeprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaexchangeprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaexchangeprovider.Tpo -c -o libgoa_backend_1_0_la-goaexchangeprovider.lo `test -f 'goaexchangeprovider.c' || echo '$(srcdir)/'`goaexchangeprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaexchangeprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaexchangeprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaexchangeprovider.c' object='libgoa_backend_1_0_la-goaexchangeprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaexchangeprovider.lo `test -f 'goaexchangeprovider.c' || echo '$(srcdir)/'`goaexchangeprovider.c + +libgoa_backend_1_0_la-goaoauthprovider.lo: goaoauthprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaoauthprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaoauthprovider.Tpo -c -o libgoa_backend_1_0_la-goaoauthprovider.lo `test -f 'goaoauthprovider.c' || echo '$(srcdir)/'`goaoauthprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaoauthprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaoauthprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaoauthprovider.c' object='libgoa_backend_1_0_la-goaoauthprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaoauthprovider.lo `test -f 'goaoauthprovider.c' || echo '$(srcdir)/'`goaoauthprovider.c + +libgoa_backend_1_0_la-goaoauth2provider.lo: goaoauth2provider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaoauth2provider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaoauth2provider.Tpo -c -o libgoa_backend_1_0_la-goaoauth2provider.lo `test -f 'goaoauth2provider.c' || echo '$(srcdir)/'`goaoauth2provider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaoauth2provider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaoauth2provider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaoauth2provider.c' object='libgoa_backend_1_0_la-goaoauth2provider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaoauth2provider.lo `test -f 'goaoauth2provider.c' || echo '$(srcdir)/'`goaoauth2provider.c + +libgoa_backend_1_0_la-goagoogleprovider.lo: goagoogleprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goagoogleprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goagoogleprovider.Tpo -c -o libgoa_backend_1_0_la-goagoogleprovider.lo `test -f 'goagoogleprovider.c' || echo '$(srcdir)/'`goagoogleprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goagoogleprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goagoogleprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goagoogleprovider.c' object='libgoa_backend_1_0_la-goagoogleprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goagoogleprovider.lo `test -f 'goagoogleprovider.c' || echo '$(srcdir)/'`goagoogleprovider.c + +libgoa_backend_1_0_la-goafacebookprovider.lo: goafacebookprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goafacebookprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goafacebookprovider.Tpo -c -o libgoa_backend_1_0_la-goafacebookprovider.lo `test -f 'goafacebookprovider.c' || echo '$(srcdir)/'`goafacebookprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goafacebookprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goafacebookprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goafacebookprovider.c' object='libgoa_backend_1_0_la-goafacebookprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goafacebookprovider.lo `test -f 'goafacebookprovider.c' || echo '$(srcdir)/'`goafacebookprovider.c + +libgoa_backend_1_0_la-goaimapsmtpprovider.lo: goaimapsmtpprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaimapsmtpprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaimapsmtpprovider.Tpo -c -o libgoa_backend_1_0_la-goaimapsmtpprovider.lo `test -f 'goaimapsmtpprovider.c' || echo '$(srcdir)/'`goaimapsmtpprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaimapsmtpprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaimapsmtpprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaimapsmtpprovider.c' object='libgoa_backend_1_0_la-goaimapsmtpprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaimapsmtpprovider.lo `test -f 'goaimapsmtpprovider.c' || echo '$(srcdir)/'`goaimapsmtpprovider.c + +libgoa_backend_1_0_la-goamediaserverprovider.lo: goamediaserverprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goamediaserverprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goamediaserverprovider.Tpo -c -o libgoa_backend_1_0_la-goamediaserverprovider.lo `test -f 'goamediaserverprovider.c' || echo '$(srcdir)/'`goamediaserverprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goamediaserverprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goamediaserverprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goamediaserverprovider.c' object='libgoa_backend_1_0_la-goamediaserverprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goamediaserverprovider.lo `test -f 'goamediaserverprovider.c' || echo '$(srcdir)/'`goamediaserverprovider.c + +libgoa_backend_1_0_la-goaowncloudprovider.lo: goaowncloudprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaowncloudprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaowncloudprovider.Tpo -c -o libgoa_backend_1_0_la-goaowncloudprovider.lo `test -f 'goaowncloudprovider.c' || echo '$(srcdir)/'`goaowncloudprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaowncloudprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaowncloudprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaowncloudprovider.c' object='libgoa_backend_1_0_la-goaowncloudprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaowncloudprovider.lo `test -f 'goaowncloudprovider.c' || echo '$(srcdir)/'`goaowncloudprovider.c + +libgoa_backend_1_0_la-goaflickrprovider.lo: goaflickrprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaflickrprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaflickrprovider.Tpo -c -o libgoa_backend_1_0_la-goaflickrprovider.lo `test -f 'goaflickrprovider.c' || echo '$(srcdir)/'`goaflickrprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaflickrprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaflickrprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaflickrprovider.c' object='libgoa_backend_1_0_la-goaflickrprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaflickrprovider.lo `test -f 'goaflickrprovider.c' || echo '$(srcdir)/'`goaflickrprovider.c + +libgoa_backend_1_0_la-goafoursquareprovider.lo: goafoursquareprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goafoursquareprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goafoursquareprovider.Tpo -c -o libgoa_backend_1_0_la-goafoursquareprovider.lo `test -f 'goafoursquareprovider.c' || echo '$(srcdir)/'`goafoursquareprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goafoursquareprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goafoursquareprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goafoursquareprovider.c' object='libgoa_backend_1_0_la-goafoursquareprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goafoursquareprovider.lo `test -f 'goafoursquareprovider.c' || echo '$(srcdir)/'`goafoursquareprovider.c + +libgoa_backend_1_0_la-goawindowsliveprovider.lo: goawindowsliveprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goawindowsliveprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goawindowsliveprovider.Tpo -c -o libgoa_backend_1_0_la-goawindowsliveprovider.lo `test -f 'goawindowsliveprovider.c' || echo '$(srcdir)/'`goawindowsliveprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goawindowsliveprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goawindowsliveprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goawindowsliveprovider.c' object='libgoa_backend_1_0_la-goawindowsliveprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goawindowsliveprovider.lo `test -f 'goawindowsliveprovider.c' || echo '$(srcdir)/'`goawindowsliveprovider.c + +libgoa_backend_1_0_la-goapocketprovider.lo: goapocketprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goapocketprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goapocketprovider.Tpo -c -o libgoa_backend_1_0_la-goapocketprovider.lo `test -f 'goapocketprovider.c' || echo '$(srcdir)/'`goapocketprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goapocketprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goapocketprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goapocketprovider.c' object='libgoa_backend_1_0_la-goapocketprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goapocketprovider.lo `test -f 'goapocketprovider.c' || echo '$(srcdir)/'`goapocketprovider.c + +libgoa_backend_1_0_la-goalastfmprovider.lo: goalastfmprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goalastfmprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goalastfmprovider.Tpo -c -o libgoa_backend_1_0_la-goalastfmprovider.lo `test -f 'goalastfmprovider.c' || echo '$(srcdir)/'`goalastfmprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goalastfmprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goalastfmprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goalastfmprovider.c' object='libgoa_backend_1_0_la-goalastfmprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goalastfmprovider.lo `test -f 'goalastfmprovider.c' || echo '$(srcdir)/'`goalastfmprovider.c + +libgoa_backend_1_0_la-goatodoistprovider.lo: goatodoistprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goatodoistprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goatodoistprovider.Tpo -c -o libgoa_backend_1_0_la-goatodoistprovider.lo `test -f 'goatodoistprovider.c' || echo '$(srcdir)/'`goatodoistprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goatodoistprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goatodoistprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goatodoistprovider.c' object='libgoa_backend_1_0_la-goatodoistprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goatodoistprovider.lo `test -f 'goatodoistprovider.c' || echo '$(srcdir)/'`goatodoistprovider.c + +libgoa_backend_1_0_la-goaobjectskeletonutils.lo: goaobjectskeletonutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaobjectskeletonutils.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaobjectskeletonutils.Tpo -c -o libgoa_backend_1_0_la-goaobjectskeletonutils.lo `test -f 'goaobjectskeletonutils.c' || echo '$(srcdir)/'`goaobjectskeletonutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaobjectskeletonutils.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaobjectskeletonutils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaobjectskeletonutils.c' object='libgoa_backend_1_0_la-goaobjectskeletonutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaobjectskeletonutils.lo `test -f 'goaobjectskeletonutils.c' || echo '$(srcdir)/'`goaobjectskeletonutils.c + +libgoa_backend_1_0_la-goautils.lo: goautils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goautils.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goautils.Tpo -c -o libgoa_backend_1_0_la-goautils.lo `test -f 'goautils.c' || echo '$(srcdir)/'`goautils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goautils.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goautils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goautils.c' object='libgoa_backend_1_0_la-goautils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goautils.lo `test -f 'goautils.c' || echo '$(srcdir)/'`goautils.c + +libgoa_backend_1_0_la-goawebview.lo: goawebview.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goawebview.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goawebview.Tpo -c -o libgoa_backend_1_0_la-goawebview.lo `test -f 'goawebview.c' || echo '$(srcdir)/'`goawebview.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goawebview.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goawebview.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goawebview.c' object='libgoa_backend_1_0_la-goawebview.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goawebview.lo `test -f 'goawebview.c' || echo '$(srcdir)/'`goawebview.c + +libgoa_backend_1_0_la-nautilus-floating-bar.lo: nautilus-floating-bar.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-nautilus-floating-bar.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-nautilus-floating-bar.Tpo -c -o libgoa_backend_1_0_la-nautilus-floating-bar.lo `test -f 'nautilus-floating-bar.c' || echo '$(srcdir)/'`nautilus-floating-bar.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-nautilus-floating-bar.Tpo $(DEPDIR)/libgoa_backend_1_0_la-nautilus-floating-bar.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nautilus-floating-bar.c' object='libgoa_backend_1_0_la-nautilus-floating-bar.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-nautilus-floating-bar.lo `test -f 'nautilus-floating-bar.c' || echo '$(srcdir)/'`nautilus-floating-bar.c + +libgoa_backend_1_0_la-org.gnome.Identity.lo: $(top_builddir)/src/goaidentity/org.gnome.Identity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-org.gnome.Identity.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-org.gnome.Identity.Tpo -c -o libgoa_backend_1_0_la-org.gnome.Identity.lo `test -f '$(top_builddir)/src/goaidentity/org.gnome.Identity.c' || echo '$(srcdir)/'`$(top_builddir)/src/goaidentity/org.gnome.Identity.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-org.gnome.Identity.Tpo $(DEPDIR)/libgoa_backend_1_0_la-org.gnome.Identity.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_builddir)/src/goaidentity/org.gnome.Identity.c' object='libgoa_backend_1_0_la-org.gnome.Identity.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-org.gnome.Identity.lo `test -f '$(top_builddir)/src/goaidentity/org.gnome.Identity.c' || echo '$(srcdir)/'`$(top_builddir)/src/goaidentity/org.gnome.Identity.c + +libgoa_backend_1_0_la-goaidentitymanagererror.lo: $(top_srcdir)/src/goaidentity/goaidentitymanagererror.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goaidentitymanagererror.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goaidentitymanagererror.Tpo -c -o libgoa_backend_1_0_la-goaidentitymanagererror.lo `test -f '$(top_srcdir)/src/goaidentity/goaidentitymanagererror.c' || echo '$(srcdir)/'`$(top_srcdir)/src/goaidentity/goaidentitymanagererror.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goaidentitymanagererror.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goaidentitymanagererror.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/goaidentity/goaidentitymanagererror.c' object='libgoa_backend_1_0_la-goaidentitymanagererror.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goaidentitymanagererror.lo `test -f '$(top_srcdir)/src/goaidentity/goaidentitymanagererror.c' || echo '$(srcdir)/'`$(top_srcdir)/src/goaidentity/goaidentitymanagererror.c + +libgoa_backend_1_0_la-goakerberosprovider.lo: goakerberosprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goakerberosprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goakerberosprovider.Tpo -c -o libgoa_backend_1_0_la-goakerberosprovider.lo `test -f 'goakerberosprovider.c' || echo '$(srcdir)/'`goakerberosprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goakerberosprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goakerberosprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goakerberosprovider.c' object='libgoa_backend_1_0_la-goakerberosprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goakerberosprovider.lo `test -f 'goakerberosprovider.c' || echo '$(srcdir)/'`goakerberosprovider.c + +libgoa_backend_1_0_la-goatelepathyfactory.lo: goatelepathyfactory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goatelepathyfactory.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goatelepathyfactory.Tpo -c -o libgoa_backend_1_0_la-goatelepathyfactory.lo `test -f 'goatelepathyfactory.c' || echo '$(srcdir)/'`goatelepathyfactory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goatelepathyfactory.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goatelepathyfactory.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goatelepathyfactory.c' object='libgoa_backend_1_0_la-goatelepathyfactory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goatelepathyfactory.lo `test -f 'goatelepathyfactory.c' || echo '$(srcdir)/'`goatelepathyfactory.c + +libgoa_backend_1_0_la-goatelepathyprovider.lo: goatelepathyprovider.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goatelepathyprovider.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goatelepathyprovider.Tpo -c -o libgoa_backend_1_0_la-goatelepathyprovider.lo `test -f 'goatelepathyprovider.c' || echo '$(srcdir)/'`goatelepathyprovider.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goatelepathyprovider.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goatelepathyprovider.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goatelepathyprovider.c' object='libgoa_backend_1_0_la-goatelepathyprovider.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goatelepathyprovider.lo `test -f 'goatelepathyprovider.c' || echo '$(srcdir)/'`goatelepathyprovider.c + +libgoa_backend_1_0_la-goatpaccountlinker.lo: goatpaccountlinker.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goatpaccountlinker.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goatpaccountlinker.Tpo -c -o libgoa_backend_1_0_la-goatpaccountlinker.lo `test -f 'goatpaccountlinker.c' || echo '$(srcdir)/'`goatpaccountlinker.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goatpaccountlinker.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goatpaccountlinker.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goatpaccountlinker.c' object='libgoa_backend_1_0_la-goatpaccountlinker.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goatpaccountlinker.lo `test -f 'goatpaccountlinker.c' || echo '$(srcdir)/'`goatpaccountlinker.c + +libgoa_backend_1_0_la-goadleynaservermanager.lo: goadleynaservermanager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goadleynaservermanager.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermanager.Tpo -c -o libgoa_backend_1_0_la-goadleynaservermanager.lo `test -f 'goadleynaservermanager.c' || echo '$(srcdir)/'`goadleynaservermanager.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermanager.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermanager.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goadleynaservermanager.c' object='libgoa_backend_1_0_la-goadleynaservermanager.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goadleynaservermanager.lo `test -f 'goadleynaservermanager.c' || echo '$(srcdir)/'`goadleynaservermanager.c + +libgoa_backend_1_0_la-goadleynaservermediadevice.lo: goadleynaservermediadevice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -MT libgoa_backend_1_0_la-goadleynaservermediadevice.lo -MD -MP -MF $(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermediadevice.Tpo -c -o libgoa_backend_1_0_la-goadleynaservermediadevice.lo `test -f 'goadleynaservermediadevice.c' || echo '$(srcdir)/'`goadleynaservermediadevice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermediadevice.Tpo $(DEPDIR)/libgoa_backend_1_0_la-goadleynaservermediadevice.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goadleynaservermediadevice.c' object='libgoa_backend_1_0_la-goadleynaservermediadevice.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoa_backend_1_0_la_CFLAGS) $(CFLAGS) -c -o libgoa_backend_1_0_la-goadleynaservermediadevice.lo `test -f 'goadleynaservermediadevice.c' || echo '$(srcdir)/'`goadleynaservermediadevice.c + +libgoawebextension_la-goawebextension.lo: goawebextension.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoawebextension_la_CFLAGS) $(CFLAGS) -MT libgoawebextension_la-goawebextension.lo -MD -MP -MF $(DEPDIR)/libgoawebextension_la-goawebextension.Tpo -c -o libgoawebextension_la-goawebextension.lo `test -f 'goawebextension.c' || echo '$(srcdir)/'`goawebextension.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoawebextension_la-goawebextension.Tpo $(DEPDIR)/libgoawebextension_la-goawebextension.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goawebextension.c' object='libgoawebextension_la-goawebextension.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoawebextension_la_CFLAGS) $(CFLAGS) -c -o libgoawebextension_la-goawebextension.lo `test -f 'goawebextension.c' || echo '$(srcdir)/'`goawebextension.c + +libgoawebextension_la-goawebextensionmain.lo: goawebextensionmain.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoawebextension_la_CFLAGS) $(CFLAGS) -MT libgoawebextension_la-goawebextensionmain.lo -MD -MP -MF $(DEPDIR)/libgoawebextension_la-goawebextensionmain.Tpo -c -o libgoawebextension_la-goawebextensionmain.lo `test -f 'goawebextensionmain.c' || echo '$(srcdir)/'`goawebextensionmain.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgoawebextension_la-goawebextensionmain.Tpo $(DEPDIR)/libgoawebextension_la-goawebextensionmain.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goawebextensionmain.c' object='libgoawebextension_la-goawebextensionmain.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgoawebextension_la_CFLAGS) $(CFLAGS) -c -o libgoawebextension_la-goawebextensionmain.lo `test -f 'goawebextensionmain.c' || echo '$(srcdir)/'`goawebextensionmain.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-libgoa_backend_1_0_laHEADERS: $(libgoa_backend_1_0_la_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libgoa_backend_1_0_la_HEADERS)'; test -n "$(libgoa_backend_1_0_ladir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libgoa_backend_1_0_ladir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libgoa_backend_1_0_ladir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgoa_backend_1_0_ladir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgoa_backend_1_0_ladir)" || exit $$?; \ + done + +uninstall-libgoa_backend_1_0_laHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libgoa_backend_1_0_la_HEADERS)'; test -n "$(libgoa_backend_1_0_ladir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libgoa_backend_1_0_ladir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(webextensiondir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libgoa_backend_1_0_ladir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ + clean-webextensionLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-libgoa_backend_1_0_laHEADERS \ + install-pkgconfigDATA install-webextensionLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES \ + uninstall-libgoa_backend_1_0_laHEADERS uninstall-pkgconfigDATA \ + uninstall-webextensionLTLIBRARIES + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-local \ + clean-webextensionLTLIBRARIES cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES \ + install-libgoa_backend_1_0_laHEADERS install-man install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip install-webextensionLTLIBRARIES installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-libgoa_backend_1_0_laHEADERS uninstall-pkgconfigDATA \ + uninstall-webextensionLTLIBRARIES + +.PRECIOUS: Makefile + + +# ---------------------------------------------------------------------------------------------------- + +goabackendenumtypes.h: goabackendenums.h goabackendenumtypes.h.template + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goabackendenumtypes.h.template goabackendenums.h ) > \ + goabackendenumtypes.h.tmp && mv goabackendenumtypes.h.tmp goabackendenumtypes.h + +goabackendenumtypes.c: goabackendenums.h goabackendenumtypes.c.template goabackendenumtypes.h + $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \ + cd $(srcdir) && glib-mkenums --template goabackendenumtypes.c.template goabackendenums.h ) > \ + goabackendenumtypes.c.tmp && mv goabackendenumtypes.c.tmp goabackendenumtypes.c +$(installwebextensionLTLIBRARIES): install-libLTLIBRARIES + +goadleynaservermanager.h goadleynaservermanager.c: goadleynaservermanager.xml + $(AM_V_GEN)gdbus-codegen \ + --c-namespace DleynaServer \ + --generate-c-code goadleynaservermanager \ + --interface-prefix com.intel.dLeynaServer. \ + $< + +goadleynaservermediadevice.h goadleynaservermediadevice.c: goadleynaservermediadevice.xml + $(AM_V_GEN)gdbus-codegen \ + --c-namespace DleynaServer \ + --generate-c-code goadleynaservermediadevice \ + --interface-prefix com.intel.dLeynaServer. \ + $< + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/goabackend/gconstructor.h b/src/goabackend/gconstructor.h new file mode 100644 index 0000000..dccb031 --- /dev/null +++ b/src/goabackend/gconstructor.h @@ -0,0 +1,120 @@ +/* + If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and + destructors, in a sane way, including e.g. on library unload. If not you're on + your own. + + Some compilers need #pragma to handle this, which does not work with macros, + so the way you need to use this is (for constructors): + + #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA + #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) + #endif + G_DEFINE_CONSTRUCTOR(my_constructor) + static void my_constructor(void) { + ... + } + +*/ + +#ifndef __GTK_DOC_IGNORE__ + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); +#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); + +#elif defined (_MSC_VER) && (_MSC_VER >= 1500) +/* Visual studio 2008 and later has _Pragma */ + +#define G_HAS_CONSTRUCTORS 1 + +/* We do some weird things to avoid the constructors being optimized + * away on VS2015 if WholeProgramOptimization is enabled. First we + * make a reference to the array from the wrapper to make sure its + * references. Then we use a pragma to make sure the wrapper function + * symbol is always included at the link stage. Also, the symbols + * need to be extern (but not dllexport), even though they are not + * really used from another object file. + */ + +/* We need to account for differences between the mangling of symbols + * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed + * with an underscore but symbols on x64 are not. + */ +#ifdef _WIN64 +#define G_MSVC_SYMBOL_PREFIX "" +#else +#define G_MSVC_SYMBOL_PREFIX "_" +#endif + +#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX) +#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX) + +#define G_MSVC_CTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper; + +#define G_MSVC_DTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined (_MSC_VER) + +#define G_HAS_CONSTRUCTORS 1 + +/* Pre Visual studio 2008 must use #pragma section */ +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _wrapper(void) { _func(); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _constructor(void) { atexit (_func); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined(__SUNPRO_C) + +/* This is not tested, but i believe it should work, based on: + * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c + */ + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + init(_func) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + fini(_func) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); + +#else + +/* constructors not supported for this compiler */ + +#endif + +#endif /* __GTK_DOC_IGNORE__ */ diff --git a/src/goabackend/goa-backend-1.0.pc.in b/src/goabackend/goa-backend-1.0.pc.in new file mode 100644 index 0000000..294bdc4 --- /dev/null +++ b/src/goabackend/goa-backend-1.0.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: Goa Backends +Description: Backends for GNOME Online Accounts Library +Version: @VERSION@ +Requires: goa-1.0 gtk+-3.0 +Libs: -L${libdir} -lgoa-backend-1.0 +Cflags: -I${includedir}/goa-1.0 diff --git a/src/goabackend/goabackend.h b/src/goabackend/goabackend.h new file mode 100644 index 0000000..9c00a9b --- /dev/null +++ b/src/goabackend/goabackend.h @@ -0,0 +1,32 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_BACKEND_H__ +#define __GOA_BACKEND_H__ + +#if !defined(GOA_BACKEND_API_IS_SUBJECT_TO_CHANGE) && !defined(GOA_BACKEND_COMPILATION) +#error libgoa-backend is unstable API. You must define GOA_BACKEND_API_IS_SUBJECT_TO_CHANGE before including goabackend/goabackend.h +#endif + +#define __GOA_BACKEND_INSIDE_GOA_BACKEND_H__ +#include +#include +#include +#undef __GOA_BACKEND_INSIDE_GOA_BACKEND_H__ + +#endif /* __GOA_BACKEND_H__ */ diff --git a/src/goabackend/goabackendenums-priv.h b/src/goabackend/goabackendenums-priv.h new file mode 100644 index 0000000..d1a1905 --- /dev/null +++ b/src/goabackend/goabackendenums-priv.h @@ -0,0 +1,65 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_BACKEND_ENUMS_PRIV_H__ +#define __GOA_BACKEND_ENUMS_PRIV_H__ + +G_BEGIN_DECLS + +/** + * GoaLogLevel: + * @GOA_LOG_LEVEL_DEBUG: Debug messages. + * @GOA_LOG_LEVEL_INFO: Informational messages. + * @GOA_LOG_LEVEL_NOTICE: Messages that the administrator should take notice of. + * @GOA_LOG_LEVEL_WARNING: Warning messages. + * @GOA_LOG_LEVEL_ERROR: Error messages. + * + * Logging levels. + */ +typedef enum +{ + GOA_LOG_LEVEL_DEBUG, + GOA_LOG_LEVEL_INFO, + GOA_LOG_LEVEL_NOTICE, + GOA_LOG_LEVEL_WARNING, + GOA_LOG_LEVEL_ERROR +} GoaLogLevel; + +/** + * GoaTlsType: + * @GOA_TLS_TYPE_NONE: No encryption. + * @GOA_TLS_TYPE_STARTTLS: STARTTLS should be used on a standard port + * after the connection has been established to obtain a secure channel. + * @GOA_TLS_TYPE_SSL: SSL should be used on a dedicated port. + * + * Type of SSL/TLS used to connect to a server. + */ +typedef enum +{ + GOA_TLS_TYPE_NONE, + GOA_TLS_TYPE_STARTTLS, + GOA_TLS_TYPE_SSL +} GoaTlsType; + +G_END_DECLS + +#endif /* __GOA_BACKEND_ENUMS_PRIV_H__ */ diff --git a/src/goabackend/goabackendenums.h b/src/goabackend/goabackendenums.h new file mode 100644 index 0000000..5ddfed5 --- /dev/null +++ b/src/goabackend/goabackendenums.h @@ -0,0 +1,105 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_BACKEND_ENUMS_H__ +#define __GOA_BACKEND_ENUMS_H__ + +#include + +G_BEGIN_DECLS + +/** + * GoaProviderGroup: + * @GOA_PROVIDER_GROUP_BRANDED: Providers with a well-known brand. For + * example, Google and Facebook. + * @GOA_PROVIDER_GROUP_CONTACTS: Providers that offer address book services. + * For example, CardDAV. + * @GOA_PROVIDER_GROUP_MAIL: Providers that offer email-like messaging + * services. For example, IMAP and SMTP. + * @GOA_PROVIDER_GROUP_TICKETING: Providers with ticketing + * capabilities. For example, Kerberos. + * @GOA_PROVIDER_GROUP_CHAT: Providers that offer chat-like messaging + * capabilities. For example, XMPP, IRC. + * @GOA_PROVIDER_GROUP_INVALID: Used for error handling. No provider + * should belong to this group. + * + * An enum for specifying which group a provider belongs to. This is + * can be used to organize the providers while displaying them in an + * user interface. + */ +typedef enum +{ + GOA_PROVIDER_GROUP_BRANDED, + GOA_PROVIDER_GROUP_CONTACTS, + GOA_PROVIDER_GROUP_MAIL, + GOA_PROVIDER_GROUP_TICKETING, + GOA_PROVIDER_GROUP_CHAT, + GOA_PROVIDER_GROUP_INVALID +} GoaProviderGroup; + +/** + * GoaProviderFeatures: + * @GOA_PROVIDER_FEATURE_BRANDED: Common providers to be highlighted (ie. Google, OwnCloud). + * @GOA_PROVIDER_FEATURE_MAIL: Mail services (ie. SMTP, IMAP). + * @GOA_PROVIDER_FEATURE_CALENDAR: Calendaring services (ie. CalDAV). + * @GOA_PROVIDER_FEATURE_CONTACTS: Addressbook services (ie. CardDAV). + * @GOA_PROVIDER_FEATURE_CHAT: Instant messaging services (ie. XMPP, IRC). + * @GOA_PROVIDER_FEATURE_DOCUMENTS: Documents storage services (ie. Google Documents). + * @GOA_PROVIDER_FEATURE_PHOTOS: Photos storage services (ie. Flickr). + * @GOA_PROVIDER_FEATURE_FILES: Files storage services (ie. WebDAV). + * @GOA_PROVIDER_FEATURE_TICKETING: Ticketing services (ie. Kerberos). + * @GOA_PROVIDER_FEATURE_READ_LATER: Read later services (eg. Pocket). + * @GOA_PROVIDER_FEATURE_PRINTERS: Network printing services (e.g. Google Cloud Print). + * @GOA_PROVIDER_FEATURE_MAPS: Maps related services (e.g. Foursquare, Facebook). + * @GOA_PROVIDER_FEATURE_MUSIC: Music related services (e.g. Vkontakte). + * @GOA_PROVIDER_FEATURE_INVALID: Used for error handling. No provider + * should provide this feature. + * + * These flags specify the features exported by each provider. They can be + * expecially useful to restrict the list of available providers when + * requesting the creation of an account for a specific purpose (eg. from a + * chat program). + * + * Since: 3.10 + */ +typedef enum /*< flags >*/ +{ + GOA_PROVIDER_FEATURE_BRANDED = 1 << 1, + GOA_PROVIDER_FEATURE_MAIL = 1 << 2, + GOA_PROVIDER_FEATURE_CALENDAR = 1 << 3, + GOA_PROVIDER_FEATURE_CONTACTS = 1 << 4, + GOA_PROVIDER_FEATURE_CHAT = 1 << 5, + GOA_PROVIDER_FEATURE_DOCUMENTS = 1 << 6, + GOA_PROVIDER_FEATURE_PHOTOS = 1 << 7, + GOA_PROVIDER_FEATURE_FILES = 1 << 8, + GOA_PROVIDER_FEATURE_TICKETING = 1 << 9, + GOA_PROVIDER_FEATURE_READ_LATER= 1 << 10, + GOA_PROVIDER_FEATURE_PRINTERS = 1 << 11, + GOA_PROVIDER_FEATURE_MAPS = 1 << 12, + GOA_PROVIDER_FEATURE_MUSIC = 1 << 13, + GOA_PROVIDER_FEATURE_TODO = 1 << 14, + GOA_PROVIDER_FEATURE_INVALID = 0 +} GoaProviderFeatures; + +G_END_DECLS + +#endif /* __GOA_BACKEND_ENUMS_H__ */ diff --git a/src/goabackend/goabackendenumtypes.c b/src/goabackend/goabackendenumtypes.c new file mode 100644 index 0000000..4595c6d --- /dev/null +++ b/src/goabackend/goabackendenumtypes.c @@ -0,0 +1,64 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + +#include "goabackendenums.h" +#include "goabackendenumtypes.h" +/* enumerations from "goabackendenums.h" */ +GType +goa_provider_group_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GEnumValue values[] = { + { GOA_PROVIDER_GROUP_BRANDED, "GOA_PROVIDER_GROUP_BRANDED", "branded" }, + { GOA_PROVIDER_GROUP_CONTACTS, "GOA_PROVIDER_GROUP_CONTACTS", "contacts" }, + { GOA_PROVIDER_GROUP_MAIL, "GOA_PROVIDER_GROUP_MAIL", "mail" }, + { GOA_PROVIDER_GROUP_TICKETING, "GOA_PROVIDER_GROUP_TICKETING", "ticketing" }, + { GOA_PROVIDER_GROUP_CHAT, "GOA_PROVIDER_GROUP_CHAT", "chat" }, + { GOA_PROVIDER_GROUP_INVALID, "GOA_PROVIDER_GROUP_INVALID", "invalid" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_enum_register_static (g_intern_static_string ("GoaProviderGroup"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} +GType +goa_provider_features_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GFlagsValue values[] = { + { GOA_PROVIDER_FEATURE_BRANDED, "GOA_PROVIDER_FEATURE_BRANDED", "branded" }, + { GOA_PROVIDER_FEATURE_MAIL, "GOA_PROVIDER_FEATURE_MAIL", "mail" }, + { GOA_PROVIDER_FEATURE_CALENDAR, "GOA_PROVIDER_FEATURE_CALENDAR", "calendar" }, + { GOA_PROVIDER_FEATURE_CONTACTS, "GOA_PROVIDER_FEATURE_CONTACTS", "contacts" }, + { GOA_PROVIDER_FEATURE_CHAT, "GOA_PROVIDER_FEATURE_CHAT", "chat" }, + { GOA_PROVIDER_FEATURE_DOCUMENTS, "GOA_PROVIDER_FEATURE_DOCUMENTS", "documents" }, + { GOA_PROVIDER_FEATURE_PHOTOS, "GOA_PROVIDER_FEATURE_PHOTOS", "photos" }, + { GOA_PROVIDER_FEATURE_FILES, "GOA_PROVIDER_FEATURE_FILES", "files" }, + { GOA_PROVIDER_FEATURE_TICKETING, "GOA_PROVIDER_FEATURE_TICKETING", "ticketing" }, + { GOA_PROVIDER_FEATURE_READ_LATER, "GOA_PROVIDER_FEATURE_READ_LATER", "read-later" }, + { GOA_PROVIDER_FEATURE_PRINTERS, "GOA_PROVIDER_FEATURE_PRINTERS", "printers" }, + { GOA_PROVIDER_FEATURE_MAPS, "GOA_PROVIDER_FEATURE_MAPS", "maps" }, + { GOA_PROVIDER_FEATURE_MUSIC, "GOA_PROVIDER_FEATURE_MUSIC", "music" }, + { GOA_PROVIDER_FEATURE_TODO, "GOA_PROVIDER_FEATURE_TODO", "todo" }, + { GOA_PROVIDER_FEATURE_INVALID, "GOA_PROVIDER_FEATURE_INVALID", "invalid" }, + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_flags_register_static (g_intern_static_string ("GoaProviderFeatures"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/* Generated data ends here */ + diff --git a/src/goabackend/goabackendenumtypes.c.template b/src/goabackend/goabackendenumtypes.c.template new file mode 100644 index 0000000..7a76459 --- /dev/null +++ b/src/goabackend/goabackendenumtypes.c.template @@ -0,0 +1,40 @@ +/*** BEGIN file-header ***/ +#include "goabackendenums.h" +#include "goabackendenumtypes.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType +@enum_name@_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ +/*** END file-tail ***/ diff --git a/src/goabackend/goabackendenumtypes.h b/src/goabackend/goabackendenumtypes.h new file mode 100644 index 0000000..1f50ff5 --- /dev/null +++ b/src/goabackend/goabackendenumtypes.h @@ -0,0 +1,21 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + +#ifndef __GOA_BACKEND_ENUM_TYPES_H__ +#define __GOA_BACKEND_ENUM_TYPES_H__ + +#include + +G_BEGIN_DECLS + +/* enumerations from "goabackendenums.h" */ +GType goa_provider_group_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_PROVIDER_GROUP (goa_provider_group_get_type ()) +GType goa_provider_features_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_PROVIDER_FEATURES (goa_provider_features_get_type ()) +G_END_DECLS + +#endif /* __GOA_BACKEND_ENUM_TYPES_H__ */ + +/* Generated data ends here */ + diff --git a/src/goabackend/goabackendenumtypes.h.template b/src/goabackend/goabackendenumtypes.h.template new file mode 100644 index 0000000..7321076 --- /dev/null +++ b/src/goabackend/goabackendenumtypes.h.template @@ -0,0 +1,24 @@ +/*** BEGIN file-header ***/ +#ifndef __GOA_BACKEND_ENUM_TYPES_H__ +#define __GOA_BACKEND_ENUM_TYPES_H__ + +#include + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* __GOA_BACKEND_ENUM_TYPES_H__ */ +/*** END file-tail ***/ diff --git a/src/goabackend/goabackendinit.c b/src/goabackend/goabackendinit.c new file mode 100644 index 0000000..c40fd2e --- /dev/null +++ b/src/goabackend/goabackendinit.c @@ -0,0 +1,41 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2016 Ting-Wei Lan + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "gconstructor.h" + +#if defined (G_HAS_CONSTRUCTORS) + +#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA +#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(goa_backend_init_ctor) +#endif +G_DEFINE_CONSTRUCTOR(goa_backend_init_ctor) + +static void +goa_backend_init_ctor (void) +{ + bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); +} + +#else +# error Your platform/compiler is missing constructor support +#endif diff --git a/src/goabackend/goadleynaservermanager.xml b/src/goabackend/goadleynaservermanager.xml new file mode 100644 index 0000000..4b77022 --- /dev/null +++ b/src/goabackend/goadleynaservermanager.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + diff --git a/src/goabackend/goadleynaservermediadevice.xml b/src/goabackend/goadleynaservermediadevice.xml new file mode 100644 index 0000000..6287d36 --- /dev/null +++ b/src/goabackend/goadleynaservermediadevice.xml @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/src/goabackend/goadlnaservermanager.c b/src/goabackend/goadlnaservermanager.c new file mode 100644 index 0000000..027e72a --- /dev/null +++ b/src/goabackend/goadlnaservermanager.c @@ -0,0 +1,258 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2014 Pranav Kant + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . * + */ + +#include "config.h" +#include + +#include "goadleynaservermanager.h" +#include "goadleynaservermediadevice.h" +#include "goadlnaservermanager.h" + +struct _GoaDlnaServerManager +{ + GObject parent_instance; + DleynaServerManager *proxy; + GHashTable *servers; +}; + +enum +{ + SERVER_FOUND, + SERVER_LOST, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +G_DEFINE_TYPE (GoaDlnaServerManager, goa_dlna_server_manager, G_TYPE_OBJECT); + +static GObject *goa_dlna_server_manager_singleton = NULL; + +static void +goa_dlna_server_manager_server_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GoaDlnaServerManager *self = GOA_DLNA_SERVER_MANAGER (user_data); + DleynaServerMediaDevice *server; + GError *error = NULL; + const gchar *object_path; + + server = dleyna_server_media_device_proxy_new_for_bus_finish (res, &error); + if (error != NULL) + { + g_warning ("Unable to load server object: %s", error->message); + g_error_free (error); + goto out; + } + + object_path = g_dbus_proxy_get_object_path (G_DBUS_PROXY (server)); + + g_debug ("%s '%s' %s %s", + G_STRFUNC, + dleyna_server_media_device_get_friendly_name (server), + dleyna_server_media_device_get_udn (server), + object_path); + g_hash_table_insert (self->servers, (gpointer) object_path, server); + g_signal_emit (self, signals[SERVER_FOUND], 0, server); + + out: + g_object_unref (self); +} + +static void +goa_dlna_server_manager_server_found_cb (GoaDlnaServerManager *self, + const gchar *object_path, + gpointer *data) +{ + dleyna_server_media_device_proxy_new_for_bus (G_BUS_TYPE_SESSION, + G_DBUS_PROXY_FLAGS_NONE, + "com.intel.dleyna-server", + object_path, + NULL, /* GCancellable */ + goa_dlna_server_manager_server_new_cb, + g_object_ref (self)); +} + +static void +goa_dlna_server_manager_server_lost_cb (GoaDlnaServerManager *self, + const gchar *object_path, + gpointer *data) +{ + DleynaServerMediaDevice *server; + + server = DLEYNA_SERVER_MEDIA_DEVICE (g_hash_table_lookup (self->servers, object_path)); + g_return_if_fail (server != NULL); + + g_hash_table_steal (self->servers, object_path); + g_debug ("%s '%s' %s %s", + G_STRFUNC, + dleyna_server_media_device_get_friendly_name (server), + dleyna_server_media_device_get_udn (server), + object_path); + g_signal_emit (self, signals[SERVER_LOST], 0, server); + g_object_unref (server); +} + +static void +goa_dlna_server_manager_proxy_get_servers_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GoaDlnaServerManager *self = GOA_DLNA_SERVER_MANAGER (user_data); + GError *error = NULL; + gchar **object_paths = NULL; + guint i; + + dleyna_server_manager_call_get_servers_finish (self->proxy, &object_paths, res, &error); + if (error != NULL) + { + g_warning ("Unable to fetch the list of available servers: %s", error->message); + g_error_free (error); + goto out; + } + + for (i = 0; object_paths[i] != NULL; i++) + goa_dlna_server_manager_server_found_cb (self, object_paths[i], NULL); + + g_signal_connect_swapped (self->proxy, "found-server", G_CALLBACK (goa_dlna_server_manager_server_found_cb), self); + g_signal_connect_swapped (self->proxy, "lost-server", G_CALLBACK (goa_dlna_server_manager_server_lost_cb), self); + + out: + g_strfreev (object_paths); + g_object_unref (self); +} + +static void +goa_dlna_server_manager_proxy_new_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GoaDlnaServerManager *self = GOA_DLNA_SERVER_MANAGER (user_data); + GError *error = NULL; + + self->proxy = dleyna_server_manager_proxy_new_for_bus_finish (res, &error); + if (error != NULL) + { + g_warning ("Unable to connect to the dLeynaServer.Manager DBus object: %s", + error->message); + g_error_free (error); + goto out; + } + + g_debug ("%s DLNA server manager initialized", G_STRFUNC); + + dleyna_server_manager_call_get_servers (self->proxy, + NULL, + goa_dlna_server_manager_proxy_get_servers_cb, + g_object_ref (self)); + + out: + g_object_unref (self); +} + +static void +goa_dlna_server_manager_dispose (GObject *object) +{ + GoaDlnaServerManager *self = GOA_DLNA_SERVER_MANAGER (object); + + g_clear_pointer (&self->servers, (GDestroyNotify) g_hash_table_unref); + g_clear_object (&self->proxy); + + G_OBJECT_CLASS (goa_dlna_server_manager_parent_class)->dispose (object); +} + +static GObject * +goa_dlna_server_manager_constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + if (goa_dlna_server_manager_singleton == NULL) + { + goa_dlna_server_manager_singleton = + G_OBJECT_CLASS (goa_dlna_server_manager_parent_class)->constructor (type, + n_construct_params, + construct_params); + g_object_add_weak_pointer (goa_dlna_server_manager_singleton, + (gpointer) &goa_dlna_server_manager_singleton); + return goa_dlna_server_manager_singleton; + } + + return g_object_ref (goa_dlna_server_manager_singleton); +} + +static void +goa_dlna_server_manager_init (GoaDlnaServerManager *self) +{ + dleyna_server_manager_proxy_new_for_bus (G_BUS_TYPE_SESSION, + G_DBUS_PROXY_FLAGS_NONE, + "com.intel.dleyna-server", + "/com/intel/dLeynaServer", + NULL, /* GCancellable */ + goa_dlna_server_manager_proxy_new_cb, + g_object_ref (self)); + self->servers = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref); +} + +static void +goa_dlna_server_manager_class_init (GoaDlnaServerManagerClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->constructor = goa_dlna_server_manager_constructor; + object_class->dispose = goa_dlna_server_manager_dispose; + + signals[SERVER_FOUND] = g_signal_new ("server-found", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + DLEYNA_SERVER_TYPE_MEDIA_DEVICE); + + signals[SERVER_LOST] = g_signal_new ("server-lost", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, + 1, + DLEYNA_SERVER_TYPE_MEDIA_DEVICE); +} + +GoaDlnaServerManager * +goa_dlna_server_manager_dup_singleton (void) +{ + return g_object_new (GOA_TYPE_DLNA_SERVER_MANAGER, NULL); +} + +GList * +goa_dlna_server_manager_dup_servers (GoaDlnaServerManager *self) +{ + GList *servers; + + servers = g_hash_table_get_values (self->servers); + g_list_foreach (servers, (GFunc) g_object_ref, NULL); + + return servers; +} diff --git a/src/goabackend/goadlnaservermanager.h b/src/goabackend/goadlnaservermanager.h new file mode 100644 index 0000000..ad36a49 --- /dev/null +++ b/src/goabackend/goadlnaservermanager.h @@ -0,0 +1,35 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2014 Pranav Kant + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . * + */ + +#ifndef GOA_DLNA_SERVER_MANAGER_H +#define GOA_DLNA_SERVER_MANAGER_H + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_DLNA_SERVER_MANAGER (goa_dlna_server_manager_get_type ()) +G_DECLARE_FINAL_TYPE (GoaDlnaServerManager, goa_dlna_server_manager, GOA, DLNA_SERVER_MANAGER, GObject); + +GoaDlnaServerManager *goa_dlna_server_manager_dup_singleton (void); + +GList *goa_dlna_server_manager_dup_servers (GoaDlnaServerManager *self); + +G_END_DECLS + +#endif /* GOA_DLNA_SERVER_MANAGER_H */ diff --git a/src/goabackend/goaewsclient.c b/src/goabackend/goaewsclient.c new file mode 100644 index 0000000..d762d07 --- /dev/null +++ b/src/goabackend/goaewsclient.c @@ -0,0 +1,591 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +/* Based on code by the Evolution team. + * + * This was originally written as a part of evolution-ews: + * evolution-ews/src/server/e-ews-connection.c + */ + +#include "config.h" + +#include + +#include +#include + +#include "goaewsclient.h" +#include "goautils.h" + +struct _GoaEwsClient +{ + GObject parent_instance; +}; + +G_DEFINE_TYPE (GoaEwsClient, goa_ews_client, G_TYPE_OBJECT); + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_ews_client_init (GoaEwsClient *self) +{ +} + +static void +goa_ews_client_class_init (GoaEwsClientClass *self) +{ +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GoaEwsClient * +goa_ews_client_new (void) +{ + return GOA_EWS_CLIENT (g_object_new (GOA_TYPE_EWS_CLIENT, NULL)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GCancellable *cancellable; + GSimpleAsyncResult *res; + SoupMessage *msgs[2]; + SoupSession *session; + gboolean accept_ssl_errors; + guint pending; + gulong cancellable_id; + xmlOutputBuffer *buf; +} AutodiscoverData; + +typedef struct +{ + gchar *password; + gchar *username; +} AutodiscoverAuthData; + +static gboolean +ews_client_autodiscover_data_free (gpointer user_data) +{ + AutodiscoverData *data = user_data; + + g_simple_async_result_complete_in_idle (data->res); + + if (data->cancellable_id > 0) + { + g_cancellable_disconnect (data->cancellable, data->cancellable_id); + g_object_unref (data->cancellable); + } + + /* soup_session_queue_message stole the references to data->msgs */ + xmlOutputBufferClose (data->buf); + g_object_unref (data->res); + g_object_unref (data->session); + g_slice_free (AutodiscoverData, data); + + return G_SOURCE_REMOVE; +} + +static void +ews_client_autodiscover_auth_data_free (gpointer data, GClosure *closure) +{ + AutodiscoverAuthData *auth = data; + + g_free (auth->password); + g_free (auth->username); + g_slice_free (AutodiscoverAuthData, auth); +} + +static gboolean +ews_client_check_node (const xmlNode *node, const gchar *name) +{ + g_return_val_if_fail (node != NULL, FALSE); + return node->type == XML_ELEMENT_NODE && !g_strcmp0 ((gchar *) node->name, name); +} + +static void +ews_client_authenticate (SoupSession *session, + SoupMessage *msg, + SoupAuth *auth, + gboolean retrying, + gpointer user_data) +{ + AutodiscoverAuthData *data = user_data; + + if (retrying) + return; + + soup_auth_authenticate (auth, data->username, data->password); +} + +static void +ews_client_request_started (SoupSession *session, SoupMessage *msg, SoupSocket *socket, gpointer user_data) +{ + AutodiscoverData *data = user_data; + GError *error; + GTlsCertificateFlags cert_flags; + + error = NULL; + + if (!data->accept_ssl_errors + && soup_message_get_https_status (msg, NULL, &cert_flags) + && cert_flags != 0) + { + goa_utils_set_error_ssl (&error, cert_flags); + g_simple_async_result_take_error (data->res, error); + soup_session_abort (data->session); + } +} + +static void +ews_client_autodiscover_cancelled_cb (GCancellable *cancellable, gpointer user_data) +{ + AutodiscoverData *data = user_data; + soup_session_abort (data->session); +} + +static gboolean +ews_client_autodiscover_parse_protocol (xmlNode *node) +{ + gboolean as_url = FALSE; + gboolean oab_url = FALSE; + + for (node = node->children; node; node = node->next) + { + if (ews_client_check_node (node, "ASUrl")) + as_url = TRUE; + else if (ews_client_check_node (node, "OABUrl")) + oab_url = TRUE; + + if (as_url && oab_url) + break; + } + + return as_url && oab_url; +} + +static void +ews_client_autodiscover_response_cb (SoupSession *session, SoupMessage *msg, gpointer user_data) +{ + GError *error = NULL; + AutodiscoverData *data = user_data; + gboolean op_res = FALSE; + guint idx; + guint status; + gsize size; + xmlDoc *doc; + xmlNode *node; + + size = sizeof (data->msgs) / sizeof (data->msgs[0]); + + for (idx = 0; idx < size; idx++) + { + if (data->msgs[idx] == msg) + break; + } + if (idx == size || data->pending == 0) + return; + + data->msgs[idx] = NULL; + status = msg->status_code; + + /* status == SOUP_STATUS_CANCELLED, if we are being aborted by the + * GCancellable, an SSL error or another message that was + * successful. + */ + if (status == SOUP_STATUS_CANCELLED) + { + /* If a previous autodiscover attempt for the same GAsyncResult + * was successful then no additional attempts are required and + * we should use the result from the earlier attempt. + */ + op_res = g_simple_async_result_get_op_res_gboolean (data->res); + goto out; + } + else if (status != SOUP_STATUS_OK) + { + g_warning ("goa_ews_client_autodiscover() failed: %u — %s", msg->status_code, msg->reason_phrase); + goa_utils_set_error_soup (&error, msg); + goto out; + } + + soup_buffer_free (soup_message_body_flatten (SOUP_MESSAGE (msg)->response_body)); + g_debug ("The response headers"); + g_debug ("==================="); + g_debug ("%s", SOUP_MESSAGE (msg)->response_body->data); + + doc = xmlReadMemory (msg->response_body->data, msg->response_body->length, "autodiscover.xml", NULL, 0); + if (doc == NULL) + { + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Failed to parse autodiscover response XML")); + goto out; + } + + node = xmlDocGetRootElement (doc); + if (g_strcmp0 ((gchar *) node->name, "Autodiscover")) + { + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + /* Translators: the parameter is an XML element name. */ + _("Failed to find “%s” element"), "Autodiscover"); + goto out; + } + + for (node = node->children; node; node = node->next) + { + if (ews_client_check_node (node, "Response")) + break; + } + if (node == NULL) + { + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + /* Translators: the parameter is an XML element name. */ + _("Failed to find “%s” element"), "Response"); + goto out; + } + + for (node = node->children; node; node = node->next) + { + if (ews_client_check_node (node, "Account")) + break; + } + if (node == NULL) + { + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + /* Translators: the parameter is an XML element name. */ + _("Failed to find “%s” element"), "Account"); + goto out; + } + + for (node = node->children; node; node = node->next) + { + if (ews_client_check_node (node, "Protocol")) + { + op_res = ews_client_autodiscover_parse_protocol (node); + /* Since the server may send back multiple nodes + * don't break unless we found the one we want. + */ + if (op_res) + break; + } + } + if (!op_res) + { + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific*/ + _("Failed to find ASUrl and OABUrl in autodiscover response")); + goto out; + } + + /* This autodiscover attempt was successful. Save the result now so + * that it won't get lost when we hear from another autodiscover + * attempt for the same GAsyncResult. + */ + g_simple_async_result_set_op_res_gboolean (data->res, op_res); + + for (idx = 0; idx < size; idx++) + { + if (data->msgs[idx] != NULL) + { + /* The callback (ie. this function) will be invoked after we + * have returned to the main loop. + */ + soup_session_cancel_message (data->session, data->msgs[idx], SOUP_STATUS_CANCELLED); + } + } + + out: + /* error == NULL, if we are being aborted by the GCancellable, an + * SSL error or another message that was successful. + */ + if (!op_res) + { + /* There's another request outstanding. + * Hope that it has better luck. + */ + if (data->pending > 1) + g_clear_error (&error); + + if (error != NULL) + g_simple_async_result_take_error (data->res, error); + } + + data->pending--; + if (data->pending == 0) + { + GMainContext *context; + GSource *source; + + /* The result of the GAsyncResult should already be set when we + * get here. If it wasn't explicitly set to TRUE then + * autodiscovery has failed and the default value of the + * GAsyncResult (which is FALSE) should be returned to the + * original caller. + */ + + source = g_idle_source_new (); + g_source_set_priority (source, G_PRIORITY_DEFAULT_IDLE); + g_source_set_callback (source, ews_client_autodiscover_data_free, data, NULL); + g_source_set_name (source, "[goa] ews_client_autodiscover_data_free"); + + context = g_main_context_get_thread_default (); + g_source_attach (source, context); + g_source_unref (source); + } +} + +static xmlDoc * +ews_client_create_autodiscover_xml (const gchar *email) +{ + xmlDoc *doc; + xmlNode *node; + xmlNs *ns; + + doc = xmlNewDoc ((xmlChar *) "1.0"); + + node = xmlNewDocNode (doc, NULL, (xmlChar *) "Autodiscover", NULL); + xmlDocSetRootElement (doc, node); + ns = xmlNewNs (node, + (xmlChar *) "http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006", + NULL); + + node = xmlNewChild (node, ns, (xmlChar *) "Request", NULL); + xmlNewChild (node, ns, (xmlChar *) "EMailAddress", (xmlChar *) email); + xmlNewChild (node, + ns, + (xmlChar *) "AcceptableResponseSchema", + (xmlChar *) "http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a"); + + return doc; +} + +static void +ews_client_post_restarted_cb (SoupMessage *msg, gpointer data) +{ + xmlOutputBuffer *buf = data; + + /* In violation of RFC2616, libsoup will change a POST request to + * a GET on receiving a 302 redirect. + */ + g_debug ("Working around libsoup bug with redirect"); + g_object_set (msg, SOUP_MESSAGE_METHOD, "POST", NULL); + + soup_message_set_request(msg, + "text/xml; charset=utf-8", + SOUP_MEMORY_COPY, +#ifdef LIBXML2_NEW_BUFFER + (gchar *) xmlOutputBufferGetContent(buf), + xmlOutputBufferGetSize(buf)); +#else + (gchar *) buf->buffer->content, + buf->buffer->use); +#endif +} + +static SoupMessage * +ews_client_create_msg_for_url (const gchar *url, xmlOutputBuffer *buf) +{ + SoupMessage *msg; + + msg = soup_message_new (buf != NULL ? "POST" : "GET", url); + soup_message_headers_append (msg->request_headers, "User-Agent", "libews/0.1"); + + if (buf != NULL) + { + soup_message_set_request (msg, + "text/xml; charset=utf-8", + SOUP_MEMORY_COPY, +#ifdef LIBXML2_NEW_BUFFER + (gchar *) xmlOutputBufferGetContent(buf), + xmlOutputBufferGetSize(buf)); +#else + (gchar *) buf->buffer->content, + buf->buffer->use); +#endif + g_signal_connect (msg, "restarted", G_CALLBACK (ews_client_post_restarted_cb), buf); + } + + soup_buffer_free (soup_message_body_flatten (SOUP_MESSAGE (msg)->request_body)); + g_debug ("The request headers"); + g_debug ("==================="); + g_debug ("%s", SOUP_MESSAGE (msg)->request_body->data); + + return msg; +} + +void +goa_ews_client_autodiscover (GoaEwsClient *self, + const gchar *email, + const gchar *password, + const gchar *username, + const gchar *server, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + AutodiscoverData *data; + AutodiscoverAuthData *auth; + gchar *url1; + gchar *url2; + xmlDoc *doc; + xmlOutputBuffer *buf; + + g_return_if_fail (GOA_IS_EWS_CLIENT (self)); + g_return_if_fail (email != NULL && email[0] != '\0'); + g_return_if_fail (password != NULL && password[0] != '\0'); + g_return_if_fail (username != NULL && username[0] != '\0'); + g_return_if_fail (server != NULL && server[0] != '\0'); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + doc = ews_client_create_autodiscover_xml (email); + buf = xmlAllocOutputBuffer (NULL); + xmlNodeDumpOutput (buf, doc, xmlDocGetRootElement (doc), 0, 1, NULL); + xmlOutputBufferFlush (buf); + + url1 = g_strdup_printf ("https://%s/autodiscover/autodiscover.xml", server); + url2 = g_strdup_printf ("https://autodiscover.%s/autodiscover/autodiscover.xml", server); + + /* http://msdn.microsoft.com/en-us/library/ee332364.aspx says we are + * supposed to try $domain and then autodiscover.$domain. But some + * people have broken firewalls on the former which drop packets + * instead of rejecting connections, and make the request take ages + * to time out. So run both queries in parallel and let the fastest + * (successful) one win. + */ + data = g_slice_new0 (AutodiscoverData); + data->buf = buf; + data->res = g_simple_async_result_new (G_OBJECT (self), callback, user_data, goa_ews_client_autodiscover); + data->msgs[0] = ews_client_create_msg_for_url (url1, buf); + data->msgs[1] = ews_client_create_msg_for_url (url2, buf); + data->pending = sizeof (data->msgs) / sizeof (data->msgs[0]); + data->session = soup_session_new_with_options (SOUP_SESSION_SSL_STRICT, FALSE, + NULL); + soup_session_add_feature_by_type (data->session, SOUP_TYPE_AUTH_NTLM); + data->accept_ssl_errors = accept_ssl_errors; + + if (cancellable != NULL) + { + data->cancellable = g_object_ref (cancellable); + data->cancellable_id = g_cancellable_connect (data->cancellable, + G_CALLBACK (ews_client_autodiscover_cancelled_cb), + data, + NULL); + g_simple_async_result_set_check_cancellable (data->res, data->cancellable); + } + + auth = g_slice_new0 (AutodiscoverAuthData); + auth->username = g_strdup (username); + auth->password = g_strdup (password); + g_signal_connect_data (data->session, + "authenticate", + G_CALLBACK (ews_client_authenticate), + auth, + ews_client_autodiscover_auth_data_free, + 0); + + g_signal_connect (data->session, "request-started", G_CALLBACK (ews_client_request_started), data); + + soup_session_queue_message (data->session, data->msgs[0], ews_client_autodiscover_response_cb, data); + soup_session_queue_message (data->session, data->msgs[1], ews_client_autodiscover_response_cb, data); + + g_free (url2); + g_free (url1); + xmlFreeDoc (doc); +} + +gboolean +goa_ews_client_autodiscover_finish (GoaEwsClient *self, GAsyncResult *res, GError **error) +{ + GSimpleAsyncResult *simple; + + g_return_val_if_fail (g_simple_async_result_is_valid (res, G_OBJECT (self), goa_ews_client_autodiscover), + FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + simple = G_SIMPLE_ASYNC_RESULT (res); + + if (g_simple_async_result_propagate_error (simple, error)) + return FALSE; + + return g_simple_async_result_get_op_res_gboolean (simple); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GError **error; + GMainLoop *loop; + gboolean op_res; +} AutodiscoverSyncData; + +static void +ews_client_autodiscover_sync_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + AutodiscoverSyncData *data = user_data; + + data->op_res = goa_ews_client_autodiscover_finish (GOA_EWS_CLIENT (source_object), res, data->error); + g_main_loop_quit (data->loop); +} + +gboolean +goa_ews_client_autodiscover_sync (GoaEwsClient *self, + const gchar *email, + const gchar *password, + const gchar *username, + const gchar *server, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GError **error) +{ + AutodiscoverSyncData data; + GMainContext *context = NULL; + + data.error = error; + + context = g_main_context_new (); + g_main_context_push_thread_default (context); + data.loop = g_main_loop_new (context, FALSE); + + goa_ews_client_autodiscover (self, + email, + password, + username, + server, + accept_ssl_errors, + cancellable, + ews_client_autodiscover_sync_cb, + &data); + g_main_loop_run (data.loop); + g_main_loop_unref (data.loop); + + g_main_context_pop_thread_default (context); + g_main_context_unref (context); + + return data.op_res; +} diff --git a/src/goabackend/goaewsclient.h b/src/goabackend/goaewsclient.h new file mode 100644 index 0000000..04e4c57 --- /dev/null +++ b/src/goabackend/goaewsclient.h @@ -0,0 +1,59 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_EWS_CLIENT_H__ +#define __GOA_EWS_CLIENT_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_EWS_CLIENT (goa_ews_client_get_type ()) +G_DECLARE_FINAL_TYPE (GoaEwsClient, goa_ews_client, GOA, EWS_CLIENT, GObject); + +GoaEwsClient *goa_ews_client_new (void); +void goa_ews_client_autodiscover (GoaEwsClient *self, + const gchar *email, + const gchar *password, + const gchar *username, + const gchar *server, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer gpointer); +gboolean goa_ews_client_autodiscover_finish (GoaEwsClient *self, + GAsyncResult *res, + GError **error); +gboolean goa_ews_client_autodiscover_sync (GoaEwsClient *self, + const gchar *email, + const gchar *password, + const gchar *username, + const gchar *server, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __GOA_EWS_CLIENT_H__ */ diff --git a/src/goabackend/goaexchangeprovider.c b/src/goabackend/goaexchangeprovider.c new file mode 100644 index 0000000..fb6a5eb --- /dev/null +++ b/src/goabackend/goaexchangeprovider.c @@ -0,0 +1,878 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include "goaewsclient.h" +#include "goaprovider.h" +#include "goaexchangeprovider.h" +#include "goaobjectskeletonutils.h" +#include "goautils.h" + +struct _GoaExchangeProvider +{ + GoaProvider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaExchangeProvider, goa_exchange_provider, GOA_TYPE_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_EXCHANGE_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_EXCHANGE_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, GoaObject *object) +{ + return g_strdup(_("Microsoft Exchange")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_MAIL | + GOA_PROVIDER_FEATURE_CALENDAR | + GOA_PROVIDER_FEATURE_CONTACTS; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean on_handle_get_password (GoaPasswordBased *interface, + GDBusMethodInvocation *invocation, + const gchar *id, + gpointer user_data); + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + GoaExchange *exchange = NULL; + GoaMail *mail = NULL; + GoaPasswordBased *password_based = NULL; + gboolean calendar_enabled; + gboolean contacts_enabled; + gboolean mail_enabled; + gboolean ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_exchange_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + password_based = goa_object_get_password_based (GOA_OBJECT (object)); + if (password_based == NULL) + { + password_based = goa_password_based_skeleton_new (); + /* Ensure D-Bus method invocations run in their own thread */ + g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (password_based), + G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); + goa_object_skeleton_set_password_based (object, password_based); + g_signal_connect (password_based, + "handle-get-password", + G_CALLBACK (on_handle_get_password), + NULL); + } + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Email */ + mail = goa_object_get_mail (GOA_OBJECT (object)); + mail_enabled = g_key_file_get_boolean (key_file, group, "MailEnabled", NULL); + if (mail_enabled) + { + if (mail == NULL) + { + const gchar *email_address; + + email_address = goa_account_get_presentation_identity (account); + mail = goa_mail_skeleton_new (); + g_object_set (G_OBJECT (mail), "email-address", email_address, NULL); + goa_object_skeleton_set_mail (object, mail); + } + } + else + { + if (mail != NULL) + goa_object_skeleton_set_mail (object, NULL); + } + + /* Calendar */ + calendar_enabled = g_key_file_get_boolean (key_file, group, "CalendarEnabled", NULL); + goa_object_skeleton_attach_calendar (object, NULL, calendar_enabled, FALSE); + + /* Contacts */ + contacts_enabled = g_key_file_get_boolean (key_file, group, "ContactsEnabled", NULL); + goa_object_skeleton_attach_contacts (object, NULL, contacts_enabled, FALSE); + + /* Exchange */ + exchange = goa_object_get_exchange (GOA_OBJECT (object)); + if (exchange == NULL) + { + gboolean accept_ssl_errors; + gchar *host; + + accept_ssl_errors = g_key_file_get_boolean (key_file, group, "AcceptSslErrors", NULL); + host = g_key_file_get_string (key_file, group, "Host", NULL); + exchange = goa_exchange_skeleton_new (); + g_object_set (G_OBJECT (exchange), + "accept-ssl-errors", accept_ssl_errors, + "host", host, + NULL); + goa_object_skeleton_set_exchange (object, exchange); + g_free (host); + } + + if (just_added) + { + goa_account_set_mail_disabled (account, !mail_enabled); + goa_account_set_calendar_disabled (account, !calendar_enabled); + goa_account_set_contacts_disabled (account, !contacts_enabled); + + g_signal_connect (account, + "notify::mail-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "MailEnabled"); + g_signal_connect (account, + "notify::calendar-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "CalendarEnabled"); + g_signal_connect (account, + "notify::contacts-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "ContactsEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&exchange); + g_clear_object (&mail); + g_clear_object (&password_based); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +ensure_credentials_sync (GoaProvider *provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GoaAccount *account; + GoaEwsClient *ews_client = NULL; + GoaExchange *exchange; + gboolean accept_ssl_errors; + gboolean ret = FALSE; + const gchar *email_address; + const gchar *server; + gchar *username = NULL; + gchar *password = NULL; + + if (!goa_utils_get_credentials (provider, object, "password", &username, &password, cancellable, error)) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + account = goa_object_peek_account (object); + email_address = goa_account_get_presentation_identity (account); + exchange = goa_object_peek_exchange (object); + accept_ssl_errors = goa_exchange_get_accept_ssl_errors (exchange); + server = goa_exchange_get_host (exchange); + + ews_client = goa_ews_client_new (); + if (!goa_ews_client_autodiscover_sync (ews_client, + email_address, + password, + username, + server, + accept_ssl_errors, + cancellable, + error)) + { + if (error != NULL) + { + g_prefix_error (error, + /* Translators: the first %s is the username + * (eg., debarshi.ray@gmail.com or rishi), and the + * (%s, %d) is the error domain and code. + */ + _("Invalid password with username “%s” (%s, %d): "), + username, + g_quark_to_string ((*error)->domain), + (*error)->code); + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + if (out_expires_in != NULL) + *out_expires_in = 0; + + ret = TRUE; + + out: + g_clear_object (&ews_client); + g_free (username); + g_free (password); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_entry (GtkWidget *grid, + gint row, + const gchar *text, + GtkWidget **out_entry) +{ + GtkStyleContext *context; + GtkWidget *label; + GtkWidget *entry; + + label = gtk_label_new_with_mnemonic (text); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); + + entry = gtk_entry_new (); + gtk_widget_set_hexpand (entry, TRUE); + gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); + gtk_grid_attach (GTK_GRID (grid), entry, 1, row, 3, 1); + + gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); + if (out_entry != NULL) + *out_entry = entry; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GCancellable *cancellable; + + GtkDialog *dialog; + GMainLoop *loop; + + GtkWidget *cluebar; + GtkWidget *cluebar_label; + GtkWidget *connect_button; + GtkWidget *progress_grid; + + GtkWidget *email_address; + GtkWidget *password; + + GtkWidget *expander; + GtkWidget *username; + GtkWidget *server; + + gchar *account_object_path; + + GError *error; +} AddAccountData; + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +on_email_address_or_password_changed (GtkEditable *editable, gpointer user_data) +{ + AddAccountData *data = user_data; + gboolean can_add = FALSE; + const gchar *email; + gchar *domain = NULL; + gchar *url = NULL; + gchar *username = NULL; + + email = gtk_entry_get_text (GTK_ENTRY (data->email_address)); + if (!goa_utils_parse_email_address (email, &username, &domain)) + goto out; + + if (data->username != NULL) + gtk_entry_set_text (GTK_ENTRY (data->username), username); + + if (data->server != NULL) + gtk_entry_set_text (GTK_ENTRY (data->server), domain); + + can_add = gtk_entry_get_text_length (GTK_ENTRY (data->password)) != 0; + + out: + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, can_add); + g_free (url); + g_free (domain); + g_free (username); +} + +static void +create_account_details_ui (GoaProvider *provider, + GtkDialog *dialog, + GtkBox *vbox, + gboolean new_account, + AddAccountData *data) +{ + GtkWidget *grid0; + GtkWidget *grid1; + GtkWidget *label; + GtkWidget *spinner; + gint row; + gint width; + + goa_utils_set_dialog_title (provider, dialog, new_account); + + grid0 = gtk_grid_new (); + gtk_container_set_border_width (GTK_CONTAINER (grid0), 5); + gtk_widget_set_margin_bottom (grid0, 6); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid0), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid0), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid0); + + data->cluebar = gtk_info_bar_new (); + gtk_info_bar_set_message_type (GTK_INFO_BAR (data->cluebar), GTK_MESSAGE_ERROR); + gtk_widget_set_hexpand (data->cluebar, TRUE); + gtk_widget_set_no_show_all (data->cluebar, TRUE); + gtk_container_add (GTK_CONTAINER (grid0), data->cluebar); + + data->cluebar_label = gtk_label_new (""); + gtk_label_set_line_wrap (GTK_LABEL (data->cluebar_label), TRUE); + gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (data->cluebar))), + data->cluebar_label); + + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_container_add (GTK_CONTAINER (grid0), grid1); + + row = 0; + add_entry (grid1, row++, _("_E-mail"), &data->email_address); + add_entry (grid1, row++, _("_Password"), &data->password); + if (new_account) + { + data->expander = gtk_expander_new_with_mnemonic (_("_Custom")); + gtk_expander_set_expanded (GTK_EXPANDER (data->expander), FALSE); + gtk_expander_set_resize_toplevel (GTK_EXPANDER (data->expander), TRUE); + gtk_container_add (GTK_CONTAINER (grid0), data->expander); + + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_container_add (GTK_CONTAINER (data->expander), grid1); + + row = 0; + add_entry (grid1, row++, _("User_name"), &data->username); + add_entry (grid1, row++, _("_Server"), &data->server); + } + + gtk_entry_set_visibility (GTK_ENTRY (data->password), FALSE); + + gtk_widget_grab_focus ((new_account) ? data->email_address : data->password); + + g_signal_connect (data->email_address, "changed", G_CALLBACK (on_email_address_or_password_changed), data); + g_signal_connect (data->password, "changed", G_CALLBACK (on_email_address_or_password_changed), data); + + gtk_dialog_add_button (data->dialog, _("_Cancel"), GTK_RESPONSE_CANCEL); + data->connect_button = gtk_dialog_add_button (data->dialog, _("C_onnect"), GTK_RESPONSE_OK); + gtk_dialog_set_default_response (data->dialog, GTK_RESPONSE_OK); + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, FALSE); + + data->progress_grid = gtk_grid_new (); + gtk_widget_set_no_show_all (data->progress_grid, TRUE); + gtk_orientable_set_orientation (GTK_ORIENTABLE (data->progress_grid), GTK_ORIENTATION_HORIZONTAL); + gtk_grid_set_column_spacing (GTK_GRID (data->progress_grid), 3); + gtk_container_add (GTK_CONTAINER (grid0), data->progress_grid); + + spinner = gtk_spinner_new (); + gtk_widget_set_size_request (spinner, 20, 20); + gtk_widget_show (spinner); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_container_add (GTK_CONTAINER (data->progress_grid), spinner); + + label = gtk_label_new (_("Connecting…")); + gtk_widget_show (label); + gtk_container_add (GTK_CONTAINER (data->progress_grid), label); + + if (new_account) + { + gtk_window_get_size (GTK_WINDOW (data->dialog), &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), width, -1); + } + else + { + GtkWindow *parent; + + /* Keep in sync with GoaPanelAddAccountDialog in + * gnome-control-center. + */ + parent = gtk_window_get_transient_for (GTK_WINDOW (data->dialog)); + if (parent != NULL) + { + gtk_window_get_size (parent, &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), (gint) (0.5 * width), -1); + } + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_cb (GoaManager *manager, GAsyncResult *res, gpointer user_data) +{ + AddAccountData *data = user_data; + goa_manager_call_add_account_finish (manager, + &data->account_object_path, + res, + &data->error); + g_main_loop_quit (data->loop); +} + +static void +autodiscover_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GoaEwsClient *client = GOA_EWS_CLIENT (source_object); + AddAccountData *data = user_data; + + goa_ews_client_autodiscover_finish (client, res, &data->error); + g_main_loop_quit (data->loop); + gtk_widget_set_sensitive (data->connect_button, TRUE); + gtk_widget_hide (data->progress_grid); +} + +static void +dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer user_data) +{ + AddAccountData *data = user_data; + + if (response_id == GTK_RESPONSE_CANCEL || response_id == GTK_RESPONSE_DELETE_EVENT) + g_cancellable_cancel (data->cancellable); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaObject * +add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + AddAccountData data; + GVariantBuilder credentials; + GVariantBuilder details; + GoaEwsClient *ews_client = NULL; + GoaObject *ret = NULL; + gboolean accept_ssl_errors = FALSE; + const gchar *email_address; + const gchar *server; + const gchar *password; + const gchar *username; + const gchar *provider_type; + gint response; + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = dialog; + data.error = NULL; + + create_account_details_ui (provider, dialog, vbox, TRUE, &data); + gtk_widget_show_all (GTK_WIDGET (vbox)); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + ews_client = goa_ews_client_new (); + + ews_again: + response = gtk_dialog_run (dialog); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + email_address = gtk_entry_get_text (GTK_ENTRY (data.email_address)); + password = gtk_entry_get_text (GTK_ENTRY (data.password)); + username = gtk_entry_get_text (GTK_ENTRY (data.username)); + server = gtk_entry_get_text (GTK_ENTRY (data.server)); + + /* See if there's already an account of this type with the + * given identity + */ + provider_type = goa_provider_get_provider_type (provider); + if (!goa_utils_check_duplicate (client, + username, + email_address, + provider_type, + (GoaPeekInterfaceFunc) goa_object_peek_password_based, + &data.error)) + goto out; + + g_cancellable_reset (data.cancellable); + goa_ews_client_autodiscover (ews_client, + email_address, + password, + username, + server, + accept_ssl_errors, + data.cancellable, + autodiscover_cb, + &data); + gtk_widget_set_sensitive (data.connect_button, FALSE); + gtk_widget_show (data.progress_grid); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + if (data.error->code == GOA_ERROR_SSL) + { + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Ignore")); + accept_ssl_errors = TRUE; + } + else + { + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Try Again")); + accept_ssl_errors = FALSE; + } + + markup = g_strdup_printf ("%s:\n%s", + _("Error connecting to Microsoft Exchange server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_expander_set_expanded (GTK_EXPANDER (data.expander), TRUE); + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + goto ews_again; + } + + gtk_widget_hide (GTK_WIDGET (dialog)); + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&credentials, "{sv}", "password", g_variant_new_string (password)); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "MailEnabled", "true"); + g_variant_builder_add (&details, "{ss}", "CalendarEnabled", "true"); + g_variant_builder_add (&details, "{ss}", "ContactsEnabled", "true"); + g_variant_builder_add (&details, "{ss}", "Host", server); + g_variant_builder_add (&details, "{ss}", "AcceptSslErrors", (accept_ssl_errors) ? "true" : "false"); + + /* OK, everything is dandy, add the account */ + /* we want the GoaClient to update before this method returns (so it + * can create a proxy for the new object) so run the mainloop while + * waiting for this to complete + */ + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (provider), + username, + email_address, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + &data); + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + + ret = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + data.account_object_path)); + + out: + /* We might have an object even when data.error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (data.error != NULL) + g_propagate_error (error, data.error); + else + g_assert (ret != NULL); + + g_signal_handlers_disconnect_by_func (dialog, dialog_response_cb, &data); + + g_free (data.account_object_path); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&data.cancellable); + g_clear_object (&ews_client); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + AddAccountData data; + GVariantBuilder builder; + GoaAccount *account; + GoaEwsClient *ews_client = NULL; + GoaExchange *exchange; + GtkWidget *dialog; + GtkWidget *vbox; + gboolean accept_ssl_errors; + gboolean ret = FALSE; + const gchar *email_address; + const gchar *server; + const gchar *password; + const gchar *username; + gint response; + + g_return_val_if_fail (GOA_IS_EXCHANGE_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + dialog = gtk_dialog_new_with_buttons (NULL, + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + NULL, + NULL); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + + vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_set_spacing (GTK_BOX (vbox), 12); + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = GTK_DIALOG (dialog); + data.error = NULL; + + create_account_details_ui (provider, GTK_DIALOG (dialog), GTK_BOX (vbox), FALSE, &data); + + account = goa_object_peek_account (object); + email_address = goa_account_get_presentation_identity (account); + gtk_entry_set_text (GTK_ENTRY (data.email_address), email_address); + gtk_editable_set_editable (GTK_EDITABLE (data.email_address), FALSE); + + gtk_widget_show_all (dialog); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + ews_client = goa_ews_client_new (); + + ews_again: + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + password = gtk_entry_get_text (GTK_ENTRY (data.password)); + username = goa_account_get_identity (account); + + exchange = goa_object_peek_exchange (object); + accept_ssl_errors = goa_exchange_get_accept_ssl_errors (exchange); + server = goa_exchange_get_host (exchange); + + g_cancellable_reset (data.cancellable); + goa_ews_client_autodiscover (ews_client, + email_address, + password, + username, + server, + accept_ssl_errors, + data.cancellable, + autodiscover_cb, + &data); + gtk_widget_set_sensitive (data.connect_button, FALSE); + gtk_widget_show (data.progress_grid); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + markup = g_strdup_printf ("%s:\n%s", + _("Error connecting to Microsoft Exchange server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Try Again")); + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + goto ews_again; + } + + /* TODO: run in worker thread */ + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&builder, "{sv}", "password", g_variant_new_string (password)); + + if (!goa_utils_store_credentials_for_object_sync (provider, + object, + g_variant_builder_end (&builder), + NULL, /* GCancellable */ + &data.error)) + goto out; + + goa_account_call_ensure_credentials (account, + NULL, /* GCancellable */ + NULL, NULL); /* callback, user_data */ + + ret = TRUE; + + out: + if (data.error != NULL) + g_propagate_error (error, data.error); + + gtk_widget_destroy (dialog); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&data.cancellable); + g_clear_object (&ews_client); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_exchange_provider_init (GoaExchangeProvider *self) +{ +} + +static void +goa_exchange_provider_class_init (GoaExchangeProviderClass *klass) +{ + GoaProviderClass *provider_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->add_account = add_account; + provider_class->refresh_account = refresh_account; + provider_class->build_object = build_object; + provider_class->ensure_credentials_sync = ensure_credentials_sync; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +on_handle_get_password (GoaPasswordBased *interface, + GDBusMethodInvocation *invocation, + const gchar *id, /* unused */ + gpointer user_data) +{ + GoaObject *object; + GoaAccount *account; + GoaProvider *provider; + GError *error; + const gchar *account_id; + const gchar *method_name; + const gchar *provider_type; + gchar *password = NULL; + + /* TODO: maybe log what app is requesting access */ + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (interface))); + account = goa_object_peek_account (object); + account_id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + method_name = g_dbus_method_invocation_get_method_name (invocation); + g_debug ("Handling %s for account (%s, %s)", method_name, provider_type, account_id); + + provider = goa_provider_get_for_provider_type (provider_type); + + error = NULL; + if (!goa_utils_get_credentials (provider, object, "password", NULL, &password, NULL, &error)) + { + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + goa_password_based_complete_get_password (interface, invocation, password); + + out: + g_free (password); + g_object_unref (provider); + return TRUE; /* invocation was handled */ +} diff --git a/src/goabackend/goaexchangeprovider.h b/src/goabackend/goaexchangeprovider.h new file mode 100644 index 0000000..374e1b3 --- /dev/null +++ b/src/goabackend/goaexchangeprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_EXCHANGE_PROVIDER_H__ +#define __GOA_EXCHANGE_PROVIDER_H__ + +#include + +#include "goaprovider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_EXCHANGE_PROVIDER (goa_exchange_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaExchangeProvider, goa_exchange_provider, GOA, EXCHANGE_PROVIDER, GoaProvider); + +G_END_DECLS + +#endif /* __GOA_EXCHANGE_PROVIDER_H__ */ diff --git a/src/goabackend/goafacebookprovider.c b/src/goabackend/goafacebookprovider.c new file mode 100644 index 0000000..c6033fb --- /dev/null +++ b/src/goabackend/goafacebookprovider.c @@ -0,0 +1,372 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaoauth2provider.h" +#include "goafacebookprovider.h" +#include "goaobjectskeletonutils.h" +#include "goarestproxy.h" + +struct _GoaFacebookProvider +{ + GoaOAuth2Provider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaFacebookProvider, goa_facebook_provider, GOA_TYPE_OAUTH2_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_FACEBOOK_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_FACEBOOK_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Facebook")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_PHOTOS | + GOA_PROVIDER_FEATURE_MAPS; +} + +/* facebook client flow sends a different auth query then the base + * OAuth2Provider */ +static gchar * +build_authorization_uri (GoaOAuth2Provider *oauth2_provider, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope) +{ + gchar *uri; + + uri = g_strdup_printf ("%s" + "?response_type=token" + "&display=popup" + "&redirect_uri=%s" + "&client_id=%s" + "&scope=%s", + authorization_uri, + escaped_redirect_uri, + escaped_client_id, + escaped_scope); + return uri; +} + +static const gchar * +get_authorization_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://www.facebook.com/dialog/oauth"; +} + +static const gchar * +get_redirect_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://www.facebook.com/connect/login_success.html"; +} + +static const gchar * +get_scope (GoaOAuth2Provider *oauth2_provider) +{ + /* see https://developers.facebook.com/docs/authentication/permissions/ */ + /* Note: Email is requested to obtain a human understandable unique Id */ + return + "user_events," + "email," + "user_photos," + "user_status," + "publish_actions"; +} + +static guint +get_credentials_generation (GoaProvider *provider) +{ + return 3; +} + +static const gchar * +get_client_id (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_FACEBOOK_CLIENT_ID; +} + +static const gchar * +get_client_secret (GoaOAuth2Provider *oauth2_provider) +{ + /* not used in Facebook's Client Flow Auth, we don't want to use anything + * even if passed at configture time, since it would interfere with the URL + * creation */ + return NULL; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_identity_sync (GoaOAuth2Provider *oauth2_provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + GError *identity_error = NULL; + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + JsonParser *parser = NULL; + JsonObject *json_object; + gchar *ret = NULL; + gchar *id = NULL; + gchar *presentation_identity = NULL; + + /* TODO: cancellable */ + + proxy = goa_rest_proxy_new ("https://graph.facebook.com/me", FALSE); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "GET"); + rest_proxy_call_add_params (call, + "access_token", access_token, + "fields", "id,email", + NULL); + + if (!rest_proxy_call_sync (call, error)) + goto out; + if (rest_proxy_call_get_status_code (call) != 200) + { + /* 400 means that the access_token has expired, but there is no reason + * to handle it here, in case it is expired AttentionNeeded will be set + * to TRUE. Everytime the user logs with a valid access token, the + * expiration time for this token will be extended by facebook, allowing + * virtually infinite lasting tokens */ + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Expected status 200 when requesting your identity, instead got status %d (%s)"), + rest_proxy_call_get_status_code (call), + rest_proxy_call_get_status_message (call)); + goto out; + } + + parser = json_parser_new (); + if (!json_parser_load_from_data (parser, + rest_proxy_call_get_payload (call), + rest_proxy_call_get_payload_length (call), + &identity_error)) + { + g_warning ("json_parser_load_from_data() failed: %s (%s, %d)", + identity_error->message, + g_quark_to_string (identity_error->domain), + identity_error->code); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (json_object, "id")) + { + g_warning ("Did not find id in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + if (!json_object_has_member (json_object, "email")) + { + g_warning ("Did not find email in JSON data"); + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + id = g_strdup (json_object_get_string_member (json_object, "id")); + presentation_identity = g_strdup (json_object_get_string_member (json_object, "email")); + + ret = id; + id = NULL; + if (out_presentation_identity != NULL) + { + *out_presentation_identity = presentation_identity; + presentation_identity = NULL; + } + + out: + g_clear_error (&identity_error); + g_clear_object (&call); + g_clear_object (&parser); + g_clear_object (&proxy); + g_free (id); + g_free (presentation_identity); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_identity_node (GoaOAuth2Provider *oauth2_provider, WebKitDOMHTMLInputElement *element) +{ + gboolean ret = FALSE; + gchar *element_type = NULL; + gchar *name = NULL; + + g_object_get (element, "type", &element_type, NULL); + if (g_strcmp0 (element_type, "text") != 0) + goto out; + + name = webkit_dom_html_input_element_get_name (element); + if (g_strcmp0 (name, "email") != 0) + goto out; + + ret = TRUE; + + out: + g_free (element_type); + g_free (name); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + gboolean photos_enabled; + gboolean maps_enabled; + gboolean ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_facebook_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Photos */ + photos_enabled = g_key_file_get_boolean (key_file, group, "PhotosEnabled", NULL); + goa_object_skeleton_attach_photos (object, photos_enabled); + + if (just_added) + { + goa_account_set_photos_disabled (account, !photos_enabled); + + g_signal_connect (account, + "notify::photos-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "PhotosEnabled"); + } + + /* Maps */ + maps_enabled = g_key_file_get_boolean (key_file, group, "MapsEnabled", NULL); + goa_object_skeleton_attach_maps (object, maps_enabled); + + if (just_added) + { + goa_account_set_maps_disabled (account, !maps_enabled); + g_signal_connect (account, + "notify::maps-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "MapsEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_key_values (GoaOAuth2Provider *oauth2_provider, + GVariantBuilder *builder) +{ + g_variant_builder_add (builder, "{ss}", "PhotosEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "MapsEnabled", "true"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_facebook_provider_init (GoaFacebookProvider *self) +{ +} + +static void +goa_facebook_provider_class_init (GoaFacebookProviderClass *klass) +{ + GoaProviderClass *provider_class; + GoaOAuth2ProviderClass *oauth2_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->build_object = build_object; + provider_class->get_credentials_generation = get_credentials_generation; + + oauth2_class = GOA_OAUTH2_PROVIDER_CLASS (klass); + oauth2_class->get_authorization_uri = get_authorization_uri; + oauth2_class->build_authorization_uri = build_authorization_uri; + oauth2_class->get_redirect_uri = get_redirect_uri; + oauth2_class->get_scope = get_scope; + oauth2_class->get_client_id = get_client_id; + oauth2_class->get_client_secret = get_client_secret; + oauth2_class->get_identity_sync = get_identity_sync; + oauth2_class->is_identity_node = is_identity_node; + oauth2_class->add_account_key_values = add_account_key_values; +} diff --git a/src/goabackend/goafacebookprovider.h b/src/goabackend/goafacebookprovider.h new file mode 100644 index 0000000..9a9c9cc --- /dev/null +++ b/src/goabackend/goafacebookprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_FACEBOOK_PROVIDER_H__ +#define __GOA_FACEBOOK_PROVIDER_H__ + +#include + +#include "goaoauth2provider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_FACEBOOK_PROVIDER (goa_facebook_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaFacebookProvider, goa_facebook_provider, GOA, FACEBOOK_PROVIDER, GoaOAuth2Provider); + +G_END_DECLS + +#endif /* __GOA_FACEBOOK_PROVIDER_H__ */ diff --git a/src/goabackend/goaflickrprovider.c b/src/goabackend/goaflickrprovider.c new file mode 100644 index 0000000..702ed1e --- /dev/null +++ b/src/goabackend/goaflickrprovider.c @@ -0,0 +1,364 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright (C) 2011 Willem van Engen + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaflickrprovider.h" +#include "goaobjectskeletonutils.h" +#include "goasouplogger.h" + +struct _GoaFlickrProvider +{ + GoaOAuthProvider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaFlickrProvider, goa_flickr_provider, GOA_TYPE_OAUTH_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_FLICKR_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_FLICKR_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Flickr")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | GOA_PROVIDER_FEATURE_PHOTOS; +} + +static const gchar * +get_consumer_key (GoaOAuthProvider *oauth_provider) +{ + return GOA_FLICKR_CONSUMER_KEY; +} + +static const gchar * +get_consumer_secret (GoaOAuthProvider *oauth_provider) +{ + return GOA_FLICKR_CONSUMER_SECRET; +} + +static const gchar * +get_request_uri (GoaOAuthProvider *oauth_provider) +{ + return "https://www.flickr.com/services/oauth/request_token"; +} + +static const gchar * +get_authorization_uri (GoaOAuthProvider *oauth_provider) +{ + return "https://www.flickr.com/services/oauth/authorize"; +} + +static const gchar * +get_token_uri (GoaOAuthProvider *oauth_provider) +{ + return "https://www.flickr.com/services/oauth/access_token"; +} + +static const gchar * +get_callback_uri (GoaOAuthProvider *oauth_provider) +{ + /* Should match the URI specified in the Flickr App + * Garden in order to detect when the user denied access via + * the OAuth1 web page. + */ + return "https://www.gnome.org/"; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_identity_sync (GoaOAuthProvider *oauth_provider, + const gchar *access_token, + const gchar *access_token_secret, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + GError *identity_error = NULL; + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + JsonParser *parser = NULL; + JsonObject *json_object; + SoupLogger *logger = NULL; + gchar *ret = NULL; + gchar *id = NULL; + gchar *presentation_identity = NULL; + + /* TODO: cancellable */ + + proxy = oauth_proxy_new_with_token (goa_oauth_provider_get_consumer_key (oauth_provider), + goa_oauth_provider_get_consumer_secret (oauth_provider), + access_token, + access_token_secret, + "https://api.flickr.com/services/rest", + FALSE); + logger = goa_soup_logger_new (SOUP_LOGGER_LOG_BODY, -1); + rest_proxy_add_soup_feature (proxy, SOUP_SESSION_FEATURE (logger)); + + call = rest_proxy_new_call (proxy); + rest_proxy_call_add_param (call, "method", "flickr.test.login"); + rest_proxy_call_add_param (call, "format", "json"); + rest_proxy_call_add_param (call, "nojsoncallback", "1"); + rest_proxy_call_set_method (call, "GET"); + + if (!rest_proxy_call_sync (call, error)) + goto out; + if (rest_proxy_call_get_status_code (call) != 200) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Expected status 200 when requesting your identity, instead got status %d (%s)"), + rest_proxy_call_get_status_code (call), + rest_proxy_call_get_status_message (call)); + goto out; + } + + parser = json_parser_new (); + if (!json_parser_load_from_data (parser, + rest_proxy_call_get_payload (call), + rest_proxy_call_get_payload_length (call), + &identity_error)) + { + g_warning ("json_parser_load_from_data() failed: %s (%s, %d)", + identity_error->message, + g_quark_to_string (identity_error->domain), + identity_error->code); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (json_object, "user")) + { + g_warning ("Did not find user in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_object_get_object_member (json_object, "user"); + if (!json_object_has_member (json_object, "id")) + { + g_warning ("Did not find user.id in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + if (!json_object_has_member (json_object, "username")) + { + g_warning ("Did not find user.username in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + id = g_strdup (json_object_get_string_member (json_object, "id")); + + json_object = json_object_get_object_member (json_object, "username"); + if (!json_object_has_member (json_object, "_content")) + { + g_warning ("Did not find user.username._content in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + presentation_identity = g_strdup (json_object_get_string_member (json_object, "_content")); + + ret = id; + id = NULL; + if (out_presentation_identity != NULL) + { + *out_presentation_identity = presentation_identity; + presentation_identity = NULL; + } + + out: + g_clear_object (&parser); + g_clear_error (&identity_error); + g_clear_object (&call); + g_clear_object (&proxy); + g_clear_object (&logger); + g_free (id); + g_free (presentation_identity); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_identity_node (GoaOAuthProvider *oauth_provider, WebKitDOMHTMLInputElement *element) +{ + /* Flickr does not provide a way to query the string used by the + * user to log in via the web interface. The user id and username + * returned by flickr.test.login [1] are not what we are looking + * for. + * + * [1] http://www.flickr.com/services/api/flickr.test.login.html + */ + return FALSE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +parse_request_token_error (GoaOAuthProvider *oauth_provider, RestProxyCall *call) +{ + const gchar *payload; + gchar *msg = NULL; + guint status; + + payload = rest_proxy_call_get_payload (call); + status = rest_proxy_call_get_status_code (call); + + if (status == 401 && g_strcmp0 (payload, "oauth_problem=timestamp_refused") == 0) + msg = g_strdup (_("Your system time is invalid. Check your date and time settings.")); + + return msg; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + gboolean photos_enabled; + gboolean ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_flickr_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Photos */ + photos_enabled = g_key_file_get_boolean (key_file, group, "PhotosEnabled", NULL); + goa_object_skeleton_attach_photos (object, photos_enabled); + + if (just_added) + { + goa_account_set_photos_disabled (account, !photos_enabled); + + g_signal_connect (account, + "notify::photos-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "PhotosEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_key_values (GoaOAuthProvider *oauth_provider, + GVariantBuilder *builder) +{ + g_variant_builder_add (builder, "{ss}", "PhotosEnabled", "true"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_flickr_provider_init (GoaFlickrProvider *self) +{ +} + +static void +goa_flickr_provider_class_init (GoaFlickrProviderClass *klass) +{ + GoaProviderClass *provider_class; + GoaOAuthProviderClass *oauth_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->build_object = build_object; + + oauth_class = GOA_OAUTH_PROVIDER_CLASS (klass); + oauth_class->get_identity_sync = get_identity_sync; + oauth_class->is_identity_node = is_identity_node; + oauth_class->get_consumer_key = get_consumer_key; + oauth_class->get_consumer_secret = get_consumer_secret; + oauth_class->get_request_uri = get_request_uri; + oauth_class->get_authorization_uri = get_authorization_uri; + oauth_class->get_token_uri = get_token_uri; + oauth_class->get_callback_uri = get_callback_uri; + oauth_class->parse_request_token_error = parse_request_token_error; + oauth_class->add_account_key_values = add_account_key_values; +} diff --git a/src/goabackend/goaflickrprovider.h b/src/goabackend/goaflickrprovider.h new file mode 100644 index 0000000..f08a8a6 --- /dev/null +++ b/src/goabackend/goaflickrprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 Willem van Engen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_FLICKR_PROVIDER_H__ +#define __GOA_FLICKR_PROVIDER_H__ + +#include + +#include "goaoauthprovider.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_FLICKR_PROVIDER (goa_flickr_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaFlickrProvider, goa_flickr_provider, GOA, FLICKR_PROVIDER, GoaOAuthProvider); + +G_END_DECLS + +#endif /* __GOA_FLICKR_PROVIDER_H__ */ diff --git a/src/goabackend/goafoursquareprovider.c b/src/goabackend/goafoursquareprovider.c new file mode 100644 index 0000000..c1e4146 --- /dev/null +++ b/src/goabackend/goafoursquareprovider.c @@ -0,0 +1,371 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2014 Damián Nohales + * Copyright © 2015 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaoauth2provider.h" +#include "goafoursquareprovider.h" +#include "goaobjectskeletonutils.h" +#include "goarestproxy.h" + +struct _GoaFoursquareProvider +{ + GoaOAuth2Provider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaFoursquareProvider, goa_foursquare_provider, GOA_TYPE_OAUTH2_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_FOURSQUARE_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_FOURSQUARE_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Foursquare")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_MAPS; +} + +static gchar * +build_authorization_uri (GoaOAuth2Provider *oauth2_provider, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope) +{ + gchar *uri; + + uri = g_strdup_printf ("%s" + "?response_type=token" + "&redirect_uri=%s" + "&client_id=%s", + authorization_uri, + escaped_redirect_uri, + escaped_client_id); + return uri; +} + +static const gchar * +get_authorization_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://foursquare.com/oauth2/authenticate"; +} + +static const gchar * +get_redirect_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://localhost/"; +} + +static const gchar * +get_client_id (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_FOURSQUARE_CLIENT_ID; +} + +static const gchar * +get_client_secret (GoaOAuth2Provider *oauth2_provider) +{ + /* The client secret is not used in the Foursquare Token Flow + * that is the recommended flow for serverless apps. + */ + return NULL; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_identity_sync (GoaOAuth2Provider *oauth2_provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + GError *identity_error = NULL; + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + JsonParser *parser = NULL; + JsonObject *json_object; + gchar *ret = NULL; + gchar *id = NULL; + gchar *presentation_identity = NULL; + + /* TODO: cancellable */ + + proxy = goa_rest_proxy_new ("https://api.foursquare.com/v2/users/self", FALSE); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "GET"); + rest_proxy_call_add_param (call, "oauth_token", access_token); + + /* See https://developer.foursquare.com/overview/versioning */ + rest_proxy_call_add_param (call, "v", "20140226"); + + if (!rest_proxy_call_sync (call, error)) + goto out; + if (rest_proxy_call_get_status_code (call) != 200) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Expected status 200 when requesting your identity, instead got status %d (%s)"), + rest_proxy_call_get_status_code (call), + rest_proxy_call_get_status_message (call)); + goto out; + } + + parser = json_parser_new (); + if (!json_parser_load_from_data (parser, + rest_proxy_call_get_payload (call), + rest_proxy_call_get_payload_length (call), + &identity_error)) + { + g_warning ("json_parser_load_from_data() failed: %s (%s, %d)", + identity_error->message, + g_quark_to_string (identity_error->domain), + identity_error->code); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (json_object, "response")) + { + g_warning ("Did not find response in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_object_get_object_member (json_object, "response"); + if (!json_object_has_member (json_object, "user")) + { + g_warning ("Did not find response.user in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_object_get_object_member (json_object, "user"); + if (!json_object_has_member (json_object, "id")) + { + g_warning ("Did not find response.user.id in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + if (!json_object_has_member (json_object, "contact")) + { + g_warning ("Did not find response.user.contact in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + id = g_strdup (json_object_get_string_member (json_object, "id")); + + json_object = json_object_get_object_member (json_object, "contact"); + if (!json_object_has_member (json_object, "email")) + { + g_warning ("Did not find response.user.contact.email in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + presentation_identity = g_strdup (json_object_get_string_member (json_object, "email")); + + ret = id; + id = NULL; + if (out_presentation_identity != NULL) + { + *out_presentation_identity = presentation_identity; + presentation_identity = NULL; + } + + out: + g_clear_error (&identity_error); + g_clear_object (&call); + g_clear_object (&parser); + g_clear_object (&proxy); + g_free (id); + g_free (presentation_identity); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_identity_node (GoaOAuth2Provider *oauth2_provider, WebKitDOMHTMLInputElement *element) +{ + gboolean ret = FALSE; + gchar *element_type = NULL; + gchar *name = NULL; + + g_object_get (element, "type", &element_type, NULL); + if (g_strcmp0 (element_type, "email") != 0) + goto out; + + name = webkit_dom_html_input_element_get_name (element); + if (g_strcmp0 (name, "emailOrPhone") != 0) + goto out; + + ret = TRUE; + + out: + g_free (element_type); + g_free (name); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + gboolean maps_enabled; + gboolean ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_foursquare_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Maps */ + maps_enabled = g_key_file_get_boolean (key_file, group, "MapsEnabled", NULL); + goa_object_skeleton_attach_maps (object, maps_enabled); + + if (just_added) + { + goa_account_set_maps_disabled (account, !maps_enabled); + g_signal_connect (account, + "notify::maps-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "MapsEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +get_use_mobile_browser (GoaOAuth2Provider *oauth2_provider) +{ + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_key_values (GoaOAuth2Provider *oauth2_provider, + GVariantBuilder *builder) +{ + g_variant_builder_add (builder, "{ss}", "MapsEnabled", "true"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_foursquare_provider_init (GoaFoursquareProvider *self) +{ +} + +static void +goa_foursquare_provider_class_init (GoaFoursquareProviderClass *klass) +{ + GoaProviderClass *provider_class; + GoaOAuth2ProviderClass *oauth2_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->build_object = build_object; + + oauth2_class = GOA_OAUTH2_PROVIDER_CLASS (klass); + oauth2_class->get_authorization_uri = get_authorization_uri; + oauth2_class->build_authorization_uri = build_authorization_uri; + oauth2_class->get_redirect_uri = get_redirect_uri; + oauth2_class->get_client_id = get_client_id; + oauth2_class->get_client_secret = get_client_secret; + oauth2_class->get_use_mobile_browser = get_use_mobile_browser; + oauth2_class->get_identity_sync = get_identity_sync; + oauth2_class->is_identity_node = is_identity_node; + oauth2_class->add_account_key_values = add_account_key_values; +} diff --git a/src/goabackend/goafoursquareprovider.h b/src/goabackend/goafoursquareprovider.h new file mode 100644 index 0000000..a6f70c4 --- /dev/null +++ b/src/goabackend/goafoursquareprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2014 Damián Nohales + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_FOURSQUARE_PROVIDER_H__ +#define __GOA_FOURSQUARE_PROVIDER_H__ + +#include + +#include "goaoauth2provider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_FOURSQUARE_PROVIDER (goa_foursquare_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaFoursquareProvider, goa_foursquare_provider, GOA, FOURSQUARE_PROVIDER, GoaOAuth2Provider); + +G_END_DECLS + +#endif /* __GOA_FOURSQUARE_PROVIDER_H__ */ diff --git a/src/goabackend/goagoogleprovider.c b/src/goabackend/goagoogleprovider.c new file mode 100644 index 0000000..6e4ace2 --- /dev/null +++ b/src/goabackend/goagoogleprovider.c @@ -0,0 +1,478 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaoauth2provider.h" +#include "goagoogleprovider.h" +#include "goaobjectskeletonutils.h" +#include "goarestproxy.h" + +struct _GoaGoogleProvider +{ + GoaOAuth2Provider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaGoogleProvider, goa_google_provider, GOA_TYPE_OAUTH2_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_GOOGLE_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_GOOGLE_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Google")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_MAIL | + GOA_PROVIDER_FEATURE_CALENDAR | + GOA_PROVIDER_FEATURE_CONTACTS | +#ifdef GOA_TELEPATHY_ENABLED + GOA_PROVIDER_FEATURE_CHAT | +#endif + GOA_PROVIDER_FEATURE_DOCUMENTS | + GOA_PROVIDER_FEATURE_PHOTOS | + GOA_PROVIDER_FEATURE_FILES | + GOA_PROVIDER_FEATURE_PRINTERS; +} + +static const gchar * +get_authorization_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://accounts.google.com/o/oauth2/auth"; +} + +static const gchar * +get_token_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://accounts.google.com/o/oauth2/token"; +} + +static const gchar * +get_redirect_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "http://localhost"; +} + +static const gchar * +get_scope (GoaOAuth2Provider *oauth2_provider) +{ + return /* Read-only access to the user's email address */ + "https://www.googleapis.com/auth/userinfo.email " + + /* Name and picture */ + "https://www.googleapis.com/auth/userinfo.profile " + + /* Google Calendar API (CalDAV and GData) */ + "https://www.googleapis.com/auth/calendar " + + /* Google Contacts API (GData) */ + "https://www.google.com/m8/feeds/ " + + /* Google Contacts API (CardDAV) - undocumented */ + "https://www.googleapis.com/auth/carddav " + + /* Google Drive API */ + "https://www.googleapis.com/auth/drive " + + /* Google Documents List Data API */ + "https://docs.googleusercontent.com/ " + "https://spreadsheets.google.com/feeds/ " + + /* Google PicasaWeb API (GData) */ + "https://picasaweb.google.com/data/ " + + /* GMail IMAP and SMTP access */ + "https://mail.google.com/ " + + /* Google Cloud Print */ + "https://www.googleapis.com/auth/cloudprint " + +#ifdef GOA_TELEPATHY_ENABLED + /* Google Talk */ + "https://www.googleapis.com/auth/googletalk " +#endif + + /* Google Tasks - undocumented */ + "https://www.googleapis.com/auth/tasks"; +} + +static guint +get_credentials_generation (GoaProvider *provider) +{ + return 10; +} + +static const gchar * +get_client_id (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_GOOGLE_CLIENT_ID; +} + +static const gchar * +get_client_secret (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_GOOGLE_CLIENT_SECRET; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_identity_sync (GoaOAuth2Provider *oauth2_provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + GError *identity_error = NULL; + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + JsonParser *parser = NULL; + JsonObject *json_object; + gchar *ret = NULL; + gchar *email = NULL; + + /* TODO: cancellable */ + + proxy = goa_rest_proxy_new ("https://www.googleapis.com/oauth2/v2/userinfo", FALSE); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "GET"); + rest_proxy_call_add_param (call, "access_token", access_token); + rest_proxy_call_add_param (call, "fields", "email"); + + if (!rest_proxy_call_sync (call, error)) + goto out; + if (rest_proxy_call_get_status_code (call) != 200) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Expected status 200 when requesting your identity, instead got status %d (%s)"), + rest_proxy_call_get_status_code (call), + rest_proxy_call_get_status_message (call)); + goto out; + } + + parser = json_parser_new (); + if (!json_parser_load_from_data (parser, + rest_proxy_call_get_payload (call), + rest_proxy_call_get_payload_length (call), + &identity_error)) + { + g_warning ("json_parser_load_from_data() failed: %s (%s, %d)", + identity_error->message, + g_quark_to_string (identity_error->domain), + identity_error->code); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (json_object, "email")) + { + g_warning ("Did not find email in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + email = g_strdup (json_object_get_string_member (json_object, "email")); + + ret = email; + email = NULL; + if (out_presentation_identity != NULL) + *out_presentation_identity = g_strdup (ret); /* for now: use email as presentation identity */ + + out: + g_clear_object (&parser); + g_clear_error (&identity_error); + g_clear_object (&call); + g_clear_object (&proxy); + g_free (email); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_identity_node (GoaOAuth2Provider *oauth2_provider, WebKitDOMHTMLInputElement *element) +{ + gboolean ret = FALSE; + gchar *element_type = NULL; + gchar *id = NULL; + gchar *name = NULL; + + g_object_get (element, "type", &element_type, NULL); + if (g_strcmp0 (element_type, "email") != 0) + goto out; + + id = webkit_dom_element_get_id (WEBKIT_DOM_ELEMENT (element)); + if (g_strcmp0 (id, "identifierId") != 0) + goto out; + + name = webkit_dom_html_input_element_get_name (element); + if (g_strcmp0 (name, "identifier") != 0) + goto out; + + ret = TRUE; + + out: + g_free (element_type); + g_free (id); + g_free (name); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + GoaMail *mail = NULL; + gchar *uri_caldav; + gchar *uri_drive; + gboolean ret = FALSE; + gboolean mail_enabled; + gboolean calendar_enabled; + gboolean contacts_enabled; + gboolean chat_enabled; + gboolean documents_enabled; + gboolean files_enabled; + gboolean photos_enabled; + gboolean printers_enabled; + const gchar *email_address; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_google_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + email_address = goa_account_get_identity (account); + + /* Email */ + mail = goa_object_get_mail (GOA_OBJECT (object)); + mail_enabled = g_key_file_get_boolean (key_file, group, "MailEnabled", NULL); + if (mail_enabled) + { + if (mail == NULL) + { + mail = goa_mail_skeleton_new (); + g_object_set (G_OBJECT (mail), + "email-address", email_address, + "imap-supported", TRUE, + "imap-host", "imap.gmail.com", + "imap-user-name", email_address, + "imap-use-ssl", TRUE, + "smtp-supported", TRUE, + "smtp-host", "smtp.gmail.com", + "smtp-user-name", email_address, + "smtp-use-auth", TRUE, + "smtp-auth-xoauth2", TRUE, + "smtp-use-ssl", TRUE, + "smtp-use-tls", TRUE, + NULL); + goa_object_skeleton_set_mail (object, mail); + } + } + else + { + if (mail != NULL) + goa_object_skeleton_set_mail (object, NULL); + } + + /* Calendar */ + calendar_enabled = g_key_file_get_boolean (key_file, group, "CalendarEnabled", NULL); + uri_caldav = g_strconcat ("https://apidata.googleusercontent.com/caldav/v2/", email_address, "/user", NULL); + goa_object_skeleton_attach_calendar (object, uri_caldav, calendar_enabled, FALSE); + g_free (uri_caldav); + + /* Contacts */ + contacts_enabled = g_key_file_get_boolean (key_file, group, "ContactsEnabled", NULL); + goa_object_skeleton_attach_contacts (object, + "https://www.googleapis.com/.well-known/carddav", + contacts_enabled, + FALSE); + + /* Chat */ + chat_enabled = g_key_file_get_boolean (key_file, group, "ChatEnabled", NULL); + goa_object_skeleton_attach_chat (object, chat_enabled); + + /* Documents */ + documents_enabled = g_key_file_get_boolean (key_file, group, "DocumentsEnabled", NULL); + goa_object_skeleton_attach_documents (object, documents_enabled); + + /* Photos */ + photos_enabled = g_key_file_get_boolean (key_file, group, "PhotosEnabled", NULL); + goa_object_skeleton_attach_photos (object, photos_enabled); + + /* Files */ + files_enabled = g_key_file_get_boolean (key_file, group, "FilesEnabled", NULL); + uri_drive = g_strconcat ("google-drive://", email_address, "/", NULL); + goa_object_skeleton_attach_files (object, uri_drive, files_enabled, FALSE); + g_free (uri_drive); + + /* Printers */ + printers_enabled = g_key_file_get_boolean (key_file, group, "PrintersEnabled", NULL); + goa_object_skeleton_attach_printers (object, printers_enabled); + + if (just_added) + { + goa_account_set_mail_disabled (account, !mail_enabled); + goa_account_set_calendar_disabled (account, !calendar_enabled); + goa_account_set_contacts_disabled (account, !contacts_enabled); + goa_account_set_chat_disabled (account, !chat_enabled); + goa_account_set_documents_disabled (account, !documents_enabled); + goa_account_set_photos_disabled (account, !photos_enabled); + goa_account_set_files_disabled (account, !files_enabled); + goa_account_set_printers_disabled (account, !printers_enabled); + + g_signal_connect (account, + "notify::mail-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "MailEnabled"); + g_signal_connect (account, + "notify::calendar-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "CalendarEnabled"); + g_signal_connect (account, + "notify::contacts-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "ContactsEnabled"); + g_signal_connect (account, + "notify::chat-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "ChatEnabled"); + g_signal_connect (account, + "notify::documents-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "DocumentsEnabled"); + g_signal_connect (account, + "notify::photos-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "PhotosEnabled"); + g_signal_connect (account, + "notify::files-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "FilesEnabled"); + g_signal_connect (account, + "notify::printers-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "PrintersEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&mail); + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_key_values (GoaOAuth2Provider *oauth2_provider, + GVariantBuilder *builder) +{ + g_variant_builder_add (builder, "{ss}", "MailEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "CalendarEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "ContactsEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "ChatEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "DocumentsEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "PhotosEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "FilesEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "PrintersEnabled", "true"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_google_provider_init (GoaGoogleProvider *self) +{ +} + +static void +goa_google_provider_class_init (GoaGoogleProviderClass *klass) +{ + GoaProviderClass *provider_class; + GoaOAuth2ProviderClass *oauth2_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->build_object = build_object; + provider_class->get_credentials_generation = get_credentials_generation; + + oauth2_class = GOA_OAUTH2_PROVIDER_CLASS (klass); + oauth2_class->get_authorization_uri = get_authorization_uri; + oauth2_class->get_client_id = get_client_id; + oauth2_class->get_client_secret = get_client_secret; + oauth2_class->get_identity_sync = get_identity_sync; + oauth2_class->get_redirect_uri = get_redirect_uri; + oauth2_class->get_scope = get_scope; + oauth2_class->is_identity_node = is_identity_node; + oauth2_class->get_token_uri = get_token_uri; + oauth2_class->add_account_key_values = add_account_key_values; +} diff --git a/src/goabackend/goagoogleprovider.h b/src/goabackend/goagoogleprovider.h new file mode 100644 index 0000000..df0a94f --- /dev/null +++ b/src/goabackend/goagoogleprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_GOOGLE_PROVIDER_H__ +#define __GOA_GOOGLE_PROVIDER_H__ + +#include + +#include "goaoauth2provider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_GOOGLE_PROVIDER (goa_google_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaGoogleProvider, goa_google_provider, GOA, GOOGLE_PROVIDER, GoaOAuth2Provider); + +G_END_DECLS + +#endif /* __GOA_GOOGLE_PROVIDER_H__ */ diff --git a/src/goabackend/goahttpclient.c b/src/goabackend/goahttpclient.c new file mode 100644 index 0000000..52cc0f5 --- /dev/null +++ b/src/goabackend/goahttpclient.c @@ -0,0 +1,338 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goahttpclient.h" +#include "goasouplogger.h" +#include "goautils.h" + +struct _GoaHttpClient +{ + GObject parent_instance; +}; + +G_DEFINE_TYPE (GoaHttpClient, goa_http_client, G_TYPE_OBJECT); + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_http_client_init (GoaHttpClient *self) +{ +} + +static void +goa_http_client_class_init (GoaHttpClientClass *klass) +{ +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GoaHttpClient * +goa_http_client_new (void) +{ + return GOA_HTTP_CLIENT (g_object_new (GOA_TYPE_HTTP_CLIENT, NULL)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GCancellable *cancellable; + SoupMessage *msg; + SoupSession *session; + gboolean accept_ssl_errors; + gulong cancellable_id; +} CheckData; + +typedef struct +{ + gchar *password; + gchar *username; +} CheckAuthData; + +static void +http_client_check_data_free (gpointer user_data) +{ + CheckData *data = user_data; + + if (data->cancellable_id > 0) + { + g_cancellable_disconnect (data->cancellable, data->cancellable_id); + g_object_unref (data->cancellable); + } + + /* soup_session_queue_message stole the references to data->msg */ + g_object_unref (data->session); + g_slice_free (CheckData, data); +} + +static void +http_client_check_auth_data_free (gpointer data, GClosure *closure) +{ + CheckAuthData *auth = data; + + g_free (auth->password); + g_free (auth->username); + g_slice_free (CheckAuthData, auth); +} + +static void +http_client_authenticate (SoupSession *session, + SoupMessage *msg, + SoupAuth *auth, + gboolean retrying, + gpointer user_data) +{ + CheckAuthData *data = user_data; + + if (retrying) + return; + + soup_auth_authenticate (auth, data->username, data->password); +} + +static void +http_client_request_started (SoupSession *session, SoupMessage *msg, SoupSocket *socket, gpointer user_data) +{ + CheckData *data; + GTask *task = G_TASK (user_data); + GError *error; + GTlsCertificateFlags cert_flags; + + data = g_task_get_task_data (task); + error = NULL; + + if (!data->accept_ssl_errors + && soup_message_get_https_status (msg, NULL, &cert_flags) + && cert_flags != 0) + { + goa_utils_set_error_ssl (&error, cert_flags); + g_task_return_error (task, error); + soup_session_abort (data->session); + } +} + +static void +http_client_check_cancelled_cb (GCancellable *cancellable, gpointer user_data) +{ + CheckData *data; + GTask *task = G_TASK (user_data); + gboolean cancelled; + + data = g_task_get_task_data (task); + + cancelled = g_task_return_error_if_cancelled (task); + soup_session_abort (data->session); + + g_return_if_fail (cancelled); +} + +static gboolean +http_client_check_free_in_idle (gpointer user_data) +{ + GTask *task = G_TASK (user_data); + + g_object_unref (task); + return G_SOURCE_REMOVE; +} + +static void +http_client_check_response_cb (SoupSession *session, SoupMessage *msg, gpointer user_data) +{ + GError *error; + GMainContext *context; + GSource *source; + GTask *task = G_TASK (user_data); + + error = NULL; + + /* status == SOUP_STATUS_CANCELLED, if we are being aborted by the + * GCancellable or due to an SSL error. The GTask was already + * 'returned' by the respective callbacks. + */ + if (msg->status_code == SOUP_STATUS_CANCELLED) + goto out; + else if (msg->status_code != SOUP_STATUS_OK) + { + g_warning ("goa_http_client_check() failed: %u — %s", msg->status_code, msg->reason_phrase); + goa_utils_set_error_soup (&error, msg); + g_task_return_error (task, error); + goto out; + } + + g_task_return_boolean (task, TRUE); + + out: + /* We might be invoked from a GCancellable::cancelled + * handler, and unreffing the GTask will disconnect the + * handler. Since disconnecting from inside the handler will cause a + * deadlock [1], we use an idle handler to break them up. + * + * [1] https://bugzilla.gnome.org/show_bug.cgi?id=705395 + */ + + source = g_idle_source_new (); + g_source_set_priority (source, G_PRIORITY_DEFAULT_IDLE); + g_source_set_callback (source, http_client_check_free_in_idle, task, NULL); + g_source_set_name (source, "[goa] http_client_check_free_in_idle"); + + context = g_task_get_context (task); + g_source_attach (source, context); + g_source_unref (source); +} + +void +goa_http_client_check (GoaHttpClient *self, + const gchar *uri, + const gchar *username, + const gchar *password, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + CheckData *data; + CheckAuthData *auth; + GTask *task; + SoupLogger *logger; + + g_return_if_fail (GOA_IS_HTTP_CLIENT (self)); + g_return_if_fail (uri != NULL && uri[0] != '\0'); + g_return_if_fail (username != NULL && username[0] != '\0'); + g_return_if_fail (password != NULL && password[0] != '\0'); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, goa_http_client_check); + + data = g_slice_new0 (CheckData); + g_task_set_task_data (task, data, http_client_check_data_free); + + data->session = soup_session_new_with_options (SOUP_SESSION_SSL_STRICT, FALSE, + NULL); + + logger = goa_soup_logger_new (SOUP_LOGGER_LOG_BODY, -1); + soup_session_add_feature (data->session, SOUP_SESSION_FEATURE (logger)); + g_object_unref (logger); + + data->accept_ssl_errors = accept_ssl_errors; + data->msg = soup_message_new (SOUP_METHOD_GET, uri); + + if (cancellable != NULL) + { + data->cancellable = g_object_ref (cancellable); + data->cancellable_id = g_cancellable_connect (cancellable, + G_CALLBACK (http_client_check_cancelled_cb), + task, + NULL); + } + + auth = g_slice_new0 (CheckAuthData); + auth->username = g_strdup (username); + auth->password = g_strdup (password); + g_signal_connect_data (data->session, + "authenticate", + G_CALLBACK (http_client_authenticate), + auth, + http_client_check_auth_data_free, + 0); + + g_signal_connect (data->session, "request-started", G_CALLBACK (http_client_request_started), task); + soup_session_queue_message (data->session, data->msg, http_client_check_response_cb, g_object_ref (task)); + + g_object_unref (task); +} + +gboolean +goa_http_client_check_finish (GoaHttpClient *self, GAsyncResult *res, GError **error) +{ + GTask *task; + + g_return_val_if_fail (GOA_IS_HTTP_CLIENT (self), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_http_client_check, FALSE); + + return g_task_propagate_boolean (task, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GError **error; + GMainLoop *loop; + gboolean op_res; +} CheckSyncData; + +static void +http_client_check_sync_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + CheckSyncData *data = user_data; + + data->op_res = goa_http_client_check_finish (GOA_HTTP_CLIENT (source_object), res, data->error); + g_main_loop_quit (data->loop); +} + +gboolean +goa_http_client_check_sync (GoaHttpClient *self, + const gchar *uri, + const gchar *username, + const gchar *password, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GError **error) +{ + CheckSyncData data; + GMainContext *context = NULL; + + g_return_val_if_fail (GOA_IS_HTTP_CLIENT (self), FALSE); + g_return_val_if_fail (uri != NULL && uri[0] != '\0', FALSE); + g_return_val_if_fail (username != NULL && username[0] != '\0', FALSE); + g_return_val_if_fail (password != NULL && password[0] != '\0', FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + data.error = error; + + context = g_main_context_new (); + g_main_context_push_thread_default (context); + data.loop = g_main_loop_new (context, FALSE); + + goa_http_client_check (self, + uri, + username, + password, + accept_ssl_errors, + cancellable, + http_client_check_sync_cb, + &data); + g_main_loop_run (data.loop); + g_main_loop_unref (data.loop); + + g_main_context_pop_thread_default (context); + g_main_context_unref (context); + + return data.op_res; +} diff --git a/src/goabackend/goahttpclient.h b/src/goabackend/goahttpclient.h new file mode 100644 index 0000000..84610d3 --- /dev/null +++ b/src/goabackend/goahttpclient.h @@ -0,0 +1,57 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_HTTP_CLIENT_H__ +#define __GOA_HTTP_CLIENT_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_HTTP_CLIENT (goa_http_client_get_type ()) +G_DECLARE_FINAL_TYPE (GoaHttpClient, goa_http_client, GOA, HTTP_CLIENT, GObject); + +GoaHttpClient *goa_http_client_new (void); +void goa_http_client_check (GoaHttpClient *self, + const gchar *uri, + const gchar *username, + const gchar *password, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean goa_http_client_check_finish (GoaHttpClient *self, + GAsyncResult *res, + GError **error); +gboolean goa_http_client_check_sync (GoaHttpClient *self, + const gchar *uri, + const gchar *username, + const gchar *password, + gboolean accept_ssl_errors, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __GOA_HTTP_CLIENT_H__ */ diff --git a/src/goabackend/goaimapauthlogin.c b/src/goabackend/goaimapauthlogin.c new file mode 100644 index 0000000..6014cfc --- /dev/null +++ b/src/goabackend/goaimapauthlogin.c @@ -0,0 +1,541 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include +#include +#include + +#include "goaimapauthlogin.h" +#include "goautils.h" + +/* + * SECTION:goaimapauthlogin + * @title: GoaImapAuthLogin + * @short_description: LOGIN authentication method for IMAP + * + * #GoaImapAuthLogin implements the standard LOGIN + * authentication method (e.g. using usernames / passwords) for IMAP. + */ + +/* + * GoaImapAuthLogin: + * + * The #GoaImapAuthLogin structure contains only private data + * and should only be accessed using the provided API. + */ +struct _GoaImapAuthLogin +{ + GoaMailAuth parent_instance; + + gboolean greeting_absent; + gchar *username; + gchar *password; +}; + +enum +{ + PROP_0, + PROP_USERNAME, + PROP_PASSWORD +}; + +static gboolean goa_imap_auth_login_is_needed (GoaMailAuth *auth); +static gboolean goa_imap_auth_login_run_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error); +static gboolean goa_imap_auth_login_starttls_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error); + +G_DEFINE_TYPE (GoaImapAuthLogin, goa_imap_auth_login, GOA_TYPE_MAIL_AUTH); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar *IMAP_TAG = "A001"; + +static gboolean +imap_auth_login_check_BYE (const gchar *response, GError **error) +{ + if (g_str_has_prefix (response, "* BYE")) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Service not available")); + return TRUE; + } + + return FALSE; +} + +static gboolean +imap_auth_login_check_NO (const gchar *response, GError **error) +{ + gboolean ret = FALSE; + gchar *str = NULL; + + str = g_strdup_printf ("%s NO", IMAP_TAG); + + if (g_str_has_prefix (response, str)) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Authentication failed")); + ret = TRUE; + } + + g_free (str); + return ret; +} + +static gboolean +imap_auth_login_check_not_CAPABILITY (const gchar *response) +{ + if (!g_str_has_prefix (response, "* CAPABILITY")) + return TRUE; + + return FALSE; +} + +static gboolean +imap_auth_login_check_not_LOGIN (const gchar *response, GError **error) +{ + if (strstr (response, "AUTH=PLAIN") == NULL) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_SUPPORTED, + _("Server does not support PLAIN")); + return TRUE; + } + + return FALSE; +} + +static gboolean +imap_auth_login_check_not_OK (const gchar *response, gboolean tagged, GError **error) +{ + gboolean ret = FALSE; + + if (tagged) + { + gchar *str; + + str = g_strdup_printf ("%s OK", IMAP_TAG); + if (!g_str_has_prefix (response, str)) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + "Unexpected response `%s' while doing LOGIN authentication", + response); + ret = TRUE; + } + g_free (str); + } + else + { + if (!g_str_has_prefix (response, "* OK")) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + "Unexpected response `%s' while doing LOGIN authentication", + response); + ret = TRUE; + } + } + + return ret; +} + +static gboolean +imap_auth_login_check_not_STARTTLS (const gchar *response, GError **error) +{ + if (strstr (response, "STARTTLS") == NULL) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_SUPPORTED, + _("Server does not support STARTTLS")); + return TRUE; + } + + return FALSE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +imap_auth_escape_backslash (const gchar *str) +{ + GString *ret; + gsize i; + gsize len; + + ret = g_string_new (""); + len = strlen (str); + + for (i = 0; i < len; i++) + { + if (str[i] == '\\') + g_string_append_c (ret, '\\'); + g_string_append_c (ret, str[i]); + } + + return g_string_free (ret, FALSE); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_imap_auth_login_finalize (GObject *object) +{ + GoaImapAuthLogin *self = GOA_IMAP_AUTH_LOGIN (object); + + g_free (self->username); + g_free (self->password); + + G_OBJECT_CLASS (goa_imap_auth_login_parent_class)->finalize (object); +} + +static void +goa_imap_auth_login_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaImapAuthLogin *self = GOA_IMAP_AUTH_LOGIN (object); + + switch (prop_id) + { + case PROP_USERNAME: + g_value_set_string (value, self->username); + break; + + case PROP_PASSWORD: + g_value_set_string (value, self->password); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +goa_imap_auth_login_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaImapAuthLogin *self = GOA_IMAP_AUTH_LOGIN (object); + + switch (prop_id) + { + case PROP_USERNAME: + self->username = g_value_dup_string (value); + break; + + case PROP_PASSWORD: + self->password = g_value_dup_string (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + + +static void +goa_imap_auth_login_init (GoaImapAuthLogin *self) +{ +} + +static void +goa_imap_auth_login_class_init (GoaImapAuthLoginClass *klass) +{ + GObjectClass *gobject_class; + GoaMailAuthClass *auth_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_imap_auth_login_finalize; + gobject_class->get_property = goa_imap_auth_login_get_property; + gobject_class->set_property = goa_imap_auth_login_set_property; + + auth_class = GOA_MAIL_AUTH_CLASS (klass); + auth_class->is_needed = goa_imap_auth_login_is_needed; + auth_class->run_sync = goa_imap_auth_login_run_sync; + auth_class->starttls_sync = goa_imap_auth_login_starttls_sync; + + /** + * GoaImapAuthLogin:user-name: + * + * The user name. + */ + g_object_class_install_property (gobject_class, + PROP_USERNAME, + g_param_spec_string ("user-name", + "user-name", + "user-name", + NULL, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + /** + * GoaImapAuthLogin:password: + * + * The password. + */ + g_object_class_install_property (gobject_class, + PROP_PASSWORD, + g_param_spec_string ("password", + "password", + "password", + NULL, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_imap_auth_login_new: + * @username: The user name to use. + * @password: The password to use. + * + * Creates a new #GoaMailAuth to be used for username/password + * authentication using LOGIN over IMAP. + * + * Returns: (type GoaImapAuthLogin): A #GoaImapAuthLogin. Free with + * g_object_unref(). + */ +GoaMailAuth * +goa_imap_auth_login_new (const gchar *username, + const gchar *password) +{ + g_return_val_if_fail (username != NULL, NULL); + g_return_val_if_fail (password != NULL && password[0] != '\0', NULL); + + return GOA_MAIL_AUTH (g_object_new (GOA_TYPE_IMAP_AUTH_LOGIN, + "user-name", username, + "password", password, + NULL)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_imap_auth_login_is_needed (GoaMailAuth *auth) +{ + /* TODO: support authentication-less IMAP servers */ + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_imap_auth_login_run_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error) +{ + GoaImapAuthLogin *self = GOA_IMAP_AUTH_LOGIN (auth); + GDataInputStream *input; + GDataOutputStream *output; + gchar *request = NULL; + gchar *response = NULL; + gboolean ret = FALSE; + gchar *password = NULL; + + password = imap_auth_escape_backslash (self->password); + + input = goa_mail_auth_get_input (auth); + output = goa_mail_auth_get_output (auth); + + /* Check the greeting, if there is one */ + + if (!self->greeting_absent) + { + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_BYE (response, error)) + goto out; + if (imap_auth_login_check_not_OK (response, FALSE, error)) + goto out; + g_clear_pointer (&response, g_free); + } + + /* Send CAPABILITY */ + + request = g_strdup_printf ("%s CAPABILITY\r\n", IMAP_TAG); + g_debug ("> %s", request); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + /* Check if LOGIN is supported or not */ + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_not_LOGIN (response, error)) + goto out; + g_clear_pointer (&response, g_free); + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_not_OK (response, TRUE, error)) + goto out; + g_clear_pointer (&response, g_free); + + /* Send LOGIN */ + + request = g_strdup_printf ("%s LOGIN \"%s\" \"%s\"\r\n", IMAP_TAG, self->username, password); + g_debug ("> %s LOGIN \"********************\" \"********************\"", IMAP_TAG); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + /* Skip post-login CAPABILITY, if any */ + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_not_CAPABILITY (response)) + goto check_login_response; + g_clear_pointer (&response, g_free); + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + check_login_response: + if (imap_auth_login_check_NO (response, error)) + goto out; + if (imap_auth_login_check_not_OK (response, TRUE, error)) + goto out; + g_clear_pointer (&response, g_free); + + ret = TRUE; + + out: + g_free (response); + g_free (request); + g_free (password); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_imap_auth_login_starttls_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error) +{ + GoaImapAuthLogin *self = GOA_IMAP_AUTH_LOGIN (auth); + GDataInputStream *input; + GDataOutputStream *output; + gchar *request = NULL; + gchar *response = NULL; + gboolean ret = FALSE; + + input = goa_mail_auth_get_input (auth); + output = goa_mail_auth_get_output (auth); + + /* Check the greeting */ + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_BYE (response, error)) + goto out; + if (imap_auth_login_check_not_OK (response, FALSE, error)) + goto out; + g_clear_pointer (&response, g_free); + + /* Send CAPABILITY */ + + request = g_strdup_printf ("%s CAPABILITY\r\n", IMAP_TAG); + g_debug ("> %s", request); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + /* Check if STARTTLS is supported or not */ + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_not_STARTTLS (response, error)) + goto out; + g_clear_pointer (&response, g_free); + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_not_OK (response, TRUE, error)) + goto out; + g_clear_pointer (&response, g_free); + + /* Send STARTTLS */ + + request = g_strdup_printf ("%s STARTTLS\r\n", IMAP_TAG); + g_debug ("> %s", request); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (imap_auth_login_check_not_OK (response, TRUE, error)) + goto out; + g_clear_pointer (&response, g_free); + + /* There won't be a greeting after this */ + self->greeting_absent = TRUE; + + ret = TRUE; + + out: + g_free (response); + g_free (request); + return ret; +} diff --git a/src/goabackend/goaimapauthlogin.h b/src/goabackend/goaimapauthlogin.h new file mode 100644 index 0000000..cb2f413 --- /dev/null +++ b/src/goabackend/goaimapauthlogin.h @@ -0,0 +1,41 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_IMAP_AUTH_LOGIN_H__ +#define __GOA_IMAP_AUTH_LOGIN_H__ + +#include +#include + +#include "goamailauth.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_IMAP_AUTH_LOGIN (goa_imap_auth_login_get_type ()) +G_DECLARE_FINAL_TYPE (GoaImapAuthLogin, goa_imap_auth_login, GOA, IMAP_AUTH_LOGIN, GoaMailAuth); + +GoaMailAuth *goa_imap_auth_login_new (const gchar *user_name, + const gchar *password); + +G_END_DECLS + +#endif /* __GOA_IMAP_AUTH_LOGIN_H__ */ diff --git a/src/goabackend/goaimapsmtpprovider.c b/src/goabackend/goaimapsmtpprovider.c new file mode 100644 index 0000000..443a479 --- /dev/null +++ b/src/goabackend/goaimapsmtpprovider.c @@ -0,0 +1,1580 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goaimapauthlogin.h" +#include "goamailclient.h" +#include "goaimapsmtpprovider.h" +#include "goaprovider.h" +#include "goasmtpauth.h" +#include "goautils.h" + +struct _GoaImapSmtpProvider +{ + GoaProvider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaImapSmtpProvider, goa_imap_smtp_provider, GOA_TYPE_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_IMAP_SMTP_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_IMAP_SMTP_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, GoaObject *object) +{ + return g_strdup (_("IMAP and SMTP")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_MAIL; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *_provider) +{ + return GOA_PROVIDER_FEATURE_MAIL; +} + +static GIcon * +get_provider_icon (GoaProvider *provider, GoaObject *object) +{ + return g_themed_icon_new_with_default_fallbacks ("mail-unread-symbolic"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean on_handle_get_password (GoaPasswordBased *interface, + GDBusMethodInvocation *invocation, + const gchar *id, + gpointer user_data); + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + GoaMail *mail = NULL; + GoaPasswordBased *password_based = NULL; + gboolean enabled; + gboolean imap_accept_ssl_errors; + gboolean imap_use_ssl; + gboolean imap_use_tls; + gboolean ret = FALSE; + gboolean smtp_accept_ssl_errors; + gboolean smtp_auth_login = FALSE; + gboolean smtp_auth_plain = FALSE; + gboolean smtp_use_auth; + gboolean smtp_use_ssl; + gboolean smtp_use_tls; + gchar *email_address = NULL; + gchar *imap_host = NULL; + gchar *imap_username = NULL; + gchar *name = NULL; + gchar *smtp_host = NULL; + gchar *smtp_username = NULL; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_imap_smtp_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + password_based = goa_object_get_password_based (GOA_OBJECT (object)); + if (password_based == NULL) + { + password_based = goa_password_based_skeleton_new (); + /* Ensure D-Bus method invocations run in their own thread */ + g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (password_based), + G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); + goa_object_skeleton_set_password_based (object, password_based); + g_signal_connect (password_based, + "handle-get-password", + G_CALLBACK (on_handle_get_password), + NULL); + } + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Email */ + mail = goa_object_get_mail (GOA_OBJECT (object)); + enabled = g_key_file_get_boolean (key_file, group, "Enabled", NULL); + if (enabled) + { + if (mail == NULL) + { + email_address = g_key_file_get_string (key_file, group, "EmailAddress", NULL); + name = g_key_file_get_string (key_file, group, "Name", NULL); + + imap_host = g_key_file_get_string (key_file, group, "ImapHost", NULL); + imap_username = g_key_file_get_string (key_file, group, "ImapUserName", NULL); + if (imap_username == NULL) + imap_username = g_strdup (g_get_user_name ()); + imap_use_ssl = g_key_file_get_boolean (key_file, group, "ImapUseSsl", NULL); + imap_use_tls = g_key_file_get_boolean (key_file, group, "ImapUseTls", NULL); + imap_accept_ssl_errors = g_key_file_get_boolean (key_file, group, "ImapAcceptSslErrors", NULL); + + smtp_host = g_key_file_get_string (key_file, group, "SmtpHost", NULL); + smtp_use_auth = g_key_file_get_boolean (key_file, group, "SmtpUseAuth", NULL); + if (smtp_use_auth) + { + smtp_username = g_key_file_get_string (key_file, group, "SmtpUserName", NULL); + if (smtp_username == NULL) + smtp_username = g_strdup (g_get_user_name ()); + + smtp_auth_login = g_key_file_get_boolean (key_file, group, "SmtpAuthLogin", NULL); + smtp_auth_plain = g_key_file_get_boolean (key_file, group, "SmtpAuthPlain", NULL); + /* For backwards compatibility: if authentication is + * used, assume PLAIN as the SASL scheme if nothing is + * specified. + */ + if (!smtp_auth_login && !smtp_auth_plain) + smtp_auth_plain = TRUE; + } + smtp_use_ssl = g_key_file_get_boolean (key_file, group, "SmtpUseSsl", NULL); + smtp_use_tls = g_key_file_get_boolean (key_file, group, "SmtpUseTls", NULL); + smtp_accept_ssl_errors = g_key_file_get_boolean (key_file, group, "SmtpAcceptSslErrors", NULL); + + mail = goa_mail_skeleton_new (); + g_object_set (G_OBJECT (mail), + "email-address", email_address, + "name", name, + "imap-supported", TRUE, + "imap-host", imap_host, + "imap-user-name", imap_username, + "imap-use-ssl", imap_use_ssl, + "imap-use-tls", imap_use_tls, + "imap-accept-ssl-errors", imap_accept_ssl_errors, + "smtp-supported", TRUE, + "smtp-host", smtp_host, + "smtp-user-name", smtp_username, + "smtp-use-auth", smtp_use_auth, + "smtp-auth-login", smtp_auth_login, + "smtp-auth-plain", smtp_auth_plain, + "smtp-use-ssl", smtp_use_ssl, + "smtp-use-tls", smtp_use_tls, + "smtp-accept-ssl-errors", smtp_accept_ssl_errors, + NULL); + goa_object_skeleton_set_mail (object, mail); + } + } + else + { + if (mail != NULL) + goa_object_skeleton_set_mail (object, NULL); + } + + if (just_added) + { + goa_account_set_mail_disabled (account, !enabled); + g_signal_connect (account, + "notify::mail-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "Enabled"); + } + + ret = TRUE; + + out: + g_clear_object (&account); + g_clear_object (&mail); + g_clear_object (&password_based); + g_free (email_address); + g_free (imap_host); + g_free (imap_username); + g_free (name); + g_free (smtp_host); + g_free (smtp_username); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaTlsType +get_tls_type_from_object (GoaObject *object, const gchar *ssl_key, const gchar *starttls_key) +{ + GoaTlsType tls_type; + + if (goa_util_lookup_keyfile_boolean (object, ssl_key)) + tls_type = GOA_TLS_TYPE_SSL; + else if (goa_util_lookup_keyfile_boolean (object, starttls_key)) + tls_type = GOA_TLS_TYPE_STARTTLS; + else + tls_type = GOA_TLS_TYPE_NONE; + + return tls_type; +} + +static GoaTlsType +get_tls_type_from_string_id (const gchar *str) +{ + GoaTlsType tls_type; + + if (g_strcmp0 (str, "none") == 0) + tls_type = GOA_TLS_TYPE_NONE; + else if (g_strcmp0 (str, "starttls") == 0) + tls_type = GOA_TLS_TYPE_STARTTLS; + else if (g_strcmp0 (str, "ssl") == 0) + tls_type = GOA_TLS_TYPE_SSL; + else + g_assert_not_reached (); + + return tls_type; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +ensure_credentials_sync (GoaProvider *provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GVariant *credentials = NULL; + GoaMailAuth *imap_auth = NULL; + GoaMailAuth *smtp_auth = NULL; + GoaMailClient *mail_client = NULL; + GoaTlsType imap_tls_type; + GoaTlsType smtp_tls_type; + gboolean imap_accept_ssl_errors; + gboolean ret = FALSE; + gboolean smtp_accept_ssl_errors; + gchar *domain = NULL; + gchar *email_address = NULL; + gchar *imap_password = NULL; + gchar *imap_server = NULL; + gchar *imap_username = NULL; + gchar *smtp_password = NULL; + gchar *smtp_server = NULL; + gchar *smtp_username = NULL; + + if (!goa_utils_get_credentials (provider, object, "imap-password", NULL, &imap_password, cancellable, error)) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + mail_client = goa_mail_client_new (); + + /* IMAP */ + + imap_accept_ssl_errors = goa_util_lookup_keyfile_boolean (object, "ImapAcceptSslErrors"); + imap_server = goa_util_lookup_keyfile_string (object, "ImapHost"); + imap_username = goa_util_lookup_keyfile_string (object, "ImapUserName"); + imap_tls_type = get_tls_type_from_object (object, "ImapUseSsl", "ImapUseTls"); + + imap_auth = goa_imap_auth_login_new (imap_username, imap_password); + if (!goa_mail_client_check_sync (mail_client, + imap_server, + imap_tls_type, + imap_accept_ssl_errors, + (imap_tls_type == GOA_TLS_TYPE_SSL) ? 993 : 143, + imap_auth, + cancellable, + error)) + { + if (error != NULL) + { + g_prefix_error (error, + /* Translators: the first %s is a field name. The + * second %s is the IMAP + * username (eg., rishi), and the (%s, %d) + * is the error domain and code. + */ + _("Invalid %s with username “%s” (%s, %d): "), + "imap-password", + imap_username, + g_quark_to_string ((*error)->domain), + (*error)->code); + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + /* SMTP */ + + if (!goa_util_lookup_keyfile_boolean (object, "SmtpUseAuth")) + goto smtp_done; + + if (!goa_utils_get_credentials (provider, object, "smtp-password", NULL, &smtp_password, cancellable, error)) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + smtp_accept_ssl_errors = goa_util_lookup_keyfile_boolean (object, "SmtpAcceptSslErrors"); + smtp_server = goa_util_lookup_keyfile_string (object, "SmtpHost"); + smtp_username = goa_util_lookup_keyfile_string (object, "SmtpUserName"); + smtp_tls_type = get_tls_type_from_object (object, "SmtpUseSsl", "SmtpUseTls"); + + email_address = goa_util_lookup_keyfile_string (object, "EmailAddress"); + goa_utils_parse_email_address (email_address, NULL, &domain); + smtp_auth = goa_smtp_auth_new (domain, smtp_username, smtp_password); + if (!goa_mail_client_check_sync (mail_client, + smtp_server, + smtp_tls_type, + smtp_accept_ssl_errors, + (smtp_tls_type == GOA_TLS_TYPE_SSL) ? 465 : 587, + smtp_auth, + cancellable, + error)) + { + if (error != NULL) + { + g_prefix_error (error, + /* Translators: the first %s is a field name. The + * second %s is the SMTP + * username (eg., rishi), and the (%s, %d) + * is the error domain and code. + */ + _("Invalid %s with username “%s” (%s, %d): "), + "smtp-password", + smtp_username, + g_quark_to_string ((*error)->domain), + (*error)->code); + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + smtp_done: + + if (out_expires_in != NULL) + *out_expires_in = 0; + + ret = TRUE; + + out: + g_clear_object (&imap_auth); + g_clear_object (&smtp_auth); + g_clear_object (&mail_client); + g_free (domain); + g_free (email_address); + g_free (imap_password); + g_free (imap_server); + g_free (imap_username); + g_free (smtp_password); + g_free (smtp_server); + g_free (smtp_username); + g_clear_pointer (&credentials, (GDestroyNotify) g_variant_unref); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_combo_box (GtkWidget *grid, + gint row, + const gchar *text, + GtkWidget **out_combo_box) +{ + GtkStyleContext *context; + GtkWidget *label; + GtkWidget *combo_box; + + label = gtk_label_new_with_mnemonic (text); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); + + combo_box = gtk_combo_box_text_new (); + gtk_widget_set_hexpand (combo_box, TRUE); + gtk_grid_attach (GTK_GRID (grid), combo_box, 1, row, 3, 1); + + gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box); + if (out_combo_box != NULL) + *out_combo_box = combo_box; +} + +static void +add_entry (GtkWidget *grid, + gint row, + const gchar *text, + GtkWidget **out_entry) +{ + GtkStyleContext *context; + GtkWidget *label; + GtkWidget *entry; + + label = gtk_label_new_with_mnemonic (text); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); + + entry = gtk_entry_new (); + gtk_widget_set_hexpand (entry, TRUE); + gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); + gtk_grid_attach (GTK_GRID (grid), entry, 1, row, 3, 1); + + gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); + if (out_entry != NULL) + *out_entry = entry; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GCancellable *cancellable; + + GtkDialog *dialog; + GMainLoop *loop; + + GtkWidget *cluebar; + GtkWidget *cluebar_label; + GtkWidget *notebook; + GtkWidget *forward_button; + GtkWidget *progress_grid; + + GtkWidget *email_address; + GtkWidget *name; + + GtkWidget *imap_server; + GtkWidget *imap_username; + GtkWidget *imap_password; + GtkWidget *imap_encryption; + + GtkWidget *smtp_server; + GtkWidget *smtp_username; + GtkWidget *smtp_password; + GtkWidget *smtp_encryption; + + gchar *account_object_path; + + GError *error; +} AddAccountData; + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +on_email_address_changed (GtkEditable *editable, gpointer user_data) +{ + AddAccountData *data = user_data; + gboolean can_add; + const gchar *email; + + email = gtk_entry_get_text (GTK_ENTRY (data->email_address)); + can_add = goa_utils_parse_email_address (email, NULL, NULL); + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, can_add); +} + +static void +on_imap_changed (GtkEditable *editable, gpointer user_data) +{ + AddAccountData *data = user_data; + gboolean can_add; + + can_add = gtk_entry_get_text_length (GTK_ENTRY (data->imap_password)) != 0 + && gtk_entry_get_text_length (GTK_ENTRY (data->imap_server)) != 0 + && gtk_entry_get_text_length (GTK_ENTRY (data->imap_username)) != 0; + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, can_add); +} + +static void +on_smtp_changed (GtkEditable *editable, gpointer user_data) +{ + AddAccountData *data = user_data; + gboolean can_add = FALSE; + + if (gtk_entry_get_text_length (GTK_ENTRY (data->smtp_server)) == 0) + goto out; + + /* If you provide a password then you must provide a username, and + * vice versa. If the server does not require authentication then + * both should be left empty. + */ + if (gtk_entry_get_text_length (GTK_ENTRY (data->smtp_password)) != 0 + && gtk_entry_get_text_length (GTK_ENTRY (data->smtp_username)) == 0) + goto out; + + if (gtk_entry_get_text_length (GTK_ENTRY (data->smtp_password)) == 0 + && gtk_entry_get_text_length (GTK_ENTRY (data->smtp_username)) != 0) + goto out; + + can_add = TRUE; + + out: + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, can_add); +} + +static void +create_encryption_ui (GtkWidget *grid, + gint row, + GtkWidget **out_combo_box) +{ + /* Translators: the following four strings are used to show a + * combo box similar to the one in the evolution module. + * Encryption: None + * STARTTLS after connecting + * SSL on a dedicated port + */ + add_combo_box (grid, row, _("_Encryption"), out_combo_box); + gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (*out_combo_box), + "none", + _("None")); + gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (*out_combo_box), + "starttls", + _("STARTTLS after connecting")); + gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (*out_combo_box), + "ssl", + _("SSL on a dedicated port")); + gtk_combo_box_set_active_id (GTK_COMBO_BOX (*out_combo_box), "starttls"); +} + +static void +show_progress_ui (GtkContainer *container, gboolean progress) +{ + GList *children; + GList *l; + + children = gtk_container_get_children (container); + for (l = children; l != NULL; l = l->next) + { + GtkWidget *widget = GTK_WIDGET (l->data); + gdouble opacity; + + opacity = progress ? 1.0 : 0.0; + gtk_widget_set_opacity (widget, opacity); + } + + g_list_free (children); +} + +static void +create_account_details_ui (GoaProvider *provider, + GtkDialog *dialog, + GtkBox *vbox, + gboolean new_account, + AddAccountData *data) +{ + GtkWidget *grid0; + GtkWidget *grid1; + GtkWidget *label; + GtkWidget *spinner; + gint row; + gint width; + const gchar *real_name; + + goa_utils_set_dialog_title (provider, dialog, new_account); + + grid0 = gtk_grid_new (); + gtk_container_set_border_width (GTK_CONTAINER (grid0), 5); + gtk_widget_set_margin_bottom (grid0, 6); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid0), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid0), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid0); + + data->cluebar = gtk_info_bar_new (); + gtk_info_bar_set_message_type (GTK_INFO_BAR (data->cluebar), GTK_MESSAGE_ERROR); + gtk_widget_set_hexpand (data->cluebar, TRUE); + gtk_widget_set_no_show_all (data->cluebar, TRUE); + gtk_container_add (GTK_CONTAINER (grid0), data->cluebar); + + data->cluebar_label = gtk_label_new (""); + gtk_label_set_line_wrap (GTK_LABEL (data->cluebar_label), TRUE); + gtk_label_set_max_width_chars (GTK_LABEL (data->cluebar_label), 36); + gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (data->cluebar))), + data->cluebar_label); + + data->notebook = gtk_notebook_new (); + gtk_notebook_set_show_border (GTK_NOTEBOOK (data->notebook), FALSE); + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (data->notebook), FALSE); + gtk_container_add (GTK_CONTAINER (grid0), data->notebook); + + /* Introduction*/ + + if (new_account) + { + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_notebook_append_page (GTK_NOTEBOOK (data->notebook), grid1, NULL); + + row = 0; + add_entry (grid1, row++, _("_E-mail"), &data->email_address); + add_entry (grid1, row++, _("_Name"), &data->name); + + real_name = g_get_real_name (); + if (g_strcmp0 (real_name, "Unknown") != 0) + gtk_entry_set_text (GTK_ENTRY (data->name), real_name); + + g_signal_connect (data->email_address, "changed", G_CALLBACK (on_email_address_changed), data); + } + + /* IMAP */ + + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_notebook_append_page (GTK_NOTEBOOK (data->notebook), grid1, NULL); + + row = 0; + add_entry (grid1, row++, _("IMAP _Server"), &data->imap_server); + add_entry (grid1, row++, _("User_name"), &data->imap_username); + add_entry (grid1, row++, _("_Password"), &data->imap_password); + gtk_entry_set_visibility (GTK_ENTRY (data->imap_password), FALSE); + + if (new_account) + create_encryption_ui (grid1, row++, &data->imap_encryption); + + g_signal_connect (data->imap_server, "changed", G_CALLBACK (on_imap_changed), data); + g_signal_connect (data->imap_username, "changed", G_CALLBACK (on_imap_changed), data); + g_signal_connect (data->imap_password, "changed", G_CALLBACK (on_imap_changed), data); + + /* SMTP */ + + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_notebook_append_page (GTK_NOTEBOOK (data->notebook), grid1, NULL); + + row = 0; + add_entry (grid1, row++, _("SMTP _Server"), &data->smtp_server); + add_entry (grid1, row++, _("User_name"), &data->smtp_username); + add_entry (grid1, row++, _("_Password"), &data->smtp_password); + gtk_entry_set_visibility (GTK_ENTRY (data->smtp_password), FALSE); + + if (new_account) + create_encryption_ui (grid1, row++, &data->smtp_encryption); + + g_signal_connect (data->smtp_server, "changed", G_CALLBACK (on_smtp_changed), data); + g_signal_connect (data->smtp_username, "changed", G_CALLBACK (on_smtp_changed), data); + g_signal_connect (data->smtp_password, "changed", G_CALLBACK (on_smtp_changed), data); + + /* -- */ + + gtk_dialog_add_button (data->dialog, _("_Cancel"), GTK_RESPONSE_CANCEL); + data->forward_button = gtk_dialog_add_button (data->dialog, _("_Forward"), GTK_RESPONSE_OK); + gtk_dialog_set_default_response (data->dialog, GTK_RESPONSE_OK); + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, FALSE); + + data->progress_grid = gtk_grid_new (); + gtk_orientable_set_orientation (GTK_ORIENTABLE (data->progress_grid), GTK_ORIENTATION_HORIZONTAL); + gtk_grid_set_column_spacing (GTK_GRID (data->progress_grid), 3); + gtk_container_add (GTK_CONTAINER (grid0), data->progress_grid); + + spinner = gtk_spinner_new (); + gtk_widget_set_opacity (spinner, 0.0); + gtk_widget_set_size_request (spinner, 20, 20); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_container_add (GTK_CONTAINER (data->progress_grid), spinner); + + label = gtk_label_new (_("Connecting…")); + gtk_widget_set_opacity (label, 0.0); + gtk_container_add (GTK_CONTAINER (data->progress_grid), label); + + if (new_account) + { + gtk_window_get_size (GTK_WINDOW (data->dialog), &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), width, -1); + } + else + { + GtkWindow *parent; + + /* Keep in sync with GoaPanelAddAccountDialog in + * gnome-control-center. + */ + parent = gtk_window_get_transient_for (GTK_WINDOW (data->dialog)); + if (parent != NULL) + { + gtk_window_get_size (parent, &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), (gint) (0.5 * width), -1); + } + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +guess_imap_smtp (AddAccountData *data) +{ + const gchar *email_address; + gchar *imap_server = NULL; + gchar *smtp_server = NULL; + gchar *username = NULL; + gchar *domain = NULL; + + email_address = gtk_entry_get_text (GTK_ENTRY (data->email_address)); + if (!goa_utils_parse_email_address (email_address, &username, &domain)) + goto out; + + /* TODO: Consult http://api.gnome.org/evolution/autoconfig/1.1/ */ + + imap_server = g_strconcat ("imap.", domain, NULL); + smtp_server = g_strconcat ("smtp.", domain, NULL); + + gtk_entry_set_text (GTK_ENTRY (data->imap_username), username); + gtk_entry_set_text (GTK_ENTRY (data->smtp_username), username); + gtk_entry_set_text (GTK_ENTRY (data->imap_server), imap_server); + gtk_entry_set_text (GTK_ENTRY (data->smtp_server), smtp_server); + + out: + g_free (imap_server); + g_free (smtp_server); + g_free (username); + g_free (domain); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_cb (GoaManager *manager, GAsyncResult *res, gpointer user_data) +{ + AddAccountData *data = user_data; + goa_manager_call_add_account_finish (manager, + &data->account_object_path, + res, + &data->error); + g_main_loop_quit (data->loop); +} + +static void +dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer user_data) +{ + AddAccountData *data = user_data; + + if (response_id == GTK_RESPONSE_CANCEL || response_id == GTK_RESPONSE_DELETE_EVENT) + g_cancellable_cancel (data->cancellable); +} + +static void +mail_check_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GoaMailClient *client = GOA_MAIL_CLIENT (source_object); + AddAccountData *data = user_data; + + goa_mail_client_check_finish (client, res, &data->error); + g_main_loop_quit (data->loop); + gtk_widget_set_sensitive (data->forward_button, TRUE); + show_progress_ui (GTK_CONTAINER (data->progress_grid), FALSE); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaObject * +add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + AddAccountData data; + GVariantBuilder credentials; + GVariantBuilder details; + GoaMailAuth *imap_auth = NULL; + GoaMailAuth *smtp_auth = NULL; + GoaMailClient *mail_client = NULL; + GoaObject *ret = NULL; + GoaTlsType imap_tls_type; + GoaTlsType smtp_tls_type; + gboolean imap_accept_ssl_errors; + gboolean smtp_accept_ssl_errors; + gboolean smtp_auth_login; + gboolean smtp_auth_plain; + gboolean smtp_use_auth; + const gchar *email_address; + const gchar *encryption; + const gchar *imap_password; + const gchar *imap_server; + const gchar *imap_username; + const gchar *name; + const gchar *provider_type; + const gchar *smtp_password; + const gchar *smtp_server; + const gchar *smtp_username; + gchar *domain = NULL; + gint response; + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = dialog; + data.error = NULL; + + create_account_details_ui (provider, dialog, vbox, TRUE, &data); + gtk_widget_show_all (GTK_WIDGET (vbox)); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + mail_client = goa_mail_client_new (); + + /* Introduction */ + + gtk_notebook_set_current_page (GTK_NOTEBOOK (data.notebook), 0); + gtk_widget_grab_focus (data.email_address); + + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + email_address = gtk_entry_get_text (GTK_ENTRY (data.email_address)); + name = gtk_entry_get_text (GTK_ENTRY (data.name)); + + /* See if there's already an account of this type with the + * given identity + */ + provider_type = goa_provider_get_provider_type (provider); + if (!goa_utils_check_duplicate (client, + email_address, + email_address, + provider_type, + (GoaPeekInterfaceFunc) goa_object_peek_password_based, + &data.error)) + goto out; + + guess_imap_smtp (&data); + + /* IMAP */ + + gtk_notebook_next_page (GTK_NOTEBOOK (data.notebook)); + gtk_widget_grab_focus (data.imap_password); + + imap_accept_ssl_errors = FALSE; + + imap_again: + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + gtk_widget_set_no_show_all (data.cluebar, TRUE); + gtk_widget_hide (data.cluebar); + + encryption = gtk_combo_box_get_active_id (GTK_COMBO_BOX (data.imap_encryption)); + imap_tls_type = get_tls_type_from_string_id (encryption); + + imap_password = gtk_entry_get_text (GTK_ENTRY (data.imap_password)); + imap_server = gtk_entry_get_text (GTK_ENTRY (data.imap_server)); + imap_username = gtk_entry_get_text (GTK_ENTRY (data.imap_username)); + + g_cancellable_reset (data.cancellable); + imap_auth = goa_imap_auth_login_new (imap_username, imap_password); + goa_mail_client_check (mail_client, + imap_server, + imap_tls_type, + imap_accept_ssl_errors, + (imap_tls_type == GOA_TLS_TYPE_SSL) ? 993 : 143, + imap_auth, + data.cancellable, + mail_check_cb, + &data); + + gtk_widget_set_sensitive (data.forward_button, FALSE); + show_progress_ui (GTK_CONTAINER (data.progress_grid), TRUE); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + if (data.error->code == GOA_ERROR_SSL) + { + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Ignore")); + imap_accept_ssl_errors = TRUE; + } + else + { + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Try Again")); + imap_accept_ssl_errors = FALSE; + } + + markup = g_strdup_printf ("%s\n%s", + _("Error connecting to IMAP server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + + g_clear_object (&imap_auth); + goto imap_again; + } + + gtk_widget_set_no_show_all (data.cluebar, TRUE); + gtk_widget_hide (data.cluebar); + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Forward")); + + /* SMTP */ + + /* Re-use the username and password from the IMAP page */ + gtk_entry_set_text (GTK_ENTRY (data.smtp_username), imap_username); + gtk_entry_set_text (GTK_ENTRY (data.smtp_password), imap_password); + + gtk_notebook_next_page (GTK_NOTEBOOK (data.notebook)); + gtk_widget_grab_focus (data.smtp_password); + + smtp_accept_ssl_errors = FALSE; + + smtp_again: + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + gtk_widget_set_no_show_all (data.cluebar, TRUE); + gtk_widget_hide (data.cluebar); + + encryption = gtk_combo_box_get_active_id (GTK_COMBO_BOX (data.smtp_encryption)); + smtp_tls_type = get_tls_type_from_string_id (encryption); + + smtp_password = gtk_entry_get_text (GTK_ENTRY (data.smtp_password)); + smtp_server = gtk_entry_get_text (GTK_ENTRY (data.smtp_server)); + smtp_username = gtk_entry_get_text (GTK_ENTRY (data.smtp_username)); + + g_cancellable_reset (data.cancellable); + goa_utils_parse_email_address (email_address, NULL, &domain); + smtp_auth = goa_smtp_auth_new (domain, smtp_username, smtp_password); + goa_mail_client_check (mail_client, + smtp_server, + smtp_tls_type, + smtp_accept_ssl_errors, + (smtp_tls_type == GOA_TLS_TYPE_SSL) ? 465 : 587, + smtp_auth, + data.cancellable, + mail_check_cb, + &data); + + gtk_widget_set_sensitive (data.forward_button, FALSE); + show_progress_ui (GTK_CONTAINER (data.progress_grid), TRUE); + g_main_loop_run (data.loop); + + smtp_use_auth = goa_mail_auth_is_needed (smtp_auth); + smtp_auth_login = goa_smtp_auth_is_login (GOA_SMTP_AUTH (smtp_auth)); + smtp_auth_plain = goa_smtp_auth_is_plain (GOA_SMTP_AUTH (smtp_auth)); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + if (data.error->code == GOA_ERROR_SSL) + { + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Ignore")); + smtp_accept_ssl_errors = TRUE; + } + else + { + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Try Again")); + smtp_accept_ssl_errors = FALSE; + } + + markup = g_strdup_printf ("%s\n%s", + _("Error connecting to SMTP server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + + g_clear_object (&smtp_auth); + g_clear_pointer (&domain, g_free); + goto smtp_again; + } + + gtk_widget_hide (GTK_WIDGET (dialog)); + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&credentials, "{sv}", "imap-password", g_variant_new_string (imap_password)); + if (smtp_use_auth) + g_variant_builder_add (&credentials, "{sv}", "smtp-password", g_variant_new_string (smtp_password)); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "Enabled", "true"); + g_variant_builder_add (&details, "{ss}", "EmailAddress", email_address); + g_variant_builder_add (&details, "{ss}", "Name", name); + g_variant_builder_add (&details, "{ss}", "ImapHost", imap_server); + g_variant_builder_add (&details, "{ss}", "ImapUserName", imap_username); + g_variant_builder_add (&details, "{ss}", + "ImapUseSsl", (imap_tls_type == GOA_TLS_TYPE_SSL) ? "true" : "false"); + g_variant_builder_add (&details, "{ss}", + "ImapUseTls", (imap_tls_type == GOA_TLS_TYPE_STARTTLS) ? "true" : "false"); + g_variant_builder_add (&details, "{ss}", + "ImapAcceptSslErrors", (imap_accept_ssl_errors) ? "true" : "false"); + g_variant_builder_add (&details, "{ss}", "SmtpHost", smtp_server); + g_variant_builder_add (&details, "{ss}", "SmtpUseAuth", (smtp_use_auth) ? "true" : "false"); + if (smtp_use_auth) + { + g_variant_builder_add (&details, "{ss}", "SmtpUserName", smtp_username); + g_variant_builder_add (&details, "{ss}", "SmtpAuthLogin", (smtp_auth_login) ? "true" : "false"); + g_variant_builder_add (&details, "{ss}", "SmtpAuthPlain", (smtp_auth_plain) ? "true" : "false"); + } + g_variant_builder_add (&details, "{ss}", + "SmtpUseSsl", (smtp_tls_type == GOA_TLS_TYPE_SSL) ? "true" : "false"); + g_variant_builder_add (&details, "{ss}", + "SmtpUseTls", (smtp_tls_type == GOA_TLS_TYPE_STARTTLS) ? "true" : "false"); + g_variant_builder_add (&details, "{ss}", + "SmtpAcceptSslErrors", (smtp_accept_ssl_errors) ? "true" : "false"); + + /* OK, everything is dandy, add the account */ + /* we want the GoaClient to update before this method returns (so it + * can create a proxy for the new object) so run the mainloop while + * waiting for this to complete + */ + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (provider), + email_address, + email_address, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + &data); + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + + ret = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + data.account_object_path)); + out: + /* We might have an object even when data.error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (data.error != NULL) + g_propagate_error (error, data.error); + else + g_assert (ret != NULL); + + g_signal_handlers_disconnect_by_func (dialog, dialog_response_cb, &data); + + g_free (domain); + g_free (data.account_object_path); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&data.cancellable); + g_clear_object (&imap_auth); + g_clear_object (&smtp_auth); + g_clear_object (&mail_client); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + AddAccountData data; + GVariantBuilder builder; + GoaAccount *account; + GoaMailAuth *imap_auth = NULL; + GoaMailAuth *smtp_auth = NULL; + GoaMailClient *mail_client = NULL; + GoaTlsType imap_tls_type; + GoaTlsType smtp_tls_type; + GtkWidget *dialog; + GtkWidget *vbox; + gboolean imap_accept_ssl_errors; + gboolean ret = FALSE; + gboolean smtp_accept_ssl_errors; + gboolean smtp_use_auth; + const gchar *imap_password; + const gchar *smtp_password; + gchar *domain = NULL; + gchar *email_address = NULL; + gchar *imap_server = NULL; + gchar *imap_username = NULL; + gchar *smtp_server = NULL; + gchar *smtp_username = NULL; + gint response; + + g_return_val_if_fail (GOA_IS_IMAP_SMTP_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + dialog = gtk_dialog_new_with_buttons (NULL, + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + NULL, + NULL); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + + vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_set_spacing (GTK_BOX (vbox), 12); + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = GTK_DIALOG (dialog); + data.error = NULL; + + create_account_details_ui (provider, GTK_DIALOG (dialog), GTK_BOX (vbox), FALSE, &data); + + email_address = goa_util_lookup_keyfile_string (object, "EmailAddress"); + + imap_accept_ssl_errors = goa_util_lookup_keyfile_boolean (object, "ImapAcceptSslErrors"); + smtp_accept_ssl_errors = goa_util_lookup_keyfile_boolean (object, "SmtpAcceptSslErrors"); + + imap_tls_type = get_tls_type_from_object (object, "ImapUseSsl", "ImapUseTls"); + smtp_tls_type = get_tls_type_from_object (object, "SmtpUseSsl", "SmtpUseTls"); + + imap_server = goa_util_lookup_keyfile_string (object, "ImapHost"); + gtk_entry_set_text (GTK_ENTRY (data.imap_server), imap_server); + gtk_editable_set_editable (GTK_EDITABLE (data.imap_server), FALSE); + + imap_username = goa_util_lookup_keyfile_string (object, "ImapUserName"); + gtk_entry_set_text (GTK_ENTRY (data.imap_username), imap_username); + gtk_editable_set_editable (GTK_EDITABLE (data.imap_username), FALSE); + + smtp_use_auth = goa_util_lookup_keyfile_boolean (object, "SmtpUseAuth"); + if (smtp_use_auth) + { + smtp_server = goa_util_lookup_keyfile_string (object, "SmtpHost"); + gtk_entry_set_text (GTK_ENTRY (data.smtp_server), smtp_server); + gtk_editable_set_editable (GTK_EDITABLE (data.smtp_server), FALSE); + + smtp_username = goa_util_lookup_keyfile_string (object, "SmtpUserName"); + gtk_entry_set_text (GTK_ENTRY (data.smtp_username), smtp_username); + gtk_editable_set_editable (GTK_EDITABLE (data.smtp_username), FALSE); + } + + gtk_widget_show_all (dialog); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + mail_client = goa_mail_client_new (); + + /* IMAP */ + + gtk_notebook_set_current_page (GTK_NOTEBOOK (data.notebook), 0); + gtk_widget_grab_focus (data.imap_password); + + imap_again: + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + gtk_widget_set_no_show_all (data.cluebar, TRUE); + gtk_widget_hide (data.cluebar); + + imap_password = gtk_entry_get_text (GTK_ENTRY (data.imap_password)); + g_cancellable_reset (data.cancellable); + imap_auth = goa_imap_auth_login_new (imap_username, imap_password); + goa_mail_client_check (mail_client, + imap_server, + imap_tls_type, + imap_accept_ssl_errors, + (imap_tls_type == GOA_TLS_TYPE_SSL) ? 993 : 143, + imap_auth, + data.cancellable, + mail_check_cb, + &data); + + gtk_widget_set_sensitive (data.forward_button, FALSE); + show_progress_ui (GTK_CONTAINER (data.progress_grid), TRUE); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + markup = g_strdup_printf ("%s\n%s", + _("Error connecting to IMAP server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Try Again")); + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + + g_clear_object (&imap_auth); + goto imap_again; + } + + gtk_widget_set_no_show_all (data.cluebar, TRUE); + gtk_widget_hide (data.cluebar); + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Forward")); + + /* SMTP */ + + if (!smtp_use_auth) + goto smtp_done; + + /* Re-use the password from the IMAP page */ + gtk_entry_set_text (GTK_ENTRY (data.smtp_password), imap_password); + + gtk_notebook_next_page (GTK_NOTEBOOK (data.notebook)); + gtk_widget_grab_focus (data.smtp_password); + + smtp_again: + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + gtk_widget_set_no_show_all (data.cluebar, TRUE); + gtk_widget_hide (data.cluebar); + + smtp_password = gtk_entry_get_text (GTK_ENTRY (data.smtp_password)); + g_cancellable_reset (data.cancellable); + goa_utils_parse_email_address (email_address, NULL, &domain); + smtp_auth = goa_smtp_auth_new (domain, smtp_username, smtp_password); + goa_mail_client_check (mail_client, + smtp_server, + smtp_tls_type, + smtp_accept_ssl_errors, + (smtp_tls_type == GOA_TLS_TYPE_SSL) ? 465 : 587, + smtp_auth, + data.cancellable, + mail_check_cb, + &data); + + gtk_widget_set_sensitive (data.forward_button, FALSE); + show_progress_ui (GTK_CONTAINER (data.progress_grid), TRUE); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + markup = g_strdup_printf ("%s\n%s", + _("Error connecting to SMTP server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_button_set_label (GTK_BUTTON (data.forward_button), _("_Try Again")); + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + + g_clear_object (&smtp_auth); + g_clear_pointer (&domain, g_free); + goto smtp_again; + } + + smtp_done: + + /* TODO: run in worker thread */ + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&builder, "{sv}", "imap-password", g_variant_new_string (imap_password)); + if (smtp_use_auth) + g_variant_builder_add (&builder, "{sv}", "smtp-password", g_variant_new_string (smtp_password)); + + if (!goa_utils_store_credentials_for_object_sync (provider, + object, + g_variant_builder_end (&builder), + NULL, /* GCancellable */ + &data.error)) + goto out; + + account = goa_object_peek_account (object); + goa_account_call_ensure_credentials (account, + NULL, /* GCancellable */ + NULL, NULL); /* callback, user_data */ + + ret = TRUE; + + out: + if (data.error != NULL) + g_propagate_error (error, data.error); + + gtk_widget_destroy (dialog); + g_free (domain); + g_free (email_address); + g_free (imap_server); + g_free (imap_username); + g_free (smtp_server); + g_free (smtp_username); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&data.cancellable); + g_clear_object (&imap_auth); + g_clear_object (&smtp_auth); + g_clear_object (&mail_client); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +show_label (GtkWidget *grid, gint row, const gchar *left, const gchar *right) +{ + GtkStyleContext *context; + GtkWidget *label; + + label = gtk_label_new (left); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); + + label = gtk_label_new (right); + gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); + gtk_label_set_max_width_chars (GTK_LABEL (label), 24); + gtk_label_set_width_chars (GTK_LABEL (label), 24); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_grid_attach (GTK_GRID (grid), label, 1, row, 3, 1); +} + +static void +show_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkBox *vbox, + G_GNUC_UNUSED GtkGrid *dummy1, + G_GNUC_UNUSED GtkGrid *dummy2) +{ + GtkWidget *grid; + const gchar *username; + gchar *value_str; + gchar *value_str_1; + gint row = 0; + + goa_utils_account_add_attention_needed (client, object, provider, vbox); + + grid = gtk_grid_new (); + gtk_widget_set_halign (grid, GTK_ALIGN_CENTER); + gtk_widget_set_hexpand (grid, TRUE); + gtk_widget_set_margin_end (grid, 72); + gtk_widget_set_margin_start (grid, 72); + gtk_widget_set_margin_top (grid, 24); + gtk_grid_set_column_spacing (GTK_GRID (grid), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid), 6); + gtk_container_add (GTK_CONTAINER (vbox), grid); + + goa_utils_account_add_header (object, GTK_GRID (grid), row++); + + username = g_get_user_name (); + + value_str = goa_util_lookup_keyfile_string (object, "EmailAddress"); + show_label (GTK_WIDGET (grid), row++, _("E-mail"), value_str); + g_free (value_str); + + value_str = goa_util_lookup_keyfile_string (object, "Name"); + show_label (GTK_WIDGET (grid), row++, _("Name"), value_str); + g_free (value_str); + + value_str = goa_util_lookup_keyfile_string (object, "ImapHost"); + value_str_1 = goa_util_lookup_keyfile_string (object, "ImapUserName"); + if (g_strcmp0 (username, value_str_1) != 0) + { + gchar *tmp; + + tmp = g_strconcat (value_str_1, "@", value_str, NULL); + show_label (GTK_WIDGET (grid), row++, _("IMAP"), tmp); + g_free (tmp); + } + else + show_label (GTK_WIDGET (grid), row++, _("IMAP"), value_str); + g_free (value_str_1); + g_free (value_str); + + value_str = goa_util_lookup_keyfile_string (object, "SmtpHost"); + value_str_1 = goa_util_lookup_keyfile_string (object, "SmtpUserName"); + if (value_str_1 != NULL && g_strcmp0 (username, value_str_1) != 0) + { + gchar *tmp; + + tmp = g_strconcat (value_str_1, "@", value_str, NULL); + show_label (GTK_WIDGET (grid), row++, _("SMTP"), tmp); + g_free (tmp); + } + else + show_label (GTK_WIDGET (grid), row++, _("SMTP"), value_str); + g_free (value_str_1); + g_free (value_str); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_imap_smtp_provider_init (GoaImapSmtpProvider *provider) +{ +} + +static void +goa_imap_smtp_provider_class_init (GoaImapSmtpProviderClass *klass) +{ + GoaProviderClass *provider_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->get_provider_icon = get_provider_icon; + provider_class->add_account = add_account; + provider_class->refresh_account = refresh_account; + provider_class->build_object = build_object; + provider_class->show_account = show_account; + provider_class->ensure_credentials_sync = ensure_credentials_sync; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +on_handle_get_password (GoaPasswordBased *interface, + GDBusMethodInvocation *invocation, + const gchar *id, + gpointer user_data) +{ + GoaObject *object; + GoaAccount *account; + GoaProvider *provider; + GError *error; + const gchar *account_id; + const gchar *method_name; + const gchar *provider_type; + gchar *password = NULL; + + /* TODO: maybe log what app is requesting access */ + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (interface))); + account = goa_object_peek_account (object); + account_id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + method_name = g_dbus_method_invocation_get_method_name (invocation); + g_debug ("Handling %s for account (%s, %s)", method_name, provider_type, account_id); + + provider = goa_provider_get_for_provider_type (provider_type); + + error = NULL; + if (!goa_utils_get_credentials (provider, object, id, NULL, &password, NULL, &error)) + { + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + goa_password_based_complete_get_password (interface, invocation, password); + + out: + g_free (password); + g_object_unref (provider); + return TRUE; /* invocation was handled */ +} diff --git a/src/goabackend/goaimapsmtpprovider.h b/src/goabackend/goaimapsmtpprovider.h new file mode 100644 index 0000000..917f9df --- /dev/null +++ b/src/goabackend/goaimapsmtpprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_IMAP_SMTP_PROVIDER_H__ +#define __GOA_IMAP_SMTP_PROVIDER_H__ + +#include + +#include "goaprovider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_IMAP_SMTP_PROVIDER (goa_imap_smtp_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaImapSmtpProvider, goa_imap_smtp_provider, GOA, IMAP_SMTP_PROVIDER, GoaProvider); + +G_END_DECLS + +#endif /* __GOA_IMAP_SMTP_PROVIDER_H__ */ diff --git a/src/goabackend/goakerberosprovider.c b/src/goabackend/goakerberosprovider.c new file mode 100644 index 0000000..e58a5a2 --- /dev/null +++ b/src/goabackend/goakerberosprovider.c @@ -0,0 +1,1506 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goakerberosprovider.h" +#include "goautils.h" +#include "goaidentity.h" +#include "goaidentitymanagererror.h" + +#include + +#include "org.gnome.Identity.h" + +struct _GoaKerberosProvider +{ + GoaProvider parent_instance; +}; + +typedef struct _GoaKerberosProviderClass GoaKerberosProviderClass; + +struct _GoaKerberosProviderClass +{ + GoaProviderClass parent_class; +}; + +static GoaIdentityServiceManager *identity_manager; +static GMutex identity_manager_mutex; +static GCond identity_manager_condition; + +static GDBusObjectManager *object_manager; +static GMutex object_manager_mutex; +static GCond object_manager_condition; + +static void ensure_identity_manager (void); +static void ensure_object_manager (void); + +static char *sign_in_identity_sync (GoaKerberosProvider *self, + const char *identifier, + const char *password, + const char *preauth_source, + GCancellable *cancellable, + GError **error); +static void sign_in_thread (GTask *result, + GoaKerberosProvider *self, + gpointer task_data, + GCancellable *cancellable); +static GoaIdentityServiceIdentity *get_identity_from_object_manager (GoaKerberosProvider *self, + const char *identifier); +static gboolean dbus_proxy_reload_properties_sync (GDBusProxy *proxy, + GCancellable *cancellable); + +static void goa_kerberos_provider_module_init (void); +static void create_object_manager (void); +static void create_identity_manager (void); + +G_DEFINE_TYPE_WITH_CODE (GoaKerberosProvider, goa_kerberos_provider, GOA_TYPE_PROVIDER, + goa_kerberos_provider_module_init (); + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_KERBEROS_NAME, + 0)); + +static void +goa_kerberos_provider_module_init (void) +{ + create_object_manager (); + create_identity_manager (); + g_debug ("activated kerberos provider"); +} + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_KERBEROS_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, GoaObject *object) +{ + return g_strdup(_("Enterprise Login (Kerberos)")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *_provider) +{ + return GOA_PROVIDER_GROUP_TICKETING; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *_provider) +{ + return GOA_PROVIDER_FEATURE_TICKETING; +} + +static GIcon * +get_provider_icon (GoaProvider *provider, GoaObject *object) +{ + return g_themed_icon_new_with_default_fallbacks ("dialog-password-symbolic"); +} + +typedef struct +{ + GCancellable *cancellable; + + GtkDialog *dialog; + GMainLoop *loop; + + GtkWidget *cluebar; + GtkWidget *cluebar_label; + GtkWidget *connect_button; + GtkWidget *progress_grid; + + GtkWidget *principal; + + gchar *account_object_path; + + GError *error; +} SignInRequest; + +static void +translate_error (GError **error) +{ + if (!g_dbus_error_is_remote_error (*error)) + return; + + g_dbus_error_strip_remote_error (*error); +} + +static void +sign_in_identity (GoaKerberosProvider *self, + const char *identifier, + const char *password, + const char *preauth_source, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *operation_result; + + operation_result = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (operation_result, (gpointer) identifier); + + g_object_set_data (G_OBJECT (operation_result), + "password", + (gpointer) + password); + g_object_set_data_full (G_OBJECT (operation_result), + "preauthentication-source", + g_strdup (preauth_source), + g_free); + g_task_run_in_thread (operation_result, (GTaskThreadFunc) sign_in_thread); + + g_object_unref (operation_result); +} + +static gchar * +sign_in_identity_finish (GoaKerberosProvider *self, + GAsyncResult *result, + GError **error) +{ + GTask *task; + + g_return_val_if_fail (GOA_IS_KERBEROS_PROVIDER (self), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + g_return_val_if_fail (g_task_is_valid (result, self), NULL); + task = G_TASK (result); + + return g_task_propagate_pointer (task, error); +} + +static gboolean +get_ticket_sync (GoaKerberosProvider *self, + GoaObject *object, + gboolean is_interactive, + GCancellable *cancellable, + GError **error) +{ + GVariant *credentials = NULL; + GError *lookup_error; + GError *sign_in_error; + GoaAccount *account; + GoaTicketing *ticketing; + GVariant *details; + const char *identifier; + const char *password; + const char *preauth_source; + char *object_path = NULL; + gboolean ret = FALSE; + + account = goa_object_get_account (object); + identifier = goa_account_get_identity (account); + + ticketing = goa_object_get_ticketing (object); + if (ticketing == NULL) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_SUPPORTED, + _("Ticketing is disabled for account")); + goto out; + } + + details = goa_ticketing_get_details (ticketing); + + preauth_source = NULL; + g_variant_lookup (details, "preauthentication-source", "&s", &preauth_source); + + password = NULL; + + lookup_error = NULL; + credentials = goa_utils_lookup_credentials_sync (GOA_PROVIDER (self), + object, + cancellable, + &lookup_error); + + if (credentials == NULL && !is_interactive) + { + if (lookup_error != NULL) + g_propagate_error (error, lookup_error); + else + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_AUTHORIZED, + _("Could not find saved credentials for principal “%s” in keyring"), identifier); + goto out; + } + else if (credentials != NULL) + { + gboolean has_password; + + has_password = g_variant_lookup (credentials, "password", "&s", &password); + if (!has_password && !is_interactive) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_AUTHORIZED, + _("Did not find password for principal “%s” in credentials"), + identifier); + goto out; + } + } + + sign_in_error = NULL; + object_path = sign_in_identity_sync (self, + identifier, + password, + preauth_source, + cancellable, + &sign_in_error); + + if (sign_in_error != NULL) + { + g_propagate_error (error, sign_in_error); + goto out; + } + + ret = TRUE; + + out: + g_clear_object (&account); + g_clear_object (&ticketing); + g_free (object_path); + g_clear_pointer (&credentials, (GDestroyNotify) g_variant_unref); + return ret; +} + +static void +notify_is_temporary_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + GoaAccount *account; + gboolean is_temporary; + + account = GOA_ACCOUNT (object); + is_temporary = goa_account_get_is_temporary (account); + + /* Toggle IsTemporary */ + goa_utils_keyfile_set_boolean (account, "IsTemporary", is_temporary); + + /* Set/unset SessionId */ + if (is_temporary) + { + GDBusConnection *connection; + const gchar *guid; + + connection = G_DBUS_CONNECTION (user_data); + guid = g_dbus_connection_get_guid (connection); + goa_utils_keyfile_set_string (account, "SessionId", guid); + } + else + goa_utils_keyfile_remove_key (account, "SessionId"); +} + +static gboolean +on_handle_get_ticket (GoaTicketing *interface, + GDBusMethodInvocation *invocation) +{ + GoaObject *object; + GoaAccount *account; + GoaProvider *provider; + GError *error; + gboolean got_ticket; + const gchar *id; + const gchar *method_name; + const gchar *provider_type; + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (interface))); + account = goa_object_peek_account (object); + + id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + method_name = g_dbus_method_invocation_get_method_name (invocation); + g_debug ("Handling %s for account (%s, %s)", method_name, provider_type, id); + + provider = goa_provider_get_for_provider_type (provider_type); + error = NULL; + got_ticket = get_ticket_sync (GOA_KERBEROS_PROVIDER (provider), + object, + TRUE /* Allow interaction */, + NULL, + &error); + + if (!got_ticket) + g_dbus_method_invocation_take_error (invocation, error); + else + goa_ticketing_complete_get_ticket (interface, invocation); + + g_object_unref (provider); + return TRUE; +} + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account; + GoaTicketing *ticketing = NULL; + gboolean ticketing_enabled; + gboolean ret = FALSE; + + if (!GOA_PROVIDER_CLASS (goa_kerberos_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + ticketing = goa_object_get_ticketing (GOA_OBJECT (object)); + ticketing_enabled = g_key_file_get_boolean (key_file, group, "TicketingEnabled", NULL); + + if (ticketing_enabled) + { + if (ticketing == NULL) + { + char *preauthentication_source; + GVariantBuilder details; + + ticketing = goa_ticketing_skeleton_new (); + + g_signal_connect (ticketing, + "handle-get-ticket", + G_CALLBACK (on_handle_get_ticket), + NULL); + + goa_object_skeleton_set_ticketing (object, ticketing); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + + preauthentication_source = g_key_file_get_string (key_file, group, "PreauthenticationSource", NULL); + if (preauthentication_source) + g_variant_builder_add (&details, "{ss}", "preauthentication-source", preauthentication_source); + + g_object_set (G_OBJECT (ticketing), "details", g_variant_builder_end (&details), NULL); + } + } + else if (ticketing != NULL) + { + goa_object_skeleton_set_ticketing (object, NULL); + } + + if (just_added) + { + goa_account_set_ticketing_disabled (account, !ticketing_enabled); + + g_signal_connect (account, + "notify::is-temporary", + G_CALLBACK (notify_is_temporary_cb), + connection); + + g_signal_connect (account, + "notify::ticketing-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "TicketingEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&ticketing); + + return ret; +} + +static void +add_entry (GtkWidget *grid, + gint row, + const gchar *text, + GtkWidget **out_entry) +{ + GtkStyleContext *context; + GtkWidget *label; + GtkWidget *entry; + + label = gtk_label_new_with_mnemonic (text); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); + + entry = gtk_entry_new (); + gtk_widget_set_hexpand (entry, TRUE); + gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); + gtk_grid_attach (GTK_GRID (grid), entry, 1, row, 3, 1); + + gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); + if (out_entry != NULL) + *out_entry = entry; +} + +static gchar * +normalize_principal (const gchar *principal, gchar **out_realm) +{ + gchar *domain = NULL; + gchar *realm = NULL; + gchar *ret = NULL; + gchar *username = NULL; + + if (!goa_utils_parse_email_address (principal, &username, &domain)) + goto out; + + realm = g_utf8_strup (domain, -1); + ret = g_strconcat (username, "@", realm, NULL); + + if (out_realm != NULL) + { + *out_realm = realm; + realm = NULL; + } + + out: + g_free (domain); + g_free (realm); + g_free (username); + return ret; +} + +static void +on_principal_changed (GtkEditable *editable, gpointer user_data) +{ + SignInRequest *request = user_data; + gboolean can_add; + const gchar *principal; + + principal = gtk_entry_get_text (GTK_ENTRY (request->principal)); + can_add = goa_utils_parse_email_address (principal, NULL, NULL); + gtk_dialog_set_response_sensitive (request->dialog, GTK_RESPONSE_OK, can_add); +} + +static void +show_progress_ui (GtkContainer *container, gboolean progress) +{ + GList *children; + GList *l; + + children = gtk_container_get_children (container); + for (l = children; l != NULL; l = l->next) + { + GtkWidget *widget = GTK_WIDGET (l->data); + gdouble opacity; + + opacity = progress ? 1.0 : 0.0; + gtk_widget_set_opacity (widget, opacity); + } + + g_list_free (children); +} + +static void +create_account_details_ui (GoaKerberosProvider *self, + GtkDialog *dialog, + GtkWidget *vbox, + gboolean new_account, + SignInRequest *request) +{ + GtkWidget *grid0; + GtkWidget *grid1; + GtkWidget *label; + GtkWidget *spinner; + gint row; + gint width; + + goa_utils_set_dialog_title (GOA_PROVIDER (self), dialog, new_account); + + grid0 = gtk_grid_new (); + gtk_container_set_border_width (GTK_CONTAINER (grid0), 5); + gtk_widget_set_margin_bottom (grid0, 6); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid0), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid0), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid0); + + request->cluebar = gtk_info_bar_new (); + gtk_info_bar_set_message_type (GTK_INFO_BAR (request->cluebar), GTK_MESSAGE_ERROR); + gtk_widget_set_hexpand (request->cluebar, TRUE); + gtk_widget_set_no_show_all (request->cluebar, TRUE); + gtk_container_add (GTK_CONTAINER (grid0), request->cluebar); + + request->cluebar_label = gtk_label_new (""); + gtk_label_set_line_wrap (GTK_LABEL (request->cluebar_label), TRUE); + gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (request->cluebar))), + request->cluebar_label); + + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_container_add (GTK_CONTAINER (grid0), grid1); + + row = 0; + add_entry (grid1, row++, _("_Principal"), &request->principal); + + gtk_widget_grab_focus (request->principal); + g_signal_connect (request->principal, "changed", G_CALLBACK (on_principal_changed), request); + + gtk_dialog_add_button (request->dialog, _("_Cancel"), GTK_RESPONSE_CANCEL); + request->connect_button = gtk_dialog_add_button (request->dialog, _("C_onnect"), GTK_RESPONSE_OK); + gtk_dialog_set_default_response (request->dialog, GTK_RESPONSE_OK); + gtk_dialog_set_response_sensitive (request->dialog, GTK_RESPONSE_OK, FALSE); + + request->progress_grid = gtk_grid_new (); + gtk_orientable_set_orientation (GTK_ORIENTABLE (request->progress_grid), GTK_ORIENTATION_HORIZONTAL); + gtk_grid_set_column_spacing (GTK_GRID (request->progress_grid), 3); + gtk_container_add (GTK_CONTAINER (grid0), request->progress_grid); + + spinner = gtk_spinner_new (); + gtk_widget_set_opacity (spinner, 0.0); + gtk_widget_set_size_request (spinner, 20, 20); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_container_add (GTK_CONTAINER (request->progress_grid), spinner); + + label = gtk_label_new (_("Connecting…")); + gtk_widget_set_opacity (label, 0.0); + gtk_container_add (GTK_CONTAINER (request->progress_grid), label); + + gtk_window_get_size (GTK_WINDOW (request->dialog), &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (request->dialog), width, -1); +} + +static void +add_account_cb (GoaManager *manager, + GAsyncResult *result, + gpointer user_data) +{ + SignInRequest *request = user_data; + goa_manager_call_add_account_finish (manager, + &request->account_object_path, + result, + &request->error); + if (request->error != NULL) + translate_error (&request->error); + g_main_loop_quit (request->loop); + gtk_widget_set_sensitive (request->connect_button, TRUE); + gtk_widget_set_sensitive (request->principal, TRUE); + show_progress_ui (GTK_CONTAINER (request->progress_grid), FALSE); +} + +static void +remove_account_cb (GoaAccount *account, + GAsyncResult *result, + GMainLoop *loop) +{ + goa_account_call_remove_finish (account, result, NULL); + g_main_loop_quit (loop); +} + +static gboolean +refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + GoaKerberosProvider *self = GOA_KERBEROS_PROVIDER (provider); + gboolean got_ticket; + GError *ticket_error = NULL; + + g_return_val_if_fail (GOA_IS_KERBEROS_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + got_ticket = get_ticket_sync (self, + object, + TRUE /* Allow interaction */, + NULL, + &ticket_error); + + if (ticket_error != NULL) + { + translate_error (&ticket_error); + g_propagate_error (error, ticket_error); + } + + return got_ticket; +} + +static void +on_initial_sign_in_done (GoaKerberosProvider *self, + GAsyncResult *result, + GTask *operation_result) +{ + GError *error; + gboolean remember_password; + GoaObject *object; + char *object_path; + + object = g_task_get_source_tag (operation_result); + + remember_password = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (operation_result), + "remember-password")); + + error = NULL; + object_path = sign_in_identity_finish (self, result, &error); + if (error != NULL) + { + g_task_return_error (operation_result, error); + goto out; + } + + if (remember_password) + { + GVariantBuilder builder; + + if (object_path != NULL && object != NULL) + { + GcrSecretExchange *secret_exchange; + const char *password; + + secret_exchange = g_object_get_data (G_OBJECT (operation_result), "secret-exchange"); + password = gcr_secret_exchange_get_secret (secret_exchange, NULL); + + /* FIXME: we go to great lengths to keep the password in non-pageable memory, + * and then just duplicate it into a gvariant here + */ + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&builder, + "{sv}", + "password", + g_variant_new_string (password)); + + error = NULL; + goa_utils_store_credentials_for_object_sync (GOA_PROVIDER (self), + object, + g_variant_builder_end (&builder), + NULL, + NULL); + } + } + + g_task_return_boolean (operation_result, TRUE); + + out: + g_free (object_path); + g_object_unref (operation_result); +} + +static void +on_system_prompt_answered_for_initial_sign_in (GcrPrompt *prompt, + GAsyncResult *result, + GTask *operation_result) +{ + GoaKerberosProvider *self; + GCancellable *cancellable; + GError *error; + const char *principal; + const char *password; + const char *preauth_source; + GcrSecretExchange *secret_exchange; + + self = GOA_KERBEROS_PROVIDER (g_task_get_source_object (operation_result)); + principal = g_object_get_data (G_OBJECT (operation_result), "principal"); + cancellable = g_task_get_cancellable (operation_result); + + /* We currently don't prompt the user to choose a preauthentication source during initial sign in + * so we assume there's no preauthentication source + */ + preauth_source = NULL; + + error = NULL; + password = gcr_prompt_password_finish (prompt, result, &error); + + if (password == NULL) + { + gcr_system_prompt_close (GCR_SYSTEM_PROMPT (prompt), NULL, NULL); + + if (error != NULL) + { + g_task_return_error (operation_result, error); + } + else + { + g_task_return_new_error (operation_result, + G_IO_ERROR, + G_IO_ERROR_CANCELLED, + _("Operation was cancelled")); + } + + g_object_unref (operation_result); + return; + } + + secret_exchange = gcr_system_prompt_get_secret_exchange (GCR_SYSTEM_PROMPT (prompt)); + g_object_set_data_full (G_OBJECT (operation_result), + "secret-exchange", + g_object_ref (secret_exchange), + (GDestroyNotify) + g_object_unref); + + g_object_set_data (G_OBJECT (operation_result), + "remember-password", + GINT_TO_POINTER (gcr_prompt_get_choice_chosen (prompt))); + + gcr_system_prompt_close (GCR_SYSTEM_PROMPT (prompt), NULL, NULL); + + sign_in_identity (self, + principal, + password, + preauth_source, + cancellable, + (GAsyncReadyCallback) + on_initial_sign_in_done, + operation_result); +} + +static void +on_system_prompt_open_for_initial_sign_in (GcrSystemPrompt *system_prompt, + GAsyncResult *result, + GTask *operation_result) +{ + GCancellable *cancellable; + GcrPrompt *prompt = NULL; + GError *error; + + cancellable = g_task_get_cancellable (operation_result); + error = NULL; + prompt = gcr_system_prompt_open_finish (result, &error); + + if (prompt == NULL) + { + g_task_return_error (operation_result, error); + g_object_unref (operation_result); + goto out; + } + + gcr_prompt_set_title (prompt, _("Log In to Realm")); + gcr_prompt_set_description (prompt, _("Please enter your password below.")); + gcr_prompt_set_choice_label (prompt, _("Remember this password")); + + gcr_prompt_password_async (prompt, + cancellable, + (GAsyncReadyCallback) + on_system_prompt_answered_for_initial_sign_in, + operation_result); + + out: + g_clear_object (&prompt); +} + +static void +perform_initial_sign_in (GoaKerberosProvider *self, + GoaObject *object, + const char *principal, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + + GTask *operation_result; + + operation_result = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (operation_result, object); + + g_object_set_data (G_OBJECT (operation_result), + "principal", + (gpointer) + principal); + + gcr_system_prompt_open_async (-1, + cancellable, + (GAsyncReadyCallback) + on_system_prompt_open_for_initial_sign_in, + operation_result); +} + +static gboolean +perform_initial_sign_in_finish (GoaKerberosProvider *self, + GAsyncResult *result, + GError **error) +{ + GTask *task; + + g_return_val_if_fail (GOA_IS_KERBEROS_PROVIDER (self), FALSE); + + g_return_val_if_fail (g_task_is_valid (result, self), FALSE); + task = G_TASK (result); + + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + return g_task_propagate_boolean (task, error); +} + +static void +on_account_signed_in (GoaKerberosProvider *self, + GAsyncResult *result, + SignInRequest *request) +{ + perform_initial_sign_in_finish (self, result, &request->error); + g_main_loop_quit (request->loop); +} + +static GoaObject * +add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + GoaKerberosProvider *self = GOA_KERBEROS_PROVIDER (provider); + SignInRequest request; + GVariantBuilder credentials; + GVariantBuilder details; + GoaObject *object = NULL; + GoaAccount *account; + char *realm = NULL; + const char *principal_text; + const char *provider_type; + gchar *principal = NULL; + gint response; + + memset (&request, 0, sizeof (SignInRequest)); + request.cancellable = g_cancellable_new (); + request.loop = g_main_loop_new (NULL, FALSE); + request.dialog = dialog; + request.error = NULL; + + create_account_details_ui (self, dialog, GTK_WIDGET (vbox), TRUE, &request); + gtk_widget_show_all (GTK_WIDGET (vbox)); + +start_over: + response = gtk_dialog_run (dialog); + + if (response != GTK_RESPONSE_OK) + { + g_set_error (&request.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + principal_text = gtk_entry_get_text (GTK_ENTRY (request.principal)); + principal = normalize_principal (principal_text, &realm); + gtk_entry_set_text (GTK_ENTRY (request.principal), principal); + + /* See if there's already an account of this type with the + * given identity + */ + provider_type = goa_provider_get_provider_type (provider); + + if (!goa_utils_check_duplicate (client, + principal, + principal, + provider_type, + (GoaPeekInterfaceFunc) goa_object_peek_account, + &request.error)) + goto out; + + /* If there isn't an account, then go ahead and create one + */ + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "Realm", realm); + g_variant_builder_add (&details, "{ss}", "IsTemporary", "true"); + g_variant_builder_add (&details, "{ss}", "TicketingEnabled", "true"); + + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (provider), + principal, + principal, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + &request); + gtk_widget_set_sensitive (request.connect_button, FALSE); + gtk_widget_set_sensitive (request.principal, FALSE); + show_progress_ui (GTK_CONTAINER (request.progress_grid), TRUE); + g_main_loop_run (request.loop); + if (request.error != NULL) + goto out; + + object = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + request.account_object_path)); + account = goa_object_peek_account (object); + + /* After the account is created, try to sign it in + */ + perform_initial_sign_in (self, + object, + principal, + request.cancellable, + (GAsyncReadyCallback) on_account_signed_in, + &request); + + gtk_widget_set_sensitive (request.connect_button, FALSE); + gtk_widget_set_sensitive (request.principal, FALSE); + show_progress_ui (GTK_CONTAINER (request.progress_grid), TRUE); + + g_main_loop_run (request.loop); + + gtk_widget_set_sensitive (request.connect_button, TRUE); + gtk_widget_set_sensitive (request.principal, TRUE); + show_progress_ui (GTK_CONTAINER (request.progress_grid), FALSE); + + if (request.error != NULL) + { + gchar *markup; + + translate_error (&request.error); + + if (!g_error_matches (request.error, + G_IO_ERROR, + G_IO_ERROR_CANCELLED)) + { + markup = g_strdup_printf ("%s:\n%s", + _("Error connecting to enterprise identity server"), + request.error->message); + gtk_label_set_markup (GTK_LABEL (request.cluebar_label), markup); + g_free (markup); + + gtk_button_set_label (GTK_BUTTON (request.connect_button), _("_Try Again")); + gtk_widget_set_no_show_all (request.cluebar, FALSE); + gtk_widget_show_all (request.cluebar); + } + g_clear_error (&request.error); + + /* If it couldn't be signed in, then delete it and start over + */ + goa_account_call_remove (account, + NULL, + (GAsyncReadyCallback) + remove_account_cb, + request.loop); + g_main_loop_run (request.loop); + + g_clear_object (&object); + g_clear_pointer (&principal, g_free); + g_clear_pointer (&realm, g_free); + g_clear_pointer (&request.account_object_path, g_free); + goto start_over; + } + + goa_account_set_is_temporary (account, FALSE); + + gtk_widget_hide (GTK_WIDGET (dialog)); + + out: + /* We might have an object even when request.error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (request.error != NULL) + { + translate_error (&request.error); + g_propagate_error (error, request.error); + } + else + g_assert (object != NULL); + + g_free (request.account_object_path); + g_free (principal); + g_free (realm); + g_clear_pointer (&request.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&request.cancellable); + return object; +} + +static gboolean +dbus_proxy_reload_properties_sync (GDBusProxy *proxy, + GCancellable *cancellable) +{ + GVariant *result = NULL; + char *name; + char *name_owner = NULL; + GVariant *value; + GVariantIter *iter = NULL; + gboolean ret = FALSE; + + name_owner = g_dbus_proxy_get_name_owner (proxy); + result = g_dbus_connection_call_sync (g_dbus_proxy_get_connection (proxy), + name_owner, + g_dbus_proxy_get_object_path (proxy), + "org.freedesktop.DBus.Properties", + "GetAll", + g_variant_new ("(s)", g_dbus_proxy_get_interface_name (proxy)), + G_VARIANT_TYPE ("(a{sv})"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + NULL); + if (result == NULL) + goto out; + + g_variant_get (result, "(a{sv})", &iter); + while (g_variant_iter_next (iter, "{sv}", &name, &value)) + { + g_dbus_proxy_set_cached_property (proxy, name, value); + + g_free (name); + g_variant_unref (value); + } + + ret = TRUE; + + out: + g_clear_pointer (&iter, (GDestroyNotify) g_variant_iter_free); + g_clear_pointer (&result, (GDestroyNotify) g_variant_unref); + g_free (name_owner); + return ret; +} + +static gboolean +ensure_credentials_sync (GoaProvider *provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GoaIdentityServiceIdentity *identity = NULL; + GoaAccount *account = NULL; + const char *identifier; + gint64 timestamp; + GDateTime *now, *expiration_time; + GTimeSpan time_span; + gboolean credentials_ensured = FALSE; + + account = goa_object_get_account (object); + identifier = goa_account_get_identity (account); + + ensure_identity_manager (); + + g_mutex_lock (&identity_manager_mutex); + identity = get_identity_from_object_manager (GOA_KERBEROS_PROVIDER (provider), + identifier); + + if (identity != NULL) + { + if (!dbus_proxy_reload_properties_sync (G_DBUS_PROXY (identity), cancellable)) + g_clear_object (&identity); + } + + if (identity == NULL || !goa_identity_service_identity_get_is_signed_in (identity)) + { + GError *lookup_error; + gboolean ticket_synced; + + lookup_error = NULL; + + g_mutex_unlock (&identity_manager_mutex); + ticket_synced = get_ticket_sync (GOA_KERBEROS_PROVIDER (provider), + object, + FALSE /* Don't allow interaction */, + cancellable, + &lookup_error); + g_mutex_lock (&identity_manager_mutex); + + if (!ticket_synced) + { + translate_error (&lookup_error); + g_set_error_literal (error, + GOA_ERROR, + GOA_ERROR_NOT_AUTHORIZED, + lookup_error->message); + g_error_free (lookup_error); + goto out; + } + + if (identity == NULL) + identity = get_identity_from_object_manager (GOA_KERBEROS_PROVIDER (provider), + identifier); + } + + if (identity == NULL) + goto out; + + dbus_proxy_reload_properties_sync (G_DBUS_PROXY (identity), cancellable); + + now = g_date_time_new_now_local (); + timestamp = goa_identity_service_identity_get_expiration_timestamp (identity); + + expiration_time = g_date_time_new_from_unix_local (timestamp); + time_span = g_date_time_difference (expiration_time, now); + + time_span /= G_TIME_SPAN_SECOND; + + if (time_span < 0 || time_span > G_MAXINT) + time_span = 0; + + if (out_expires_in != NULL) + *out_expires_in = (int) time_span; + + credentials_ensured = TRUE; + + g_date_time_unref (now); + g_date_time_unref (expiration_time); + + out: + g_clear_object (&account); + g_clear_object (&identity); + g_mutex_unlock (&identity_manager_mutex); + return credentials_ensured; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +remove_account_in_thread_func (GTask *task, + gpointer source_object, + gpointer task_data, + GCancellable *cancellable) +{ + GError *error; + GoaAccount *account = NULL; + GoaObject *object = GOA_OBJECT (task_data); + const gchar *identifier; + + ensure_identity_manager (); + + account = goa_object_get_account (object); + identifier = goa_account_get_identity (account); + + g_debug ("Kerberos account %s removed and should now be signed out", identifier); + + error = NULL; + if (!goa_identity_service_manager_call_sign_out_sync (identity_manager, identifier, cancellable, &error)) + { + g_task_return_error (task, error); + goto out; + } + + g_task_return_boolean (task, TRUE); + + out: + g_clear_object (&account); +} + +static void +remove_account (GoaProvider *provider, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaKerberosProvider *self = GOA_KERBEROS_PROVIDER (provider); + GTask *task; + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, remove_account); + + g_task_set_task_data (task, g_object_ref (object), g_object_unref); + g_task_run_in_thread (task, remove_account_in_thread_func); + + g_object_unref (task); +} + +static gboolean +remove_account_finish (GoaProvider *provider, + GAsyncResult *res, + GError **error) +{ + GoaKerberosProvider *self = GOA_KERBEROS_PROVIDER (provider); + GTask *task; + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == remove_account, FALSE); + + return g_task_propagate_boolean (task, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaIdentityServiceIdentity * +get_identity_from_object_manager (GoaKerberosProvider *self, + const char *identifier) +{ + GoaIdentityServiceIdentity *identity = NULL; + GList *objects, *node; + + ensure_object_manager (); + + g_mutex_lock (&object_manager_mutex); + objects = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (object_manager)); + + for (node = objects; node != NULL; node = node->next) + { + GoaIdentityServiceIdentity *candidate_identity; + const char *candidate_identifier; + GDBusObject *object; + + object = node->data; + + candidate_identity = GOA_IDENTITY_SERVICE_IDENTITY (g_dbus_object_get_interface (object, "org.gnome.Identity")); + + if (candidate_identity == NULL) + continue; + + candidate_identifier = goa_identity_service_identity_get_identifier (candidate_identity); + + if (g_strcmp0 (candidate_identifier, identifier) == 0) + { + identity = candidate_identity; + break; + } + + g_object_unref (candidate_identity); + } + + g_list_free_full (objects, (GDestroyNotify) g_object_unref); + g_mutex_unlock (&object_manager_mutex); + + return identity; +} + +static char * +sign_in_identity_sync (GoaKerberosProvider *self, + const char *identifier, + const char *password, + const char *preauth_source, + GCancellable *cancellable, + GError **error) +{ + GcrSecretExchange *secret_exchange; + char *secret_key; + char *return_key = NULL; + char *concealed_secret; + char *identity_object_path = NULL; + gboolean keys_exchanged; + GError *local_error; + GVariantBuilder details; + + secret_exchange = gcr_secret_exchange_new (NULL); + + secret_key = gcr_secret_exchange_begin (secret_exchange); + ensure_identity_manager (); + + g_mutex_lock (&identity_manager_mutex); + keys_exchanged = goa_identity_service_manager_call_exchange_secret_keys_sync (identity_manager, + identifier, + secret_key, + &return_key, + cancellable, + error); + g_mutex_unlock (&identity_manager_mutex); + g_free (secret_key); + + if (!keys_exchanged) + goto out; + + if (!gcr_secret_exchange_receive (secret_exchange, return_key)) + { + g_set_error (error, + GCR_ERROR, + GCR_ERROR_UNRECOGNIZED, + _("Identity service returned invalid key")); + goto out; + } + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + + concealed_secret = gcr_secret_exchange_send (secret_exchange, password, -1); + g_variant_builder_add (&details, "{ss}", "initial-password", concealed_secret); + g_free (concealed_secret); + + if (preauth_source != NULL) + { + g_variant_builder_add (&details, "{ss}", "preauthentication-source", preauth_source); + } + + g_mutex_lock (&identity_manager_mutex); + + local_error = NULL; + goa_identity_service_manager_call_sign_in_sync (identity_manager, + identifier, + g_variant_builder_end (&details), + &identity_object_path, + cancellable, + &local_error); + + if (local_error != NULL) + { + if (g_error_matches (local_error, + GOA_IDENTITY_MANAGER_ERROR, + GOA_IDENTITY_MANAGER_ERROR_ACCESSING_CREDENTIALS)) + { + g_assert_not_reached (); + } + + g_propagate_error (error, local_error); + } + + g_mutex_unlock (&identity_manager_mutex); + + out: + g_free (return_key); + g_object_unref (secret_exchange); + return identity_object_path; +} + +static void +sign_in_thread (GTask *task, + GoaKerberosProvider *self, + gpointer task_data G_GNUC_UNUSED, + GCancellable *cancellable) +{ + const char *identifier; + const char *password; + const char *preauth_source; + char *object_path; + GError *error; + + identifier = g_task_get_source_tag (task); + password = g_object_get_data (G_OBJECT (task), "password"); + preauth_source = g_object_get_data (G_OBJECT (task), "preauth-source"); + + error = NULL; + object_path = sign_in_identity_sync (self, identifier, password, preauth_source, cancellable, &error); + if (object_path == NULL) + g_task_return_error (task, error); + else + g_task_return_pointer (task, object_path, NULL); +} + + +static void +on_object_manager_created (gpointer object, + GAsyncResult *result, + gpointer unused G_GNUC_UNUSED) +{ + GDBusObjectManager *manager; + GError *error; + + error = NULL; + manager = goa_identity_service_object_manager_client_new_for_bus_finish (result, &error); + if (manager == NULL) + { + g_warning ("GoaKerberosProvider: Could not connect to identity service: %s", error->message); + g_clear_error (&error); + return; + } + + g_mutex_lock (&object_manager_mutex); + object_manager = manager; + g_cond_signal (&object_manager_condition); + g_mutex_unlock (&object_manager_mutex); +} + +static void +create_object_manager (void) +{ + goa_identity_service_object_manager_client_new_for_bus (G_BUS_TYPE_SESSION, + G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE, + "org.gnome.Identity", + "/org/gnome/Identity", + NULL, + (GAsyncReadyCallback) + on_object_manager_created, + NULL); +} + +static void +ensure_object_manager (void) +{ + g_mutex_lock (&object_manager_mutex); + while (object_manager == NULL) + g_cond_wait (&object_manager_condition, &object_manager_mutex); + g_mutex_unlock (&object_manager_mutex); +} + +static void +on_identity_manager_created (gpointer identity, + GAsyncResult *result, + gpointer unused G_GNUC_UNUSED) +{ + GoaIdentityServiceManager *manager; + GError *error; + + error = NULL; + manager = goa_identity_service_manager_proxy_new_for_bus_finish (result, &error); + if (manager == NULL) + { + g_warning ("GoaKerberosProvider: Could not connect to identity service manager: %s", error->message); + g_clear_error (&error); + return; + } + + g_mutex_lock (&identity_manager_mutex); + identity_manager = manager; + g_cond_signal (&identity_manager_condition); + g_mutex_unlock (&identity_manager_mutex); +} + +static void +create_identity_manager (void) +{ + goa_identity_service_manager_proxy_new_for_bus (G_BUS_TYPE_SESSION, + G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE, + "org.gnome.Identity", + "/org/gnome/Identity/Manager", + NULL, + (GAsyncReadyCallback) + on_identity_manager_created, + NULL); +} + +static void +ensure_identity_manager (void) +{ + g_mutex_lock (&identity_manager_mutex); + while (identity_manager == NULL) + g_cond_wait (&identity_manager_condition, &identity_manager_mutex); + g_mutex_unlock (&identity_manager_mutex); +} + +static void +goa_kerberos_provider_init (GoaKerberosProvider *provider) +{ +} + +static void +goa_kerberos_provider_class_init (GoaKerberosProviderClass *kerberos_class) +{ + static volatile GQuark goa_identity_manager_error_domain = 0; + GoaProviderClass *provider_class; + + provider_class = GOA_PROVIDER_CLASS (kerberos_class); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->get_provider_icon = get_provider_icon; + provider_class->build_object = build_object; + provider_class->add_account = add_account; + provider_class->refresh_account = refresh_account; + provider_class->ensure_credentials_sync = ensure_credentials_sync; + provider_class->remove_account = remove_account; + provider_class->remove_account_finish = remove_account_finish; + + /* this will force associating errors in the + * GOA_IDENTITY_MANAGER_ERROR error domain with + * org.gnome.Identity.Manager.Error.* errors via + * g_dbus_error_register_error_domain(). + */ + goa_identity_manager_error_domain = GOA_IDENTITY_MANAGER_ERROR; + goa_identity_manager_error_domain; /* shut up -Wunused-but-set-variable */ +} diff --git a/src/goabackend/goakerberosprovider.h b/src/goabackend/goakerberosprovider.h new file mode 100644 index 0000000..43b42de --- /dev/null +++ b/src/goabackend/goakerberosprovider.h @@ -0,0 +1,40 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_KERBEROS_PROVIDER_H__ +#define __GOA_KERBEROS_PROVIDER_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_KERBEROS_PROVIDER (goa_kerberos_provider_get_type ()) +#define GOA_KERBEROS_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_KERBEROS_PROVIDER, GoaKerberosProvider)) +#define GOA_IS_KERBEROS_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_KERBEROS_PROVIDER)) + +typedef struct _GoaKerberosProvider GoaKerberosProvider; + +GType goa_kerberos_provider_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __GOA_KERBEROS_PROVIDER_H__ */ diff --git a/src/goabackend/goalastfmprovider.c b/src/goabackend/goalastfmprovider.c new file mode 100644 index 0000000..8dab6d9 --- /dev/null +++ b/src/goabackend/goalastfmprovider.c @@ -0,0 +1,915 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2015 Felipe Borges + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include + +#include "goahttpclient.h" +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaoauth2provider.h" +#include "goaoauth2provider-priv.h" +#include "goalastfmprovider.h" +#include "goarestproxy.h" +#include "goautils.h" + +struct _GoaLastfmProvider +{ + GoaOAuth2Provider parent_instance; +}; + +typedef struct _GoaLastfmProviderClass GoaLastfmProviderClass; + +struct _GoaLastfmProviderClass +{ + GoaOAuth2ProviderClass parent_class; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaLastfmProvider, goa_lastfm_provider, GOA_TYPE_OAUTH2_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_LASTFM_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *_provider) +{ + return GOA_LASTFM_NAME; +} + +static gchar * +get_provider_name (GoaProvider *_provider, + GoaObject *object) +{ + return g_strdup (_("Last.fm")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *_provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *_provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | GOA_PROVIDER_FEATURE_MUSIC; +} + +static const gchar * +get_request_uri (GoaProvider *provider) +{ + return "https://ws.audioscrobbler.com/2.0/"; +} + +static const gchar * +get_client_id (GoaOAuth2Provider *provider) +{ + return GOA_LASTFM_CLIENT_ID; +} + +static const gchar * +get_client_secret (GoaOAuth2Provider *provider) +{ + return GOA_LASTFM_CLIENT_SECRET; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account; + GoaMusic *music = NULL; + gboolean music_enabled; + gboolean ret = FALSE; + + account = NULL; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_lastfm_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Music */ + music = goa_object_get_music (GOA_OBJECT (object)); + music_enabled = g_key_file_get_boolean (key_file, group, "MusicEnabled", NULL); + if (music_enabled) + { + if (music == NULL) + { + music = goa_music_skeleton_new (); + goa_object_skeleton_set_music (object, music); + } + } + else + { + if (music != NULL) + goa_object_skeleton_set_music (object, NULL); + } + + if (just_added) + { + goa_account_set_music_disabled (account, !music_enabled); + + g_signal_connect (account, + "notify::music-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "MusicEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&music); + g_clear_object (&account); + return ret; +} + +static gboolean +lastfm_login_sync (GoaProvider *provider, + const gchar *username, + const gchar *password, + GError **error) +{ + JsonParser *parser; + JsonObject *json_obj; + JsonObject *session_obj; + JsonNode *root; + RestProxyCall *call; + const gchar *payload; + gchar *sig; + gchar *sig_md5; + gboolean ret; + + call = NULL; + parser = NULL; + ret = FALSE; + + sig = g_strdup_printf ("api_key%s" + "methodauth.getMobileSession" + "password%s" + "username%s" + "%s", + GOA_LASTFM_CLIENT_ID, + password, + username, + GOA_LASTFM_CLIENT_SECRET); + sig_md5 = g_compute_checksum_for_string (G_CHECKSUM_MD5, sig, -1); + + call = rest_proxy_new_call (goa_rest_proxy_new (get_request_uri (provider), FALSE)); + + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_add_header (call, "Content-Type", "application/x-www-form-urlencoded"); + rest_proxy_call_add_param (call, "method", "auth.getMobileSession"); + rest_proxy_call_add_param (call, "api_key", GOA_LASTFM_CLIENT_ID); + rest_proxy_call_add_param (call, "username", username); + rest_proxy_call_add_param (call, "password", password); + rest_proxy_call_add_param (call, "api_sig", sig_md5); + rest_proxy_call_add_param (call, "format", "json"); + + if (!rest_proxy_call_sync (call, error)) + goto out; + + parser = json_parser_new (); + payload = rest_proxy_call_get_payload (call); + if (payload == NULL) + { + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + if (!json_parser_load_from_data (parser, + payload, + rest_proxy_call_get_payload_length (call), + NULL)) + { + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + root = json_parser_get_root (parser); + json_obj = json_node_get_object (root); + if (!json_object_has_member (json_obj, "session")) + { + g_warning ("Did not find session in JSON data"); + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + session_obj = json_node_get_object (json_object_get_member (json_obj, "session")); + if (!json_object_has_member (session_obj, "name")) + { + g_warning ("Did not find session.name in JSON data"); + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + if (!json_object_has_member (session_obj, "key")) + { + g_warning ("Did not find session.key in JSON data"); + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + ret = TRUE; + + out: + g_clear_object (&parser); + g_clear_object (&call); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ +static gboolean +ensure_credentials_sync (GoaProvider *provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + gchar *username = NULL; + gchar *password = NULL; + gboolean ret = FALSE; + + if (!goa_utils_get_credentials (provider, object, "password", &username, &password, cancellable, error)) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + if (!lastfm_login_sync (provider, username, password, error)) + { + if (error != NULL) + { + g_prefix_error (error, + /* Translators: the first %s is the username + * (eg., debarshi.ray@gmail.com or rishi), and the + * (%s, %d) is the error domain and code. + */ + _("Invalid password with username “%s” (%s, %d): "), + username, + g_quark_to_string ((*error)->domain), + (*error)->code); + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + if (out_expires_in != NULL) + *out_expires_in = 0; + + ret = TRUE; + + out: + g_free (username); + g_free (password); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_entry (GtkWidget *grid, + gint row, + const gchar *text, + GtkWidget **out_entry) +{ + GtkStyleContext *context; + GtkWidget *label; + GtkWidget *entry; + + label = gtk_label_new_with_mnemonic (text); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); + + entry = gtk_entry_new (); + gtk_widget_set_hexpand (entry, TRUE); + gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); + gtk_grid_attach (GTK_GRID (grid), entry, 1, row, 3, 1); + + gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); + if (out_entry != NULL) + *out_entry = entry; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GCancellable *cancellable; + + GtkDialog *dialog; + GMainLoop *loop; + + GtkWidget *cluebar; + GtkWidget *cluebar_label; + GtkWidget *connect_button; + GtkWidget *progress_grid; + + GtkWidget *username; + GtkWidget *password; + + gchar *account_object_path; + gchar *access_token; + + GError *error; +} AddAccountData; + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +on_username_or_password_changed (GtkEditable *editable, gpointer user_data) +{ + AddAccountData *data = user_data; + gboolean can_add; + gchar *username; + gchar *password; + + can_add = FALSE; + username = NULL; + password = NULL; + + username = g_strdup (gtk_entry_get_text (GTK_ENTRY (data->username))); + password = g_strdup (gtk_entry_get_text (GTK_ENTRY (data->password))); + if ((username == NULL) || (password == NULL)) + goto out; + + can_add = gtk_entry_get_text_length (GTK_ENTRY (data->username)) != 0 + && gtk_entry_get_text_length (GTK_ENTRY (data->password)) != 0; + + out: + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, can_add); + g_free (username); + g_free (password); +} + +static void +create_account_details_ui (GoaProvider *provider, + GtkDialog *dialog, + GtkBox *vbox, + gboolean new_account, + AddAccountData *data) +{ + GtkWidget *grid0; + GtkWidget *grid1; + GtkWidget *label; + GtkWidget *spinner; + gint row; + gint width; + + goa_utils_set_dialog_title (provider, dialog, new_account); + + grid0 = gtk_grid_new (); + gtk_container_set_border_width (GTK_CONTAINER (grid0), 5); + gtk_widget_set_margin_bottom (grid0, 6); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid0), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid0), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid0); + + data->cluebar = gtk_info_bar_new (); + gtk_info_bar_set_message_type (GTK_INFO_BAR (data->cluebar), GTK_MESSAGE_ERROR); + gtk_widget_set_hexpand (data->cluebar, TRUE); + gtk_widget_set_no_show_all (data->cluebar, TRUE); + gtk_container_add (GTK_CONTAINER (grid0), data->cluebar); + + data->cluebar_label = gtk_label_new (""); + gtk_label_set_line_wrap (GTK_LABEL (data->cluebar_label), TRUE); + gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (data->cluebar))), + data->cluebar_label); + + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_container_add (GTK_CONTAINER (grid0), grid1); + + row = 0; + add_entry (grid1, row++, _("User_name"), &data->username); + add_entry (grid1, row++, _("_Password"), &data->password); + gtk_entry_set_visibility (GTK_ENTRY (data->password), FALSE); + + gtk_widget_grab_focus ((new_account) ? data->username : data->password); + + g_signal_connect (data->username, "changed", G_CALLBACK (on_username_or_password_changed), data); + g_signal_connect (data->password, "changed", G_CALLBACK (on_username_or_password_changed), data); + + gtk_dialog_add_button (data->dialog, _("_Cancel"), GTK_RESPONSE_CANCEL); + data->connect_button = gtk_dialog_add_button (data->dialog, _("C_onnect"), GTK_RESPONSE_OK); + gtk_dialog_set_default_response (data->dialog, GTK_RESPONSE_OK); + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, FALSE); + + data->progress_grid = gtk_grid_new (); + gtk_widget_set_no_show_all (data->progress_grid, TRUE); + gtk_orientable_set_orientation (GTK_ORIENTABLE (data->progress_grid), GTK_ORIENTATION_HORIZONTAL); + gtk_grid_set_column_spacing (GTK_GRID (data->progress_grid), 3); + gtk_container_add (GTK_CONTAINER (grid0), data->progress_grid); + + spinner = gtk_spinner_new (); + gtk_widget_set_size_request (spinner, 20, 20); + gtk_widget_show (spinner); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_container_add (GTK_CONTAINER (data->progress_grid), spinner); + + label = gtk_label_new (_("Connecting…")); + gtk_widget_show (label); + gtk_container_add (GTK_CONTAINER (data->progress_grid), label); + + if (new_account) + { + gtk_window_get_size (GTK_WINDOW (data->dialog), &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), width, -1); + } + else + { + GtkWindow *parent; + + /* Keep in sync with GoaPanelAddAccountDialog in + * gnome-control-center. + */ + parent = gtk_window_get_transient_for (GTK_WINDOW (data->dialog)); + if (parent != NULL) + { + gtk_window_get_size (parent, &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), (gint) (0.5 * width), -1); + } + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_cb (GoaManager *manager, GAsyncResult *res, gpointer user_data) +{ + AddAccountData *data = user_data; + goa_manager_call_add_account_finish (manager, + &data->account_object_path, + res, + &data->error); + g_main_loop_quit (data->loop); +} + +static void +check_cb (RestProxyCall *call, + const GError *error, + GObject *weak_object, + gpointer user_data) +{ + AddAccountData *data = user_data; + JsonNode *session; + JsonParser *parser; + JsonObject *json_obj; + JsonObject *session_obj; + const gchar *payload; + + parser = NULL; + + parser = json_parser_new (); + payload = rest_proxy_call_get_payload (call); + + if (payload == NULL) + { + g_set_error (&data->error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + if (!json_parser_load_from_data (parser, + payload, + rest_proxy_call_get_payload_length (call), + &data->error)) + { + g_set_error (&data->error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + json_obj = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (json_obj, "session")) + { + g_warning ("Did not find session in JSON data"); + g_set_error (&data->error, GOA_ERROR, GOA_ERROR_FAILED, _("Authentication failed")); + goto out; + } + + session = json_object_get_member (json_obj, "session"); + session_obj = json_node_get_object (session); + if (!json_object_has_member (session_obj, "name")) + { + g_warning ("Did not find session.name in JSON data"); + g_set_error (&data->error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + if (!json_object_has_member (session_obj, "key")) + { + g_warning ("Did not find session.key in JSON data"); + g_set_error (&data->error, GOA_ERROR, GOA_ERROR_FAILED, _("Could not parse response")); + goto out; + } + + data->access_token = g_strdup (json_object_get_string_member (session_obj, "key")); + + out: + g_main_loop_quit (data->loop); + gtk_widget_set_sensitive (data->connect_button, TRUE); + gtk_widget_hide (data->progress_grid); + g_clear_object (&parser); +} + +static void +dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer user_data) +{ + AddAccountData *data = user_data; + + if (response_id == GTK_RESPONSE_CANCEL) + g_cancellable_cancel (data->cancellable); +} + +static void +on_rest_proxy_call_cancelled_cb (GCancellable *cancellable, RestProxyCall *call) +{ + rest_proxy_call_cancel (call); +} + +static void +lastfm_login (GoaProvider *provider, + const gchar *username, + const gchar *password, + GCancellable *cancellable, + RestProxyCallAsyncCallback callback, + gpointer user_data) +{ + AddAccountData *data = user_data; + RestProxyCall *call; + gchar *sig; + gchar *sig_md5; + + call = NULL; + + sig = g_strdup_printf ("api_key%s" + "methodauth.getMobileSession" + "password%s" + "username%s" + "%s", + GOA_LASTFM_CLIENT_ID, + password, + username, + GOA_LASTFM_CLIENT_SECRET); + sig_md5 = g_compute_checksum_for_string (G_CHECKSUM_MD5, sig, -1); + + call = rest_proxy_new_call (goa_rest_proxy_new (get_request_uri (provider), FALSE)); + + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_add_header (call, "Content-Type", "application/x-www-form-urlencoded"); + rest_proxy_call_add_param (call, "method", "auth.getMobileSession"); + rest_proxy_call_add_param (call, "api_key", GOA_LASTFM_CLIENT_ID); + rest_proxy_call_add_param (call, "username", username); + rest_proxy_call_add_param (call, "password", password); + rest_proxy_call_add_param (call, "api_sig", sig_md5); + rest_proxy_call_add_param (call, "format", "json"); + + rest_proxy_call_async (call, callback, NULL, data, &data->error); + + g_signal_connect (cancellable, "cancelled", G_CALLBACK (on_rest_proxy_call_cancelled_cb), call); + + g_free (sig_md5); + g_free (sig); + g_object_unref (call); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaObject * +add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + AddAccountData data; + GVariantBuilder credentials; + GVariantBuilder details; + GoaObject *ret; + const gchar *password; + const gchar *username; + const gchar *provider_type; + gint response; + + ret = NULL; + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = dialog; + data.error = NULL; + + create_account_details_ui (provider, dialog, vbox, TRUE, &data); + gtk_widget_show_all (GTK_WIDGET (vbox)); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + login_again: + response = gtk_dialog_run (dialog); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, GOA_ERROR, GOA_ERROR_DIALOG_DISMISSED, _("Dialog was dismissed")); + goto out; + } + + username = gtk_entry_get_text (GTK_ENTRY (data.username)); + password = gtk_entry_get_text (GTK_ENTRY (data.password)); + + /* See if there's already an account of this type with the + * given identity + */ + provider_type = goa_provider_get_provider_type (provider); + if (!goa_utils_check_duplicate (client, + username, + username, + provider_type, + (GoaPeekInterfaceFunc) goa_object_peek_oauth2_based, + &data.error)) + goto out; + + g_cancellable_reset (data.cancellable); + lastfm_login (provider, + username, + password, + data.cancellable, + (RestProxyCallAsyncCallback) check_cb, + &data); + + gtk_widget_set_sensitive (data.connect_button, FALSE); + gtk_widget_show (data.progress_grid); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + g_message ("%s", data.error->message); + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Try Again")); + + markup = g_strdup_printf ("%s:\n%s", _("Error connecting to Last.fm"), data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + goto login_again; + } + + gtk_widget_hide (GTK_WIDGET (dialog)); + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&credentials, "{sv}", "password", g_variant_new_string (password)); + g_variant_builder_add (&credentials, "{sv}", "access_token", g_variant_new_string (data.access_token)); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "MusicEnabled", "true"); + + /* OK, everything is dandy, add the account */ + /* we want the GoaClient to update before this method returns (so it + * can create a proxy for the new object) so run the mainloop while + * waiting for this to complete + */ + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (provider), + username, + username, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + &data); + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + + ret = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + data.account_object_path)); + + out: + /* We might have an object even when data.error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (data.error != NULL) + g_propagate_error (error, data.error); + else + g_assert (ret != NULL); + + g_signal_handlers_disconnect_by_func (dialog, dialog_response_cb, &data); + + g_free (data.access_token); + g_free (data.account_object_path); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&data.cancellable); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + AddAccountData data; + GVariantBuilder builder; + GoaAccount *account; + GtkWidget *dialog; + GtkWidget *vbox; + gboolean ret; + const gchar *password; + const gchar *username; + gint response; + + g_return_val_if_fail (GOA_IS_LASTFM_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + ret = FALSE; + + dialog = gtk_dialog_new_with_buttons (NULL, + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + NULL, + NULL); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + + vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_set_spacing (GTK_BOX (vbox), 12); + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = GTK_DIALOG (dialog); + data.error = NULL; + + create_account_details_ui (provider, GTK_DIALOG (dialog), GTK_BOX (vbox), FALSE, &data); + + account = goa_object_peek_account (object); + username = goa_account_get_identity (account); + gtk_entry_set_text (GTK_ENTRY (data.username), username); + gtk_editable_set_editable (GTK_EDITABLE (data.username), FALSE); + + gtk_widget_show_all (dialog); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + login_again: + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, GOA_ERROR, GOA_ERROR_DIALOG_DISMISSED, _("Dialog was dismissed")); + goto out; + } + + password = gtk_entry_get_text (GTK_ENTRY (data.password)); + g_cancellable_reset (data.cancellable); + lastfm_login (provider, + username, + password, + data.cancellable, + (RestProxyCallAsyncCallback) check_cb, + &data); + gtk_widget_set_sensitive (data.connect_button, FALSE); + gtk_widget_show (data.progress_grid); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + markup = g_strdup_printf ("%s:\n%s", _("Error connecting to Last.fm"), data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Try Again")); + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + goto login_again; + } + + /* TODO: run in worker thread */ + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&builder, "{sv}", "password", g_variant_new_string (password)); + g_variant_builder_add (&builder, "{sv}", "access_token", g_variant_new_string (data.access_token)); + + if (!goa_utils_store_credentials_for_object_sync (provider, + object, + g_variant_builder_end (&builder), + NULL, /* GCancellable */ + &data.error)) + goto out; + + goa_account_call_ensure_credentials (account, + NULL, /* GCancellable */ + NULL, NULL); /* callback, user_data */ + + ret = TRUE; + out: + if (data.error != NULL) + g_propagate_error (error, data.error); + + gtk_widget_destroy (dialog); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_free (data.access_token); + g_clear_object (&data.cancellable); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_lastfm_provider_init (GoaLastfmProvider *provider) +{ +} + +static void +goa_lastfm_provider_class_init (GoaLastfmProviderClass *klass) +{ + GoaProviderClass *provider_class; + GoaOAuth2ProviderClass *oauth2_class = GOA_OAUTH2_PROVIDER_CLASS (klass); + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->add_account = add_account; + provider_class->refresh_account = refresh_account; + provider_class->build_object = build_object; + provider_class->ensure_credentials_sync = ensure_credentials_sync; + + oauth2_class->get_client_id = get_client_id; + oauth2_class->get_client_secret = get_client_secret; +} diff --git a/src/goabackend/goalastfmprovider.h b/src/goabackend/goalastfmprovider.h new file mode 100644 index 0000000..2b1df91 --- /dev/null +++ b/src/goabackend/goalastfmprovider.h @@ -0,0 +1,40 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2015 Felipe Borges + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_LASTFM_PROVIDER_H__ +#define __GOA_LASTFM_PROVIDER_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_LASTFM_PROVIDER (goa_lastfm_provider_get_type ()) +#define GOA_LASTFM_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_LASTFM_PROVIDER, GoaLastfmProvider)) +#define GOA_IS_LASTFM_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_LASTFM_PROVIDER)) + +typedef struct _GoaLastfmProvider GoaLastfmProvider; + +GType goa_lastfm_provider_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __GOA_LASTFM_PROVIDER_H__ */ diff --git a/src/goabackend/goamailauth.c b/src/goabackend/goamailauth.c new file mode 100644 index 0000000..1f9ceb6 --- /dev/null +++ b/src/goabackend/goamailauth.c @@ -0,0 +1,340 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goamailauth.h" + +struct _GoaMailAuthPrivate +{ + GDataInputStream *input; + GDataOutputStream *output; +}; + +enum +{ + PROP_0, + PROP_INPUT, + PROP_OUTPUT +}; + +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GoaMailAuth, goa_mail_auth, G_TYPE_OBJECT); + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +mail_auth_run_in_thread_func (GTask *task, + gpointer object, + G_GNUC_UNUSED gpointer task_data, + GCancellable *cancellable) +{ + GError *error; + + error = NULL; + if (!goa_mail_auth_run_sync (GOA_MAIL_AUTH (object), cancellable, &error)) + g_task_return_error (task, error); + else + g_task_return_boolean (task, TRUE); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +mail_auth_starttls_in_thread_func (GTask *task, + gpointer object, + G_GNUC_UNUSED gpointer task_data, + GCancellable *cancellable) +{ + GError *error; + + error = NULL; + if (!goa_mail_auth_starttls_sync (GOA_MAIL_AUTH (object), cancellable, &error)) + g_task_return_error (task, error); + else + g_task_return_boolean (task, TRUE); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_mail_auth_dispose (GObject *object) +{ + GoaMailAuth *self = GOA_MAIL_AUTH (object); + GoaMailAuthPrivate *priv; + + priv = goa_mail_auth_get_instance_private (self); + + g_clear_object (&priv->input); + g_clear_object (&priv->output); + + G_OBJECT_CLASS (goa_mail_auth_parent_class)->dispose (object); +} + +static void +goa_mail_auth_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaMailAuth *self = GOA_MAIL_AUTH (object); + GoaMailAuthPrivate *priv; + + priv = goa_mail_auth_get_instance_private (self); + + switch (prop_id) + { + case PROP_INPUT: + g_value_set_object (value, priv->input); + break; + + case PROP_OUTPUT: + g_value_set_object (value, priv->output); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +goa_mail_auth_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaMailAuth *self = GOA_MAIL_AUTH (object); + GoaMailAuthPrivate *priv; + + priv = goa_mail_auth_get_instance_private (self); + + switch (prop_id) + { + case PROP_INPUT: + priv->input = g_value_dup_object (value); + break; + + case PROP_OUTPUT: + priv->output = g_value_dup_object (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_mail_auth_init (GoaMailAuth *self) +{ +} + +static void +goa_mail_auth_class_init (GoaMailAuthClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->dispose = goa_mail_auth_dispose; + gobject_class->get_property = goa_mail_auth_get_property; + gobject_class->set_property = goa_mail_auth_set_property; + + g_object_class_install_property (gobject_class, + PROP_INPUT, + g_param_spec_object ("input", + "input", + "input", + G_TYPE_DATA_INPUT_STREAM, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, + PROP_OUTPUT, + g_param_spec_object ("output", + "output", + "output", + G_TYPE_DATA_OUTPUT_STREAM, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +gboolean +goa_mail_auth_is_needed (GoaMailAuth *self) +{ + g_return_val_if_fail (GOA_IS_MAIL_AUTH (self), FALSE); + return GOA_MAIL_AUTH_GET_CLASS (self)->is_needed (self); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +gboolean +goa_mail_auth_run_sync (GoaMailAuth *self, + GCancellable *cancellable, + GError **error) +{ + g_return_val_if_fail (GOA_IS_MAIL_AUTH (self), FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + return GOA_MAIL_AUTH_GET_CLASS (self)->run_sync (self, cancellable, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +void +goa_mail_auth_run (GoaMailAuth *self, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + + g_return_if_fail (GOA_IS_MAIL_AUTH (self)); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, goa_mail_auth_run); + + g_task_run_in_thread (task, mail_auth_run_in_thread_func); + + g_object_unref (task); +} + +gboolean +goa_mail_auth_run_finish (GoaMailAuth *self, + GAsyncResult *res, + GError **error) +{ + GTask *task; + + g_return_val_if_fail (GOA_IS_MAIL_AUTH (self), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_mail_auth_run, FALSE); + + return g_task_propagate_boolean (task, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +gboolean +goa_mail_auth_starttls_sync (GoaMailAuth *self, + GCancellable *cancellable, + GError **error) +{ + g_return_val_if_fail (GOA_IS_MAIL_AUTH (self), FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + return GOA_MAIL_AUTH_GET_CLASS (self)->starttls_sync (self, cancellable, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +void +goa_mail_auth_starttls (GoaMailAuth *self, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + + g_return_if_fail (GOA_IS_MAIL_AUTH (self)); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, goa_mail_auth_starttls); + + g_task_run_in_thread (task, mail_auth_starttls_in_thread_func); + + g_object_unref (task); +} + +gboolean +goa_mail_auth_starttls_finish (GoaMailAuth *self, + GAsyncResult *res, + GError **error) +{ + GTask *task; + + g_return_val_if_fail (GOA_IS_MAIL_AUTH (self), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_mail_auth_starttls, FALSE); + + return g_task_propagate_boolean (task, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GDataInputStream * +goa_mail_auth_get_input (GoaMailAuth *self) +{ + GoaMailAuthPrivate *priv; + + priv = goa_mail_auth_get_instance_private (self); + return priv->input; +} + +void +goa_mail_auth_set_input (GoaMailAuth *self, + GDataInputStream *input) +{ + GoaMailAuthPrivate *priv; + + priv = goa_mail_auth_get_instance_private (self); + + if (priv->input == input) + return; + + g_clear_object (&priv->input); + priv->input = g_object_ref (input); + g_object_notify (G_OBJECT (self), "input"); +} + +GDataOutputStream * +goa_mail_auth_get_output (GoaMailAuth *self) +{ + GoaMailAuthPrivate *priv; + + priv = goa_mail_auth_get_instance_private (self); + return priv->output; +} + +void +goa_mail_auth_set_output (GoaMailAuth *self, + GDataOutputStream *output) +{ + GoaMailAuthPrivate *priv; + + priv = goa_mail_auth_get_instance_private (self); + + if (priv->output == output) + return; + + g_clear_object (&priv->output); + priv->output = g_object_ref (output); + g_object_notify (G_OBJECT (self), "output"); +} diff --git a/src/goabackend/goamailauth.h b/src/goabackend/goamailauth.h new file mode 100644 index 0000000..50ad04c --- /dev/null +++ b/src/goabackend/goamailauth.h @@ -0,0 +1,79 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_MAIL_AUTH_H__ +#define __GOA_MAIL_AUTH_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_MAIL_AUTH (goa_mail_auth_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GoaMailAuth, goa_mail_auth, GOA, MAIL_AUTH, GObject); + +typedef struct _GoaMailAuthPrivate GoaMailAuthPrivate; + +struct _GoaMailAuthClass +{ + GObjectClass parent_class; + gboolean (*is_needed) (GoaMailAuth *self); + gboolean (*run_sync) (GoaMailAuth *self, + GCancellable *cancellable, + GError **error); + gboolean (*starttls_sync) (GoaMailAuth *self, + GCancellable *cancellable, + GError **error); +}; + +gboolean goa_mail_auth_is_needed (GoaMailAuth *self); +void goa_mail_auth_run (GoaMailAuth *self, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean goa_mail_auth_run_finish (GoaMailAuth *self, + GAsyncResult *res, + GError **error); +gboolean goa_mail_auth_run_sync (GoaMailAuth *self, + GCancellable *cancellable, + GError **error); +void goa_mail_auth_starttls (GoaMailAuth *self, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean goa_mail_auth_starttls_finish (GoaMailAuth *self, + GAsyncResult *res, + GError **error); +gboolean goa_mail_auth_starttls_sync (GoaMailAuth *self, + GCancellable *cancellable, + GError **error); +GDataInputStream *goa_mail_auth_get_input (GoaMailAuth *self); +void goa_mail_auth_set_input (GoaMailAuth *self, + GDataInputStream *input); +GDataOutputStream *goa_mail_auth_get_output (GoaMailAuth *self); +void goa_mail_auth_set_output (GoaMailAuth *self, + GDataOutputStream *input); + +G_END_DECLS + +#endif /* __GOA_MAIL_AUTH_H__ */ diff --git a/src/goabackend/goamailclient.c b/src/goabackend/goamailclient.c new file mode 100644 index 0000000..8822b85 --- /dev/null +++ b/src/goabackend/goamailclient.c @@ -0,0 +1,477 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goamailclient.h" +#include "goautils.h" + +/* The timeout used for non-IDLE commands */ +#define COMMAND_TIMEOUT_SEC 30 + +struct _GoaMailClient +{ + /*< private >*/ + GObject parent_instance; +}; + +typedef struct _GoaMailClientClass GoaMailClientClass; + +struct _GoaMailClientClass +{ + GObjectClass parent_class; +}; + +G_DEFINE_TYPE (GoaMailClient, goa_mail_client, G_TYPE_OBJECT); + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_mail_client_init (GoaMailClient *self) +{ +} + +static void +goa_mail_client_class_init (GoaMailClientClass *klass) +{ +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GoaMailClient * +goa_mail_client_new (void) +{ + return GOA_MAIL_CLIENT (g_object_new (GOA_TYPE_MAIL_CLIENT, NULL)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GDataInputStream *input; + GDataOutputStream *output; + GIOStream *tls_conn; + GSocket *socket; + GSocketClient *sc; + GSocketConnection *conn; + GTlsCertificateFlags cert_flags; + GoaMailAuth *auth; + GoaTlsType tls_type; + gboolean accept_ssl_errors; + gchar *host_and_port; + guint16 default_port; +} CheckData; + +static void +mail_client_check_data_free (CheckData *data) +{ + g_object_unref (data->sc); + g_object_unref (data->auth); + g_clear_object (&data->input); + g_clear_object (&data->output); + g_clear_object (&data->socket); + g_clear_object (&data->conn); + g_clear_object (&data->tls_conn); + g_free (data->host_and_port); + g_slice_free (CheckData, data); +} + +static gboolean +mail_client_check_accept_certificate_cb (GTlsConnection *conn, + GTlsCertificate *peer_cert, + GTlsCertificateFlags errors, + gpointer user_data) +{ + CheckData *data = user_data; + + /* Fail the connection if the certificate is invalid. */ + data->cert_flags = errors; + return FALSE; +} + +static void +mail_client_check_event_cb (GSocketClient *sc, + GSocketClientEvent event, + GSocketConnectable *connectable, + GIOStream *connection, + gpointer user_data) +{ + CheckData *data = user_data; + + if (event != G_SOCKET_CLIENT_TLS_HANDSHAKING) + return; + + data->tls_conn = g_object_ref (connection); + if (data->accept_ssl_errors) + g_tls_client_connection_set_validation_flags (G_TLS_CLIENT_CONNECTION (data->tls_conn), 0); + + g_signal_connect (data->tls_conn, + "accept-certificate", + G_CALLBACK (mail_client_check_accept_certificate_cb), + data); +} + +static void +mail_client_check_auth_run_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GTask *task = G_TASK (user_data); + CheckData *data; + GError *error; + + data = g_task_get_task_data (task); + + error = NULL; + if (!goa_mail_auth_run_finish (data->auth, res, &error)) + { + g_warning ("goa_mail_auth_run() failed: %s (%s, %d)", + error->message, + g_quark_to_string (error->domain), + error->code); + g_task_return_error (task, error); + goto out; + } + + g_io_stream_close (G_IO_STREAM (data->conn), NULL, NULL); + g_task_return_boolean (task, TRUE); + + out: + g_object_unref (G_OBJECT (task)); +} + +static void +mail_client_check_tls_conn_handshake_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GTask *task = G_TASK (user_data); + CheckData *data; + GCancellable *cancellable; + GDataInputStream *input; + GDataOutputStream *output; + GInputStream *base_input; + GError *error; + GOutputStream *base_output; + + input = NULL; + output = NULL; + + cancellable = g_task_get_cancellable (task); + data = g_task_get_task_data (task); + + error = NULL; + if (!g_tls_connection_handshake_finish (G_TLS_CONNECTION (data->tls_conn), res, &error)) + { + g_warning ("g_tls_connection_handshake() failed: %s (%s, %d)", + error->message, + g_quark_to_string (error->domain), + error->code); + /* GIO sets G_TLS_ERROR_BAD_CERTIFICATE when it should be + * setting G_TLS_ERROR_HANDSHAKE. Hence, lets check the + * GTlsCertificate flags to accommodate future GIO fixes. + */ + if (data->cert_flags != 0) + { + GError *tls_error; + + tls_error = NULL; + goa_utils_set_error_ssl (&tls_error, data->cert_flags); + g_task_return_error (task, tls_error); + g_error_free (error); + } + else + { + error->domain = GOA_ERROR; + error->code = GOA_ERROR_FAILED; /* TODO: more specific */ + g_task_return_error (task, error); + } + + goto out; + } + + g_clear_object (&data->conn); + data->conn = g_tcp_wrapper_connection_new (data->tls_conn, data->socket); + + base_input = g_io_stream_get_input_stream (G_IO_STREAM (data->conn)); + input = g_data_input_stream_new (base_input); + g_filter_input_stream_set_close_base_stream (G_FILTER_INPUT_STREAM (input), FALSE); + g_data_input_stream_set_newline_type (input, G_DATA_STREAM_NEWLINE_TYPE_CR_LF); + goa_mail_auth_set_input (data->auth, input); + + base_output = g_io_stream_get_output_stream (G_IO_STREAM (data->conn)); + output = g_data_output_stream_new (base_output); + g_filter_output_stream_set_close_base_stream (G_FILTER_OUTPUT_STREAM (output), FALSE); + goa_mail_auth_set_output (data->auth, output); + + goa_mail_auth_run (data->auth, cancellable, mail_client_check_auth_run_cb, g_object_ref (task)); + + out: + g_clear_object (&input); + g_clear_object (&output); + g_object_unref (G_OBJECT (task)); +} + +static void +mail_client_check_auth_starttls_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GTask *task = G_TASK (user_data); + CheckData *data; + GCancellable *cancellable; + GSocketConnectable *server_identity; + GError *error; + + server_identity = NULL; + + cancellable = g_task_get_cancellable (task); + data = g_task_get_task_data (task); + + error = NULL; + if (!goa_mail_auth_starttls_finish (data->auth, res, &error)) + { + g_warning ("goa_mail_auth_starttls() failed: %s (%s, %d)", + error->message, + g_quark_to_string (error->domain), + error->code); + g_task_return_error (task, error); + goto out; + } + + error = NULL; + server_identity = g_network_address_parse (data->host_and_port, data->default_port, &error); + if (server_identity == NULL) + { + g_task_return_error (task, error); + goto out; + } + + error = NULL; + data->tls_conn = g_tls_client_connection_new (G_IO_STREAM (data->conn), server_identity, &error); + if (data->tls_conn == NULL) + { + g_task_return_error (task, error); + goto out; + } + + if (data->accept_ssl_errors) + g_tls_client_connection_set_validation_flags (G_TLS_CLIENT_CONNECTION (data->tls_conn), 0); + + g_signal_connect (data->tls_conn, + "accept-certificate", + G_CALLBACK (mail_client_check_accept_certificate_cb), + data); + + g_tls_connection_handshake_async (G_TLS_CONNECTION (data->tls_conn), + G_PRIORITY_DEFAULT, + cancellable, + mail_client_check_tls_conn_handshake_cb, + g_object_ref (task)); + + out: + g_clear_object (&server_identity); + g_object_unref (G_OBJECT (task)); +} + +static void +mail_client_check_connect_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GTask *task = G_TASK (user_data); + CheckData *data; + GCancellable *cancellable; + GDataInputStream *input; + GDataOutputStream *output; + GInputStream *base_input; + GError *error; + GOutputStream *base_output; + + cancellable = g_task_get_cancellable (task); + data = g_task_get_task_data (task); + + error = NULL; + data->conn = g_socket_client_connect_to_host_finish (data->sc, res, &error); + if (data->conn == NULL) + { + g_warning ("g_socket_client_connect_to_host() failed: %s (%s, %d)", + error->message, + g_quark_to_string (error->domain), + error->code); + /* GIO sets G_TLS_ERROR_BAD_CERTIFICATE when it should be + * setting G_TLS_ERROR_HANDSHAKE. Hence, lets check the + * GTlsCertificate flags to accommodate future GIO fixes. + */ + if (data->cert_flags != 0) + { + GError *tls_error; + + tls_error = NULL; + goa_utils_set_error_ssl (&tls_error, data->cert_flags); + g_task_return_error (task, tls_error); + g_error_free (error); + } + else + { + error->domain = GOA_ERROR; + error->code = GOA_ERROR_FAILED; /* TODO: more specific */ + g_task_return_error (task, error); + } + + goto out; + } + + /* fail quickly */ + data->socket = g_object_ref (g_socket_connection_get_socket (data->conn)); + g_socket_set_timeout (data->socket, COMMAND_TIMEOUT_SEC); + + base_input = g_io_stream_get_input_stream (G_IO_STREAM (data->conn)); + input = g_data_input_stream_new (base_input); + g_filter_input_stream_set_close_base_stream (G_FILTER_INPUT_STREAM (input), FALSE); + g_data_input_stream_set_newline_type (input, G_DATA_STREAM_NEWLINE_TYPE_CR_LF); + goa_mail_auth_set_input (data->auth, input); + g_object_unref (input); + + base_output = g_io_stream_get_output_stream (G_IO_STREAM (data->conn)); + output = g_data_output_stream_new (base_output); + g_filter_output_stream_set_close_base_stream (G_FILTER_OUTPUT_STREAM (output), FALSE); + goa_mail_auth_set_output (data->auth, output); + g_object_unref (output); + + if (data->tls_type == GOA_TLS_TYPE_STARTTLS) + goa_mail_auth_starttls (data->auth, cancellable, mail_client_check_auth_starttls_cb, g_object_ref (task)); + else + goa_mail_auth_run (data->auth, cancellable, mail_client_check_auth_run_cb, g_object_ref (task)); + + out: + g_object_unref (G_OBJECT (task)); +} + +void +goa_mail_client_check (GoaMailClient *self, + const gchar *host_and_port, + GoaTlsType tls_type, + gboolean accept_ssl_errors, + guint16 default_port, + GoaMailAuth *auth, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + CheckData *data; + GTask *task; + + g_return_if_fail (GOA_IS_MAIL_CLIENT (self)); + g_return_if_fail (host_and_port != NULL && host_and_port[0] != '\0'); + g_return_if_fail (GOA_IS_MAIL_AUTH (auth)); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, goa_mail_client_check); + + data = g_slice_new0 (CheckData); + g_task_set_task_data (task, data, (GDestroyNotify) mail_client_check_data_free); + + data->sc = g_socket_client_new (); + if (tls_type == GOA_TLS_TYPE_SSL) + { + g_socket_client_set_tls (data->sc, TRUE); + g_signal_connect (data->sc, "event", G_CALLBACK (mail_client_check_event_cb), data); + } + + data->host_and_port = g_strdup (host_and_port); + data->tls_type = tls_type; + data->accept_ssl_errors = accept_ssl_errors; + data->default_port = default_port; + data->auth = g_object_ref (auth); + + g_socket_client_connect_to_host_async (data->sc, + data->host_and_port, + data->default_port, + cancellable, + mail_client_check_connect_cb, + g_object_ref (task)); + + g_object_unref (task); +} + +gboolean +goa_mail_client_check_finish (GoaMailClient *self, GAsyncResult *res, GError **error) +{ + GTask *task; + + g_return_val_if_fail (GOA_IS_MAIL_CLIENT (self), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_mail_client_check, FALSE); + + return g_task_propagate_boolean (task, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GError **error; + GMainLoop *loop; + gboolean op_res; +} CheckSyncData; + +static void +mail_client_check_sync_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + CheckSyncData *data = user_data; + + data->op_res = goa_mail_client_check_finish (GOA_MAIL_CLIENT (source_object), res, data->error); + g_main_loop_quit (data->loop); +} + +gboolean +goa_mail_client_check_sync (GoaMailClient *self, + const gchar *host_and_port, + GoaTlsType tls_type, + gboolean accept_ssl_errors, + guint16 default_port, + GoaMailAuth *auth, + GCancellable *cancellable, + GError **error) +{ + CheckSyncData data; + GMainContext *context = NULL; + + data.error = error; + + context = g_main_context_new (); + g_main_context_push_thread_default (context); + data.loop = g_main_loop_new (context, FALSE); + + goa_mail_client_check (self, + host_and_port, + tls_type, + accept_ssl_errors, + default_port, + auth, + cancellable, + mail_client_check_sync_cb, + &data); + g_main_loop_run (data.loop); + g_main_loop_unref (data.loop); + + g_main_context_pop_thread_default (context); + g_main_context_unref (context); + + return data.op_res; +} diff --git a/src/goabackend/goamailclient.h b/src/goabackend/goamailclient.h new file mode 100644 index 0000000..ac64439 --- /dev/null +++ b/src/goabackend/goamailclient.h @@ -0,0 +1,66 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_MAIL_CLIENT_H__ +#define __GOA_MAIL_CLIENT_H__ + +#include +#include +#include + +#include "goabackendenums-priv.h" +#include "goamailauth.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_MAIL_CLIENT (goa_mail_client_get_type ()) +#define GOA_MAIL_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MAIL_CLIENT, GoaMailClient)) +#define GOA_IS_MAIL_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MAIL_CLIENT)) + +typedef struct _GoaMailClient GoaMailClient; + +GType goa_mail_client_get_type (void) G_GNUC_CONST; +GoaMailClient *goa_mail_client_new (void); +void goa_mail_client_check (GoaMailClient *self, + const gchar *host_and_port, + GoaTlsType tls_type, + gboolean accept_ssl_errors, + guint16 default_port, + GoaMailAuth *auth, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean goa_mail_client_check_finish (GoaMailClient *self, + GAsyncResult *res, + GError **error); +gboolean goa_mail_client_check_sync (GoaMailClient *self, + const gchar *host_and_port, + GoaTlsType tls_type, + gboolean accept_ssl_errors, + guint16 default_port, + GoaMailAuth *auth, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __GOA_MAIL_CLIENT_H__ */ diff --git a/src/goabackend/goamediaserverprovider.c b/src/goabackend/goamediaserverprovider.c new file mode 100644 index 0000000..58ea4aa --- /dev/null +++ b/src/goabackend/goamediaserverprovider.c @@ -0,0 +1,534 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2014 Pranav Kant + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include "goaprovider.h" +#include "goaobjectskeletonutils.h" +#include "goautils.h" +#include "goaprovider-priv.h" +#include "goamediaserverprovider.h" +#include "goadleynaservermanager.h" +#include "goadleynaservermediadevice.h" +#include "goadlnaservermanager.h" + +struct _GoaMediaServerProvider +{ + GoaProvider parent_instance; + GoaDlnaServerManager *dlna_mngr; +}; + +typedef struct _GoaMediaServerProviderClass GoaMediaServerProviderClass; + +struct _GoaMediaServerProviderClass +{ + GoaProviderClass parent_class; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaMediaServerProvider, goa_media_server_provider, GOA_TYPE_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_MEDIA_SERVER_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_MEDIA_SERVER_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Media Server")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_PHOTOS; +} + +static GIcon * +get_provider_icon (GoaProvider *provider, GoaObject *object) +{ + return g_themed_icon_new_with_default_fallbacks ("network-server-symbolic"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + gboolean ret; + GoaAccount *account; + GoaMediaServer *mediaserver; + const gchar *udn; + gboolean photos_enabled; + + mediaserver = NULL; + + account = NULL; + ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_media_server_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + udn = goa_account_get_identity (account); + + /* Photos */ + photos_enabled = g_key_file_get_boolean (key_file, group, "PhotosEnabled", NULL); + goa_object_skeleton_attach_photos (object, photos_enabled); + + /* Media Server */ + mediaserver = goa_object_get_media_server (GOA_OBJECT (object)); + if (mediaserver == NULL) + { + mediaserver = goa_media_server_skeleton_new (); + g_object_set (G_OBJECT (mediaserver), + "dlna-supported", TRUE, + "udn", udn, + NULL); + goa_object_skeleton_set_media_server (object, mediaserver); + } + + if (just_added) + { + goa_account_set_photos_disabled (account, !photos_enabled); + + g_signal_connect (account, + "notify::photos-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "PhotosEnabled"); + } + + ret = TRUE; + +out: + g_clear_object (&account); + g_clear_object (&mediaserver); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +ensure_credentials_sync (GoaProvider *provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + if (out_expires_in != NULL) + *out_expires_in = 0; + + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_list_box_row (GtkWidget *list_box, + DleynaServerMediaDevice *server) +{ + GtkWidget *label; + GtkWidget *row; + const gchar *name; + + row = gtk_list_box_row_new (); + g_object_set_data_full (G_OBJECT (row), "server", g_object_ref (server), g_object_unref); + gtk_container_add (GTK_CONTAINER (list_box), row); + + name = dleyna_server_media_device_get_friendly_name (server); + label = gtk_label_new (name); + gtk_widget_set_margin_start (label, 20); + gtk_widget_set_margin_end (label, 20); + gtk_widget_set_margin_top (label, 12); + gtk_widget_set_margin_bottom (label, 12); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_container_add (GTK_CONTAINER (row), label); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GtkDialog *dialog; + GMainLoop *loop; + GoaDlnaServerManager *dlna_mngr; + + gchar *friendly_name; + gchar *udn; + + gchar *account_object_path; + + GError *error; +} AddAccountData; + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +server_found_cb (GoaDlnaServerManager *dlna_mngr, + DleynaServerMediaDevice *server, + GtkWidget *list_box) +{ + add_list_box_row (list_box, server); + gtk_widget_show_all (list_box); +} + +static void +server_lost_cb (GoaDlnaServerManager *dlna_mngr, + DleynaServerMediaDevice *server, + GtkWidget *list_box) +{ + GList *children; + GList *l; + const gchar *udn; + + children = gtk_container_get_children (GTK_CONTAINER (list_box)); + udn = dleyna_server_media_device_get_udn (server); + + for (l = children; l != NULL; l = l->next) + { + DleynaServerMediaDevice *tmp_server; + GtkWidget *row = GTK_WIDGET (l->data); + const gchar *tmp_udn; + + tmp_server = DLEYNA_SERVER_MEDIA_DEVICE (g_object_get_data (G_OBJECT (row), "server")); + tmp_udn = dleyna_server_media_device_get_udn (tmp_server); + if (g_strcmp0 (tmp_udn, udn) == 0) + { + gtk_container_remove (GTK_CONTAINER (list_box), row); + break; + } + } + + g_list_free (children); +} + +static void +list_box_activate_cb (GtkListBox *list_box, + GtkListBoxRow *row, + gpointer user_data) +{ + AddAccountData *data = user_data; + DleynaServerMediaDevice *device; + const gchar *friendly_name; + const gchar *udn; + + device = DLEYNA_SERVER_MEDIA_DEVICE (g_object_get_data (G_OBJECT (row), "server")); + friendly_name = dleyna_server_media_device_get_friendly_name (device); + udn = dleyna_server_media_device_get_udn (device); + + data->udn = g_strdup (udn); + data->friendly_name = g_strdup (friendly_name); + gtk_dialog_response (data->dialog, GTK_RESPONSE_OK); +} + +static void +update_header_func (GtkListBoxRow *row, + GtkListBoxRow *before, + gpointer user_data) +{ + GtkWidget *current; + + if (before == NULL) + return; + + current = gtk_list_box_row_get_header (row); + if (current == NULL) + { + current = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); + gtk_widget_show (current); + gtk_list_box_row_set_header (row, current); + } +} + +static void +create_account_details_ui (GoaProvider *provider, + GtkDialog *dialog, + GtkBox *vbox, + AddAccountData *data) +{ + GList *l; + GList *servers; + GtkStyleContext *context; + GtkWidget *label; + GtkWidget *list_box; + GtkWidget *grid0; + GtkWidget *grid1; + GtkWidget *scrolled_window; + gchar *markup; + gint height; + + goa_utils_set_dialog_title (provider, dialog, TRUE); + + grid0 = gtk_grid_new (); + gtk_container_set_border_width (GTK_CONTAINER (grid0), 5); + gtk_widget_set_margin_bottom (grid0, 6); + gtk_widget_set_margin_start (grid0, 36); + gtk_widget_set_margin_end (grid0, 36); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid0), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid0), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid0); + + label = gtk_label_new (_("Personal content can be added to your applications through a media server account.")); + gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_label_set_max_width_chars (GTK_LABEL (label), 40); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_container_add (GTK_CONTAINER (grid0), label); + + grid1 = gtk_grid_new (); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid1), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 6); + gtk_container_add (GTK_CONTAINER (grid0), grid1); + + label = gtk_label_new (""); + markup = g_strdup_printf ("%s", _("Available Media Servers")); + gtk_label_set_markup (GTK_LABEL (label), markup); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + g_free (markup); + gtk_container_add (GTK_CONTAINER (grid1), label); + + scrolled_window = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_set_hexpand (scrolled_window, TRUE); + gtk_widget_set_vexpand (scrolled_window, TRUE); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); + gtk_container_add (GTK_CONTAINER (grid1), scrolled_window); + + list_box = gtk_list_box_new (); + gtk_list_box_set_header_func (GTK_LIST_BOX (list_box), update_header_func, NULL, NULL); + gtk_container_add (GTK_CONTAINER (scrolled_window), list_box); + g_signal_connect (list_box, "row-activated", G_CALLBACK (list_box_activate_cb), data); + g_signal_connect_object (data->dlna_mngr, "server-found", G_CALLBACK (server_found_cb), list_box, 0); + g_signal_connect_object (data->dlna_mngr, "server-lost", G_CALLBACK (server_lost_cb), list_box, 0); + + servers = goa_dlna_server_manager_dup_servers (data->dlna_mngr); + for (l = servers; l != NULL; l = l->next) + { + DleynaServerMediaDevice *server = DLEYNA_SERVER_MEDIA_DEVICE (l->data); + add_list_box_row (list_box, server); + } + + g_list_free_full (servers, g_object_unref); + + label = gtk_label_new (_("No media servers found")); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, "dim-label"); + gtk_list_box_set_placeholder (GTK_LIST_BOX (list_box), label); + gtk_widget_show (label); + + gtk_window_get_size (GTK_WINDOW (data->dialog), NULL, &height); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), -1, height); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_cb (GoaManager *manager, GAsyncResult *res, gpointer user_data) +{ + AddAccountData *data = user_data; + goa_manager_call_add_account_finish (manager, + &data->account_object_path, + res, + &data->error); + g_main_loop_quit (data->loop); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaObject * +add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + GoaMediaServerProvider *self = GOA_MEDIA_SERVER_PROVIDER (provider); + AddAccountData data; + GVariantBuilder details; + GVariantBuilder credentials; + GoaObject *ret; + const gchar *provider_type; + gint response; + + ret = NULL; + + memset (&data, 0, sizeof (AddAccountData)); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = dialog; + data.error = NULL; + + if (self->dlna_mngr == NULL) + self->dlna_mngr = goa_dlna_server_manager_dup_singleton (); + data.dlna_mngr = self->dlna_mngr; + + create_account_details_ui (provider, dialog, vbox, &data); + gtk_widget_show_all (GTK_WIDGET (vbox)); + + response = gtk_dialog_run (dialog); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + /* See if there's already an account of this type with the + * given identity. + */ + provider_type = goa_provider_get_provider_type (provider); + if (!goa_utils_check_duplicate (client, + data.udn, + data.friendly_name, + provider_type, + (GoaPeekInterfaceFunc) goa_object_peek_account, + &data.error)) + goto out; + + gtk_widget_hide (GTK_WIDGET (dialog)); + + /* No authentication required, so passing an empty variant. */ + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "PhotosEnabled", "true"); + + /* OK, everything is dandy, add the account */ + /* we want the GoaClient to update before this method returns (so it + * can create a proxy for the new object) so run the mainloop while + * waiting for this to complete + */ + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (provider), + data.udn, + data.friendly_name, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, + (GAsyncReadyCallback) add_account_cb, + &data); + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + + ret = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + data.account_object_path)); + + out: + /* We might have an object even when data.error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (data.error != NULL) + g_propagate_error (error, data.error); + else + g_assert (ret != NULL); + + g_free (data.account_object_path); + g_free (data.friendly_name); + g_free (data.udn); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + GoaAccount *account; + + account = goa_object_peek_account (object); + goa_account_call_ensure_credentials (account, + NULL, /* GCancellable */ + NULL, NULL); /* callback, user_data */ + + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_media_server_provider_dispose (GObject *object) +{ + GoaMediaServerProvider *self = GOA_MEDIA_SERVER_PROVIDER (object); + + g_clear_object (&self->dlna_mngr); + + G_OBJECT_CLASS (goa_media_server_provider_parent_class)->dispose (object); +} + +static void +goa_media_server_provider_init (GoaMediaServerProvider *self) +{ +} + +static void +goa_media_server_provider_class_init (GoaMediaServerProviderClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GoaProviderClass *provider_class = GOA_PROVIDER_CLASS (klass); + + object_class->dispose = goa_media_server_provider_dispose; + + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->get_provider_icon = get_provider_icon; + provider_class->add_account = add_account; + provider_class->refresh_account = refresh_account; + provider_class->build_object = build_object; + provider_class->ensure_credentials_sync = ensure_credentials_sync; +} diff --git a/src/goabackend/goamediaserverprovider.h b/src/goabackend/goamediaserverprovider.h new file mode 100644 index 0000000..f473ae1 --- /dev/null +++ b/src/goabackend/goamediaserverprovider.h @@ -0,0 +1,40 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2014 Pranav Kant + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_MEDIA_SERVER_PROVIDER_H__ +#define __GOA_MEDIA_SERVER_PROVIDER_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_MEDIA_SERVER_PROVIDER (goa_media_server_provider_get_type ()) +#define GOA_MEDIA_SERVER_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_MEDIA_SERVER_PROVIDER, GoaMediaServerProvider)) +#define GOA_IS_MEDIA_SERVER_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_MEDIA_SERVER_PROVIDER)) + +typedef struct _GoaMediaServerProvider GoaMediaServerProvider; + +GType goa_media_server_provider_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __GOA_MEDIA_SERVER_PROVIDER_H__ */ diff --git a/src/goabackend/goaoauth2provider-priv.h b/src/goabackend/goaoauth2provider-priv.h new file mode 100644 index 0000000..de1b808 --- /dev/null +++ b/src/goabackend/goaoauth2provider-priv.h @@ -0,0 +1,109 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_OAUTH2_PROVIDER_PRIV_H__ +#define __GOA_OAUTH2_PROVIDER_PRIV_H__ + +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +/** + * GoaOAuth2Provider: + * + * The #GoaOAuth2Provider structure contains only private data and should + * only be accessed using the provided API. + */ + +/** + * GoaOAuth2ProviderClass: + * @parent_class: The parent class. + * @get_authorization_uri: Virtual function for goa_oauth2_provider_get_authorization_uri(). + * @get_token_uri: Virtual function for goa_oauth2_provider_get_token_uri(). + * @get_redirect_uri: Virtual function for goa_oauth2_provider_get_redirect_uri(). + * @get_scope: Virtual function for goa_oauth2_provider_get_scope(). + * @get_client_id: Virtual function for goa_oauth2_provider_get_client_id(). + * @get_client_secret: Virtual function for goa_oauth2_provider_get_client_secret(). + * @get_identity_sync: Virtual function for goa_oauth2_provider_get_identity_sync(). + * @build_authorization_uri: Virtual function for goa_oauth2_provider_build_authorization_uri(). + * @get_use_mobile_browser: Virtual function for goa_oauth2_provider_get_use_mobile_browser(). + * @add_account_key_values: Virtual function for goa_oauth2_provider_add_account_key_values(). + * @decide_navigation_policy: Virtual function for goa_oauth2_provider_decide_navigation_policy(). + * @process_redirect_url: Virtual function for goa_oauth2_provider_process_redirect_url(). + * @is_deny_node: Virtual function for goa_oauth2_provider_is_deny_node(). + * @is_identity_node: Virtual function for goa_oauth2_provider_is_identity_node(). + * @is_password_node: Virtual function for goa_oauth2_provider_is_password_node(). + * + * Class structure for #GoaOAuth2Provider. + */ +struct _GoaOAuth2ProviderClass +{ + GoaProviderClass parent_class; + + /* pure virtual */ + const gchar *(*get_authorization_uri) (GoaOAuth2Provider *provider); + const gchar *(*get_redirect_uri) (GoaOAuth2Provider *provider); + const gchar *(*get_client_id) (GoaOAuth2Provider *provider); + const gchar *(*get_client_secret) (GoaOAuth2Provider *provider); + gchar *(*get_identity_sync) (GoaOAuth2Provider *provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error); + + /* virtual but with default implementation */ + gchar *(*build_authorization_uri) (GoaOAuth2Provider *provider, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope); + const gchar *(*get_token_uri) (GoaOAuth2Provider *provider); + const gchar *(*get_scope) (GoaOAuth2Provider *provider); + gboolean (*get_use_mobile_browser) (GoaOAuth2Provider *provider); + void (*add_account_key_values) (GoaOAuth2Provider *provider, + GVariantBuilder *builder); + + /* pure virtual */ + gboolean (*is_identity_node) (GoaOAuth2Provider *provider, + WebKitDOMHTMLInputElement *element); + + /* virtual but with default implementation */ + gboolean (*is_deny_node) (GoaOAuth2Provider *provider, + WebKitDOMNode *node); + gboolean (*is_password_node) (GoaOAuth2Provider *provider, + WebKitDOMHTMLInputElement *element); + gboolean (*decide_navigation_policy) (GoaOAuth2Provider *provider, + WebKitWebView *web_view, + WebKitNavigationPolicyDecision *decision); + gboolean (*process_redirect_url) (GoaOAuth2Provider *provider, + const gchar *redirect_url, + gchar **access_token, + GError **error); +}; + +G_END_DECLS + +#endif /* __GOA_OAUTH2_PROVIDER_PRIV_H__ */ diff --git a/src/goabackend/goaoauth2provider-web-extension.h b/src/goabackend/goaoauth2provider-web-extension.h new file mode 100644 index 0000000..baac005 --- /dev/null +++ b/src/goabackend/goaoauth2provider-web-extension.h @@ -0,0 +1,40 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2016 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_OAUTH2_PROVIDER_WEB_EXTENSION_H__ +#define __GOA_OAUTH2_PROVIDER_WEB_EXTENSION_H__ + +#include +#include + +G_BEGIN_DECLS + +gboolean goa_oauth2_provider_is_deny_node (GoaOAuth2Provider *provider, + WebKitDOMNode *node); +gboolean goa_oauth2_provider_is_identity_node (GoaOAuth2Provider *provider, + WebKitDOMHTMLInputElement *element); +gboolean goa_oauth2_provider_is_password_node (GoaOAuth2Provider *provider, + WebKitDOMHTMLInputElement *element); + +G_END_DECLS + +#endif /* __GOA_OAUTH2_PROVIDER_WEB_EXTENSION_H__ */ diff --git a/src/goabackend/goaoauth2provider-web-view.h b/src/goabackend/goaoauth2provider-web-view.h new file mode 100644 index 0000000..f2dae5e --- /dev/null +++ b/src/goabackend/goaoauth2provider-web-view.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2016 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_OAUTH2_PROVIDER_WEB_VIEW_H__ +#define __GOA_OAUTH2_PROVIDER_WEB_VIEW_H__ + +#include +#include + +G_BEGIN_DECLS + +gboolean goa_oauth2_provider_decide_navigation_policy (GoaOAuth2Provider *provider, + WebKitWebView *web_view, + WebKitNavigationPolicyDecision *decision); + +G_END_DECLS + +#endif /* __GOA_OAUTH2_PROVIDER_WEB_VIEW_H__ */ diff --git a/src/goabackend/goaoauth2provider.c b/src/goabackend/goaoauth2provider.c new file mode 100644 index 0000000..9092605 --- /dev/null +++ b/src/goabackend/goaoauth2provider.c @@ -0,0 +1,1713 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include +#include + +#include +#include +#include +#include + +#include "goaprovider.h" +#include "goautils.h" +#include "goawebview.h" +#include "goaoauth2provider.h" +#include "goaoauth2provider-priv.h" +#include "goaoauth2provider-web-extension.h" +#include "goaoauth2provider-web-view.h" +#include "goarestproxy.h" + +/** + * SECTION:goaoauth2provider + * @title: GoaOAuth2Provider + * @short_description: Abstract base class for OAuth 2.0 providers + * + * #GoaOAuth2Provider is an abstract base class for OAuth + * 2.0 based providers. + * + * Subclasses must implement + * #GoaOAuth2ProviderClass.get_authorization_uri, + * #GoaOAuth2ProviderClass.get_token_uri, + * #GoaOAuth2ProviderClass.get_redirect_uri, + * #GoaOAuth2ProviderClass.get_scope, + * #GoaOAuth2ProviderClass.get_client_id, + * #GoaOAuth2ProviderClass.get_client_secret and + * #GoaOAuth2ProviderClass.get_identity_sync methods. + * + * Additionally, the + * #GoaProviderClass.get_provider_type, + * #GoaProviderClass.get_provider_name, + * #GoaProviderClass.build_object (this should chain up to its + * parent class) methods must be implemented. + * + * Note that the #GoaProviderClass.add_account, + * #GoaProviderClass.refresh_account and + * #GoaProviderClass.ensure_credentials_sync methods do not + * need to be implemented - this type implements these methods.. + */ + +struct _GoaOAuth2ProviderPrivate +{ + GtkDialog *dialog; + GError *error; + GMainLoop *loop; + + const gchar *existing_identity; + + gchar *account_object_path; + + gchar *authorization_code; + gchar *access_token; + gint access_token_expires_in; + gchar *refresh_token; + gchar *identity; + gchar *presentation_identity; + gchar *password; +}; + +G_LOCK_DEFINE_STATIC (provider_lock); + +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GoaOAuth2Provider, goa_oauth2_provider, GOA_TYPE_PROVIDER); + +static gboolean +is_authorization_error (GError *error) +{ + gboolean ret; + + g_return_val_if_fail (error != NULL, FALSE); + + ret = FALSE; + if (error->domain == REST_PROXY_ERROR || error->domain == SOUP_HTTP_ERROR) + { + if (SOUP_STATUS_IS_CLIENT_ERROR (error->code)) + ret = TRUE; + } + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth2_provider_get_use_mobile_browser_default (GoaOAuth2Provider *self) +{ + return FALSE; +} + +/** + * goa_oauth2_provider_get_use_mobile_browser: + * @self: A #GoaOAuth2Provider. + * + * Returns whether there is a need for the embedded browser to identify + * itself as running on a mobile phone in order to get a more compact + * version of the approval page. + * + * This is a virtual method where the default implementation returns + * %FALSE. + * + * Returns: %TRUE if the embedded browser should identify itself as + * running on a mobile platform, %FALSE otherwise. + */ +gboolean +goa_oauth2_provider_get_use_mobile_browser (GoaOAuth2Provider *self) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_use_mobile_browser (self); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth2_provider_is_deny_node_default (GoaOAuth2Provider *self, WebKitDOMNode *node) +{ + return FALSE; +} + +/** + * goa_oauth2_provider_is_deny_node: + * @self: A #GoaOAuth2Provider. + * @node: A WebKitDOMNode. + * + * Checks whether @node is the HTML UI element that the user can use + * to deny permission to access his account. Usually they are either a + * WebKitDOMHTMLButtonElement or a WebKitDOMHTMLInputElement. + * + * Please note that providers may have multiple such elements in their + * UI and this method should catch all of them. + * + * This is a virtual method where the default implementation returns + * %FALSE. + * + * Returns: %TRUE if the @node can be used to deny permission. + */ +gboolean +goa_oauth2_provider_is_deny_node (GoaOAuth2Provider *self, WebKitDOMNode *node) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->is_deny_node (self, node); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth2_provider_is_password_node_default (GoaOAuth2Provider *self, WebKitDOMHTMLInputElement *element) +{ + return FALSE; +} + +/** + * goa_oauth2_provider_is_password_node: + * @self: A #GoaOAuth2Provider. + * @element: A WebKitDOMHTMLInputElement + * + * Checks whether @element is the HTML UI element that the user can + * use to enter her password. This can be used to offer a + * #GoaPasswordBased interface by saving the user's + * password. Providers usually frown upon doing this, so this is not + * recommended. + * + * This is a virtual method where the default implementation returns + * %FALSE. + * + * Returns: %TRUE if @element can be used to enter the password. + */ +gboolean +goa_oauth2_provider_is_password_node (GoaOAuth2Provider *self, WebKitDOMHTMLInputElement *element) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + g_return_val_if_fail (WEBKIT_DOM_IS_HTML_INPUT_ELEMENT (element), FALSE); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->is_password_node (self, element); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_oauth2_provider_add_account_key_values_default (GoaOAuth2Provider *self, + GVariantBuilder *builder) +{ + /* do nothing */ +} + +/** + * goa_oauth2_provider_add_account_key_values: + * @self: A #GoaProvider. + * @builder: A #GVariantBuilder for a a{ss} variant. + * + * Hook for implementations to add key/value pairs to the key-file + * when creating an account. + * + * This is a virtual method where the default implementation does nothing. + */ +void +goa_oauth2_provider_add_account_key_values (GoaOAuth2Provider *self, + GVariantBuilder *builder) +{ + g_return_if_fail (GOA_IS_OAUTH2_PROVIDER (self)); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->add_account_key_values (self, builder); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +goa_oauth2_provider_build_authorization_uri_default (GoaOAuth2Provider *self, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope) +{ + return g_strdup_printf ("%s" + "?response_type=code" + "&redirect_uri=%s" + "&client_id=%s" + "&scope=%s", + authorization_uri, + escaped_redirect_uri, + escaped_client_id, + escaped_scope); +} + +/** + * goa_oauth2_provider_build_authorization_uri: + * @self: A #GoaOAuth2Provider. + * @authorization_uri: An authorization URI. + * @escaped_redirect_uri: An escaped redirect URI + * @escaped_client_id: An escaped client id + * @escaped_scope: (allow-none): The escaped scope or %NULL + * + * Builds the URI that can be opened in a web browser (or embedded web + * browser widget) to start authenticating an user. + * + * The default implementation just returns the expected URI + * (e.g. http://example.com/dialog/oauth2?response_type=code&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb&client_id=foo&scope=email%20stuff) + * - override (and chain up) if you e.g. need to to pass additional + * parameters. + * + * The @authorization_uri, @escaped_redirect_uri, @escaped_client_id + * and @escaped_scope parameters originate from the result of the + * the goa_oauth2_provider_get_authorization_uri(), goa_oauth2_provider_get_redirect_uri(), goa_oauth2_provider_get_client_id() + * and goa_oauth2_provider_get_scope() methods with the latter + * three escaped using g_uri_escape_string(). + * + * Returns: (transfer full): An authorization URI that must be freed with g_free(). + */ +gchar * +goa_oauth2_provider_build_authorization_uri (GoaOAuth2Provider *self, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + g_return_val_if_fail (authorization_uri != NULL, NULL); + g_return_val_if_fail (escaped_redirect_uri != NULL, NULL); + g_return_val_if_fail (escaped_client_id != NULL, NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->build_authorization_uri (self, + authorization_uri, + escaped_redirect_uri, + escaped_client_id, + escaped_scope); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth2_provider_decide_navigation_policy_default (GoaOAuth2Provider *self, + WebKitWebView *web_view, + WebKitNavigationPolicyDecision *decision) +{ + return FALSE; +} + +/* + * goa_oauth2_provider_decide_navigation_policy_default: + * @self: A #GoaOAuth2Provider. + * @decision: A #WebKitNavigationPolicyDecision + * + * Certain OAuth2-like, but not exactly OAuth2, + * providers may not send us to the redirect URI, as expected. They + * might need some special handling for that. This is a provider + * specific hook to accommodate them. + * + * This is a virtual method where the default implementation returns + * %FALSE. + * + * Returns: %TRUE if @provider decided what to do with @decision, + * %FALSE otherwise. + */ +gboolean +goa_oauth2_provider_decide_navigation_policy (GoaOAuth2Provider *self, + WebKitWebView *web_view, + WebKitNavigationPolicyDecision *decision) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + g_return_val_if_fail (WEBKIT_IS_WEB_VIEW (web_view), FALSE); + g_return_val_if_fail (WEBKIT_IS_NAVIGATION_POLICY_DECISION (decision), FALSE); + + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->decide_navigation_policy (self, web_view, decision); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_oauth2_provider_process_redirect_url: + * @self: A #GoaOAuth2Provider. + * @redirect_url: A redirect URI from the web browser + * @authorization_code: (out): Return location for access token + * @error: Return location for error or %NULL + * + * Certain OAuth2-like, but not exactly OAuth2, + * providers do not follow the standard mechanisms for extracting the + * access token or auth code from the redirect URI. They use some + * non-standard technique to do so. This is a provider specific hook + * to accommodate them and will only be used if implemented. + * + * This is a pure virtual method - a subclass must provide an + * implementation if needed. + * + * Returns: %TRUE if @provider could process @redirect_url, %FALSE + * otherwise. + */ +gboolean +goa_oauth2_provider_process_redirect_url (GoaOAuth2Provider *self, + const gchar *redirect_url, + gchar **authorization_code, + GError **error) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + g_return_val_if_fail (redirect_url != NULL, FALSE); + g_return_val_if_fail (authorization_code != NULL, FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->process_redirect_url (self, redirect_url, authorization_code, error); +} + +/** + * goa_oauth2_provider_get_authorization_uri: + * @self: A #GoaOAuth2Provider. + * + * Gets the authorization + * endpoint used for authenticating the user and obtaining + * authorization. + * + * You should not include any parameters in the returned URI. If you + * need to include additional parameters than the standard ones, + * override #GoaOAuth2ProviderClass.build_authorization_uri - + * see goa_oauth2_provider_build_authorization_uri() for more + * details. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @self - do not free. + */ +const gchar * +goa_oauth2_provider_get_authorization_uri (GoaOAuth2Provider *self) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_authorization_uri (self); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +goa_oauth2_provider_get_token_uri_default (GoaOAuth2Provider *self) +{ + return NULL; +} + +/** + * goa_oauth2_provider_get_token_uri: + * @self: A #GoaOAuth2Provider. + * + * Gets the token + * endpoint used for obtaining an access token. + * + * A token URI is only needed when the OAuth2 provider does not support + * a separate client-side flow. In such cases, override + * #GoaOAuth2ProviderClass.get_token_uri. You should not include any + * parameters in the returned URI. + * + * This is a virtual method where the default implementation returns + * %NULL. + * + * Returns: (transfer none): A string owned by @self - do not free. + */ +const gchar * +goa_oauth2_provider_get_token_uri (GoaOAuth2Provider *self) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_token_uri (self); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_oauth2_provider_get_redirect_uri: + * @self: A #GoaOAuth2Provider. + * + * Gets the redirect_uri + * used when requesting authorization. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @self - do not free. + */ +const gchar * +goa_oauth2_provider_get_redirect_uri (GoaOAuth2Provider *self) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_redirect_uri (self); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +goa_oauth2_provider_get_scope_default (GoaOAuth2Provider *self) +{ + return NULL; +} + +/** + * goa_oauth2_provider_get_scope: + * @self: A #GoaOAuth2Provider. + * + * Gets the scope + * used when requesting authorization. + * + * This is a virtual method where the default implementation returns + * %NULL. + * + * Returns: (transfer none): A string owned by @self - do not free. + */ +const gchar * +goa_oauth2_provider_get_scope (GoaOAuth2Provider *self) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_scope (self); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_oauth2_provider_get_client_id: + * @self: A #GoaOAuth2Provider. + * + * Gets the client_id + * identifying the client. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @self - do not free. + */ +const gchar * +goa_oauth2_provider_get_client_id (GoaOAuth2Provider *self) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_client_id (self); +} + +/** + * goa_oauth2_provider_get_client_secret: + * @self: A #GoaOAuth2Provider. + * + * Gets the client_secret + * associated with the client. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @self - do not free. + */ +const gchar * +goa_oauth2_provider_get_client_secret (GoaOAuth2Provider *self) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_client_secret (self); +} + +/** + * goa_oauth2_provider_get_identity_sync: + * @self: A #GoaOAuth2Provider. + * @access_token: A valid OAuth 2.0 access token. + * @out_presentation_identity: (out): Return location for presentation identity or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for @error or %NULL. + * + * Method that returns the identity corresponding to + * @access_token. + * + * The identity is needed because all authentication happens out of + * band. In addition to the identity, an implementation also returns a + * presentation identity that is more suitable + * for presentation (the identity could be a GUID for example). + * + * The calling thread is blocked while the identity is obtained. + * + * Returns: The identity or %NULL if error is set. The returned string + * must be freed with g_free(). + */ +gchar * +goa_oauth2_provider_get_identity_sync (GoaOAuth2Provider *self, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + g_return_val_if_fail (access_token != NULL, NULL); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->get_identity_sync (self, + access_token, + out_presentation_identity, + cancellable, + error); +} + +/** + * goa_oauth2_provider_is_identity_node: + * @self: A #GoaOAuth2Provider. + * @element: A WebKitDOMHTMLInputElement. + * + * Checks whether @element is the HTML UI element that the user can + * use to identify herself at the provider. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: %TRUE if the @element can be used to deny permission. + */ +gboolean +goa_oauth2_provider_is_identity_node (GoaOAuth2Provider *self, WebKitDOMHTMLInputElement *element) +{ + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + return GOA_OAUTH2_PROVIDER_GET_CLASS (self)->is_identity_node (self, element); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_tokens_sync (GoaOAuth2Provider *self, + const gchar *authorization_code, + const gchar *refresh_token, + gchar **out_refresh_token, + gint *out_access_token_expires_in, + GCancellable *cancellable, + GError **error) +{ + GError *tokens_error = NULL; + RestProxy *proxy; + RestProxyCall *call; + gchar *ret = NULL; + guint status_code; + gchar *ret_access_token = NULL; + gint ret_access_token_expires_in = 0; + gchar *ret_refresh_token = NULL; + const gchar *payload; + gsize payload_length; + const gchar *client_secret; + + proxy = goa_rest_proxy_new (goa_oauth2_provider_get_token_uri (self), FALSE); + call = rest_proxy_new_call (proxy); + + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_add_header (call, "Content-Type", "application/x-www-form-urlencoded"); + rest_proxy_call_add_param (call, "client_id", goa_oauth2_provider_get_client_id (self)); + + client_secret = goa_oauth2_provider_get_client_secret (self); + if (client_secret != NULL) + rest_proxy_call_add_param (call, "client_secret", client_secret); + + if (refresh_token != NULL) + { + /* Swell, we have a refresh code - just use that */ + rest_proxy_call_add_param (call, "grant_type", "refresh_token"); + rest_proxy_call_add_param (call, "refresh_token", refresh_token); + } + else + { + /* No refresh code.. request an access token using the authorization code instead */ + rest_proxy_call_add_param (call, "grant_type", "authorization_code"); + rest_proxy_call_add_param (call, "redirect_uri", goa_oauth2_provider_get_redirect_uri (self)); + rest_proxy_call_add_param (call, "code", authorization_code); + } + + /* TODO: cancellable support? */ + if (!rest_proxy_call_sync (call, error)) + goto out; + + status_code = rest_proxy_call_get_status_code (call); + if (status_code != 200) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Expected status 200 when requesting access token, instead got status %d (%s)"), + status_code, + rest_proxy_call_get_status_message (call)); + goto out; + } + + payload = rest_proxy_call_get_payload (call); + payload_length = rest_proxy_call_get_payload_length (call); + /* some older OAuth2 implementations does not return json - handle that too */ + if (g_str_has_prefix (payload, "access_token=")) + { + GHashTable *hash; + const gchar *expires_in_str; + + g_debug ("Response is not JSON - possibly old OAuth2 implementation"); + + hash = soup_form_decode (payload); + ret_access_token = g_strdup (g_hash_table_lookup (hash, "access_token")); + if (ret_access_token == NULL) + { + g_warning ("Did not find access_token in non-JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + g_hash_table_unref (hash); + goto out; + } + /* refresh_token is optional */ + ret_refresh_token = g_hash_table_lookup (hash, "refresh_token"); + /* expires_in is optional */ + expires_in_str = g_hash_table_lookup (hash, "expires_in"); + /* sometimes "expires_in" appears as "expires" */ + if (expires_in_str == NULL) + expires_in_str = g_hash_table_lookup (hash, "expires"); + if (expires_in_str != NULL) + ret_access_token_expires_in = atoi (expires_in_str); + g_hash_table_unref (hash); + } + else + { + JsonParser *parser; + JsonObject *object; + + parser = json_parser_new (); + if (!json_parser_load_from_data (parser, payload, payload_length, &tokens_error)) + { + g_warning ("json_parser_load_from_data() failed: %s (%s, %d)", + tokens_error->message, + g_quark_to_string (tokens_error->domain), + tokens_error->code); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + g_object_unref (parser); + goto out; + } + object = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (object, "access_token")) + { + g_warning ("Did not find access_token in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + g_object_unref (parser); + goto out; + } + + ret_access_token = g_strdup (json_object_get_string_member (object, "access_token")); + + /* refresh_token is optional... */ + if (json_object_has_member (object, "refresh_token")) + ret_refresh_token = g_strdup (json_object_get_string_member (object, "refresh_token")); + if (json_object_has_member (object, "expires_in")) + ret_access_token_expires_in = json_object_get_int_member (object, "expires_in"); + g_object_unref (parser); + } + + ret = ret_access_token; + ret_access_token = NULL; + if (out_access_token_expires_in != NULL) + *out_access_token_expires_in = ret_access_token_expires_in; + if (out_refresh_token != NULL) + { + *out_refresh_token = ret_refresh_token; + ret_refresh_token = NULL; + } + + out: + g_clear_error (&tokens_error); + g_free (ret_access_token); + g_free (ret_refresh_token); + g_clear_object (&call); + g_clear_object (&proxy); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +on_web_view_deny_click (GoaWebView *web_view, gpointer user_data) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (user_data); + GoaOAuth2ProviderPrivate *priv; + + priv = goa_oauth2_provider_get_instance_private (self); + gtk_dialog_response (priv->dialog, GTK_RESPONSE_CANCEL); +} + +static void +on_web_view_password_submit (GoaWebView *web_view, const gchar *password, gpointer user_data) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (user_data); + GoaOAuth2ProviderPrivate *priv; + + priv = goa_oauth2_provider_get_instance_private (self); + + g_free (priv->password); + priv->password = g_strdup (password); +} + +static gboolean +on_web_view_decide_policy (WebKitWebView *web_view, + WebKitPolicyDecision *decision, + WebKitPolicyDecisionType decision_type, + gpointer user_data) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (user_data); + GoaOAuth2ProviderPrivate *priv; + GHashTable *key_value_pairs; + WebKitNavigationAction *action; + WebKitURIRequest *request; + SoupURI *uri; + const gchar *fragment; + const gchar *oauth2_error; + const gchar *query; + const gchar *redirect_uri; + const gchar *requested_uri; + gint response_id = GTK_RESPONSE_NONE; + + priv = goa_oauth2_provider_get_instance_private (self); + + if (decision_type != WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) + goto default_behaviour; + + if (goa_oauth2_provider_decide_navigation_policy (self, + web_view, + WEBKIT_NAVIGATION_POLICY_DECISION (decision))) + { + response_id = 0; + goto ignore_request; + } + + /* TODO: use oauth2_proxy_extract_access_token() */ + + action = webkit_navigation_policy_decision_get_navigation_action (WEBKIT_NAVIGATION_POLICY_DECISION (decision)); + request = webkit_navigation_action_get_request (action); + requested_uri = webkit_uri_request_get_uri (request); + redirect_uri = goa_oauth2_provider_get_redirect_uri (self); + if (!g_str_has_prefix (requested_uri, redirect_uri)) + goto default_behaviour; + + uri = soup_uri_new (requested_uri); + fragment = soup_uri_get_fragment (uri); + query = soup_uri_get_query (uri); + + /* Three cases: + * 1) we can either have the backend handle the URI for us, or + * 2) we can either have the access_token and other information + * directly in the fragment part of the URI, or + * 3) the auth code can be in the query part of the URI, with which + * we'll obtain the token later. + */ + if (GOA_OAUTH2_PROVIDER_GET_CLASS (self)->process_redirect_url) + { + gchar *url; + + url = soup_uri_to_string (uri, FALSE); + if (!goa_oauth2_provider_process_redirect_url (self, url, &priv->access_token, &priv->error)) + { + g_prefix_error (&priv->error, _("Authorization response: ")); + priv->error->domain = GOA_ERROR; + priv->error->code = GOA_ERROR_NOT_AUTHORIZED; + response_id = GTK_RESPONSE_CLOSE; + } + else + response_id = GTK_RESPONSE_OK; + + g_free (url); + goto ignore_request; + } + + if (fragment != NULL) + { + /* fragment is encoded into a key/value pairs for the token and + * expiration values, using the same syntax as a URL query */ + key_value_pairs = soup_form_decode (fragment); + + /* We might use oauth2_proxy_extract_access_token() here but + * we can also extract other information. + */ + priv->access_token = g_strdup (g_hash_table_lookup (key_value_pairs, "access_token")); + if (priv->access_token != NULL) + { + gchar *expires_in_str = NULL; + + expires_in_str = g_hash_table_lookup (key_value_pairs, "expires_in"); + /* sometimes "expires_in" appears as "expires" */ + if (expires_in_str == NULL) + expires_in_str = g_hash_table_lookup (key_value_pairs, "expires"); + + if (expires_in_str != NULL) + priv->access_token_expires_in = atoi (expires_in_str); + + priv->refresh_token = g_strdup (g_hash_table_lookup (key_value_pairs, "refresh_token")); + + response_id = GTK_RESPONSE_OK; + } + g_hash_table_unref (key_value_pairs); + } + + if (priv->access_token != NULL) + goto ignore_request; + + if (query != NULL) + { + key_value_pairs = soup_form_decode (query); + + priv->authorization_code = g_strdup (g_hash_table_lookup (key_value_pairs, "code")); + if (priv->authorization_code != NULL) + response_id = GTK_RESPONSE_OK; + + g_hash_table_unref (key_value_pairs); + } + + if (priv->authorization_code != NULL) + goto ignore_request; + + /* In case we don't find the access_token or auth code, then look + * for the error in the query part of the URI. + */ + key_value_pairs = soup_form_decode (query); + oauth2_error = (const gchar *) g_hash_table_lookup (key_value_pairs, "error"); + if (g_strcmp0 (oauth2_error, GOA_OAUTH2_ACCESS_DENIED) == 0) + response_id = GTK_RESPONSE_CANCEL; + else + { + g_set_error (&priv->error, + GOA_ERROR, + GOA_ERROR_NOT_AUTHORIZED, + _("Authorization response: %s"), + oauth2_error); + response_id = GTK_RESPONSE_CLOSE; + } + g_hash_table_unref (key_value_pairs); + goto ignore_request; + + ignore_request: + g_assert (response_id != GTK_RESPONSE_NONE); + if (response_id < 0) + gtk_dialog_response (priv->dialog, response_id); + webkit_policy_decision_ignore (decision); + return TRUE; + + default_behaviour: + return FALSE; +} + +static gboolean +get_tokens_and_identity (GoaOAuth2Provider *self, + gboolean add_account, + const gchar *existing_identity, + GtkDialog *dialog, + GtkBox *vbox) +{ + GoaOAuth2ProviderPrivate *priv; + gboolean ret = FALSE; + gchar *url; + GtkWidget *embed; + GtkWidget *grid; + GtkWidget *web_view; + const gchar *scope; + gchar *escaped_redirect_uri = NULL; + gchar *escaped_client_id = NULL; + gchar *escaped_scope = NULL; + + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + g_return_val_if_fail ((!add_account && existing_identity != NULL && existing_identity[0] != '\0') + || (add_account && existing_identity == NULL), FALSE); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), FALSE); + g_return_val_if_fail (GTK_IS_BOX (vbox), FALSE); + + priv = goa_oauth2_provider_get_instance_private (self); + g_return_val_if_fail (priv->error == NULL, FALSE); + + /* TODO: check with NM whether we're online, if not - return error */ + + priv->dialog = dialog; + priv->existing_identity = existing_identity; + + g_clear_pointer (&priv->password, g_free); + g_clear_pointer (&priv->identity, g_free); + g_clear_pointer (&priv->presentation_identity, g_free); + g_clear_pointer (&priv->authorization_code, g_free); + g_clear_pointer (&priv->access_token, g_free); + g_clear_pointer (&priv->refresh_token, g_free); + + /* TODO: use oauth2_proxy_build_login_url_full() */ + escaped_redirect_uri = g_uri_escape_string (goa_oauth2_provider_get_redirect_uri (self), NULL, TRUE); + escaped_client_id = g_uri_escape_string (goa_oauth2_provider_get_client_id (self), NULL, TRUE); + scope = goa_oauth2_provider_get_scope (self); + if (scope != NULL) + escaped_scope = g_uri_escape_string (goa_oauth2_provider_get_scope (self), NULL, TRUE); + else + escaped_scope = NULL; + url = goa_oauth2_provider_build_authorization_uri (self, + goa_oauth2_provider_get_authorization_uri (self), + escaped_redirect_uri, + escaped_client_id, + escaped_scope); + + goa_utils_set_dialog_title (GOA_PROVIDER (self), dialog, add_account); + + grid = gtk_grid_new (); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid); + + web_view = goa_web_view_new (GOA_PROVIDER (self), existing_identity); + gtk_widget_set_hexpand (web_view, TRUE); + gtk_widget_set_vexpand (web_view, TRUE); + embed = goa_web_view_get_view (GOA_WEB_VIEW (web_view)); + + if (goa_oauth2_provider_get_use_mobile_browser (self)) + goa_web_view_fake_mobile (GOA_WEB_VIEW (web_view)); + + webkit_web_view_load_uri (WEBKIT_WEB_VIEW (embed), url); + g_signal_connect (embed, + "decide-policy", + G_CALLBACK (on_web_view_decide_policy), + self); + g_signal_connect (web_view, "deny-click", G_CALLBACK (on_web_view_deny_click), self); + g_signal_connect (web_view, "password-submit", G_CALLBACK (on_web_view_password_submit), self); + + gtk_container_add (GTK_CONTAINER (grid), web_view); + gtk_window_set_default_size (GTK_WINDOW (dialog), -1, -1); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + gtk_dialog_run (GTK_DIALOG (dialog)); + + /* We can have either the auth code, with which we'll obtain the token, or + * the token directly if we are using a client side flow, since we don't + * need to pass the code to the remote application. + */ + if (priv->authorization_code == NULL && priv->access_token == NULL) + { + if (priv->error == NULL) + { + g_set_error (&priv->error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + } + goto out; + } + g_assert (priv->error == NULL); + + gtk_widget_hide (GTK_WIDGET (dialog)); + + if (priv->authorization_code != NULL) + { + /* OK, we now have the authorization code... now we need to get the + * email address (to e.g. check if the account already exists on + * @client).. for that we need to get a (short-lived) access token + * and a refresh_token + */ + + /* TODO: run in worker thread */ + priv->access_token = get_tokens_sync (self, + priv->authorization_code, + NULL, /* refresh_token */ + &priv->refresh_token, + &priv->access_token_expires_in, + NULL, /* GCancellable */ + &priv->error); + if (priv->access_token == NULL) + { + g_prefix_error (&priv->error, _("Error getting an Access Token: ")); + goto out; + } + } + + g_assert (priv->access_token != NULL); + + /* TODO: run in worker thread */ + priv->identity = goa_oauth2_provider_get_identity_sync (self, + priv->access_token, + &priv->presentation_identity, + NULL, /* TODO: GCancellable */ + &priv->error); + if (priv->identity == NULL) + { + g_prefix_error (&priv->error, _("Error getting identity: ")); + goto out; + } + + ret = TRUE; + + out: + g_free (url); + g_free (escaped_redirect_uri); + g_free (escaped_client_id); + g_free (escaped_scope); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_cb (GoaManager *manager, + GAsyncResult *res, + gpointer user_data) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (user_data); + GoaOAuth2ProviderPrivate *priv; + + priv = goa_oauth2_provider_get_instance_private (self); + + goa_manager_call_add_account_finish (manager, + &priv->account_object_path, + res, + &priv->error); + g_main_loop_quit (priv->loop); +} + +static gint64 +duration_to_abs_usec (gint duration_sec) +{ + gint64 ret; + GTimeVal now; + + g_get_current_time (&now); + ret = ((gint64) now.tv_sec) * 1000L * 1000L + ((gint64) now.tv_usec); + ret += ((gint64) duration_sec) * 1000L * 1000L; + return ret; +} + +static gint +abs_usec_to_duration (gint64 abs_usec) +{ + gint64 ret; + GTimeVal now; + + g_get_current_time (&now); + ret = abs_usec - (((gint64) now.tv_sec) * 1000L * 1000L + ((gint64) now.tv_usec)); + ret /= 1000L * 1000L; + return ret; +} + +static void +add_credentials_key_values (GoaOAuth2Provider *self, + GVariantBuilder *credentials) +{ + GoaOAuth2ProviderPrivate *priv; + + priv = goa_oauth2_provider_get_instance_private (self); + + if (priv->authorization_code != NULL) + g_variant_builder_add (credentials, "{sv}", "authorization_code", + g_variant_new_string (priv->authorization_code)); + g_variant_builder_add (credentials, "{sv}", "access_token", g_variant_new_string (priv->access_token)); + if (priv->access_token_expires_in > 0) + g_variant_builder_add (credentials, "{sv}", "access_token_expires_at", + g_variant_new_int64 (duration_to_abs_usec (priv->access_token_expires_in))); + if (priv->refresh_token != NULL) + g_variant_builder_add (credentials, "{sv}", "refresh_token", g_variant_new_string (priv->refresh_token)); + if (priv->password != NULL) + g_variant_builder_add (credentials, "{sv}", "password", g_variant_new_string (priv->password)); +} + +static GoaObject * +goa_oauth2_provider_add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (provider); + GoaOAuth2ProviderPrivate *priv; + GoaObject *ret = NULL; + GVariantBuilder credentials; + GVariantBuilder details; + + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + g_return_val_if_fail (GOA_IS_CLIENT (client), NULL); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL); + g_return_val_if_fail (GTK_IS_BOX (vbox), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + priv = goa_oauth2_provider_get_instance_private (self); + + if (!get_tokens_and_identity (self, TRUE, NULL, dialog, vbox)) + goto out; + + /* OK, got the identity... see if there's already an account + * of this type with the given identity + */ + if (!goa_utils_check_duplicate (client, + priv->identity, + priv->presentation_identity, + goa_provider_get_provider_type (GOA_PROVIDER (self)), + (GoaPeekInterfaceFunc) goa_object_peek_oauth2_based, + &priv->error)) + goto out; + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + add_credentials_key_values (self, &credentials); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + goa_oauth2_provider_add_account_key_values (self, &details); + + /* we want the GoaClient to update before this method returns (so it + * can create a proxy for the new object) so run the mainloop while + * waiting for this to complete + */ + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (GOA_PROVIDER (self)), + priv->identity, + priv->presentation_identity, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + self); + priv->loop = g_main_loop_new (NULL, FALSE); + g_main_loop_run (priv->loop); + if (priv->error != NULL) + goto out; + + ret = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + priv->account_object_path)); + + out: + /* We might have an object even when priv->error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (priv->error != NULL) + { + g_propagate_error (error, priv->error); + priv->error = NULL; + } + else + g_assert (ret != NULL); + + g_clear_pointer (&priv->account_object_path, g_free); + g_clear_pointer (&priv->loop, g_main_loop_unref); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth2_provider_refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (provider); + GoaOAuth2ProviderPrivate *priv; + GoaAccount *account; + GtkWidget *dialog; + const gchar *existing_identity; + const gchar *existing_presentation_identity; + GVariantBuilder builder; + gboolean ret = FALSE; + + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + priv = goa_oauth2_provider_get_instance_private (self); + + dialog = gtk_dialog_new_with_buttons (NULL, + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + NULL, + NULL); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + gtk_widget_show_all (dialog); + + account = goa_object_peek_account (object); + + /* We abuse presentation identity here because for some providers + * identity can be a machine readable ID, which can not be used to + * log in via the provider's web interface. + */ + existing_presentation_identity = goa_account_get_presentation_identity (account); + if (!get_tokens_and_identity (self, + FALSE, + existing_presentation_identity, + GTK_DIALOG (dialog), + GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))))) + goto out; + + /* Changes made to the web interface by the providers can break our + * DOM parsing. So we should still query and check the identity + * afterwards. + */ + existing_identity = goa_account_get_identity (account); + if (g_strcmp0 (priv->identity, existing_identity) != 0) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Was asked to log in as %s, but logged in as %s"), + existing_identity, + priv->identity); + goto out; + } + + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + add_credentials_key_values (self, &builder); + if (!goa_utils_store_credentials_for_object_sync (GOA_PROVIDER (self), + object, + g_variant_builder_end (&builder), + NULL, /* GCancellable */ + error)) + goto out; + + goa_account_call_ensure_credentials (goa_object_peek_account (object), + NULL, /* GCancellable */ + NULL, NULL); /* callback, user_data */ + + ret = TRUE; + + out: + if (priv->error != NULL) + { + g_propagate_error (error, priv->error); + priv->error = NULL; + } + + gtk_widget_destroy (dialog); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +free_mutex (GMutex *mutex) +{ + g_mutex_clear (mutex); + g_slice_free (GMutex, mutex); +} + +/** + * goa_oauth2_provider_get_access_token_sync: + * @self: A #GoaOAuth2Provider. + * @object: A #GoaObject. + * @force_refresh: If set to %TRUE, forces a refresh of the access token, if possible. + * @out_access_token_expires_in: (out): Return location for how many seconds the returned token is valid for (0 if unknown) or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously gets an access token for @object. The calling thread + * is blocked while the operation is pending. + * + * The resulting token is typically read from the local cache so most + * of the time only a local roundtrip to the storage for the token + * cache (e.g. gnome-keyring-daemon) is + * needed. However, the operation may involve refreshing the token + * with the service provider so a full network round-trip may be + * needed. + * + * Note that multiple calls are serialized to avoid multiple + * outstanding requests to the service provider. + * + * This operation may fail if e.g. unable to refresh the credentials + * or if network connectivity is not available. Note that even if a + * token is returned, the returned token isn't guaranteed to work - + * use goa_provider_ensure_credentials_sync() if you need + * stronger guarantees. + * + * Returns: The access token or %NULL if error is set. The returned + * string must be freed with g_free(). + */ +gchar * +goa_oauth2_provider_get_access_token_sync (GoaOAuth2Provider *self, + GoaObject *object, + gboolean force_refresh, + gint *out_access_token_expires_in, + GCancellable *cancellable, + GError **error) +{ + GVariant *credentials = NULL; + GVariantIter iter; + const gchar *key; + GVariant *value; + gchar *authorization_code = NULL; + gchar *access_token = NULL; + gint access_token_expires_in = 0; + gchar *refresh_token = NULL; + gchar *old_refresh_token = NULL; + gchar *password = NULL; + gboolean success = FALSE; + GVariantBuilder builder; + gchar *ret = NULL; + GMutex *lock; + + g_return_val_if_fail (GOA_IS_OAUTH2_PROVIDER (self), NULL); + g_return_val_if_fail (GOA_IS_OBJECT (object), NULL); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + /* provider_lock is too coarse, use a per-object lock instead */ + G_LOCK (provider_lock); + lock = g_object_get_data (G_OBJECT (object), "-goa-oauth2-provider-get-access-token-lock"); + if (lock == NULL) + { + lock = g_slice_new0 (GMutex); + g_mutex_init (lock); + g_object_set_data_full (G_OBJECT (object), + "-goa-oauth2-provider-get-access-token-lock", + lock, + (GDestroyNotify) free_mutex); + } + G_UNLOCK (provider_lock); + + g_mutex_lock (lock); + + /* First, get the credentials from the keyring */ + credentials = goa_utils_lookup_credentials_sync (GOA_PROVIDER (self), + object, + cancellable, + error); + if (credentials == NULL) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + g_variant_iter_init (&iter, credentials); + while (g_variant_iter_next (&iter, "{&sv}", &key, &value)) + { + if (g_strcmp0 (key, "access_token") == 0) + access_token = g_variant_dup_string (value, NULL); + else if (g_strcmp0 (key, "access_token_expires_at") == 0) + access_token_expires_in = abs_usec_to_duration (g_variant_get_int64 (value)); + else if (g_strcmp0 (key, "refresh_token") == 0) + refresh_token = g_variant_dup_string (value, NULL); + else if (g_strcmp0 (key, "authorization_code") == 0) + authorization_code = g_variant_dup_string (value, NULL); + else if (g_strcmp0 (key, "password") == 0) + password = g_variant_dup_string (value, NULL); + g_variant_unref (value); + } + + if (access_token == NULL) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_AUTHORIZED, + _("Credentials do not contain access_token")); + goto out; + } + + /* if we can't refresh the token, just return it no matter what */ + if (refresh_token == NULL) + { + g_debug ("Returning locally cached credentials that cannot be refreshed"); + success = TRUE; + goto out; + } + + /* If access_token is still "fresh enough" (e.g. more than ten + * minutes of life left in it), just return it unless we've been + * asked to forcibly refresh it + */ + if (!force_refresh && access_token_expires_in > 10*60) + { + g_debug ("Returning locally cached credentials (expires in %d seconds)", access_token_expires_in); + success = TRUE; + goto out; + } + + g_debug ("Refreshing locally cached credentials (expires in %d seconds, force_refresh=%d)", access_token_expires_in, force_refresh); + + /* Otherwise, refresh it */ + old_refresh_token = refresh_token; refresh_token = NULL; + g_free (access_token); access_token = NULL; + access_token = get_tokens_sync (self, + authorization_code, + old_refresh_token, + &refresh_token, + &access_token_expires_in, + cancellable, + error); + if (access_token == NULL) + { + if (error != NULL) + { + g_prefix_error (error, _("Failed to refresh access token (%s, %d): "), + g_quark_to_string ((*error)->domain), (*error)->code); + (*error)->code = is_authorization_error (*error) ? GOA_ERROR_NOT_AUTHORIZED : GOA_ERROR_FAILED; + (*error)->domain = GOA_ERROR; + } + goto out; + } + + /* It's not a sure thing we get a new refresh_token, so use our old + * old if we didn't get a new one + */ + if (refresh_token == NULL) + { + refresh_token = old_refresh_token; + old_refresh_token = NULL; + } + + /* Good. Now update the keyring with the refreshed credentials */ + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&builder, "{sv}", "authorization_code", g_variant_new_string (authorization_code)); + g_variant_builder_add (&builder, "{sv}", "access_token", g_variant_new_string (access_token)); + if (access_token_expires_in > 0) + g_variant_builder_add (&builder, "{sv}", "access_token_expires_at", + g_variant_new_int64 (duration_to_abs_usec (access_token_expires_in))); + if (refresh_token != NULL) + g_variant_builder_add (&builder, "{sv}", "refresh_token", g_variant_new_string (refresh_token)); + if (password != NULL) + g_variant_builder_add (&builder, "{sv}", "password", g_variant_new_string (password)); + + if (!goa_utils_store_credentials_for_object_sync (GOA_PROVIDER (self), + object, + g_variant_builder_end (&builder), + cancellable, + error)) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + success = TRUE; + + out: + if (success) + { + ret = access_token; access_token = NULL; + g_assert (ret != NULL); + if (out_access_token_expires_in != NULL) + *out_access_token_expires_in = access_token_expires_in; + } + g_free (authorization_code); + g_free (access_token); + g_free (refresh_token); + g_free (old_refresh_token); + g_free (password); + g_clear_pointer (&credentials, (GDestroyNotify) g_variant_unref); + + g_mutex_unlock (lock); + + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean on_handle_get_access_token (GoaOAuth2Based *object, + GDBusMethodInvocation *invocation, + gpointer user_data); + +static gboolean +goa_oauth2_provider_build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaOAuth2Based *oauth2_based; + + oauth2_based = goa_object_get_oauth2_based (GOA_OBJECT (object)); + if (oauth2_based != NULL) + goto out; + + oauth2_based = goa_oauth2_based_skeleton_new (); + goa_oauth2_based_set_client_id (oauth2_based, + goa_oauth2_provider_get_client_id (GOA_OAUTH2_PROVIDER (provider))); + goa_oauth2_based_set_client_secret (oauth2_based, + goa_oauth2_provider_get_client_secret (GOA_OAUTH2_PROVIDER (provider))); + /* Ensure D-Bus method invocations run in their own thread */ + g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (oauth2_based), + G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); + goa_object_skeleton_set_oauth2_based (object, oauth2_based); + g_signal_connect (oauth2_based, + "handle-get-access-token", + G_CALLBACK (on_handle_get_access_token), + NULL); + + out: + g_object_unref (oauth2_based); + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth2_provider_ensure_credentials_sync (GoaProvider *provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (provider); + gboolean ret = FALSE; + gchar *access_token = NULL; + gint access_token_expires_in; + gchar *identity = NULL; + gboolean force_refresh = FALSE; + + again: + access_token = goa_oauth2_provider_get_access_token_sync (self, + object, + force_refresh, + &access_token_expires_in, + cancellable, + error); + if (access_token == NULL) + goto out; + + identity = goa_oauth2_provider_get_identity_sync (self, + access_token, + NULL, /* out_presentation_identity */ + cancellable, + error); + if (identity == NULL) + { + /* OK, try again, with forcing the locally cached credentials to be refreshed */ + if (!force_refresh) + { + force_refresh = TRUE; + g_free (access_token); access_token = NULL; + g_clear_error (error); + goto again; + } + else + { + goto out; + } + } + + /* TODO: maybe check with the identity we have */ + ret = TRUE; + if (out_expires_in != NULL) + *out_expires_in = access_token_expires_in; + + out: + g_free (identity); + g_free (access_token); + return ret; +} + + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_oauth2_provider_finalize (GObject *object) +{ + GoaOAuth2Provider *self = GOA_OAUTH2_PROVIDER (object); + GoaOAuth2ProviderPrivate *priv; + + priv = goa_oauth2_provider_get_instance_private (self); + + g_clear_pointer (&priv->loop, g_main_loop_unref); + + g_free (priv->account_object_path); + g_free (priv->password); + g_free (priv->identity); + g_free (priv->presentation_identity); + g_free (priv->authorization_code); + g_free (priv->access_token); + g_free (priv->refresh_token); + + G_OBJECT_CLASS (goa_oauth2_provider_parent_class)->finalize (object); +} + +static void +goa_oauth2_provider_init (GoaOAuth2Provider *self) +{ +} + +static void +goa_oauth2_provider_class_init (GoaOAuth2ProviderClass *klass) +{ + GObjectClass *object_class; + GoaProviderClass *provider_class; + + object_class = G_OBJECT_CLASS (klass); + object_class->finalize = goa_oauth2_provider_finalize; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->add_account = goa_oauth2_provider_add_account; + provider_class->refresh_account = goa_oauth2_provider_refresh_account; + provider_class->build_object = goa_oauth2_provider_build_object; + provider_class->ensure_credentials_sync = goa_oauth2_provider_ensure_credentials_sync; + + klass->build_authorization_uri = goa_oauth2_provider_build_authorization_uri_default; + klass->decide_navigation_policy = goa_oauth2_provider_decide_navigation_policy_default; + klass->get_token_uri = goa_oauth2_provider_get_token_uri_default; + klass->get_scope = goa_oauth2_provider_get_scope_default; + klass->get_use_mobile_browser = goa_oauth2_provider_get_use_mobile_browser_default; + klass->is_deny_node = goa_oauth2_provider_is_deny_node_default; + klass->is_password_node = goa_oauth2_provider_is_password_node_default; + klass->add_account_key_values = goa_oauth2_provider_add_account_key_values_default; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/* runs in a thread dedicated to handling @invocation */ +static gboolean +on_handle_get_access_token (GoaOAuth2Based *interface, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaObject *object; + GoaAccount *account; + GoaProvider *provider; + GError *error; + const gchar *id; + const gchar *method_name; + const gchar *provider_type; + gchar *access_token = NULL; + gint access_token_expires_in; + + /* TODO: maybe log what app is requesting access */ + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (interface))); + account = goa_object_peek_account (object); + + id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + method_name = g_dbus_method_invocation_get_method_name (invocation); + g_debug ("Handling %s for account (%s, %s)", method_name, provider_type, id); + + provider = goa_provider_get_for_provider_type (provider_type); + + error = NULL; + access_token = goa_oauth2_provider_get_access_token_sync (GOA_OAUTH2_PROVIDER (provider), + object, + FALSE, /* force_refresh */ + &access_token_expires_in, + NULL, /* GCancellable* */ + &error); + if (access_token == NULL) + { + g_dbus_method_invocation_take_error (invocation, error); + } + else + { + goa_oauth2_based_complete_get_access_token (interface, + invocation, + access_token, + access_token_expires_in); + } + g_free (access_token); + g_object_unref (provider); + return TRUE; /* invocation was handled */ +} diff --git a/src/goabackend/goaoauth2provider.h b/src/goabackend/goaoauth2provider.h new file mode 100644 index 0000000..76bc78f --- /dev/null +++ b/src/goabackend/goaoauth2provider.h @@ -0,0 +1,70 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_OAUTH2_PROVIDER_H__ +#define __GOA_OAUTH2_PROVIDER_H__ + +#include + +#include "goabackend/goaprovider.h" +#include "goabackend/goaprovider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_OAUTH2_PROVIDER (goa_oauth2_provider_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GoaOAuth2Provider, goa_oauth2_provider, GOA, OAUTH2_PROVIDER, GoaProvider); + +typedef struct _GoaOAuth2ProviderPrivate GoaOAuth2ProviderPrivate; + +const gchar *goa_oauth2_provider_get_authorization_uri (GoaOAuth2Provider *provider); +const gchar *goa_oauth2_provider_get_token_uri (GoaOAuth2Provider *provider); +const gchar *goa_oauth2_provider_get_redirect_uri (GoaOAuth2Provider *provider); +const gchar *goa_oauth2_provider_get_scope (GoaOAuth2Provider *provider); +const gchar *goa_oauth2_provider_get_client_id (GoaOAuth2Provider *provider); +const gchar *goa_oauth2_provider_get_client_secret (GoaOAuth2Provider *provider); +gchar *goa_oauth2_provider_get_identity_sync (GoaOAuth2Provider *provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error); +gchar *goa_oauth2_provider_get_access_token_sync (GoaOAuth2Provider *provider, + GoaObject *object, + gboolean force_refresh, + gint *out_access_token_expires_in, + GCancellable *cancellable, + GError **error); +gchar *goa_oauth2_provider_build_authorization_uri (GoaOAuth2Provider *provider, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope); +gboolean goa_oauth2_provider_get_use_mobile_browser (GoaOAuth2Provider *provider); +void goa_oauth2_provider_add_account_key_values (GoaOAuth2Provider *provider, + GVariantBuilder *builder); +gboolean goa_oauth2_provider_process_redirect_url (GoaOAuth2Provider *provider, + const gchar *redirect_url, + gchar **authorization_code, + GError **error); + +G_END_DECLS + +#endif /* __GOA_OAUTH2_PROVIDER_H__ */ diff --git a/src/goabackend/goaoauthprovider.c b/src/goabackend/goaoauthprovider.c new file mode 100644 index 0000000..71bcad6 --- /dev/null +++ b/src/goabackend/goaoauthprovider.c @@ -0,0 +1,1662 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include +#include + +#include +#include +#include +#include + +#include "goaprovider.h" +#include "goautils.h" +#include "goawebview.h" +#include "goaoauthprovider.h" +#include "goasouplogger.h" + +/** + * SECTION:goaoauthprovider + * @title: GoaOAuthProvider + * @short_description: Abstract base class for OAuth 1.0a providers + * + * #GoaOAuthProvider is an abstract base class for OAuth 1.0a + * compliant implementations as defined by RFC + * 5849. Additionally, the code works with providers + * implementing OAuth + * Session 1.0 Draft 1 for refreshing access tokens. + * + * Subclasses must implement + * #GoaOAuthProviderClass.get_consumer_key, + * #GoaOAuthProviderClass.get_consumer_secret, + * #GoaOAuthProviderClass.get_request_uri, + * #GoaOAuthProviderClass.get_authorization_uri, + * #GoaOAuthProviderClass.get_token_uri, + * #GoaOAuthProviderClass.get_callback_uri and + * #GoaOAuthProviderClass.get_identity_sync methods. + * + * Additionally, the + * #GoaProviderClass.get_provider_type, + * #GoaProviderClass.get_provider_name, + * #GoaProviderClass.build_object (this should chain up to its + * parent class) methods must be implemented. + * + * Note that the #GoaProviderClass.add_account, + * #GoaProviderClass.refresh_account and + * #GoaProviderClass.ensure_credentials_sync methods do not + * need to be implemented - this type implements these methods. + */ + +G_LOCK_DEFINE_STATIC (provider_lock); + +G_DEFINE_ABSTRACT_TYPE (GoaOAuthProvider, goa_oauth_provider, GOA_TYPE_PROVIDER); + +static gboolean +is_authorization_error (GError *error) +{ + gboolean ret; + + g_return_val_if_fail (error != NULL, FALSE); + + ret = FALSE; + if (error->domain == REST_PROXY_ERROR || error->domain == SOUP_HTTP_ERROR) + { + if (SOUP_STATUS_IS_CLIENT_ERROR (error->code)) + ret = TRUE; + } + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth_provider_get_use_mobile_browser_default (GoaOAuthProvider *provider) +{ + return FALSE; +} + +/** + * goa_oauth_provider_get_use_mobile_browser: + * @provider: A #GoaOAuthProvider. + * + * Returns whether there is a need for the embedded browser to identify + * itself as running on a mobile phone in order to get a more compact + * version of the approval page. + * + * This is a virtual method where the default implementation returns + * %FALSE. + * + * Returns: %TRUE if the embedded browser should identify itself as + * running on a mobile platform, %FALSE otherwise. + */ +gboolean +goa_oauth_provider_get_use_mobile_browser (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), FALSE); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_use_mobile_browser (provider); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth_provider_is_deny_node_default (GoaOAuthProvider *provider, WebKitDOMNode *node) +{ + return FALSE; +} + +/** + * goa_oauth_provider_is_deny_node: + * @provider: A #GoaOAuthProvider. + * @node: A WebKitDOMNode. + * + * Checks whether @node is the HTML UI element that the user can use + * to deny permission to access his account. Usually they are either a + * WebKitDOMHTMLButtonElement or a WebKitDOMHTMLInputElement. + * + * Please note that providers may have multiple such elements in their + * UI and this method should catch all of them. + * + * This is a virtual method where the default implementation returns + * %FALSE. + * + * Returns: %TRUE if the @node can be used to deny permission. + */ +gboolean +goa_oauth_provider_is_deny_node (GoaOAuthProvider *provider, WebKitDOMNode *node) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), FALSE); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->is_deny_node (provider, node); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth_provider_is_password_node_default (GoaOAuthProvider *provider, WebKitDOMHTMLInputElement *element) +{ + return FALSE; +} + +/** + * goa_oauth_provider_is_password_node: + * @provider: A #GoaOAuthProvider. + * @element: A WebKitDOMHTMLInputElement + * + * Checks whether @element is the HTML UI element that the user can + * use to enter her password. This can be used to offer a + * #GoaPasswordBased interface by saving the user's + * password. Providers usually frown upon doing this, so this is not + * recommended. + * + * This is a virtual method where the default implementation returns + * %FALSE. + * + * Returns: %TRUE if @element can be used to enter the password. + */ +gboolean +goa_oauth_provider_is_password_node (GoaOAuthProvider *provider, WebKitDOMHTMLInputElement *element) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), FALSE); + g_return_val_if_fail (WEBKIT_DOM_IS_HTML_INPUT_ELEMENT (element), FALSE); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->is_password_node (provider, element); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_oauth_provider_add_account_key_values_default (GoaOAuthProvider *provider, + GVariantBuilder *builder) +{ + /* do nothing */ +} + +/** + * goa_oauth_provider_add_account_key_values: + * @provider: A #GoaProvider. + * @builder: A #GVariantBuilder for a a{ss} variant. + * + * Hook for implementations to add key/value pairs to the key-file + * when creating an account. + * + * This is a virtual method where the default implementation does nothing. + */ +void +goa_oauth_provider_add_account_key_values (GoaOAuthProvider *provider, + GVariantBuilder *builder) +{ + g_return_if_fail (GOA_IS_OAUTH_PROVIDER (provider)); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->add_account_key_values (provider, builder); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +goa_oauth_provider_build_authorization_uri_default (GoaOAuthProvider *provider, + const gchar *authorization_uri, + const gchar *escaped_oauth_token) +{ + return g_strdup_printf ("%s" + "?oauth_token=%s", + authorization_uri, + escaped_oauth_token); +} + +/** + * goa_oauth_provider_build_authorization_uri: + * @provider: A #GoaOAuthProvider. + * @authorization_uri: An authorization URI. + * @escaped_oauth_token: An escaped oauth token. + * + * Builds the URI that can be opened in a web browser (or embedded web + * browser widget) to start authenticating an user. + * + * The default implementation just returns the expected URI + * (e.g. http://example.com/dialog/oauth?auth_token=1234567890) + * - override (and chain up) if you e.g. need to to pass additional + * parameters. + * + * The @authorization_uri parameter originate from the result of the + * the goa_oauth_provider_get_authorization_uri() method. The + * @escaped_oauth_token parameter is the temporary credentials identifier + * escaped using g_uri_escape_string(). + * + * Returns: (transfer full): An authorization URI that must be freed with g_free(). + */ +gchar * +goa_oauth_provider_build_authorization_uri (GoaOAuthProvider *provider, + const gchar *authorization_uri, + const gchar *escaped_oauth_token) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + g_return_val_if_fail (authorization_uri != NULL, NULL); + g_return_val_if_fail (escaped_oauth_token != NULL, NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->build_authorization_uri (provider, + authorization_uri, + escaped_oauth_token); +} + +/** + * goa_oauth_provider_get_consumer_key: + * @provider: A #GoaOAuthProvider. + * + * Gets the consumer key identifying the client. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @provider - do not free. + */ +const gchar * +goa_oauth_provider_get_consumer_key (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_consumer_key (provider); +} + +/** + * goa_oauth_provider_get_consumer_secret: + * @provider: A #GoaOAuthProvider. + * + * Gets the consumer secret identifying the client. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @provider - do not free. + */ +const gchar * +goa_oauth_provider_get_consumer_secret (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_consumer_secret (provider); +} + +/** + * goa_oauth_provider_get_request_uri: + * @provider: A #GoaOAuthProvider. + * + * Gets the request uri. + * + * http://tools.ietf.org/html/rfc5849#section-2.1 + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @provider - do not free. + */ +const gchar * +goa_oauth_provider_get_request_uri (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_request_uri (provider); +} + +/** + * goa_oauth_provider_get_request_uri_params: + * @provider: A #GoaOAuthProvider. + * + * Gets additional parameters for the request URI. + * + * http://tools.ietf.org/html/rfc5849#section-2.1 + * + * This is a virtual method where the default implementation returns + * %NULL. + * + * Returns: (transfer full): %NULL (for no parameters) or a + * %NULL-terminated array of (key, value) pairs that will be added to + * the URI. The caller will free the returned value with g_strfreev(). + */ +gchar ** +goa_oauth_provider_get_request_uri_params (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_request_uri_params (provider); +} + +static gchar ** +goa_oauth_provider_get_request_uri_params_default (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return NULL; +} + +/** + * goa_oauth_provider_get_authorization_uri: + * @provider: A #GoaOAuthProvider. + * + * Gets the authorization uri. + * + * http://tools.ietf.org/html/rfc5849#section-2.2 + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @provider - do not free. + */ +const gchar * +goa_oauth_provider_get_authorization_uri (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_authorization_uri (provider); +} + +/** + * goa_oauth_provider_get_token_uri: + * @provider: A #GoaOAuthProvider. + * + * Gets the token uri. + * + * http://tools.ietf.org/html/rfc5849#section-2.3 + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @provider - do not free. + */ +const gchar * +goa_oauth_provider_get_token_uri (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_token_uri (provider); +} + +/** + * goa_oauth_provider_get_callback_uri: + * @provider: A #GoaOAuthProvider. + * + * Gets the callback uri. + * + * http://tools.ietf.org/html/rfc5849#section-2.1 + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @provider - do not free. + */ +const gchar * +goa_oauth_provider_get_callback_uri (GoaOAuthProvider *provider) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_callback_uri (provider); +} + +/** + * goa_oauth_provider_get_identity_sync: + * @provider: A #GoaOAuthProvider. + * @access_token: A valid OAuth 1.0 access token. + * @access_token_secret: The valid secret for @access_token. + * @out_presentation_identity: (out): Return location for presentation identity or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Method that returns the identity corresponding to @access_token and + * @access_token_secret. + * + * The identity is needed because all authentication happens out of + * band. In addition to the identity, an implementation also returns a + * presentation identity that is more suitable + * for presentation (the identity could be a GUID for example). + * + * The calling thread is blocked while the identity is obtained. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: The identity or %NULL if error is set. The returned string + * must be freed with g_free(). + */ +gchar * +goa_oauth_provider_get_identity_sync (GoaOAuthProvider *provider, + const gchar *access_token, + const gchar *access_token_secret, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + g_return_val_if_fail (access_token != NULL, NULL); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->get_identity_sync (provider, + access_token, + access_token_secret, + out_presentation_identity, + cancellable, + error); +} + +/** + * goa_oauth_provider_is_identity_node: + * @provider: A #GoaOAuthProvider. + * @element: A WebKitDOMHTMLInputElement. + * + * Checks whether @element is the HTML UI element that the user can + * use to identify herself at the provider. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: %TRUE if the @element can be used to deny permission. + */ +gboolean +goa_oauth_provider_is_identity_node (GoaOAuthProvider *provider, WebKitDOMHTMLInputElement *element) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), FALSE); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->is_identity_node (provider, element); +} + +/** + * goa_oauth_provider_parse_request_token_error: + * @provider: A #GoaOAuthProvider. + * @call: The #RestProxyCall that was used to fetch the request token. + * + * Tries to parse the headers and payload within @call to provide a + * human readable error message in case the request token could not + * be fetched. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: A human readable error message or %NULL if the cause of the + * error could not be determined. The returned string must be freed with + * g_free(). + */ +gchar * +goa_oauth_provider_parse_request_token_error (GoaOAuthProvider *provider, RestProxyCall *call) +{ + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + return GOA_OAUTH_PROVIDER_GET_CLASS (provider)->parse_request_token_error (provider, call); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_tokens_sync (GoaOAuthProvider *provider, + const gchar *token, + const gchar *token_secret, + const gchar *session_handle, /* may be NULL */ + const gchar *verifier, /* may be NULL */ + gchar **out_access_token_secret, + gint *out_access_token_expires_in, + gchar **out_session_handle, + gint *out_session_handle_expires_in, + GCancellable *cancellable, + GError **error) +{ + RestProxy *proxy; + RestProxyCall *call; + SoupLogger *logger = NULL; + gchar *ret = NULL; + guint status_code; + GHashTable *f; + const gchar *expires_in_str; + gchar *ret_access_token = NULL; + gchar *ret_access_token_secret = NULL; + gint ret_access_token_expires_in = 0; + gchar *ret_session_handle = NULL; + gint ret_session_handle_expires_in = 0; + + proxy = oauth_proxy_new (goa_oauth_provider_get_consumer_key (provider), + goa_oauth_provider_get_consumer_secret (provider), + goa_oauth_provider_get_token_uri (provider), + FALSE); + logger = goa_soup_logger_new (SOUP_LOGGER_LOG_BODY, -1); + rest_proxy_add_soup_feature (proxy, SOUP_SESSION_FEATURE (logger)); + oauth_proxy_set_token (OAUTH_PROXY (proxy), token); + oauth_proxy_set_token_secret (OAUTH_PROXY (proxy), token_secret); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "POST"); + if (verifier != NULL) + rest_proxy_call_add_param (call, "oauth_verifier", verifier); + if (session_handle != NULL) + rest_proxy_call_add_param (call, "oauth_session_handle", session_handle); + /* TODO: cancellable support? */ + if (!rest_proxy_call_sync (call, error)) + goto out; + + status_code = rest_proxy_call_get_status_code (call); + if (status_code != 200) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + /* Translators: the %d is a HTTP status code and the %s is a textual description of it */ + _("Expected status 200 when requesting access token, instead got status %d (%s)"), + status_code, + rest_proxy_call_get_status_message (call)); + goto out; + } + + f = soup_form_decode (rest_proxy_call_get_payload (call)); + ret_access_token = g_strdup (g_hash_table_lookup (f, "oauth_token")); + ret_access_token_secret = g_strdup (g_hash_table_lookup (f, "oauth_token_secret")); + ret_session_handle = g_strdup (g_hash_table_lookup (f, "oauth_session_handle")); + expires_in_str = g_hash_table_lookup (f, "oauth_expires_in"); + if (expires_in_str != NULL) + ret_access_token_expires_in = atoi (expires_in_str); + expires_in_str = g_hash_table_lookup (f, "oauth_authorization_expires_in"); + if (expires_in_str != NULL) + ret_session_handle_expires_in = atoi (expires_in_str); + g_hash_table_unref (f); + + if (ret_access_token == NULL || ret_access_token_secret == NULL) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Missing access_token or access_token_secret headers in response")); + goto out; + } + + ret = ret_access_token; ret_access_token = NULL; + if (out_access_token_secret != NULL) + { + *out_access_token_secret = ret_access_token_secret; + ret_access_token_secret = NULL; + } + if (out_access_token_expires_in != NULL) + *out_access_token_expires_in = ret_access_token_expires_in; + if (out_session_handle != NULL) + { + *out_session_handle = ret_session_handle; + ret_session_handle = NULL; + } + if (out_session_handle_expires_in != NULL) + *out_session_handle_expires_in = ret_session_handle_expires_in; + + out: + g_free (ret_access_token); + g_free (ret_access_token_secret); + g_free (ret_session_handle); + g_clear_object (&call); + g_clear_object (&proxy); + g_clear_object (&logger); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GoaOAuthProvider *provider; + GtkDialog *dialog; + GError *error; + GMainLoop *loop; + + gchar *password; + + gchar *oauth_verifier; + + const gchar *existing_identity; + + gchar *identity; + gchar *presentation_identity; + + gchar *request_token; + gchar *request_token_secret; + gchar *access_token; + gchar *access_token_secret; + gint access_token_expires_in; + gchar *session_handle; + gint session_handle_expires_in; +} IdentifyData; + +static void +on_web_view_deny_click (GoaWebView *web_view, gpointer user_data) +{ + IdentifyData *data = user_data; + gtk_dialog_response (data->dialog, GTK_RESPONSE_CANCEL); +} + +static void +on_web_view_password_submit (GoaWebView *web_view, const gchar *password, gpointer user_data) +{ + IdentifyData *data = user_data; + + g_free (data->password); + data->password = g_strdup (password); +} + +static gboolean +on_web_view_decide_policy (WebKitWebView *web_view, + WebKitPolicyDecision *decision, + WebKitPolicyDecisionType decision_type, + gpointer user_data) +{ + GHashTable *key_value_pairs; + IdentifyData *data = user_data; + SoupURI *uri; + WebKitNavigationAction *action; + WebKitURIRequest *request; + const gchar *query; + const gchar *redirect_uri; + const gchar *requested_uri; + gint response_id = GTK_RESPONSE_NONE; + + if (decision_type != WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION) + return FALSE; + + /* TODO: use oauth_proxy_extract_access_token() */ + + action = webkit_navigation_policy_decision_get_navigation_action (WEBKIT_NAVIGATION_POLICY_DECISION (decision)); + request = webkit_navigation_action_get_request (action); + requested_uri = webkit_uri_request_get_uri (request); + redirect_uri = goa_oauth_provider_get_callback_uri (data->provider); + + if (!g_str_has_prefix (requested_uri, redirect_uri)) + goto default_behaviour; + + uri = soup_uri_new (requested_uri); + query = soup_uri_get_query (uri); + + if (query != NULL) + { + key_value_pairs = soup_form_decode (query); + + data->oauth_verifier = g_strdup (g_hash_table_lookup (key_value_pairs, "oauth_verifier")); + if (data->oauth_verifier != NULL) + response_id = GTK_RESPONSE_OK; + + g_hash_table_unref (key_value_pairs); + } + + if (data->oauth_verifier != NULL) + goto ignore_request; + + /* TODO: The only OAuth1 provider is Flickr. It doesn't send any + * error code and only redirects to the URI specified in the Flickr + * App Garden. Re-evaluate when the situation changes. + */ + response_id = GTK_RESPONSE_CANCEL; + goto ignore_request; + + ignore_request: + g_assert (response_id != GTK_RESPONSE_NONE); + gtk_dialog_response (data->dialog, response_id); + webkit_policy_decision_ignore (decision); + return TRUE; + + default_behaviour: + return FALSE; +} + +static void +rest_proxy_call_cb (RestProxyCall *call, const GError *error, GObject *weak_object, gpointer user_data) +{ + IdentifyData *data = user_data; + g_main_loop_quit (data->loop); +} + +static gboolean +get_tokens_and_identity (GoaOAuthProvider *provider, + gboolean add_account, + const gchar *existing_identity, + GtkDialog *dialog, + GtkBox *vbox, + gchar **out_access_token, + gchar **out_access_token_secret, + gint *out_access_token_expires_in, + gchar **out_session_handle, + gint *out_session_handle_expires_in, + gchar **out_identity, + gchar **out_presentation_identity, + gchar **out_password, + GError **error) +{ + gboolean ret = FALSE; + gchar *url = NULL; + IdentifyData data; + gchar *escaped_request_token = NULL; + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + SoupLogger *logger = NULL; + GHashTable *f; + GtkWidget *embed; + GtkWidget *grid; + GtkWidget *spinner; + GtkWidget *web_view; + gchar **request_params = NULL; + guint n; + + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), FALSE); + g_return_val_if_fail ((!add_account && existing_identity != NULL && existing_identity[0] != '\0') + || (add_account && existing_identity == NULL), FALSE); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), FALSE); + g_return_val_if_fail (GTK_IS_BOX (vbox), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + /* TODO: check with NM whether we're online, if not - return error */ + + memset (&data, '\0', sizeof (IdentifyData)); + data.provider = provider; + data.dialog = dialog; + data.loop = g_main_loop_new (NULL, FALSE); + data.existing_identity = existing_identity; + + proxy = oauth_proxy_new (goa_oauth_provider_get_consumer_key (provider), + goa_oauth_provider_get_consumer_secret (provider), + goa_oauth_provider_get_request_uri (provider), FALSE); + logger = goa_soup_logger_new (SOUP_LOGGER_LOG_BODY, -1); + rest_proxy_add_soup_feature (proxy, SOUP_SESSION_FEATURE (logger)); + + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_add_param (call, "oauth_callback", goa_oauth_provider_get_callback_uri (provider)); + + request_params = goa_oauth_provider_get_request_uri_params (provider); + if (request_params != NULL) + { + g_assert (g_strv_length (request_params) % 2 == 0); + for (n = 0; request_params[n] != NULL; n += 2) + rest_proxy_call_add_param (call, request_params[n], request_params[n+1]); + } + if (!rest_proxy_call_async (call, rest_proxy_call_cb, NULL, &data, &data.error)) + { + g_prefix_error (&data.error, _("Error getting a Request Token: ")); + goto out; + } + + goa_utils_set_dialog_title (GOA_PROVIDER (provider), dialog, add_account); + + grid = gtk_grid_new (); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid); + + spinner = gtk_spinner_new (); + gtk_widget_set_hexpand (spinner, TRUE); + gtk_widget_set_halign (spinner, GTK_ALIGN_CENTER); + gtk_widget_set_vexpand (spinner, TRUE); + gtk_widget_set_valign (spinner, GTK_ALIGN_CENTER); + gtk_widget_set_size_request (GTK_WIDGET (spinner), 24, 24); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_container_add (GTK_CONTAINER (grid), spinner); + gtk_widget_show_all (GTK_WIDGET (vbox)); + + g_main_loop_run (data.loop); + gtk_container_remove (GTK_CONTAINER (grid), spinner); + + if (rest_proxy_call_get_status_code (call) != 200) + { + gchar *msg; + + msg = goa_oauth_provider_parse_request_token_error (provider, call); + if (msg == NULL) + /* Translators: the %d is a HTTP status code and the %s is a textual description of it */ + msg = g_strdup_printf (_("Expected status 200 for getting a Request Token, instead got status %d (%s)"), + rest_proxy_call_get_status_code (call), + rest_proxy_call_get_status_message (call)); + + g_set_error_literal (&data.error, GOA_ERROR, GOA_ERROR_FAILED, msg); + g_free (msg); + goto out; + } + f = soup_form_decode (rest_proxy_call_get_payload (call)); + data.request_token = g_strdup (g_hash_table_lookup (f, "oauth_token")); + data.request_token_secret = g_strdup (g_hash_table_lookup (f, "oauth_token_secret")); + g_hash_table_unref (f); + if (data.request_token == NULL || data.request_token_secret == NULL) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Missing request_token or request_token_secret headers in response")); + goto out; + } + + escaped_request_token = g_uri_escape_string (data.request_token, NULL, TRUE); + url = goa_oauth_provider_build_authorization_uri (provider, + goa_oauth_provider_get_authorization_uri (provider), + escaped_request_token); + + web_view = goa_web_view_new (GOA_PROVIDER (provider), existing_identity); + gtk_widget_set_hexpand (web_view, TRUE); + gtk_widget_set_vexpand (web_view, TRUE); + embed = goa_web_view_get_view (GOA_WEB_VIEW (web_view)); + + if (goa_oauth_provider_get_use_mobile_browser (provider)) + goa_web_view_fake_mobile (GOA_WEB_VIEW (web_view)); + + webkit_web_view_load_uri (WEBKIT_WEB_VIEW (embed), url); + g_signal_connect (embed, + "decide-policy", + G_CALLBACK (on_web_view_decide_policy), + &data); + g_signal_connect (web_view, "deny-click", G_CALLBACK (on_web_view_deny_click), &data); + g_signal_connect (web_view, "password-submit", G_CALLBACK (on_web_view_password_submit), &data); + + gtk_container_add (GTK_CONTAINER (grid), web_view); + gtk_window_set_default_size (GTK_WINDOW (dialog), -1, -1); + + gtk_widget_show_all (GTK_WIDGET (vbox)); + gtk_dialog_run (GTK_DIALOG (dialog)); + + if (data.oauth_verifier == NULL) + { + if (data.error == NULL) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + } + goto out; + } + g_assert (data.error == NULL); + + /* OK, we are done interacting with the user ... but before we can + * make up our mind, there are two more RPC calls to make and these + * call may take some time. So hide the dialog immediately. + */ + gtk_widget_hide (GTK_WIDGET (dialog)); + + /* OK, we now have the request token... we can exchange that for a + * (short-lived) access token and session_handle (used to refresh the + * access token).. + */ + + /* TODO: run in worker thread */ + data.access_token = get_tokens_sync (provider, + data.request_token, + data.request_token_secret, + NULL, /* session_handle */ + data.oauth_verifier, + &data.access_token_secret, + &data.access_token_expires_in, + &data.session_handle, + &data.session_handle_expires_in, + NULL, /* GCancellable */ + &data.error); + if (data.access_token == NULL) + { + g_prefix_error (&data.error, _("Error getting an Access Token: ")); + goto out; + } + + /* TODO: run in worker thread */ + data.identity = goa_oauth_provider_get_identity_sync (provider, + data.access_token, + data.access_token_secret, + &data.presentation_identity, + NULL, /* TODO: GCancellable */ + &data.error); + if (data.identity == NULL) + { + g_prefix_error (&data.error, _("Error getting identity: ")); + goto out; + } + + ret = TRUE; + + out: + g_clear_object (&call); + + if (ret) + { + g_warn_if_fail (data.error == NULL); + if (out_access_token != NULL) + *out_access_token = g_strdup (data.access_token); + if (out_access_token_secret != NULL) + *out_access_token_secret = g_strdup (data.access_token_secret); + if (out_access_token_expires_in != NULL) + *out_access_token_expires_in = data.access_token_expires_in; + if (out_session_handle != NULL) + *out_session_handle = g_strdup (data.session_handle); + if (out_session_handle_expires_in != NULL) + *out_session_handle_expires_in = data.session_handle_expires_in; + if (out_identity != NULL) + *out_identity = g_strdup (data.identity); + if (out_presentation_identity != NULL) + *out_presentation_identity = g_strdup (data.presentation_identity); + if (out_password != NULL) + *out_password = g_strdup (data.password); + } + else + { + g_warn_if_fail (data.error != NULL); + g_propagate_error (error, data.error); + } + + g_free (data.password); + g_free (data.presentation_identity); + g_free (data.identity); + g_free (url); + + g_free (data.oauth_verifier); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_free (data.access_token); + g_free (data.access_token_secret); + g_free (escaped_request_token); + + g_free (data.request_token); + g_free (data.request_token_secret); + + g_strfreev (request_params); + g_clear_object (&proxy); + g_clear_object (&logger); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GError *error; + GMainLoop *loop; + gchar *account_object_path; +} AddData; + +static void +add_account_cb (GoaManager *manager, + GAsyncResult *res, + gpointer user_data) +{ + AddData *data = user_data; + goa_manager_call_add_account_finish (manager, + &data->account_object_path, + res, + &data->error); + g_main_loop_quit (data->loop); +} + +static gint64 +duration_to_abs_usec (gint duration_sec) +{ + gint64 ret; + GTimeVal now; + + g_get_current_time (&now); + ret = ((gint64) now.tv_sec) * 1000L * 1000L + ((gint64) now.tv_usec); + ret += ((gint64) duration_sec) * 1000L * 1000L; + return ret; +} + +static gint +abs_usec_to_duration (gint64 abs_usec) +{ + gint64 ret; + GTimeVal now; + + g_get_current_time (&now); + ret = abs_usec - (((gint64) now.tv_sec) * 1000L * 1000L + ((gint64) now.tv_usec)); + ret /= 1000L * 1000L; + return ret; +} + +static GoaObject * +goa_oauth_provider_add_account (GoaProvider *_provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + GoaOAuthProvider *provider = GOA_OAUTH_PROVIDER (_provider); + GoaObject *ret = NULL; + gchar *access_token = NULL; + gchar *access_token_secret = NULL; + gint access_token_expires_in; + gchar *session_handle = NULL; + gint session_handle_expires_in; + gchar *identity = NULL; + gchar *presentation_identity = NULL; + gchar *password = NULL; + AddData data; + GVariantBuilder credentials; + GVariantBuilder details; + + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + g_return_val_if_fail (GOA_IS_CLIENT (client), NULL); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL); + g_return_val_if_fail (GTK_IS_BOX (vbox), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + memset (&data, '\0', sizeof (AddData)); + data.loop = g_main_loop_new (NULL, FALSE); + + if (!get_tokens_and_identity (provider, + TRUE, + NULL, + dialog, + vbox, + &access_token, + &access_token_secret, + &access_token_expires_in, + &session_handle, + &session_handle_expires_in, + &identity, + &presentation_identity, + &password, + &data.error)) + goto out; + + /* OK, got the identity... see if there's already an account + * of this type with the given identity + */ + if (!goa_utils_check_duplicate (client, + identity, + presentation_identity, + goa_provider_get_provider_type (GOA_PROVIDER (provider)), + (GoaPeekInterfaceFunc) goa_object_peek_oauth_based, + &data.error)) + goto out; + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&credentials, "{sv}", "access_token", g_variant_new_string (access_token)); + g_variant_builder_add (&credentials, "{sv}", "access_token_secret", g_variant_new_string (access_token_secret)); + if (access_token_expires_in > 0) + g_variant_builder_add (&credentials, "{sv}", "access_token_expires_at", + g_variant_new_int64 (duration_to_abs_usec (access_token_expires_in))); + if (session_handle != NULL) + g_variant_builder_add (&credentials, "{sv}", "session_handle", g_variant_new_string (session_handle)); + if (session_handle_expires_in > 0) + g_variant_builder_add (&credentials, "{sv}", "session_handle_expires_at", + g_variant_new_int64 (duration_to_abs_usec (session_handle_expires_in))); + if (password != NULL) + g_variant_builder_add (&credentials, "{sv}", "password", g_variant_new_string (password)); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + goa_oauth_provider_add_account_key_values (provider, &details); + + /* we want the GoaClient to update before this method returns (so it + * can create a proxy for the new object) so run the mainloop while + * waiting for this to complete + */ + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (GOA_PROVIDER (provider)), + identity, + presentation_identity, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + &data); + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + + ret = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + data.account_object_path)); + + out: + /* We might have an object even when data.error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (data.error != NULL) + g_propagate_error (error, data.error); + else + g_assert (ret != NULL); + + g_free (identity); + g_free (presentation_identity); + g_free (password); + g_free (access_token); + g_free (access_token_secret); + g_free (session_handle); + g_free (data.account_object_path); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth_provider_refresh_account (GoaProvider *_provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + GoaOAuthProvider *provider = GOA_OAUTH_PROVIDER (_provider); + GoaAccount *account; + GtkWidget *dialog; + gchar *access_token = NULL; + gchar *access_token_secret = NULL; + gchar *password = NULL; + gint access_token_expires_in; + gchar *session_handle = NULL; + gint session_handle_expires_in; + gchar *identity = NULL; + const gchar *existing_identity; + const gchar *existing_presentation_identity; + GVariantBuilder builder; + gboolean ret = FALSE; + + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + dialog = gtk_dialog_new_with_buttons (NULL, + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + NULL, + NULL); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + gtk_widget_show_all (dialog); + + account = goa_object_peek_account (object); + + /* We abuse presentation identity here because for some providers + * identity can be a machine readable ID, which can not be used to + * log in via the provider's web interface. + */ + existing_presentation_identity = goa_account_get_presentation_identity (account); + if (!get_tokens_and_identity (provider, + FALSE, + existing_presentation_identity, + GTK_DIALOG (dialog), + GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), + &access_token, + &access_token_secret, + &access_token_expires_in, + &session_handle, + &session_handle_expires_in, + &identity, + NULL, /* out_presentation_identity */ + &password, + error)) + goto out; + + /* Changes made to the web interface by the providers can break our + * DOM parsing. So we should still query and check the identity + * afterwards. + */ + existing_identity = goa_account_get_identity (account); + if (g_strcmp0 (identity, existing_identity) != 0) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Was asked to log in as %s, but logged in as %s"), + existing_identity, + identity); + goto out; + } + + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&builder, "{sv}", "access_token", g_variant_new_string (access_token)); + g_variant_builder_add (&builder, "{sv}", "access_token_secret", g_variant_new_string (access_token_secret)); + if (access_token_expires_in > 0) + g_variant_builder_add (&builder, "{sv}", "access_token_expires_at", + g_variant_new_int64 (duration_to_abs_usec (access_token_expires_in))); + if (session_handle != NULL) + g_variant_builder_add (&builder, "{sv}", "session_handle", g_variant_new_string (session_handle)); + if (session_handle_expires_in > 0) + g_variant_builder_add (&builder, "{sv}", "session_handle_expires_at", + g_variant_new_int64 (duration_to_abs_usec (session_handle_expires_in))); + if (password != NULL) + g_variant_builder_add (&builder, "{sv}", "password", g_variant_new_string (password)); + /* TODO: run in worker thread */ + if (!goa_utils_store_credentials_for_object_sync (GOA_PROVIDER (provider), + object, + g_variant_builder_end (&builder), + NULL, /* GCancellable */ + error)) + goto out; + + goa_account_call_ensure_credentials (goa_object_peek_account (object), + NULL, /* GCancellable */ + NULL, NULL); /* callback, user_data */ + + ret = TRUE; + + out: + gtk_widget_destroy (dialog); + + g_free (identity); + g_free (access_token); + g_free (access_token_secret); + g_free (password); + g_free (session_handle); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +free_mutex (GMutex *mutex) +{ + g_mutex_clear (mutex); + g_slice_free (GMutex, mutex); +} + +/** + * goa_oauth_provider_get_access_token_sync: + * @provider: A #GoaOAuthProvider. + * @object: A #GoaObject. + * @force_refresh: If set to %TRUE, forces a refresh of the access token, if possible. + * @out_access_token_secret: (out): The secret for the return access token. + * @out_access_token_expires_in: (out): Return location for how many seconds the returned token is valid for (0 if unknown) or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously gets an access token for @object. The calling thread + * is blocked while the operation is pending. + * + * The resulting token is typically read from the local cache so most + * of the time only a local roundtrip to the storage for the token + * cache (e.g. gnome-keyring-daemon) is + * needed. However, the operation may involve refreshing the token + * with the service provider so a full network round-trip may be + * needed. + * + * Note that multiple calls are serialized to avoid multiple + * outstanding requests to the service provider. + * + * This operation may fail if e.g. unable to refresh the credentials + * or if network connectivity is not available. Note that even if a + * token is returned, the returned token isn't guaranteed to work - + * use goa_provider_ensure_credentials_sync() if you need + * stronger guarantees. + * + * Returns: The access token or %NULL if error is set. The returned + * string must be freed with g_free(). + */ +gchar * +goa_oauth_provider_get_access_token_sync (GoaOAuthProvider *provider, + GoaObject *object, + gboolean force_refresh, + gchar **out_access_token_secret, + gint *out_access_token_expires_in, + GCancellable *cancellable, + GError **error) +{ + GVariant *credentials = NULL; + GVariantIter iter; + const gchar *key; + GVariant *value; + gchar *access_token = NULL; + gchar *access_token_secret = NULL; + gchar *session_handle = NULL; + gchar *access_token_for_refresh = NULL; + gchar *access_token_secret_for_refresh = NULL; + gchar *session_handle_for_refresh = NULL; + gchar *password = NULL; + gint access_token_expires_in = 0; + gint session_handle_expires_in = 0; + gboolean success = FALSE; + GVariantBuilder builder; + gchar *ret = NULL; + GMutex *lock; + + g_return_val_if_fail (GOA_IS_OAUTH_PROVIDER (provider), NULL); + g_return_val_if_fail (GOA_IS_OBJECT (object), NULL); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + /* provider_lock is too coarse, use a per-object lock instead */ + G_LOCK (provider_lock); + lock = g_object_get_data (G_OBJECT (object), "-goa-oauth-provider-get-access-token-lock"); + if (lock == NULL) + { + lock = g_slice_new0 (GMutex); + g_mutex_init (lock); + g_object_set_data_full (G_OBJECT (object), + "-goa-oauth-provider-get-access-token-lock", + lock, + (GDestroyNotify) free_mutex); + } + G_UNLOCK (provider_lock); + + g_mutex_lock (lock); + + /* First, get the credentials from the keyring */ + credentials = goa_utils_lookup_credentials_sync (GOA_PROVIDER (provider), + object, + cancellable, + error); + if (credentials == NULL) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + g_variant_iter_init (&iter, credentials); + while (g_variant_iter_next (&iter, "{&sv}", &key, &value)) + { + if (g_strcmp0 (key, "access_token") == 0) + access_token = g_variant_dup_string (value, NULL); + else if (g_strcmp0 (key, "access_token_secret") == 0) + access_token_secret = g_variant_dup_string (value, NULL); + else if (g_strcmp0 (key, "access_token_expires_at") == 0) + access_token_expires_in = abs_usec_to_duration (g_variant_get_int64 (value)); + else if (g_strcmp0 (key, "session_handle") == 0) + session_handle = g_variant_dup_string (value, NULL); + else if (g_strcmp0 (key, "session_handle_expires_at") == 0) + session_handle_expires_in = abs_usec_to_duration (g_variant_get_int64 (value)); + else if (g_strcmp0 (key, "password") == 0) + password = g_variant_dup_string (value, NULL); + g_variant_unref (value); + } + + if (access_token == NULL || access_token_secret == NULL) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_AUTHORIZED, + _("Credentials do not contain access_token or access_token_secret")); + goto out; + } + + /* if we can't refresh the token, just return it no matter what */ + if (session_handle == NULL) + { + g_debug ("Returning locally cached credentials that cannot be refreshed"); + success = TRUE; + goto out; + } + + /* If access_token is still "fresh enough" (e.g. more than ten + * minutes of life left in it), just return it unless we've been + * asked to forcibly refresh it + */ + if (!force_refresh && access_token_expires_in > 10*60) + { + g_debug ("Returning locally cached credentials (expires in %d seconds)", access_token_expires_in); + success = TRUE; + goto out; + } + + g_debug ("Refreshing locally cached credentials (expires in %d seconds, force_refresh=%d)", access_token_expires_in, force_refresh); + + /* Otherwise, refresh it */ + access_token_for_refresh = access_token; access_token = NULL; + access_token_secret_for_refresh = access_token_secret; access_token_secret = NULL; + session_handle_for_refresh = session_handle; session_handle = NULL; + access_token = get_tokens_sync (provider, + access_token_for_refresh, + access_token_secret_for_refresh, + session_handle_for_refresh, + NULL, /* verifier */ + &access_token_secret, + &access_token_expires_in, + &session_handle, + &session_handle_expires_in, + cancellable, + error); + if (access_token == NULL) + { + if (error != NULL) + { + g_prefix_error (error, _("Failed to refresh access token (%s, %d): "), + g_quark_to_string ((*error)->domain), (*error)->code); + (*error)->code = is_authorization_error (*error) ? GOA_ERROR_NOT_AUTHORIZED : GOA_ERROR_FAILED; + (*error)->domain = GOA_ERROR; + } + goto out; + } + + /* Good. Now update the keyring with the refreshed credentials */ + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&builder, "{sv}", "access_token", g_variant_new_string (access_token)); + g_variant_builder_add (&builder, "{sv}", "access_token_secret", g_variant_new_string (access_token_secret)); + if (access_token_expires_in > 0) + g_variant_builder_add (&builder, "{sv}", "access_token_expires_at", + g_variant_new_int64 (duration_to_abs_usec (access_token_expires_in))); + if (session_handle != NULL) + g_variant_builder_add (&builder, "{sv}", "session_handle", g_variant_new_string (session_handle)); + if (session_handle_expires_in > 0) + g_variant_builder_add (&builder, "{sv}", "session_handle_expires_at", + g_variant_new_int64 (duration_to_abs_usec (session_handle_expires_in))); + if (password != NULL) + g_variant_builder_add (&builder, "{sv}", "password", g_variant_new_string (password)); + + /* TODO: run in worker thread */ + if (!goa_utils_store_credentials_for_object_sync (GOA_PROVIDER (provider), + object, + g_variant_builder_end (&builder), + cancellable, + error)) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + success = TRUE; + + out: + if (success) + { + ret = access_token; access_token = NULL; + g_assert (ret != NULL); + if (out_access_token_secret != NULL) + { + *out_access_token_secret = access_token_secret; access_token_secret = NULL; + } + if (out_access_token_expires_in != NULL) + *out_access_token_expires_in = access_token_expires_in; + } + g_free (access_token); + g_free (access_token_secret); + g_free (session_handle); + g_free (access_token_for_refresh); + g_free (access_token_secret_for_refresh); + g_free (session_handle_for_refresh); + g_free (password); + g_clear_pointer (&credentials, (GDestroyNotify) g_variant_unref); + + g_mutex_unlock (lock); + + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean on_handle_get_access_token (GoaOAuthBased *object, + GDBusMethodInvocation *invocation, + gpointer user_data); + +static gboolean +goa_oauth_provider_build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaOAuthBased *oauth_based; + gchar *identity; + + identity = NULL; + + oauth_based = goa_object_get_oauth_based (GOA_OBJECT (object)); + if (oauth_based != NULL) + goto out; + + oauth_based = goa_oauth_based_skeleton_new (); + goa_oauth_based_set_consumer_key (oauth_based, + goa_oauth_provider_get_consumer_key (GOA_OAUTH_PROVIDER (provider))); + goa_oauth_based_set_consumer_secret (oauth_based, + goa_oauth_provider_get_consumer_secret (GOA_OAUTH_PROVIDER (provider))); + /* Ensure D-Bus method invocations run in their own thread */ + g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (oauth_based), + G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); + goa_object_skeleton_set_oauth_based (object, oauth_based); + g_signal_connect (oauth_based, + "handle-get-access-token", + G_CALLBACK (on_handle_get_access_token), + NULL); + + out: + g_object_unref (oauth_based); + g_free (identity); + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_oauth_provider_ensure_credentials_sync (GoaProvider *_provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GoaOAuthProvider *provider = GOA_OAUTH_PROVIDER (_provider); + gboolean ret = FALSE; + gchar *access_token = NULL; + gchar *access_token_secret = NULL; + gint access_token_expires_in; + gchar *identity = NULL; + gboolean force_refresh = FALSE; + + again: + access_token = goa_oauth_provider_get_access_token_sync (provider, + object, + force_refresh, + &access_token_secret, + &access_token_expires_in, + cancellable, + error); + if (access_token == NULL) + goto out; + + identity = goa_oauth_provider_get_identity_sync (provider, + access_token, + access_token_secret, + NULL, /* out_presentation_identity */ + cancellable, + error); + if (identity == NULL) + { + /* OK, try again, with forcing the locally cached credentials to be refreshed */ + if (!force_refresh) + { + force_refresh = TRUE; + g_free (access_token); access_token = NULL; + g_free (access_token_secret); access_token_secret = NULL; + g_clear_error (error); + goto again; + } + else + { + goto out; + } + } + + /* TODO: maybe check with the identity we have */ + ret = TRUE; + if (out_expires_in != NULL) + *out_expires_in = access_token_expires_in; + + out: + g_free (identity); + g_free (access_token); + g_free (access_token_secret); + return ret; +} + + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_oauth_provider_init (GoaOAuthProvider *client) +{ +} + +static void +goa_oauth_provider_class_init (GoaOAuthProviderClass *klass) +{ + GoaProviderClass *provider_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->add_account = goa_oauth_provider_add_account; + provider_class->refresh_account = goa_oauth_provider_refresh_account; + provider_class->build_object = goa_oauth_provider_build_object; + provider_class->ensure_credentials_sync = goa_oauth_provider_ensure_credentials_sync; + + klass->build_authorization_uri = goa_oauth_provider_build_authorization_uri_default; + klass->get_use_mobile_browser = goa_oauth_provider_get_use_mobile_browser_default; + klass->is_deny_node = goa_oauth_provider_is_deny_node_default; + klass->is_password_node = goa_oauth_provider_is_password_node_default; + klass->get_request_uri_params = goa_oauth_provider_get_request_uri_params_default; + klass->add_account_key_values = goa_oauth_provider_add_account_key_values_default; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/* runs in a thread dedicated to handling @invocation */ +static gboolean +on_handle_get_access_token (GoaOAuthBased *interface, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaObject *object; + GoaAccount *account; + GoaProvider *provider; + GError *error; + const gchar *id; + const gchar *method_name; + const gchar *provider_type; + gchar *access_token = NULL; + gchar *access_token_secret = NULL; + gint access_token_expires_in; + + /* TODO: maybe log what app is requesting access */ + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (interface))); + account = goa_object_peek_account (object); + + id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + method_name = g_dbus_method_invocation_get_method_name (invocation); + g_debug ("Handling %s for account (%s, %s)", method_name, provider_type, id); + + provider = goa_provider_get_for_provider_type (provider_type); + + error = NULL; + access_token = goa_oauth_provider_get_access_token_sync (GOA_OAUTH_PROVIDER (provider), + object, + FALSE, /* force_refresh */ + &access_token_secret, + &access_token_expires_in, + NULL, /* GCancellable* */ + &error); + if (access_token == NULL) + { + g_dbus_method_invocation_take_error (invocation, error); + } + else + { + goa_oauth_based_complete_get_access_token (interface, + invocation, + access_token, + access_token_secret, + access_token_expires_in); + } + g_free (access_token); + g_free (access_token_secret); + g_object_unref (provider); + return TRUE; /* invocation was handled */ +} diff --git a/src/goabackend/goaoauthprovider.h b/src/goabackend/goaoauthprovider.h new file mode 100644 index 0000000..d4ffa3c --- /dev/null +++ b/src/goabackend/goaoauthprovider.h @@ -0,0 +1,143 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_OAUTH_PROVIDER_H__ +#define __GOA_OAUTH_PROVIDER_H__ + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_OAUTH_PROVIDER (goa_oauth_provider_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GoaOAuthProvider, goa_oauth_provider, GOA, OAUTH_PROVIDER, GoaProvider); + +/** + * GoaOAuthProvider: + * + * The #GoaOAuthProvider structure contains only private data and should + * only be accessed using the provided API. + */ + +/** + * GoaOAuthProviderClass: + * @parent_class: The parent class. + * @get_consumer_key: Virtual function for goa_oauth_provider_get_consumer_key(). + * @get_consumer_secret: Virtual function for goa_oauth_provider_get_consumer_secret(). + * @get_request_uri: Virtual function for goa_oauth_provider_get_request_uri(). + * @get_authorization_uri: Virtual function for goa_oauth_provider_get_authorization_uri(). + * @get_token_uri: Virtual function for goa_oauth_provider_get_token_uri(). + * @get_callback_uri: Virtual function for goa_oauth_provider_get_callback_uri(). + * @get_identity_sync: Virtual function for goa_oauth_provider_get_identity_sync(). + * @parse_request_token_error: Virtual function for goa_oauth_provider_parse_request_token_error(). + * @build_authorization_uri: Virtual function for goa_oauth_provider_build_authorization_uri(). + * @get_use_mobile_browser: Virtual function for goa_oauth_provider_get_use_mobile_browser(). + * @get_request_uri_params: Virtual function for goa_oauth_provider_get_request_uri_params(). + * @add_account_key_values: Virtual function for goa_oauth_provider_add_account_key_values(). + * @is_deny_node: Virtual function for goa_oauth_provider_is_deny_node(). + * @is_identity_node: Virtual function for goa_oauth_provider_is_identity_node(). + * @is_password_node: Virtual function for goa_oauth_provider_is_password_node(). + * + * Class structure for #GoaOAuthProvider. + */ +struct _GoaOAuthProviderClass +{ + GoaProviderClass parent_class; + + /* pure virtual */ + const gchar *(*get_consumer_key) (GoaOAuthProvider *provider); + const gchar *(*get_consumer_secret) (GoaOAuthProvider *provider); + const gchar *(*get_request_uri) (GoaOAuthProvider *provider); + const gchar *(*get_authorization_uri) (GoaOAuthProvider *provider); + const gchar *(*get_token_uri) (GoaOAuthProvider *provider); + const gchar *(*get_callback_uri) (GoaOAuthProvider *provider); + + gchar *(*get_identity_sync) (GoaOAuthProvider *provider, + const gchar *access_token, + const gchar *access_token_secret, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error); + + gchar *(*parse_request_token_error) (GoaOAuthProvider *provider, + RestProxyCall *call); + + /* virtual but with default implementation */ + gchar *(*build_authorization_uri) (GoaOAuthProvider *provider, + const gchar *authorization_uri, + const gchar *escaped_oauth_token); + gboolean (*get_use_mobile_browser) (GoaOAuthProvider *provider); + gchar **(*get_request_uri_params) (GoaOAuthProvider *provider); + void (*add_account_key_values) (GoaOAuthProvider *provider, + GVariantBuilder *builder); + + /* pure virtual */ + gboolean (*is_identity_node) (GoaOAuthProvider *provider, + WebKitDOMHTMLInputElement *element); + + /* virtual but with default implementation */ + gboolean (*is_deny_node) (GoaOAuthProvider *provider, + WebKitDOMNode *node); + gboolean (*is_password_node) (GoaOAuthProvider *provider, + WebKitDOMHTMLInputElement *element); +}; + +const gchar *goa_oauth_provider_get_consumer_key (GoaOAuthProvider *provider); +const gchar *goa_oauth_provider_get_consumer_secret (GoaOAuthProvider *provider); +const gchar *goa_oauth_provider_get_request_uri (GoaOAuthProvider *provider); +gchar **goa_oauth_provider_get_request_uri_params (GoaOAuthProvider *provider); +const gchar *goa_oauth_provider_get_authorization_uri (GoaOAuthProvider *provider); +const gchar *goa_oauth_provider_get_token_uri (GoaOAuthProvider *provider); +const gchar *goa_oauth_provider_get_callback_uri (GoaOAuthProvider *provider); +gchar *goa_oauth_provider_get_identity_sync (GoaOAuthProvider *provider, + const gchar *access_token, + const gchar *access_token_secret, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error); +gboolean goa_oauth_provider_is_deny_node (GoaOAuthProvider *provider, + WebKitDOMNode *node); +gboolean goa_oauth_provider_is_identity_node (GoaOAuthProvider *provider, + WebKitDOMHTMLInputElement *element); +gboolean goa_oauth_provider_is_password_node (GoaOAuthProvider *provider, + WebKitDOMHTMLInputElement *element); +gchar *goa_oauth_provider_parse_request_token_error (GoaOAuthProvider *provider, + RestProxyCall *call); +gchar *goa_oauth_provider_get_access_token_sync (GoaOAuthProvider *provider, + GoaObject *object, + gboolean force_refresh, + gchar **out_access_token_secret, + gint *out_access_token_expires_in, + GCancellable *cancellable, + GError **error); +gchar *goa_oauth_provider_build_authorization_uri (GoaOAuthProvider *provider, + const gchar *authorization_uri, + const gchar *escaped_oauth_token); +gboolean goa_oauth_provider_get_use_mobile_browser (GoaOAuthProvider *provider); +void goa_oauth_provider_add_account_key_values (GoaOAuthProvider *provider, + GVariantBuilder *builder); + +G_END_DECLS + +#endif /* __GOA_OAUTH_PROVIDER_H__ */ diff --git a/src/goabackend/goaobjectskeletonutils.c b/src/goabackend/goaobjectskeletonutils.c new file mode 100644 index 0000000..6004441 --- /dev/null +++ b/src/goabackend/goaobjectskeletonutils.c @@ -0,0 +1,279 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goaobjectskeletonutils.h" + +void +goa_object_skeleton_attach_calendar (GoaObjectSkeleton *object, + const gchar *uri, + gboolean calendar_enabled, + gboolean accept_ssl_errors) +{ + GoaCalendar *calendar; + + calendar = goa_object_get_calendar (GOA_OBJECT (object)); + if (calendar_enabled) + { + if (calendar == NULL) + { + calendar = goa_calendar_skeleton_new (); + g_object_set (G_OBJECT (calendar), + "accept-ssl-errors", accept_ssl_errors, + "uri", uri, + NULL); + goa_object_skeleton_set_calendar (object, calendar); + } + } + else + { + if (calendar != NULL) + goa_object_skeleton_set_calendar (object, NULL); + } + g_clear_object (&calendar); +} + +void +goa_object_skeleton_attach_files (GoaObjectSkeleton *object, + const gchar *uri, + gboolean files_enabled, + gboolean accept_ssl_errors) +{ + GoaFiles *files; + + files = goa_object_get_files (GOA_OBJECT (object)); + if (files_enabled) + { + if (files == NULL) + { + files = goa_files_skeleton_new (); + g_object_set (G_OBJECT (files), + "accept-ssl-errors", accept_ssl_errors, + "uri", uri, + NULL); + goa_object_skeleton_set_files (object, files); + } + } + else + { + if (files != NULL) + goa_object_skeleton_set_files (object, NULL); + } + g_clear_object (&files); +} + +void +goa_object_skeleton_attach_contacts (GoaObjectSkeleton *object, + const gchar *uri, + gboolean contacts_enabled, + gboolean accept_ssl_errors) +{ + GoaContacts *contacts; + + contacts = goa_object_get_contacts (GOA_OBJECT (object)); + if (contacts_enabled) + { + if (contacts == NULL) + { + contacts = goa_contacts_skeleton_new (); + g_object_set (G_OBJECT (contacts), + "accept-ssl-errors", accept_ssl_errors, + "uri", uri, + NULL); + goa_object_skeleton_set_contacts (object, contacts); + } + } + else + { + if (contacts != NULL) + goa_object_skeleton_set_contacts (object, NULL); + } + g_clear_object (&contacts); +} + +void +goa_object_skeleton_attach_documents (GoaObjectSkeleton *object, + gboolean documents_enabled) +{ + GoaDocuments *documents; + + documents = goa_object_get_documents (GOA_OBJECT (object)); + if (documents_enabled) + { + if (documents == NULL) + { + documents = goa_documents_skeleton_new (); + goa_object_skeleton_set_documents (object, documents); + } + } + else + { + if (documents != NULL) + goa_object_skeleton_set_documents (object, NULL); + } + g_clear_object (&documents); +} + +void +goa_object_skeleton_attach_chat (GoaObjectSkeleton *object, + gboolean chat_enabled) +{ +#ifdef GOA_TELEPATHY_ENABLED + GoaChat *chat; + + chat = goa_object_get_chat (GOA_OBJECT (object)); + if (chat_enabled) + { + if (chat == NULL) + { + chat = goa_chat_skeleton_new (); + goa_object_skeleton_set_chat (object, chat); + } + } + else + { + if (chat != NULL) + goa_object_skeleton_set_chat (object, NULL); + } + g_clear_object (&chat); +#else + g_debug("Compiled without Telepathy support, chat is disabled"); + goa_object_skeleton_set_chat (object, NULL); +#endif +} + +void +goa_object_skeleton_attach_photos (GoaObjectSkeleton *object, + gboolean photos_enabled) +{ + GoaPhotos *photos; + + photos = goa_object_get_photos (GOA_OBJECT (object)); + + if (photos_enabled) + { + if (photos == NULL) + { + photos = goa_photos_skeleton_new (); + goa_object_skeleton_set_photos (object, photos); + } + } + else + { + if (photos != NULL) + goa_object_skeleton_set_photos (object, NULL); + } + g_clear_object (&photos); +} + +void +goa_object_skeleton_attach_printers (GoaObjectSkeleton *object, + gboolean printers_enabled) +{ + GoaPrinters *printers; + + printers = goa_object_get_printers (GOA_OBJECT (object)); + + if (printers_enabled) + { + if (printers == NULL) + { + printers = goa_printers_skeleton_new (); + goa_object_skeleton_set_printers (object, printers); + } + } + else + { + if (printers != NULL) + goa_object_skeleton_set_printers (object, NULL); + } + g_clear_object (&printers); +} + +void +goa_object_skeleton_attach_maps (GoaObjectSkeleton *object, + gboolean maps_enabled) +{ + GoaMaps *maps; + + maps = goa_object_get_maps (GOA_OBJECT (object)); + + if (maps_enabled) + { + if (maps == NULL) + { + maps = goa_maps_skeleton_new (); + goa_object_skeleton_set_maps (object, maps); + } + } + else + { + if (maps != NULL) + goa_object_skeleton_set_maps (object, NULL); + } + g_clear_object (&maps); +} + +void +goa_object_skeleton_attach_todo (GoaObjectSkeleton *object, + gboolean todo_enabled) +{ + GoaTodo *todo = NULL; + + todo = goa_object_get_todo (GOA_OBJECT (object)); + if (todo_enabled) + { + if (todo == NULL) + { + todo = goa_todo_skeleton_new (); + goa_object_skeleton_set_todo (object, todo); + } + } + else + { + if (todo != NULL) + goa_object_skeleton_set_todo (object, NULL); + } + g_clear_object (&todo); +} + +void +goa_object_skeleton_attach_read_later (GoaObjectSkeleton *object, + gboolean read_later_enabled) +{ + GoaReadLater *readlater = NULL; + + readlater = goa_object_get_read_later (GOA_OBJECT (object)); + if (read_later_enabled) + { + if (readlater == NULL) + { + readlater = goa_read_later_skeleton_new (); + goa_object_skeleton_set_read_later (object, readlater); + } + } + else + { + if (readlater != NULL) + goa_object_skeleton_set_read_later (object, NULL); + } + g_clear_object (&readlater); +} diff --git a/src/goabackend/goaobjectskeletonutils.h b/src/goabackend/goaobjectskeletonutils.h new file mode 100644 index 0000000..2ea2ce9 --- /dev/null +++ b/src/goabackend/goaobjectskeletonutils.h @@ -0,0 +1,69 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_OBJECT_SKELETON_UTILS_H__ +#define __GOA_OBJECT_SKELETON_UTILS_H__ + +#include +#include + +G_BEGIN_DECLS + +void goa_object_skeleton_attach_calendar (GoaObjectSkeleton *object, + const gchar *uri, + gboolean calendar_enabled, + gboolean accept_ssl_errors); + +void goa_object_skeleton_attach_chat (GoaObjectSkeleton *object, + gboolean chat_enabled); + +void goa_object_skeleton_attach_contacts (GoaObjectSkeleton *object, + const gchar *uri, + gboolean contacts_enabled, + gboolean accept_ssl_errors); + +void goa_object_skeleton_attach_documents (GoaObjectSkeleton *object, + gboolean documents_enabled); + +void goa_object_skeleton_attach_files (GoaObjectSkeleton *object, + const gchar *uri, + gboolean files_enabled, + gboolean accept_ssl_errors); + +void goa_object_skeleton_attach_maps (GoaObjectSkeleton *object, + gboolean maps_enabled); + +void goa_object_skeleton_attach_photos (GoaObjectSkeleton *object, + gboolean photos_enabled); + +void goa_object_skeleton_attach_printers (GoaObjectSkeleton *object, + gboolean printers_enabled); + +void goa_object_skeleton_attach_todo (GoaObjectSkeleton *object, + gboolean todo_enabled); + +void goa_object_skeleton_attach_read_later (GoaObjectSkeleton *object, + gboolean read_later_enabled); + +G_END_DECLS + +#endif /* __GOA_OBJECT_SKELETON_UTILS_H__ */ diff --git a/src/goabackend/goaowncloudprovider.c b/src/goabackend/goaowncloudprovider.c new file mode 100644 index 0000000..3c81986 --- /dev/null +++ b/src/goabackend/goaowncloudprovider.c @@ -0,0 +1,1070 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include + +#include + +#include "goahttpclient.h" +#include "goaprovider.h" +#include "goaowncloudprovider.h" +#include "goaobjectskeletonutils.h" +#include "goautils.h" + +struct _GoaOwncloudProvider +{ + GoaProvider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaOwncloudProvider, goa_owncloud_provider, GOA_TYPE_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_OWNCLOUD_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar *CALDAV_ENDPOINT = "remote.php/caldav/"; +static const gchar *CARDDAV_ENDPOINT = "remote.php/carddav/"; +static const gchar *WEBDAV_ENDPOINT = "remote.php/webdav/"; + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_OWNCLOUD_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, GoaObject *object) +{ + return g_strdup(_("Nextcloud")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_CALENDAR | + GOA_PROVIDER_FEATURE_CONTACTS | + GOA_PROVIDER_FEATURE_DOCUMENTS | + GOA_PROVIDER_FEATURE_FILES; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static char * +uri_to_string_with_path (SoupURI *soup_uri, const gchar *path) +{ + gchar *uri_string; + gchar *uri_tmp; + + if (soup_uri == NULL) + return NULL; + + uri_tmp = soup_uri_to_string (soup_uri, FALSE); + uri_string = g_strconcat (uri_tmp, path, NULL); + g_free (uri_tmp); + + return uri_string; +} + +static char *get_webdav_uri (SoupURI *soup_uri) +{ + SoupURI *uri_tmp; + gchar *uri_webdav; + const gchar *scheme; + guint port; + + if (soup_uri == NULL) + return NULL; + + scheme = soup_uri_get_scheme (soup_uri); + port = soup_uri_get_port (soup_uri); + uri_tmp = soup_uri_copy (soup_uri); + + if (g_strcmp0 (scheme, SOUP_URI_SCHEME_HTTPS) == 0) + soup_uri_set_scheme (uri_tmp, "davs"); + else + soup_uri_set_scheme (uri_tmp, "dav"); + + if (!soup_uri_uses_default_port (soup_uri)) + soup_uri_set_port (uri_tmp, port); + + uri_webdav = uri_to_string_with_path (uri_tmp, WEBDAV_ENDPOINT); + soup_uri_free (uri_tmp); + + return uri_webdav; +} + +static gboolean on_handle_get_password (GoaPasswordBased *interface, + GDBusMethodInvocation *invocation, + const gchar *id, + gpointer user_data); + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + gchar *uri_caldav; + gchar *uri_carddav; + gchar *uri_webdav; + GoaPasswordBased *password_based = NULL; + SoupURI *uri = NULL; + gboolean accept_ssl_errors; + gboolean calendar_enabled; + gboolean contacts_enabled; + gboolean documents_enabled; + gboolean files_enabled; + gboolean ret = FALSE; + const gchar *identity; + gchar *uri_string = NULL; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_owncloud_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + password_based = goa_object_get_password_based (GOA_OBJECT (object)); + if (password_based == NULL) + { + password_based = goa_password_based_skeleton_new (); + /* Ensure D-Bus method invocations run in their own thread */ + g_dbus_interface_skeleton_set_flags (G_DBUS_INTERFACE_SKELETON (password_based), + G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD); + goa_object_skeleton_set_password_based (object, password_based); + g_signal_connect (password_based, + "handle-get-password", + G_CALLBACK (on_handle_get_password), + NULL); + } + + account = goa_object_get_account (GOA_OBJECT (object)); + identity = goa_account_get_identity (account); + uri_string = g_key_file_get_string (key_file, group, "Uri", NULL); + uri = soup_uri_new (uri_string); + if (uri != NULL) + soup_uri_set_user (uri, identity); + + accept_ssl_errors = g_key_file_get_boolean (key_file, group, "AcceptSslErrors", NULL); + + /* Calendar */ + calendar_enabled = g_key_file_get_boolean (key_file, group, "CalendarEnabled", NULL); + uri_caldav = uri_to_string_with_path (uri, CALDAV_ENDPOINT); + goa_object_skeleton_attach_calendar (object, uri_caldav, calendar_enabled, accept_ssl_errors); + g_free (uri_caldav); + + /* Contacts */ + contacts_enabled = g_key_file_get_boolean (key_file, group, "ContactsEnabled", NULL); + uri_carddav = uri_to_string_with_path (uri, CARDDAV_ENDPOINT); + goa_object_skeleton_attach_contacts (object, uri_carddav, contacts_enabled, accept_ssl_errors); + g_free (uri_carddav); + + /* Documents */ + documents_enabled = g_key_file_get_boolean (key_file, group, "DocumentsEnabled", NULL); + goa_object_skeleton_attach_documents (object, documents_enabled); + + /* Files */ + files_enabled = g_key_file_get_boolean (key_file, group, "FilesEnabled", NULL); + uri_webdav = get_webdav_uri (uri); + goa_object_skeleton_attach_files (object, uri_webdav, files_enabled, accept_ssl_errors); + g_free (uri_webdav); + + if (just_added) + { + goa_account_set_calendar_disabled (account, !calendar_enabled); + goa_account_set_contacts_disabled (account, !contacts_enabled); + goa_account_set_documents_disabled (account, !documents_enabled); + goa_account_set_files_disabled (account, !files_enabled); + + g_signal_connect (account, + "notify::calendar-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "CalendarEnabled"); + g_signal_connect (account, + "notify::contacts-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "ContactsEnabled"); + g_signal_connect (account, + "notify::documents-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "DocumentsEnabled"); + g_signal_connect (account, + "notify::files-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "FilesEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&password_based); + g_clear_pointer (&uri, (GDestroyNotify *) soup_uri_free); + g_free (uri_string); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +ensure_credentials_sync (GoaProvider *provider, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GoaHttpClient *http_client = NULL; + gboolean accept_ssl_errors; + gboolean ret = FALSE; + gchar *username = NULL; + gchar *password = NULL; + gchar *uri = NULL; + gchar *uri_webdav = NULL; + + if (!goa_utils_get_credentials (provider, object, "password", &username, &password, cancellable, error)) + { + if (error != NULL) + { + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + accept_ssl_errors = goa_util_lookup_keyfile_boolean (object, "AcceptSslErrors"); + uri = goa_util_lookup_keyfile_string (object, "Uri"); + uri_webdav = g_strconcat (uri, WEBDAV_ENDPOINT, NULL); + + http_client = goa_http_client_new (); + ret = goa_http_client_check_sync (http_client, + uri_webdav, + username, + password, + accept_ssl_errors, + cancellable, + error); + if (!ret) + { + if (error != NULL) + { + g_prefix_error (error, + /* Translators: the first %s is the username + * (eg., debarshi.ray@gmail.com or rishi), and the + * (%s, %d) is the error domain and code. + */ + _("Invalid password with username “%s” (%s, %d): "), + username, + g_quark_to_string ((*error)->domain), + (*error)->code); + (*error)->domain = GOA_ERROR; + (*error)->code = GOA_ERROR_NOT_AUTHORIZED; + } + goto out; + } + + if (out_expires_in != NULL) + *out_expires_in = 0; + + out: + g_clear_object (&http_client); + g_free (username); + g_free (password); + g_free (uri); + g_free (uri_webdav); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_entry (GtkWidget *grid, + gint row, + const gchar *text, + GtkWidget **out_entry) +{ + GtkStyleContext *context; + GtkWidget *label; + GtkWidget *entry; + + label = gtk_label_new_with_mnemonic (text); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); + + entry = gtk_entry_new (); + gtk_widget_set_hexpand (entry, TRUE); + gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); + gtk_grid_attach (GTK_GRID (grid), entry, 1, row, 3, 1); + + gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); + if (out_entry != NULL) + *out_entry = entry; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GCancellable *cancellable; + + GtkDialog *dialog; + GMainLoop *loop; + + GtkWidget *cluebar; + GtkWidget *cluebar_label; + GtkWidget *connect_button; + GtkWidget *progress_grid; + + GtkWidget *uri; + GtkWidget *username; + GtkWidget *password; + + gchar *account_object_path; + + GError *error; +} AddAccountData; + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +normalize_uri (const gchar *address, gchar **server) +{ + SoupURI *uri = NULL; + const gchar *path; + gchar *ret = NULL; + gchar *scheme = NULL; + gchar *uri_string = NULL; + guint std_port = 0; + + scheme = g_uri_parse_scheme (address); + + if (g_strcmp0 (scheme, "http") == 0 + || g_strcmp0 (scheme, "dav") == 0) /* dav(s) is used by DNS-SD + and gvfs */ + { + uri_string = g_strdup (address); + std_port = 80; + } + else if (g_strcmp0 (scheme, "https") == 0 + || g_strcmp0 (scheme, "davs") == 0) + { + uri_string = g_strdup (address); + std_port = 443; + } + else if (scheme == NULL) + { + uri_string = g_strconcat ("https://", address, NULL); + std_port = 443; + } + else + goto out; + + uri = soup_uri_new (uri_string); + if (uri == NULL) + goto out; + + if (g_strcmp0 (scheme, "dav") == 0) + soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTP); + else if (g_strcmp0 (scheme, "davs") == 0) + soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTPS); + + path = soup_uri_get_path (uri); + if (!g_str_has_suffix (path, "/")) + { + gchar *new_path; + + new_path = g_strconcat (path, "/", NULL); + soup_uri_set_path (uri, new_path); + path = soup_uri_get_path (uri); + g_free (new_path); + } + + if (server != NULL) + { + gchar *port_string; + gchar *pretty_path; + guint port; + + port = soup_uri_get_port (uri); + port_string = g_strdup_printf (":%u", port); + + pretty_path = g_strdup (path); + pretty_path[strlen(pretty_path) - 1] = '\0'; + + *server = g_strconcat (soup_uri_get_host (uri), (port == std_port) ? "" : port_string, pretty_path, NULL); + + g_free (port_string); + g_free (pretty_path); + } + + ret = soup_uri_to_string (uri, FALSE); + + out: + g_clear_pointer (&uri, (GDestroyNotify *) soup_uri_free); + g_free (scheme); + g_free (uri_string); + return ret; +} + +static void +on_uri_username_or_password_changed (GtkEditable *editable, gpointer user_data) +{ + AddAccountData *data = user_data; + gboolean can_add = FALSE; + const gchar *address; + gchar *uri = NULL; + + address = gtk_entry_get_text (GTK_ENTRY (data->uri)); + uri = normalize_uri (address, NULL); + if (uri == NULL) + goto out; + + can_add = gtk_entry_get_text_length (GTK_ENTRY (data->username)) != 0 + && gtk_entry_get_text_length (GTK_ENTRY (data->password)) != 0; + + out: + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, can_add); + g_free (uri); +} + +static void +show_progress_ui (GtkContainer *container, gboolean progress) +{ + GList *children; + GList *l; + + children = gtk_container_get_children (container); + for (l = children; l != NULL; l = l->next) + { + GtkWidget *widget = GTK_WIDGET (l->data); + gdouble opacity; + + opacity = progress ? 1.0 : 0.0; + gtk_widget_set_opacity (widget, opacity); + } + + g_list_free (children); +} + +static void +create_account_details_ui (GoaProvider *provider, + GtkDialog *dialog, + GtkBox *vbox, + gboolean new_account, + gboolean is_template, + AddAccountData *data) +{ + GtkWidget *grid0; + GtkWidget *grid1; + GtkWidget *label; + GtkWidget *spinner; + gint row; + gint width; + + goa_utils_set_dialog_title (provider, dialog, new_account); + + grid0 = gtk_grid_new (); + gtk_container_set_border_width (GTK_CONTAINER (grid0), 5); + gtk_widget_set_margin_bottom (grid0, 6); + gtk_orientable_set_orientation (GTK_ORIENTABLE (grid0), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_row_spacing (GTK_GRID (grid0), 12); + gtk_container_add (GTK_CONTAINER (vbox), grid0); + + data->cluebar = gtk_info_bar_new (); + gtk_info_bar_set_message_type (GTK_INFO_BAR (data->cluebar), GTK_MESSAGE_ERROR); + gtk_widget_set_hexpand (data->cluebar, TRUE); + gtk_widget_set_no_show_all (data->cluebar, TRUE); + gtk_container_add (GTK_CONTAINER (grid0), data->cluebar); + + data->cluebar_label = gtk_label_new (""); + gtk_label_set_line_wrap (GTK_LABEL (data->cluebar_label), TRUE); + gtk_container_add (GTK_CONTAINER (gtk_info_bar_get_content_area (GTK_INFO_BAR (data->cluebar))), + data->cluebar_label); + + grid1 = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid1), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid1), 12); + gtk_container_add (GTK_CONTAINER (grid0), grid1); + + row = 0; + add_entry (grid1, row++, _("_Server"), &data->uri); + add_entry (grid1, row++, _("User_name"), &data->username); + add_entry (grid1, row++, _("_Password"), &data->password); + gtk_entry_set_visibility (GTK_ENTRY (data->password), FALSE); + + if (new_account) + gtk_widget_grab_focus (data->uri); + else if (is_template) + gtk_widget_grab_focus (data->username); + else + gtk_widget_grab_focus (data->password); + + g_signal_connect (data->uri, "changed", G_CALLBACK (on_uri_username_or_password_changed), data); + g_signal_connect (data->username, "changed", G_CALLBACK (on_uri_username_or_password_changed), data); + g_signal_connect (data->password, "changed", G_CALLBACK (on_uri_username_or_password_changed), data); + + gtk_dialog_add_button (data->dialog, _("_Cancel"), GTK_RESPONSE_CANCEL); + data->connect_button = gtk_dialog_add_button (data->dialog, _("C_onnect"), GTK_RESPONSE_OK); + gtk_dialog_set_default_response (data->dialog, GTK_RESPONSE_OK); + gtk_dialog_set_response_sensitive (data->dialog, GTK_RESPONSE_OK, FALSE); + + data->progress_grid = gtk_grid_new (); + gtk_orientable_set_orientation (GTK_ORIENTABLE (data->progress_grid), GTK_ORIENTATION_HORIZONTAL); + gtk_grid_set_column_spacing (GTK_GRID (data->progress_grid), 3); + gtk_container_add (GTK_CONTAINER (grid0), data->progress_grid); + + spinner = gtk_spinner_new (); + gtk_widget_set_opacity (spinner, 0.0); + gtk_widget_set_size_request (spinner, 20, 20); + gtk_spinner_start (GTK_SPINNER (spinner)); + gtk_container_add (GTK_CONTAINER (data->progress_grid), spinner); + + label = gtk_label_new (_("Connecting…")); + gtk_widget_set_opacity (label, 0.0); + gtk_container_add (GTK_CONTAINER (data->progress_grid), label); + + if (new_account) + { + gtk_window_get_size (GTK_WINDOW (data->dialog), &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), width, -1); + } + else + { + GtkWindow *parent; + + /* Keep in sync with GoaPanelAddAccountDialog in + * gnome-control-center. + */ + parent = gtk_window_get_transient_for (GTK_WINDOW (data->dialog)); + if (parent != NULL) + { + gtk_window_get_size (parent, &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (data->dialog), (gint) (0.5 * width), -1); + } + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_cb (GoaManager *manager, GAsyncResult *res, gpointer user_data) +{ + AddAccountData *data = user_data; + goa_manager_call_add_account_finish (manager, + &data->account_object_path, + res, + &data->error); + g_main_loop_quit (data->loop); +} + +static void +check_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) +{ + GoaHttpClient *client = GOA_HTTP_CLIENT (source_object); + AddAccountData *data = user_data; + + goa_http_client_check_finish (client, res, &data->error); + g_main_loop_quit (data->loop); + gtk_widget_set_sensitive (data->connect_button, TRUE); + show_progress_ui (GTK_CONTAINER (data->progress_grid), FALSE); +} + +static void +dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer user_data) +{ + AddAccountData *data = user_data; + + if (response_id == GTK_RESPONSE_CANCEL || response_id == GTK_RESPONSE_DELETE_EVENT) + g_cancellable_cancel (data->cancellable); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaObject * +add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + AddAccountData data; + GVariantBuilder credentials; + GVariantBuilder details; + GoaHttpClient *http_client = NULL; + GoaObject *ret = NULL; + gboolean accept_ssl_errors = FALSE; + const gchar *uri_text; + const gchar *password; + const gchar *username; + const gchar *provider_type; + gchar *presentation_identity = NULL; + gchar *server = NULL; + gchar *uri = NULL; + gchar *uri_webdav; + gint response; + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = dialog; + data.error = NULL; + + create_account_details_ui (provider, dialog, vbox, TRUE, FALSE, &data); + gtk_widget_show_all (GTK_WIDGET (vbox)); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + http_client = goa_http_client_new (); + + http_again: + response = gtk_dialog_run (dialog); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + uri_text = gtk_entry_get_text (GTK_ENTRY (data.uri)); + username = gtk_entry_get_text (GTK_ENTRY (data.username)); + password = gtk_entry_get_text (GTK_ENTRY (data.password)); + + uri = normalize_uri (uri_text, &server); + presentation_identity = g_strconcat (username, "@", server, NULL); + + /* See if there's already an account of this type with the + * given identity + */ + provider_type = goa_provider_get_provider_type (provider); + if (!goa_utils_check_duplicate (client, + username, + presentation_identity, + provider_type, + (GoaPeekInterfaceFunc) goa_object_peek_password_based, + &data.error)) + goto out; + + uri_webdav = g_strconcat (uri, WEBDAV_ENDPOINT, NULL); + + g_clear_object (&data.cancellable); + data.cancellable = g_cancellable_new (); + + goa_http_client_check (http_client, + uri_webdav, + username, + password, + accept_ssl_errors, + data.cancellable, + check_cb, + &data); + g_free (uri_webdav); + + gtk_widget_set_sensitive (data.connect_button, FALSE); + show_progress_ui (GTK_CONTAINER (data.progress_grid), TRUE); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + if (data.error->code == GOA_ERROR_SSL) + { + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Ignore")); + accept_ssl_errors = TRUE; + } + else + { + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Try Again")); + accept_ssl_errors = FALSE; + } + + markup = g_strdup_printf ("%s:\n%s", + _("Error connecting to ownCloud server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + + g_clear_pointer (&presentation_identity, g_free); + g_clear_pointer (&server, g_free); + g_clear_pointer (&uri, g_free); + goto http_again; + } + + gtk_widget_hide (GTK_WIDGET (dialog)); + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&credentials, "{sv}", "password", g_variant_new_string (password)); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "CalendarEnabled", "true"); + g_variant_builder_add (&details, "{ss}", "ContactsEnabled", "true"); + g_variant_builder_add (&details, "{ss}", "DocumentsEnabled", "true"); + g_variant_builder_add (&details, "{ss}", "FilesEnabled", "true"); + g_variant_builder_add (&details, "{ss}", "Uri", uri); + g_variant_builder_add (&details, "{ss}", "AcceptSslErrors", (accept_ssl_errors) ? "true" : "false"); + + /* OK, everything is dandy, add the account */ + /* we want the GoaClient to update before this method returns (so it + * can create a proxy for the new object) so run the mainloop while + * waiting for this to complete + */ + goa_manager_call_add_account (goa_client_get_manager (client), + goa_provider_get_provider_type (provider), + username, + presentation_identity, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + &data); + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + + ret = GOA_OBJECT (g_dbus_object_manager_get_object (goa_client_get_object_manager (client), + data.account_object_path)); + + out: + /* We might have an object even when data.error is set. + * eg., if we failed to store the credentials in the keyring. + */ + if (data.error != NULL) + g_propagate_error (error, data.error); + else + g_assert (ret != NULL); + + g_signal_handlers_disconnect_by_func (dialog, dialog_response_cb, &data); + + g_free (presentation_identity); + g_free (server); + g_free (uri); + g_free (data.account_object_path); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&data.cancellable); + g_clear_object (&http_client); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + AddAccountData data; + GVariantBuilder credentials; + GoaAccount *account; + GoaHttpClient *http_client = NULL; + GtkWidget *dialog; + GtkWidget *vbox; + gboolean accept_ssl_errors; + gboolean is_template = FALSE; + gboolean ret = FALSE; + const gchar *password; + const gchar *username; + gchar *uri = NULL; + gchar *uri_webdav = NULL; + gint response; + + g_return_val_if_fail (GOA_IS_OWNCLOUD_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + dialog = gtk_dialog_new_with_buttons (NULL, + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + NULL, + NULL); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + + vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_set_spacing (GTK_BOX (vbox), 12); + + memset (&data, 0, sizeof (AddAccountData)); + data.cancellable = g_cancellable_new (); + data.loop = g_main_loop_new (NULL, FALSE); + data.dialog = GTK_DIALOG (dialog); + data.error = NULL; + + account = goa_object_peek_account (object); + username = goa_account_get_identity (account); + if (username == NULL || username[0] == '\0') + is_template = TRUE; + + create_account_details_ui (provider, GTK_DIALOG (dialog), GTK_BOX (vbox), FALSE, is_template, &data); + + accept_ssl_errors = goa_util_lookup_keyfile_boolean (object, "AcceptSslErrors"); + uri = goa_util_lookup_keyfile_string (object, "Uri"); + gtk_entry_set_text (GTK_ENTRY (data.uri), uri); + gtk_editable_set_editable (GTK_EDITABLE (data.uri), FALSE); + + if (!is_template) + { + gtk_entry_set_text (GTK_ENTRY (data.username), username); + gtk_editable_set_editable (GTK_EDITABLE (data.username), FALSE); + } + + gtk_widget_show_all (dialog); + g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), &data); + + http_client = goa_http_client_new (); + uri_webdav = g_strconcat (uri, WEBDAV_ENDPOINT, NULL); + + http_again: + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + if (is_template) + username = gtk_entry_get_text (GTK_ENTRY (data.username)); + + password = gtk_entry_get_text (GTK_ENTRY (data.password)); + + g_clear_object (&data.cancellable); + data.cancellable = g_cancellable_new (); + + goa_http_client_check (http_client, + uri_webdav, + username, + password, + accept_ssl_errors, + data.cancellable, + check_cb, + &data); + gtk_widget_set_sensitive (data.connect_button, FALSE); + show_progress_ui (GTK_CONTAINER (data.progress_grid), TRUE); + g_main_loop_run (data.loop); + + if (g_cancellable_is_cancelled (data.cancellable)) + { + g_prefix_error (&data.error, + _("Dialog was dismissed (%s, %d): "), + g_quark_to_string (data.error->domain), + data.error->code); + data.error->domain = GOA_ERROR; + data.error->code = GOA_ERROR_DIALOG_DISMISSED; + goto out; + } + else if (data.error != NULL) + { + gchar *markup; + + markup = g_strdup_printf ("%s:\n%s", + _("Error connecting to ownCloud server"), + data.error->message); + g_clear_error (&data.error); + + gtk_label_set_markup (GTK_LABEL (data.cluebar_label), markup); + g_free (markup); + + gtk_button_set_label (GTK_BUTTON (data.connect_button), _("_Try Again")); + gtk_widget_set_no_show_all (data.cluebar, FALSE); + gtk_widget_show_all (data.cluebar); + goto http_again; + } + + /* TODO: run in worker thread */ + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&credentials, "{sv}", "password", g_variant_new_string (password)); + + if (is_template) + { + GVariantBuilder details; + GoaManager *manager; + const gchar *id; + const gchar *provider_type; + gchar *dummy = NULL; + gchar *presentation_identity = NULL; + gchar *server = NULL; + + manager = goa_client_get_manager (client); + id = goa_account_get_id (account); + provider_type = goa_provider_get_provider_type (provider); + + dummy = normalize_uri (uri, &server); + presentation_identity = g_strconcat (username, "@", server, NULL); + g_free (dummy); + g_free (server); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "Id", id); + + goa_manager_call_add_account (manager, + provider_type, + username, + presentation_identity, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) add_account_cb, + &data); + g_free (presentation_identity); + + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + } + else + { + if (!goa_utils_store_credentials_for_object_sync (provider, + object, + g_variant_builder_end (&credentials), + NULL, /* GCancellable */ + &data.error)) + goto out; + } + + goa_account_call_ensure_credentials (account, + NULL, /* GCancellable */ + NULL, NULL); /* callback, user_data */ + + ret = TRUE; + + out: + if (data.error != NULL) + g_propagate_error (error, data.error); + + gtk_widget_destroy (dialog); + g_free (uri); + g_free (uri_webdav); + g_free (data.account_object_path); + g_clear_pointer (&data.loop, (GDestroyNotify) g_main_loop_unref); + g_clear_object (&data.cancellable); + g_clear_object (&http_client); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_owncloud_provider_init (GoaOwncloudProvider *self) +{ +} + +static void +goa_owncloud_provider_class_init (GoaOwncloudProviderClass *klass) +{ + GoaProviderClass *provider_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->add_account = add_account; + provider_class->refresh_account = refresh_account; + provider_class->build_object = build_object; + provider_class->ensure_credentials_sync = ensure_credentials_sync; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +on_handle_get_password (GoaPasswordBased *interface, + GDBusMethodInvocation *invocation, + const gchar *id, /* unused */ + gpointer user_data) +{ + GoaObject *object; + GoaAccount *account; + GoaProvider *provider; + GError *error; + const gchar *account_id; + const gchar *method_name; + const gchar *provider_type; + gchar *password = NULL; + + /* TODO: maybe log what app is requesting access */ + + object = GOA_OBJECT (g_dbus_interface_get_object (G_DBUS_INTERFACE (interface))); + account = goa_object_peek_account (object); + account_id = goa_account_get_id (account); + provider_type = goa_account_get_provider_type (account); + method_name = g_dbus_method_invocation_get_method_name (invocation); + g_debug ("Handling %s for account (%s, %s)", method_name, provider_type, account_id); + + provider = goa_provider_get_for_provider_type (provider_type); + + error = NULL; + if (!goa_utils_get_credentials (provider, object, "password", NULL, &password, NULL, &error)) + { + g_dbus_method_invocation_take_error (invocation, error); + goto out; + } + + goa_password_based_complete_get_password (interface, invocation, password); + + out: + g_free (password); + g_object_unref (provider); + return TRUE; /* invocation was handled */ +} diff --git a/src/goabackend/goaowncloudprovider.h b/src/goabackend/goaowncloudprovider.h new file mode 100644 index 0000000..87ec676 --- /dev/null +++ b/src/goabackend/goaowncloudprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_OWNCLOUD_PROVIDER_H__ +#define __GOA_OWNCLOUD_PROVIDER_H__ + +#include + +#include "goaprovider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_OWNCLOUD_PROVIDER (goa_owncloud_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaOwncloudProvider, goa_owncloud_provider, GOA, OWNCLOUD_PROVIDER, GoaProvider); + +G_END_DECLS + +#endif /* __GOA_OWNCLOUD_PROVIDER_H__ */ diff --git a/src/goabackend/goapocketprovider.c b/src/goabackend/goapocketprovider.c new file mode 100644 index 0000000..38f9863 --- /dev/null +++ b/src/goabackend/goapocketprovider.c @@ -0,0 +1,445 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaoauth2provider.h" +#include "goaoauth2provider-priv.h" +#include "goapocketprovider.h" +#include "goaobjectskeletonutils.h" +#include "goarestproxy.h" + +#define V3_OAUTH_AUTHORIZE_URL "https://getpocket.com/v3/oauth/authorize" + +struct _GoaPocketProvider +{ + GoaOAuth2Provider parent_instance; + + gchar *authorization_uri; + + /* request token as gathered from Step 2: + * http://getpocket.com/developer/docs/authentication */ + gchar *code; + gchar *identity; +}; + +typedef struct _GoaPocketProviderClass GoaPocketProviderClass; + +struct _GoaPocketProviderClass +{ + GoaOAuth2ProviderClass parent_class; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaPocketProvider, goa_pocket_provider, GOA_TYPE_OAUTH2_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_POCKET_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_POCKET_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Pocket")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_READ_LATER; +} + +static const gchar * +get_request_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://getpocket.com/v3/oauth/request"; +} + +static const gchar * +get_authorization_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://getpocket.com/auth/authorize"; +} + +static const gchar * +get_token_uri (GoaOAuth2Provider *oauth2_provider) +{ + return NULL; +} + +static const gchar * +get_redirect_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://localhost"; +} + +static const gchar * +get_client_id (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_POCKET_CLIENT_ID; +} + +static const gchar * +get_client_secret (GoaOAuth2Provider *oauth2_provider) +{ + return NULL; +} + +static gchar * +build_authorization_uri (GoaOAuth2Provider *oauth2_provider, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope) +{ + GoaPocketProvider *self = GOA_POCKET_PROVIDER (oauth2_provider); + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + const gchar *payload; + gchar *code, *url = NULL; + GError *error = NULL; + GHashTable *hash; + + if (self->authorization_uri != NULL) + goto end; + + proxy = goa_rest_proxy_new (get_request_uri (oauth2_provider), FALSE); + call = rest_proxy_new_call (proxy); + + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_add_header (call, "Content-Type", "application/x-www-form-urlencoded"); + rest_proxy_call_add_param (call, "consumer_key", GOA_POCKET_CLIENT_ID); + rest_proxy_call_add_param (call, "redirect_uri", get_redirect_uri (oauth2_provider)); + + if (!rest_proxy_call_sync (call, &error)) + { + g_debug ("Call to %s failed: %s", get_redirect_uri (oauth2_provider), error->message); + g_error_free (error); + goto out; + } + + payload = rest_proxy_call_get_payload (call); + hash = soup_form_decode (payload); + code = g_strdup (g_hash_table_lookup (hash, "code")); + g_hash_table_unref (hash); + + if (!code) + { + g_debug ("Failed to get code from answer to %s", get_redirect_uri (oauth2_provider)); + goto out; + } + + self->authorization_uri = g_strdup_printf ("%s" + "?request_token=%s" + "&redirect_uri=%s", + authorization_uri, + code, + escaped_redirect_uri); + + self->code = code; + + end: + url = g_strdup (self->authorization_uri); + + out: + g_clear_object (&call); + g_clear_object (&proxy); + return url; +} + +static gboolean +decide_navigation_policy (GoaOAuth2Provider *oauth2_provider, + WebKitWebView *web_view, + WebKitNavigationPolicyDecision *decision) +{ + GoaPocketProvider *self = GOA_POCKET_PROVIDER (oauth2_provider); + WebKitNavigationAction *action; + WebKitURIRequest *request; + gboolean ret = FALSE; + const gchar *uri; + + action = webkit_navigation_policy_decision_get_navigation_action (decision); + request = webkit_navigation_action_get_request (action); + uri = webkit_uri_request_get_uri (request); + if (!g_str_has_prefix (uri, "https://getpocket.com/a/")) + goto out; + + webkit_uri_request_set_uri (request, self->authorization_uri); + webkit_web_view_load_request (web_view, request); + + ret = TRUE; + + out: + return ret; +} + +static gboolean +process_redirect_url (GoaOAuth2Provider *oauth2_provider, + const gchar *redirect_url, + gchar **access_token, + GError **error) +{ + GoaPocketProvider *self = GOA_POCKET_PROVIDER (oauth2_provider); + RestProxy *proxy; + RestProxyCall *call; + GHashTable *hash; + const gchar *payload; + gboolean ret = FALSE; + + proxy = goa_rest_proxy_new (V3_OAUTH_AUTHORIZE_URL, FALSE); + call = rest_proxy_new_call (proxy); + + rest_proxy_call_set_method (call, "POST"); + rest_proxy_call_add_header (call, "Content-Type", "application/x-www-form-urlencoded"); + rest_proxy_call_add_param (call, "consumer_key", GOA_POCKET_CLIENT_ID); + rest_proxy_call_add_param (call, "code", self->code); + + if (!rest_proxy_call_sync (call, error)) + goto out; + + payload = rest_proxy_call_get_payload (call); + hash = soup_form_decode (payload); + self->identity = g_strdup (g_hash_table_lookup (hash, "username")); + *access_token = g_strdup (g_hash_table_lookup (hash, "access_token")); + g_hash_table_unref (hash); + + if (self->identity == NULL|| *access_token == NULL) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("No username or access_token")); + g_clear_pointer (&self->identity, g_free); + g_clear_pointer (access_token, g_free); + goto out; + } + + ret = TRUE; + +out: + g_clear_object (&call); + g_clear_object (&proxy); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_identity_sync (GoaOAuth2Provider *oauth2_provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + GoaPocketProvider *self = GOA_POCKET_PROVIDER (oauth2_provider); + if (out_presentation_identity != NULL) + *out_presentation_identity = g_strdup (self->identity); + if (!self->identity) + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, "Identity is saved to disk already"); + return g_strdup (self->identity); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_deny_node (GoaOAuth2Provider *oauth2_provider, WebKitDOMNode *node) +{ + WebKitDOMElement *element; + gboolean ret = FALSE; + gchar *id = NULL; + gchar *class = NULL; + gchar *text = NULL; + + if (!WEBKIT_DOM_IS_ELEMENT (node)) + goto out; + + element = WEBKIT_DOM_ELEMENT (node); + + /* Desktop version */ + id = webkit_dom_element_get_id (element); + if (g_strcmp0 (id, "denyButton") == 0) + { + ret = TRUE; + goto out; + } + + /* Mobile version */ + class = webkit_dom_element_get_class_name (element); + if (g_strcmp0 (class, "toolbarButton") != 0) + goto out; + + /* FIXME: This only seems to work if we don't click on the "Sign Up" + * button, does the check need to be done again? */ + text = webkit_dom_node_get_text_content (node); + if (g_strcmp0 (text, "Cancel") != 0) + goto out; + + ret = TRUE; + + out: + g_free (id); + g_free (class); + g_free (text); + return ret; +} + +static gboolean +is_identity_node (GoaOAuth2Provider *oauth2_provider, WebKitDOMHTMLInputElement *element) +{ + gboolean ret = FALSE; + gchar *name; + + name = webkit_dom_html_input_element_get_name (element); + if (g_strcmp0 (name, "feed_id") != 0) + goto out; + + ret = TRUE; + +out: + g_free (name); + return ret; + +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + gboolean read_later_enabled; + gboolean ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_pocket_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Read Later */ + read_later_enabled = g_key_file_get_boolean (key_file, group, "ReadLaterEnabled", NULL); + goa_object_skeleton_attach_read_later (object, read_later_enabled); + + if (just_added) + { + goa_account_set_read_later_disabled (account, !read_later_enabled); + + g_signal_connect (account, + "notify::read-later-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "ReadLaterEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_key_values (GoaOAuth2Provider *oauth2_provider, + GVariantBuilder *builder) +{ + g_variant_builder_add (builder, "{ss}", "ReadLaterEnabled", "true"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_pocket_provider_init (GoaPocketProvider *self) +{ +} + +static void +goa_pocket_provider_finalize (GObject *object) +{ + GoaPocketProvider *self = GOA_POCKET_PROVIDER (object); + + g_free (self->authorization_uri); + g_clear_pointer (&self->code, g_free); + g_clear_pointer (&self->identity, g_free); + + G_OBJECT_CLASS (goa_pocket_provider_parent_class)->finalize (object); +} + +static void +goa_pocket_provider_class_init (GoaPocketProviderClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GoaProviderClass *provider_class = GOA_PROVIDER_CLASS (klass); + GoaOAuth2ProviderClass *oauth2_class = GOA_OAUTH2_PROVIDER_CLASS (klass); + + object_class->finalize = goa_pocket_provider_finalize; + + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->build_object = build_object; + + oauth2_class->build_authorization_uri = build_authorization_uri; + oauth2_class->decide_navigation_policy = decide_navigation_policy; + oauth2_class->get_authorization_uri = get_authorization_uri; + oauth2_class->get_token_uri = get_token_uri; + oauth2_class->get_redirect_uri = get_redirect_uri; + oauth2_class->get_client_id = get_client_id; + oauth2_class->get_client_secret = get_client_secret; + oauth2_class->get_identity_sync = get_identity_sync; + oauth2_class->is_deny_node = is_deny_node; + oauth2_class->is_identity_node = is_identity_node; + oauth2_class->add_account_key_values = add_account_key_values; + oauth2_class->process_redirect_url = process_redirect_url; +} diff --git a/src/goabackend/goapocketprovider.h b/src/goabackend/goapocketprovider.h new file mode 100644 index 0000000..063d40a --- /dev/null +++ b/src/goabackend/goapocketprovider.h @@ -0,0 +1,40 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_POCKET_PROVIDER_H__ +#define __GOA_POCKET_PROVIDER_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_POCKET_PROVIDER (goa_pocket_provider_get_type ()) +#define GOA_POCKET_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_POCKET_PROVIDER, GoaPocketProvider)) +#define GOA_IS_POCKET_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_POCKET_PROVIDER)) + +typedef struct _GoaPocketProvider GoaPocketProvider; + +GType goa_pocket_provider_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __GOA_POCKET_PROVIDER_H__ */ diff --git a/src/goabackend/goaprovider-priv.h b/src/goabackend/goaprovider-priv.h new file mode 100644 index 0000000..4244e01 --- /dev/null +++ b/src/goabackend/goaprovider-priv.h @@ -0,0 +1,170 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_PROVIDER_PRIV_H__ +#define __GOA_PROVIDER_PRIV_H__ + +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +/** + * GoaProvider: + * + * The #GoaProvider structure contains only private data and should + * only be accessed using the provided API. + */ + +/** + * GoaProviderClass: + * @parent_class: The parent class. + * @get_provider_type: Virtual function for goa_provider_get_provider_type(). + * @get_provider_name: Virtual function for goa_provider_get_provider_name(). + * @get_provider_icon: Virtual function for goa_provider_get_provider_icon(). + * @get_provider_group: Virtual function for goa_provider_get_provider_group(). + * @get_provider_features: Virtual function for goa_provider_get_provider_features(). + * @add_account: Virtual function for goa_provider_add_account(). + * @refresh_account: Virtual function for goa_provider_refresh_account(). + * @build_object: Virtual function for goa_provider_build_object(). + * @ensure_credentials_sync: Virtual function for goa_provider_ensure_credentials_sync(). + * @show_account: Virtual function for goa_provider_show_account(). + * @get_credentials_generation: Virtual function for goa_provider_get_credentials_generation(). + * @initialize: Virtual function for goa_provider_initialize(). + * + * Class structure for #GoaProvider. + */ +struct _GoaProviderClass +{ + GObjectClass parent_class; + + /* pure virtual */ + GoaObject *(*add_account) (GoaProvider *self, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error); + GoaProviderFeatures (*get_provider_features) (GoaProvider *self); + GoaProviderGroup (*get_provider_group) (GoaProvider *self); + gchar *(*get_provider_name) (GoaProvider *self, + GoaObject *object); + const gchar *(*get_provider_type) (GoaProvider *self); + gboolean (*refresh_account) (GoaProvider *self, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error); + + /* virtual but with default implementation */ + gboolean (*build_object) (GoaProvider *self, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error); + gboolean (*ensure_credentials_sync) (GoaProvider *self, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error); + guint (*get_credentials_generation) (GoaProvider *self); + GIcon *(*get_provider_icon) (GoaProvider *self, + GoaObject *object); + void (*initialize) (GoaProvider *self); + void (*remove_account) (GoaProvider *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*remove_account_finish) (GoaProvider *self, + GAsyncResult *res, + GError **error); + void (*show_account) (GoaProvider *self, + GoaClient *client, + GoaObject *object, + GtkBox *vbox, + GtkGrid *dummy1, + GtkGrid *dummy2); +}; + +/** + * GOA_PROVIDER_EXTENSION_POINT_NAME: + * + * Extension point for #GoaProvider implementations. + */ +#define GOA_PROVIDER_EXTENSION_POINT_NAME "goa-backend-provider" + +/** + * GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME: + * + * Extension point for #GoaProviderFactory implementations. + */ +#define GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME "goa-backend-provider-factory" + +void goa_provider_ensure_builtins_loaded (void); + +void goa_provider_ensure_extension_points_registered (void); + +gboolean goa_provider_build_object (GoaProvider *self, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error); + +void goa_provider_ensure_credentials (GoaProvider *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_provider_ensure_credentials_finish (GoaProvider *self, + gint *out_expires_in, + GAsyncResult *res, + GError **error); + +gboolean goa_provider_ensure_credentials_sync (GoaProvider *self, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error); + +void goa_provider_initialize (GoaProvider *self); + +void goa_provider_remove_account (GoaProvider *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_provider_remove_account_finish (GoaProvider *self, + GAsyncResult *res, + GError **error); + +G_END_DECLS + +#endif /* __GOA_PROVIDER_PRIV_H__ */ diff --git a/src/goabackend/goaprovider.c b/src/goabackend/goaprovider.c new file mode 100644 index 0000000..c8f7f0d --- /dev/null +++ b/src/goabackend/goaprovider.c @@ -0,0 +1,1628 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaproviderfactory.h" +#include "goaexchangeprovider.h" +#include "goagoogleprovider.h" +#include "goafacebookprovider.h" +#include "goaimapsmtpprovider.h" +#include "goaowncloudprovider.h" +#include "goaflickrprovider.h" +#include "goafoursquareprovider.h" +#include "goawindowsliveprovider.h" +#include "goatelepathyfactory.h" +#include "goapocketprovider.h" +#include "goamediaserverprovider.h" +#include "goalastfmprovider.h" +#include "goatodoistprovider.h" + +#ifdef GOA_KERBEROS_ENABLED +#include "goakerberosprovider.h" +#endif + +#include "goautils.h" + +/** + * SECTION:goaprovider + * @title: GoaProvider + * @short_description: Abstract base class for providers + * + * #GoaProvider is the base type for all providers. + */ + +enum { + PROP_0, + PROP_PRESEED_DATA, + NUM_PROPERTIES +}; + +static GParamSpec *properties[NUM_PROPERTIES] = { NULL, }; + +static gboolean goa_provider_ensure_credentials_sync_real (GoaProvider *self, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error); + +static gboolean goa_provider_build_object_real (GoaProvider *self, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error); + +static guint goa_provider_get_credentials_generation_real (GoaProvider *self); + +static GIcon *goa_provider_get_provider_icon_real (GoaProvider *self, + GoaObject *object); + +static void goa_provider_initialize_real (GoaProvider *self); + +static void goa_provider_remove_account_real (GoaProvider *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +static gboolean goa_provider_remove_account_finish_real (GoaProvider *self, + GAsyncResult *res, + GError **error); + +static void goa_provider_show_account_real (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkBox *vbox, + GtkGrid *dummy1, + GtkGrid *dummy2); + +G_DEFINE_ABSTRACT_TYPE (GoaProvider, goa_provider, G_TYPE_OBJECT); + +static struct { + GoaProviderFeatures feature; + const gchar *property; + const gchar *blurb; +} provider_features_info[] = { + /* The order in which the features are listed is + * important because it affects the order in which they are + * displayed in the show_account() UI + */ + { + .feature = GOA_PROVIDER_FEATURE_MAIL, + .property = "mail-disabled", + .blurb = N_("_Mail"), + }, + { + .feature = GOA_PROVIDER_FEATURE_CALENDAR, + .property = "calendar-disabled", + .blurb = N_("Cale_ndar"), + }, + { + .feature = GOA_PROVIDER_FEATURE_CONTACTS, + .property = "contacts-disabled", + .blurb = N_("_Contacts"), + }, + { + .feature = GOA_PROVIDER_FEATURE_CHAT, + .property = "chat-disabled", + .blurb = N_("C_hat"), + }, + { + .feature = GOA_PROVIDER_FEATURE_DOCUMENTS, + .property = "documents-disabled", + .blurb = N_("_Documents"), + }, + { + .feature = GOA_PROVIDER_FEATURE_MUSIC, + .property = "music-disabled", + .blurb = N_("M_usic"), + }, + { + .feature = GOA_PROVIDER_FEATURE_PHOTOS, + .property = "photos-disabled", + .blurb = N_("_Photos"), + }, + { + .feature = GOA_PROVIDER_FEATURE_FILES, + .property = "files-disabled", + .blurb = N_("_Files"), + }, + { + .feature = GOA_PROVIDER_FEATURE_TICKETING, + .property = "ticketing-disabled", + .blurb = N_("Network _Resources"), + }, + { + .feature = GOA_PROVIDER_FEATURE_READ_LATER, + .property = "read-later-disabled", + .blurb = N_("_Read Later"), + }, + { + .feature = GOA_PROVIDER_FEATURE_PRINTERS, + .property = "printers-disabled", + .blurb = N_("Prin_ters"), + }, + { + .feature = GOA_PROVIDER_FEATURE_MAPS, + .property = "maps-disabled", + .blurb = N_("_Maps"), + }, + { + .feature = GOA_PROVIDER_FEATURE_TODO, + .property = "todo-disabled", + .blurb = N_("T_o Do"), + }, + { + .feature = GOA_PROVIDER_FEATURE_INVALID, + .property = NULL, + .blurb = NULL, + } +}; + +static void +goa_provider_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + switch (property_id) { + case PROP_PRESEED_DATA: + g_value_set_variant (value, NULL); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +goa_provider_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (property_id) { + case PROP_PRESEED_DATA: + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +goa_provider_init (GoaProvider *self) +{ +} + +static void +goa_provider_class_init (GoaProviderClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->set_property = goa_provider_set_property; + object_class->get_property = goa_provider_get_property; + + klass->build_object = goa_provider_build_object_real; + klass->ensure_credentials_sync = goa_provider_ensure_credentials_sync_real; + klass->get_credentials_generation = goa_provider_get_credentials_generation_real; + klass->get_provider_icon = goa_provider_get_provider_icon_real; + klass->initialize = goa_provider_initialize_real; + klass->remove_account = goa_provider_remove_account_real; + klass->remove_account_finish = goa_provider_remove_account_finish_real; + klass->show_account = goa_provider_show_account_real; + +/** + * GoaProvider:preseed-data + * + * An #GVariant of type a{sv} storing any information already collected that + * can be useful when creating a new account. For instance, this can be useful + * to reuse the HTTP cookies from an existing browser session to skip the + * prompt for username and password in the OAuth2-based providers by passing + * a #GVariant with the following contents: + * + * + * + * { + * "cookies": [ + * { + * "domain": "example.com", + * "name": "LSID", + * "value": "asdfasdfasdf" + * }, + * { + * "domain": "accounts.example.com", + * "name": "SSID", + * "value": "asdfasdfasdf" + * } + * ] + * } + * + * + * + * Unknown or unsupported keys will be ignored by providers. + * + * Deprecated: 3.28: This property does nothing. + */ + properties[PROP_PRESEED_DATA] = + g_param_spec_variant ("preseed-data", + "Collected data to pre-seed account creation", + "A a{sv} #GVariant containing a provider-type specific set of data that" + "can be useful during account creation (eg. http cookies from an existing" + "browser session or the entrypoint url for self-hosted services).", + G_VARIANT_TYPE_VARDICT, + NULL, + G_PARAM_DEPRECATED | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, NUM_PROPERTIES, properties); +} + +/** + * goa_provider_get_provider_type: + * @self: A #GoaProvider. + * + * Gets the type of @self. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer none): A string owned by @self, do not free. + */ +const gchar * +goa_provider_get_provider_type (GoaProvider *self) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), NULL); + return GOA_PROVIDER_GET_CLASS (self)->get_provider_type (self); +} + +/** + * goa_provider_get_provider_name: + * @self: A #GoaProvider. + * @object: (allow-none): A #GoaObject for an account. + * + * Gets a name for @self and @object that is suitable for display + * in an user interface. The returned value may depend on @object (if + * it's not %NULL) - for example, hosted accounts might return a + * different name. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: (transfer full): A string that should be freed with g_free(). + */ +gchar * +goa_provider_get_provider_name (GoaProvider *self, + GoaObject *object) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), NULL); + return GOA_PROVIDER_GET_CLASS (self)->get_provider_name (self, object); +} + +/** + * goa_provider_get_provider_icon: + * @self: A #GoaProvider. + * @object: A #GoaObject for an account. + * + * Gets an icon for @self and @object that is suitable for display + * in an user interface. The returned value may depend on @object - + * for example, hosted accounts might return a different icon. + * + * This is a virtual method with a default implementation that returns + * a #GThemedIcon with fallbacks constructed from the name + * goa-account-TYPE where TYPE + * is the return value of goa_provider_get_provider_type(). + * + * Returns: (transfer full): An icon that should be freed with g_object_unref(). + */ +GIcon * +goa_provider_get_provider_icon (GoaProvider *self, + GoaObject *object) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), NULL); + return GOA_PROVIDER_GET_CLASS (self)->get_provider_icon (self, object); +} + +static GIcon * +goa_provider_get_provider_icon_real (GoaProvider *self, + GoaObject *object) +{ + GIcon *ret; + gchar *s; + s = g_strdup_printf ("goa-account-%s", goa_provider_get_provider_type (self)); + ret = g_themed_icon_new_with_default_fallbacks (s); + g_free (s); + return ret; +} + +/** + * goa_provider_get_provider_group: + * @self: A #GoaProvider. + * + * Gets the group to which @self belongs that is suitable for + * organizing the providers while displaying them in an user + * interface. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: A #GoaProviderGroup. + * + * Since: 3.8 + * + * Deprecated: 3.10: Use goa_provider_get_provider_features() instead. + */ +GoaProviderGroup +goa_provider_get_provider_group (GoaProvider *self) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), GOA_PROVIDER_GROUP_INVALID); + return GOA_PROVIDER_GET_CLASS (self)->get_provider_group (self); +} + +/** + * goa_provider_get_provider_features: + * @self: A #GoaProvider. + * + * Get the features bitmask (eg. %GOA_PROVIDER_FEATURE_CHAT|%GOA_PROVIDER_FEATURE_CONTACTS) + * supported by the provider. + * + * Returns: The #GoaProviderFeatures bitmask with the provided features. + * + * Since: 3.10 + */ +GoaProviderFeatures +goa_provider_get_provider_features (GoaProvider *self) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), GOA_PROVIDER_FEATURE_INVALID); + g_return_val_if_fail (GOA_PROVIDER_GET_CLASS (self)->get_provider_features != NULL, GOA_PROVIDER_FEATURE_INVALID); + return GOA_PROVIDER_GET_CLASS (self)->get_provider_features (self); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +void +goa_provider_initialize (GoaProvider *self) +{ + g_return_if_fail (GOA_IS_PROVIDER (self)); + + GOA_PROVIDER_GET_CLASS (self)->initialize (self); +} + +static void +goa_provider_initialize_real (GoaProvider *self) +{ +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_add_account: + * @self: A #GoaProvider. + * @client: A #GoaClient. + * @dialog: A #GtkDialog. + * @vbox: A vertically oriented #GtkBox to put content in. + * @error: Return location for error or %NULL. + * + * This method brings up the user interface necessary to create a new + * account on @client of the type for @self, interacts with the + * user to get all information needed and creates the account. + * + * The passed in @dialog widget is guaranteed to be visible with @vbox + * being empty and the only visible widget in @dialog's content + * area. The dialog has exactly one action widget, a cancel button + * with response id GTK_RESPONSE_CANCEL. Implementations are free to + * add additional action widgets, as needed. + * + * If an account was successfully created, a #GoaObject for the + * created account is returned. If @dialog is dismissed, %NULL is + * returned and @error is set to %GOA_ERROR_DIALOG_DISMISSED. If an + * account couldn't be created then @error is set. In some cases, + * for example, when the credentials could not be stored in the + * keyring, a #GoaObject can be returned even if @error is set. + * + * The caller will always show an error dialog if @error is set unless + * the error is %GOA_ERROR_DIALOG_DISMISSED. + * + * Implementations should run the default main loop while + * interacting with the user and may do so using e.g. gtk_dialog_run() + * on @dialog. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: The #GoaObject for the created account (must be relased + * with g_object_unref()) or %NULL if @error is set. + */ +GoaObject * +goa_provider_add_account (GoaProvider *self, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + GoaObject *ret; + + g_return_val_if_fail (GOA_IS_PROVIDER (self), NULL); + g_return_val_if_fail (GOA_IS_CLIENT (client), NULL); + g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + ret = GOA_PROVIDER_GET_CLASS (self)->add_account (self, client, dialog, vbox, error); + + g_warn_if_fail ((ret == NULL && (error == NULL || *error != NULL)) || GOA_IS_OBJECT (ret)); + + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_refresh_account: + * @self: A #GoaProvider. + * @client: A #GoaClient. + * @object: A #GoaObject with a #GoaAccount interface. + * @parent: (allow-none): Transient parent of dialogs or %NULL. + * @error: Return location for error or %NULL. + * + * This method brings up the user interface necessary for refreshing + * the credentials for the account specified by @object. This + * typically involves having the user log in to the account again. + * + * Implementations should use @parent (unless %NULL) as the transient + * parent of any created windows/dialogs. + * + * Implementations should run the default main loop while + * interacting with the user. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: %TRUE if the account has been refreshed, %FALSE if @error + * is set. + */ +gboolean +goa_provider_refresh_account (GoaProvider *self, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), FALSE); + g_return_val_if_fail (GOA_IS_CLIENT (client), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object) && goa_object_peek_account (object) != NULL, FALSE); + g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + return GOA_PROVIDER_GET_CLASS (self)->refresh_account (self, client, object, parent, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_show_account: + * @self: A #GoaProvider. + * @client: A #GoaClient. + * @object: A #GoaObject with a #GoaAccount interface. + * @vbox: A vertically oriented #GtkBox to put content in. + * @grid: A #GtkGrid to put content in. + * @dummy: Unused. + * + * Method used to add widgets in the control panel for the account + * represented by @object. + * + * This is a virtual method where the default implementation adds + * one GtkSwitch per service supported by the provider (as reported + * by goa_provider_get_provider_features()). + */ +void +goa_provider_show_account (GoaProvider *self, + GoaClient *client, + GoaObject *object, + GtkBox *vbox, + GtkGrid *dummy1, + GtkGrid *dummy2) +{ + g_return_if_fail (GOA_IS_PROVIDER (self)); + g_return_if_fail (GOA_IS_CLIENT (client)); + g_return_if_fail (GOA_IS_OBJECT (object) && goa_object_peek_account (object) != NULL); + g_return_if_fail (GTK_IS_BOX (vbox)); + + GOA_PROVIDER_GET_CLASS (self)->show_account (self, client, object, vbox, dummy1, dummy2); +} + +static void +goa_provider_show_account_real (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkBox *vbox, + GtkGrid *dummy1, + GtkGrid *dummy2) +{ + GoaProviderFeatures features; + GtkWidget *grid; + gint row; + guint i; + const char *label; + + row = 0; + + goa_utils_account_add_attention_needed (client, object, provider, vbox); + + grid = gtk_grid_new (); + gtk_widget_set_halign (grid, GTK_ALIGN_CENTER); + gtk_widget_set_hexpand (grid, TRUE); + gtk_widget_set_margin_end (grid, 72); + gtk_widget_set_margin_start (grid, 72); + gtk_widget_set_margin_top (grid, 24); + gtk_grid_set_column_spacing (GTK_GRID (grid), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid), 6); + gtk_container_add (GTK_CONTAINER (vbox), grid); + + goa_utils_account_add_header (object, GTK_GRID (grid), row++); + + features = goa_provider_get_provider_features (provider); + /* Translators: This is a label for a series of + * options switches. For example: “Use for Mail”. */ + label = _("Use for"); + + for (i = 0; provider_features_info[i].property != NULL; i++) + { + if ((features & provider_features_info[i].feature) != 0) + { + goa_util_add_row_switch_from_keyfile_with_blurb (GTK_GRID (grid), row++, object, + label, + provider_features_info[i].property, + _(provider_features_info[i].blurb)); + label = NULL; + } + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_build_object: + * @self: A #GoaProvider. + * @object: The #GoaObjectSkeleton that is being built. + * @key_file: The #GKeyFile with configuation data. + * @group: The group in @key_file to get data from. + * @connection: The #GDBusConnection used by the daemon to connect to the message bus. + * @just_added: Whether the account was newly created or being updated. + * @error: Return location for error or %NULL. + * + * This method is called when construction account #GoaObject + * from configuration data - it basically provides a way to add + * provider-specific information. + * + * The passed in @object will have a #GoaAccount interface + * set. Implementations should validate and use data from @key_file to + * add more interfaces to @object. + * + * Note that this may be called on already exported objects - for + * example on configuration files reload. + * + * This is a pure virtual method - a subclass must provide an + * implementation. + * + * Returns: %TRUE if data was valid, %FALSE if @error is set. + */ +gboolean +goa_provider_build_object (GoaProvider *self, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT_SKELETON (object) && goa_object_peek_account (GOA_OBJECT (object)) != NULL, FALSE); + g_return_val_if_fail (key_file != NULL, FALSE); + g_return_val_if_fail (group != NULL, FALSE); + g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + return GOA_PROVIDER_GET_CLASS (self)->build_object (self, + object, + key_file, + group, + connection, + just_added, + error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GoaObject *object; + gint expires_in; +} EnsureCredentialsData; + +static EnsureCredentialsData * +ensure_credentials_data_new (GoaObject *object) +{ + EnsureCredentialsData *data; + data = g_new0 (EnsureCredentialsData, 1); + data->object = g_object_ref (object); + return data; +} + +static void +ensure_credentials_data_free (EnsureCredentialsData *data) +{ + g_object_unref (data->object); + g_free (data); +} + +static void +ensure_credentials_in_thread_func (GTask *task, + gpointer object, + gpointer task_data, + GCancellable *cancellable) +{ + EnsureCredentialsData *data; + GError *error; + + data = task_data; + + error = NULL; + if (!goa_provider_ensure_credentials_sync (GOA_PROVIDER (object), + data->object, + &data->expires_in, + cancellable, + &error)) + g_task_return_error (task, error); + else + g_task_return_boolean (task, TRUE); +} + + +/** + * goa_provider_ensure_credentials: + * @self: A #GoaProvider. + * @object: A #GoaObject with a #GoaAccount interface. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @callback: The function to call when the request is satisfied. + * @user_data: Pointer to pass to @callback. + * + * Ensures that credentials for @object are still valid. + * + * When the result is ready, @callback will be called in the the thread-default main + * loop this function was called from. You can then call + * goa_provider_ensure_credentials_finish() to get the result + * of the operation. + * + * This is a virtual method where the default implementation simply + * throws the %GOA_ERROR_NOT_SUPPORTED error. A subclass may provide + * another implementation. + */ +void +goa_provider_ensure_credentials (GoaProvider *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + + g_return_if_fail (GOA_IS_PROVIDER (self)); + g_return_if_fail (GOA_IS_OBJECT (object)); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_task_data (task, ensure_credentials_data_new (object), (GDestroyNotify) ensure_credentials_data_free); + g_task_set_source_tag (task, goa_provider_ensure_credentials); + g_task_run_in_thread (task, ensure_credentials_in_thread_func); + + g_object_unref (task); +} + +/** + * goa_provider_ensure_credentials_finish: + * @self: A #GoaProvider. + * @out_expires_in: (out): Return location for how long the expired credentials are good for (0 if unknown) or %NULL. + * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_provider_ensure_credentials(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_provider_ensure_credentials(). + * + * Returns: %TRUE if the credentials for the passed #GoaObject are valid, %FALSE if @error is set. + */ +gboolean +goa_provider_ensure_credentials_finish (GoaProvider *self, + gint *out_expires_in, + GAsyncResult *res, + GError **error) +{ + GTask *task; + gboolean had_error; + + gboolean ret; + EnsureCredentialsData *data; + + ret = FALSE; + + g_return_val_if_fail (GOA_IS_PROVIDER (self), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_provider_ensure_credentials, FALSE); + + /* Workaround for bgo#764163 */ + had_error = g_task_had_error (task); + ret = g_task_propagate_boolean (task, error); + if (had_error) + goto out; + + data = g_task_get_task_data (task); + if (out_expires_in != NULL) + *out_expires_in = data->expires_in; + + out: + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_ensure_credentials_sync: + * @self: A #GoaProvider. + * @object: A #GoaObject with a #GoaAccount interface. + * @out_expires_in: (out): Return location for how long the expired credentials are good for (0 if unknown) or %NULL. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Like goa_provider_ensure_credentials() but blocks the + * calling thread until an answer is received. + * + * Returns: %TRUE if the credentials for the passed #GoaObject are valid, %FALSE if @error is set. + */ +gboolean +goa_provider_ensure_credentials_sync (GoaProvider *self, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + GoaAccount *account = NULL; + GoaProviderFeatures features; + gboolean disabled = TRUE; + gboolean ret = FALSE; + guint i; + + g_return_val_if_fail (GOA_IS_PROVIDER (self), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object), FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + account = goa_object_get_account (object); + g_return_val_if_fail (GOA_IS_ACCOUNT (account), FALSE); + + features = goa_provider_get_provider_features (self); + + for (i = 0; provider_features_info[i].property != NULL; i++) + { + if ((features & provider_features_info[i].feature) != 0) + { + gboolean feature_disabled; + + g_object_get (account, provider_features_info[i].property, &feature_disabled, NULL); + disabled = disabled && feature_disabled; + if (!disabled) + break; + } + } + + if (disabled) + { + g_set_error_literal (error, GOA_ERROR, GOA_ERROR_NOT_SUPPORTED, _("Account is disabled")); + goto out; + } + + ret = GOA_PROVIDER_GET_CLASS (self)->ensure_credentials_sync (self, object, out_expires_in, cancellable, error); + + out: + if (!ret && error != NULL && *error == NULL) + { + const gchar *provider_type; + + provider_type = goa_provider_get_provider_type (self); + g_critical ("GoaProvider (%s) failed to set error correctly", provider_type); + g_set_error_literal (error, GOA_ERROR, GOA_ERROR_NOT_AUTHORIZED, _("Unknown error")); + } + + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_provider_ensure_credentials_sync_real (GoaProvider *self, + GoaObject *object, + gint *out_expires_in, + GCancellable *cancellable, + GError **error) +{ + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_SUPPORTED, + _("ensure_credentials_sync is not implemented on type %s"), + g_type_name (G_TYPE_FROM_INSTANCE (self))); + return FALSE; +} + +static gboolean +goa_provider_build_object_real (GoaProvider *self, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + /* does nothing */ + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_get_credentials_generation: + * @self: A #GoaProvider. + * + * Gets the generation of credentials being used for the provider. + * + * Implementations should bump this number when changes are introduced + * that may render existing credentials unusable. + * + * For example, if an additional scope is requested (e.g. access to + * contacts data) while obtaining credentials, then this number needs + * to be bumped since existing credentials are not good for the added + * scope. + * + * This is a virtual method where the default implementation returns + * 0. + * + * Returns: The current generation of credentials. + */ +guint +goa_provider_get_credentials_generation (GoaProvider *self) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), 0); + return GOA_PROVIDER_GET_CLASS (self)->get_credentials_generation (self); +} + +static guint +goa_provider_get_credentials_generation_real (GoaProvider *self) +{ + return 0; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +void +goa_provider_ensure_extension_points_registered (void) +{ + static gsize once_init_value = 0; + + if (g_once_init_enter (&once_init_value)) + { + GIOExtensionPoint *extension_point; + + extension_point = g_io_extension_point_register (GOA_PROVIDER_EXTENSION_POINT_NAME); + g_io_extension_point_set_required_type (extension_point, GOA_TYPE_PROVIDER); + + extension_point = g_io_extension_point_register (GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME); + g_io_extension_point_set_required_type (extension_point, GOA_TYPE_PROVIDER_FACTORY); + + g_once_init_leave (&once_init_value, 1); + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static struct +{ + const gchar *name; + GType (*get_type) (void); +} ordered_builtins_map[] = { + /* The order in which the providers' types are created is + * important because it affects the order in which they are + * returned by goa_provider_get_all. + */ +#ifdef GOA_GOOGLE_ENABLED + { GOA_GOOGLE_NAME, goa_google_provider_get_type }, +#endif +#ifdef GOA_OWNCLOUD_ENABLED + { GOA_OWNCLOUD_NAME, goa_owncloud_provider_get_type }, +#endif +#ifdef GOA_FACEBOOK_ENABLED + { GOA_FACEBOOK_NAME, goa_facebook_provider_get_type }, +#endif +#ifdef GOA_WINDOWS_LIVE_ENABLED + { GOA_WINDOWS_LIVE_NAME, goa_windows_live_provider_get_type }, +#endif +#ifdef GOA_FLICKR_ENABLED + { GOA_FLICKR_NAME, goa_flickr_provider_get_type }, +#endif +#ifdef GOA_POCKET_ENABLED + { GOA_POCKET_NAME, goa_pocket_provider_get_type }, +#endif +#ifdef GOA_FOURSQUARE_ENABLED + { GOA_FOURSQUARE_NAME, goa_foursquare_provider_get_type }, +#endif +#ifdef GOA_EXCHANGE_ENABLED + { GOA_EXCHANGE_NAME, goa_exchange_provider_get_type }, +#endif +#ifdef GOA_LASTFM_ENABLED + { GOA_LASTFM_NAME, goa_lastfm_provider_get_type }, +#endif +#ifdef GOA_TODOIST_ENABLED + { GOA_TODOIST_NAME, goa_todoist_provider_get_type }, +#endif +#ifdef GOA_IMAP_SMTP_ENABLED + { GOA_IMAP_SMTP_NAME, goa_imap_smtp_provider_get_type }, +#endif +#ifdef GOA_KERBEROS_ENABLED + { GOA_KERBEROS_NAME, goa_kerberos_provider_get_type }, +#endif +#ifdef GOA_MEDIA_SERVER_ENABLED + { GOA_MEDIA_SERVER_NAME, goa_media_server_provider_get_type }, +#endif +#ifdef GOA_TELEPATHY_ENABLED + { GOA_TELEPATHY_NAME, goa_telepathy_factory_get_type }, +#endif + { NULL, NULL } +}; + +void +goa_provider_ensure_builtins_loaded (void) +{ + static gsize once_init_value = 0; + + goa_provider_ensure_extension_points_registered (); + + if (g_once_init_enter (&once_init_value)) + { + GSettings *settings; + gchar **whitelisted_providers; + guint i; + guint j; + gboolean all = FALSE; + + settings = g_settings_new (GOA_SETTINGS_SCHEMA); + whitelisted_providers = g_settings_get_strv (settings, GOA_SETTINGS_WHITELISTED_PROVIDERS); + + /* Enable everything if there is 'all'. */ + for (i = 0; whitelisted_providers[i] != NULL; i++) + { + if (g_strcmp0 (whitelisted_providers[i], "all") == 0) + { + g_debug ("Loading all providers: "); + for (j = 0; ordered_builtins_map[j].name != NULL; j++) + { + g_debug (" - %s", ordered_builtins_map[j].name); + g_type_ensure ((*ordered_builtins_map[j].get_type) ()); + } + + all = TRUE; + break; + } + } + + if (all) + goto cleanup; + + /* Otherwise try them one by one. */ + g_debug ("Loading whitelisted providers: "); + for (i = 0; ordered_builtins_map[i].name != NULL; i++) + { + for (j = 0; whitelisted_providers[j] != NULL; j++) + { + if (g_strcmp0 (whitelisted_providers[j], ordered_builtins_map[i].name) == 0) + { + g_debug (" - %s", ordered_builtins_map[j].name); + g_type_ensure ((*ordered_builtins_map[i].get_type) ()); + break; + } + } + } + + cleanup: + g_strfreev (whitelisted_providers); + g_object_unref (settings); + g_once_init_leave (&once_init_value, 1); + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_get_for_provider_type: + * @provider_type: A provider type. + * + * Returns a #GoaProvider for @provider_type (if available). + * + * If @provider_type doesn't contain any "/", a + * %GOA_PROVIDER_EXTENSION_POINT_NAME extension for @provider_type is looked up + * and the newly created #GoaProvider, if any, is returned. + * + * If @provider_type contains a "/", a + * %GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME extension for the first part of + * @provider_type is looked up. If found, the #GoaProviderFactory is used + * to create a dynamic #GoaProvider matching the second part of @provider_type. + * + * Returns: (transfer full): A #GoaProvider (that must be freed + * with g_object_unref()) or %NULL if not found. + */ +GoaProvider * +goa_provider_get_for_provider_type (const gchar *provider_type) +{ + GIOExtension *extension; + GIOExtensionPoint *extension_point; + gchar **split_provider_type; + GoaProvider *ret; + + g_return_val_if_fail (provider_type != NULL, NULL); + + goa_provider_ensure_builtins_loaded (); + + ret = NULL; + + split_provider_type = g_strsplit (provider_type, "/", 2); + + if (g_strv_length (split_provider_type) == 1) + { + /* Normal provider */ + extension_point = g_io_extension_point_lookup (GOA_PROVIDER_EXTENSION_POINT_NAME); + extension = g_io_extension_point_get_extension_by_name (extension_point, provider_type); + if (extension != NULL) + ret = GOA_PROVIDER (g_object_new (g_io_extension_get_type (extension), NULL)); + } + else + { + /* Dynamic provider created through a factory */ + extension_point = g_io_extension_point_lookup (GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME); + extension = g_io_extension_point_get_extension_by_name (extension_point, split_provider_type[0]); + if (extension != NULL) + { + GoaProviderFactory *factory = g_object_new (g_io_extension_get_type (extension), NULL); + ret = goa_provider_factory_get_provider (factory, split_provider_type[1]); + g_object_unref (factory); + } + } + + g_strfreev (split_provider_type); + + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GQueue ret; + gint pending_calls; + GTask *task; +} GetAllData; + +static void +free_list_and_unref (gpointer data) +{ + g_list_free_full (data, g_object_unref); +} + +static gint +compare_providers (GoaProvider *a, + GoaProvider *b) +{ + gboolean a_branded; + gboolean b_branded; + + if (goa_provider_get_provider_features (a) & GOA_PROVIDER_FEATURE_BRANDED) + a_branded = TRUE; + else + a_branded = FALSE; + + if (goa_provider_get_provider_features (b) & GOA_PROVIDER_FEATURE_BRANDED) + b_branded = TRUE; + else + b_branded = FALSE; + + /* g_queue_sort() uses a stable sort, so, if we return 0, the order + * is not changed. */ + if (a_branded == b_branded) + return 0; + else if (a_branded) + return -1; + else + return 1; +} + +static void +get_all_check_done (GetAllData *data) +{ + if (data->pending_calls > 0) + return; + + /* Make sure that branded providers come first, but don't change the + * order otherwise. */ + g_queue_sort (&data->ret, (GCompareDataFunc) compare_providers, NULL); + + /* Steal the list out of the GQueue. */ + g_task_return_pointer (data->task, data->ret.head, free_list_and_unref); + + g_object_unref (data->task); + g_slice_free (GetAllData, data); +} + +static void +get_providers_cb (GObject *source, + GAsyncResult *res, + gpointer user_data) +{ + GoaProviderFactory *factory = GOA_PROVIDER_FACTORY (source); + GetAllData *data = user_data; + GList *providers = NULL; + GList *l; + GError *error = NULL; + + if (!goa_provider_factory_get_providers_finish (factory, &providers, res, &error)) + { + g_critical ("Error getting providers from a factory: %s (%s, %d)", + error->message, + g_quark_to_string (error->domain), + error->code); + g_clear_error (&error); + goto out; + } + + for (l = providers; l != NULL; l = l->next) + { + /* Steal the value */ + g_queue_push_tail (&data->ret, l->data); + } + + g_list_free (providers); + +out: + data->pending_calls--; + get_all_check_done (data); +} + +/** + * goa_provider_get_all: + * @callback: The function to call when the request is satisfied. + * @user_data: Pointer to pass to @callback. + * + * Creates a list of all the available #GoaProvider instances. + * + * When the result is ready, @callback will be called in the the thread-default main + * loop this function was called from. You can then call + * goa_provider_get_all_finish() to get the result of the operation. + * + * See goa_provider_get_for_provider_type() for details on how the providers + * are found. + */ +void +goa_provider_get_all (GAsyncReadyCallback callback, + gpointer user_data) +{ + GList *extensions; + GList *l; + GIOExtensionPoint *extension_point; + GetAllData *data; + gint i; + + goa_provider_ensure_builtins_loaded (); + + data = g_slice_new0 (GetAllData); + data->task = g_task_new (NULL, NULL, callback, user_data); + g_task_set_source_tag (data->task, goa_provider_get_all); + g_queue_init (&data->ret); + + /* Load the normal providers. */ + extension_point = g_io_extension_point_lookup (GOA_PROVIDER_EXTENSION_POINT_NAME); + extensions = g_io_extension_point_get_extensions (extension_point); + /* TODO: what if there are two extensions with the same name? */ + for (l = extensions, i = 0; l != NULL; l = l->next, i++) + { + GIOExtension *extension = l->data; + /* The extensions are loaded in the reverse order we used in + * goa_provider_ensure_builtins_loaded, so we need to push + * extension if front of the already loaded ones. */ + g_queue_push_head (&data->ret, g_object_new (g_io_extension_get_type (extension), NULL)); + } + + /* Load the provider factories and get the dynamic providers out of them. */ + extension_point = g_io_extension_point_lookup (GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME); + extensions = g_io_extension_point_get_extensions (extension_point); + for (l = extensions, i = 0; l != NULL; l = l->next, i++) + { + GIOExtension *extension = l->data; + GoaProviderFactory *factory; + + factory = GOA_PROVIDER_FACTORY (g_object_new (g_io_extension_get_type (extension), NULL)); + goa_provider_factory_get_providers (factory, get_providers_cb, data); + g_object_unref (factory); + data->pending_calls++; + } + + get_all_check_done (data); +} + +/** + * goa_provider_get_all_finish: + * @out_providers: (out) (transfer full) (element-type GoaProvider): + * Return location for a list of #GoaProvider instances. + * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_provider_get_all(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_provider_get_all(). + * + * Returns: %TRUE if the list was successfully retrieved, %FALSE if @error is set. + */ +gboolean +goa_provider_get_all_finish (GList **out_providers, + GAsyncResult *result, + GError **error) +{ + GTask *task; + GList *providers; + gboolean had_error; + + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + g_return_val_if_fail (g_task_is_valid (result, NULL), FALSE); + task = G_TASK (result); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_provider_get_all, FALSE); + + /* Workaround for bgo#764163 */ + had_error = g_task_had_error (task); + providers = g_task_propagate_pointer (task, error); + if (had_error) + return FALSE; + + if (out_providers != NULL) + { + *out_providers = providers; + providers = NULL; + } + + g_list_free_full (providers, g_object_unref); + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +void +goa_provider_remove_account (GoaProvider *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_return_if_fail (GOA_IS_PROVIDER (self)); + g_return_if_fail (GOA_IS_OBJECT (object)); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + GOA_PROVIDER_GET_CLASS (self)->remove_account (self, object, cancellable, callback, user_data); +} + +gboolean +goa_provider_remove_account_finish (GoaProvider *self, + GAsyncResult *res, + GError **error) +{ + g_return_val_if_fail (GOA_IS_PROVIDER (self), FALSE); + g_return_val_if_fail (G_IS_ASYNC_RESULT (res), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + return GOA_PROVIDER_GET_CLASS (self)->remove_account_finish (self, res, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_provider_remove_account_real (GoaProvider *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, goa_provider_remove_account_real); + g_task_return_boolean (task, TRUE); + g_object_unref (task); +} + +static gboolean +goa_provider_remove_account_finish_real (GoaProvider *self, + GAsyncResult *res, + GError **error) +{ + GTask *task; + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_provider_remove_account_real, FALSE); + + return g_task_propagate_boolean (task, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_provider_set_preseed_data: + * @self: The #GoaProvider + * @preseed_data: A #GVariant of type a{sv} + * + * Sets the #GoaProvider:preseed-data property to feed any information already + * collected that can be useful when creating a new account. + * + * If the @preseed_data #GVariant is floating, it is consumed to allow + * 'inline' use of the g_variant_new() family of functions. + * + * Deprecated: 3.28: This function does nothing. + */ +void +goa_provider_set_preseed_data (GoaProvider *self, + GVariant *preseed_data) +{ +} + +/** + * goa_provider_get_preseed_data: + * @self: The #GoaProvider + * + * Gets the #GVariant set through the #GoaProvider:preseed-data property. + * + * Returns: (transfer none): A #GVariant that is known to be valid until + * the property is overridden or the provider freed. + * + * Deprecated: 3.28: This function does nothing. + */ +GVariant * +goa_provider_get_preseed_data (GoaProvider *self) +{ + return NULL; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GtkWidget * +goa_util_add_row_widget (GtkGrid *grid, + gint row, + const gchar *label_text, + GtkWidget *widget) +{ + GtkWidget *label; + + g_return_val_if_fail (GTK_IS_GRID (grid), NULL); + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); + + if (label_text != NULL) + { + GtkStyleContext *context; + + label = gtk_label_new (label_text); + context = gtk_widget_get_style_context (label); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (grid, label, 0, row, 1, 1); + } + + gtk_grid_attach (grid, widget, 1, row, 3, 1); + return widget; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +gchar * +goa_util_lookup_keyfile_string (GoaObject *object, + const gchar *key) +{ + GoaAccount *account; + GError *error; + GKeyFile *key_file; + gchar *path; + gchar *group; + gchar *ret; + + ret = NULL; + + account = goa_object_peek_account (object); + path = g_strdup_printf ("%s/goa-1.0/accounts.conf", g_get_user_config_dir ()); + group = g_strdup_printf ("Account %s", goa_account_get_id (account)); + + key_file = g_key_file_new (); + error = NULL; + if (!g_key_file_load_from_file (key_file, + path, + G_KEY_FILE_NONE, + &error)) + { + g_warning ("Error loading keyfile %s: %s (%s, %d)", + path, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + ret = g_key_file_get_string (key_file, + group, + key, + &error); + if (ret == NULL) + { + /* this is not fatal (think upgrade-path) */ + g_debug ("Error getting value for key %s in group `%s' from keyfile %s: %s (%s, %d)", + key, + group, + path, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + + out: + g_key_file_unref (key_file); + g_free (group); + g_free (path); + return ret; +} + +gboolean +goa_util_lookup_keyfile_boolean (GoaObject *object, + const gchar *key) +{ + GoaAccount *account; + GError *error; + GKeyFile *key_file; + gchar *path; + gchar *group; + gboolean ret; + + ret = FALSE; + + account = goa_object_peek_account (object); + path = g_strdup_printf ("%s/goa-1.0/accounts.conf", g_get_user_config_dir ()); + group = g_strdup_printf ("Account %s", goa_account_get_id (account)); + + key_file = g_key_file_new (); + error = NULL; + if (!g_key_file_load_from_file (key_file, + path, + G_KEY_FILE_NONE, + &error)) + { + g_warning ("Error loading keyfile %s: %s (%s, %d)", + path, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + ret = g_key_file_get_boolean (key_file, + group, + key, + &error); + if (error != NULL) + { + /* this is not fatal (think upgrade-path) */ + g_debug ("Error getting boolean value for key %s in group `%s' from keyfile %s: %s (%s, %d)", + key, + group, + path, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + + out: + g_key_file_unref (key_file); + g_free (group); + g_free (path); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +void +goa_util_account_notify_property_cb (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + GoaAccount *account; + gboolean value; + const gchar *key; + const gchar *name; + + g_return_if_fail (GOA_IS_ACCOUNT (object)); + + account = GOA_ACCOUNT (object); + key = user_data; + name = g_param_spec_get_name (pspec); + + g_object_get (account, name, &value, NULL); + goa_utils_keyfile_set_boolean (account, key, !value); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GtkWidget * +goa_util_add_row_switch_from_keyfile_with_blurb (GtkGrid *grid, + gint row, + GoaObject *object, + const gchar *label_text, + const gchar *property, + const gchar *blurb) +{ + GoaAccount *account; + GtkWidget *hbox; + GtkWidget *switch_; + gboolean value; + + account = goa_object_peek_account (object); + g_object_get (account, property, &value, NULL); + switch_ = gtk_switch_new (); + + if (goa_account_get_attention_needed (account)) + { + gtk_widget_set_sensitive (switch_, FALSE); + gtk_switch_set_active (GTK_SWITCH (switch_), FALSE); + } + else + { + gtk_switch_set_active (GTK_SWITCH (switch_), !value); + g_object_bind_property (switch_, "active", + account, property, + G_BINDING_BIDIRECTIONAL | G_BINDING_INVERT_BOOLEAN); + } + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE); + + if (blurb != NULL) + { + GtkWidget *label; + + label = gtk_label_new_with_mnemonic (blurb); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), switch_); + gtk_label_set_width_chars (GTK_LABEL (label), 18); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_container_add (GTK_CONTAINER (hbox), label); + } + + gtk_container_add (GTK_CONTAINER (hbox), switch_); + goa_util_add_row_widget (grid, row, label_text, hbox); + return switch_; +} diff --git a/src/goabackend/goaprovider.h b/src/goabackend/goaprovider.h new file mode 100644 index 0000000..c4bcf91 --- /dev/null +++ b/src/goabackend/goaprovider.h @@ -0,0 +1,114 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_PROVIDER_H__ +#define __GOA_PROVIDER_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_PROVIDER (goa_provider_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GoaProvider, goa_provider, GOA, PROVIDER, GObject); + +typedef struct _GoaProviderPrivate GoaProviderPrivate; + +const gchar *goa_provider_get_provider_type (GoaProvider *self); + +gchar *goa_provider_get_provider_name (GoaProvider *self, + GoaObject *object); + +GIcon *goa_provider_get_provider_icon (GoaProvider *self, + GoaObject *object); + +G_DEPRECATED_FOR(goa_provider_get_provider_features) +GoaProviderGroup goa_provider_get_provider_group (GoaProvider *self); + +GoaProviderFeatures goa_provider_get_provider_features (GoaProvider *self); + +G_DEPRECATED +void goa_provider_set_preseed_data (GoaProvider *self, + GVariant *preseed_data); + +G_DEPRECATED +GVariant *goa_provider_get_preseed_data (GoaProvider *self); + +GoaObject *goa_provider_add_account (GoaProvider *self, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error); + +gboolean goa_provider_refresh_account (GoaProvider *self, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error); + +void goa_provider_show_account (GoaProvider *self, + GoaClient *client, + GoaObject *object, + GtkBox *vbox, + GtkGrid *dummy1, + GtkGrid *dummy2); + +guint goa_provider_get_credentials_generation (GoaProvider *self); + +void goa_provider_get_all (GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_provider_get_all_finish (GList **out_providers, + GAsyncResult *result, + GError **error); + +GoaProvider *goa_provider_get_for_provider_type (const gchar *provider_type); + +/* ---------------------------------------------------------------------------------------------------- */ + +GtkWidget *goa_util_add_row_widget (GtkGrid *grid, + gint row, + const gchar *label_text, + GtkWidget *widget); + +gchar * +goa_util_lookup_keyfile_string (GoaObject *object, + const gchar *key); + +gboolean +goa_util_lookup_keyfile_boolean (GoaObject *object, + const gchar *key); + +void +goa_util_account_notify_property_cb (GObject *object, GParamSpec *pspec, gpointer user_data); + +GtkWidget *goa_util_add_row_switch_from_keyfile_with_blurb (GtkGrid *grid, + gint row, + GoaObject *object, + const gchar *label_text, + const gchar *key, + const gchar *blurb); + +G_END_DECLS + +#endif /* __GOA_PROVIDER_H__ */ diff --git a/src/goabackend/goaproviderfactory.c b/src/goabackend/goaproviderfactory.c new file mode 100644 index 0000000..68f712d --- /dev/null +++ b/src/goabackend/goaproviderfactory.c @@ -0,0 +1,163 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goaproviderfactory.h" + +/* + * SECTION:goaproviderfactory + * @title: GoaProviderFactory + * @short_description: Abstract base class for provider factories + * + * #GoaProviderFactory implementations are used to dynamically create #GoaProvider instances. + */ + +G_DEFINE_ABSTRACT_TYPE (GoaProviderFactory, goa_provider_factory, G_TYPE_OBJECT); + +/* ---------------------------------------------------------------------------------------------------- */ + +/* + * goa_provider_factory_get_provider: + * @factory: A #GoaProviderFactory. + * @provider_name: A provider type identifier (ie. IM protocol names in #GoaTelepathyFactory) + * + * Create a dynamic #GoaProvider for the subclass-specific @provider_name. + * + * Returns: (transfer full): A #GoaProvider (that must be freed + * with g_object_unref()) or %NULL if not found. + */ +GoaProvider * +goa_provider_factory_get_provider (GoaProviderFactory *factory, + const gchar *provider_name) +{ + GoaProviderFactoryClass *klass; + + g_return_val_if_fail (GOA_IS_PROVIDER_FACTORY (factory), NULL); + g_return_val_if_fail (provider_name != NULL, NULL); + + klass = GOA_PROVIDER_FACTORY_GET_CLASS (factory); + g_return_val_if_fail (klass->get_provider != NULL, NULL); + + return klass->get_provider (factory, provider_name); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/* + * goa_provider_factory_get_providers: + * @factory: A #GoaProviderFactory. + * @callback: The function to call when the request is satisfied. + * @user_data: Pointer to pass to @callback. + * + * Get asynchronously a list of #GoaProvider instances handled by @factory. + * + * When the result is ready, @callback will be called in the the thread-default main + * loop this function was called from. You can then call + * goa_provider_factory_get_providers_finish() to get the result + * of the operation. + * + * This is a virtual method that must be implemented by subclasses. + */ +void +goa_provider_factory_get_providers (GoaProviderFactory *factory, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaProviderFactoryClass *klass; + + g_return_if_fail (GOA_IS_PROVIDER_FACTORY (factory)); + + klass = GOA_PROVIDER_FACTORY_GET_CLASS (factory); + g_return_if_fail (klass->get_providers != NULL); + + return klass->get_providers (factory, callback, user_data); +} + +/* + * goa_provider_factory_get_providers_finish: + * @factory: A #GoaProviderFactory. + * @out_providers: (out): Return location for a list of #GoaProvider instances handled by @factory. + * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_provider_factory_get_providers(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_provider_factory_get_providers() + * + * This is a virtual method that subclasses may implement. The default implementation is suitable for + * an implementation of goa_provider_factory_get_providers() using #GTask. + * + * Returns: %TRUE if the list was successfully retrieved, %FALSE if @error is set. + */ +gboolean +goa_provider_factory_get_providers_finish (GoaProviderFactory *factory, + GList **out_providers, + GAsyncResult *result, + GError **error) +{ + GoaProviderFactoryClass *klass; + + g_return_val_if_fail (GOA_IS_PROVIDER_FACTORY (factory), FALSE); + g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + klass = GOA_PROVIDER_FACTORY_GET_CLASS (factory); + return klass->get_providers_finish (factory, out_providers, result, error); +} + +static gboolean +get_providers_finish_default (GoaProviderFactory *factory, + GList **out_providers, + GAsyncResult *result, + GError **error) +{ + GTask *task; + GList *providers; + gboolean had_error; + + g_return_val_if_fail (g_task_is_valid (result, factory), FALSE); + task = G_TASK (result); + + /* Workaround for bgo#764163 */ + had_error = g_task_had_error (task); + providers = g_task_propagate_pointer (task, error); + if (had_error) + return FALSE; + + if (out_providers != NULL) + { + *out_providers = providers; + providers = NULL; + } + + g_list_free_full (providers, g_object_unref); + return TRUE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_provider_factory_init (GoaProviderFactory *provider) +{ +} + +static void +goa_provider_factory_class_init (GoaProviderFactoryClass *klass) +{ + klass->get_providers_finish = get_providers_finish_default; +} diff --git a/src/goabackend/goaproviderfactory.h b/src/goabackend/goaproviderfactory.h new file mode 100644 index 0000000..1a05555 --- /dev/null +++ b/src/goabackend/goaproviderfactory.h @@ -0,0 +1,97 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_PROVIDER_FACTORY_H__ +#define __GOA_PROVIDER_FACTORY_H__ + +#include + +#include "goaprovider.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_PROVIDER_FACTORY (goa_provider_factory_get_type ()) +#define GOA_PROVIDER_FACTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_PROVIDER_FACTORY, GoaProviderFactory)) +#define GOA_PROVIDER_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_PROVIDER_FACTORY, GoaProviderFactoryClass)) +#define GOA_PROVIDER_FACTORY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_PROVIDER_FACTORY, GoaProviderFactoryClass)) +#define GOA_IS_PROVIDER_FACTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_PROVIDER_FACTORY)) +#define GOA_IS_PROVIDER_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_PROVIDER_FACTORY)) + +typedef struct _GoaProviderFactory GoaProviderFactory; +typedef struct _GoaProviderFactoryClass GoaProviderFactoryClass; + +/* + * GoaProviderFactory: + * + * The #GoaProviderFactory structure contains only private data and should + * only be accessed using the provided API. + */ +struct _GoaProviderFactory +{ + /*< private >*/ + GObject parent_instance; +}; + +/* + * GoaProviderFactoryClass: + * @parent_class: The parent class. + * @get_provider: Virtual function for goa_provider_factory_get_provider(). + * @get_providers: Virtual function for goa_provider_factory_get_providers(). + * @get_providers_finish: Virtual function for goa_provider_factory_get_providers_finish(). + * + * Class structure for #GoaProviderFactory. + */ +struct _GoaProviderFactoryClass +{ + GObjectClass parent_class; + + /* Mandatory to implement. */ + GoaProvider *(*get_provider) (GoaProviderFactory *factory, + const gchar *provider_name); + + /* The async method is mandatory to implement, but _finish has a default + * implementation suitable for a GTask. */ + void (*get_providers) (GoaProviderFactory *factory, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*get_providers_finish) (GoaProviderFactory *factory, + GList **out_providers, + GAsyncResult *result, + GError **error); +}; + +GType goa_provider_factory_get_type (void) G_GNUC_CONST; + +GoaProvider *goa_provider_factory_get_provider (GoaProviderFactory *factory, + const gchar *provider_name); + +void goa_provider_factory_get_providers (GoaProviderFactory *factory, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean goa_provider_factory_get_providers_finish (GoaProviderFactory *factory, + GList **out_providers, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* __GOA_PROVIDER_FACTORY_H__ */ diff --git a/src/goabackend/goarestproxy.c b/src/goabackend/goarestproxy.c new file mode 100644 index 0000000..e5d4bb5 --- /dev/null +++ b/src/goabackend/goarestproxy.c @@ -0,0 +1,70 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goarestproxy.h" +#include "goasouplogger.h" + +struct _GoaRestProxy +{ + RestProxy parent_instance; +}; + +struct _GoaRestProxyClass +{ + RestProxyClass parent_class; +}; + +G_DEFINE_TYPE (GoaRestProxy, goa_rest_proxy, REST_TYPE_PROXY); + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_rest_proxy_constructed (GObject *object) +{ + GoaRestProxy *self = GOA_REST_PROXY (object); + SoupLogger *logger = NULL; + + G_OBJECT_CLASS (goa_rest_proxy_parent_class)->constructed (object); + + logger = goa_soup_logger_new (SOUP_LOGGER_LOG_BODY, -1); + rest_proxy_add_soup_feature (REST_PROXY (self), SOUP_SESSION_FEATURE (logger)); + g_object_unref (logger); +} + +static void +goa_rest_proxy_init (GoaRestProxy *self) +{ +} + +static void +goa_rest_proxy_class_init (GoaRestProxyClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + gobject_class->constructed = goa_rest_proxy_constructed; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +RestProxy * +goa_rest_proxy_new (const gchar *url_format, + gboolean binding_required) +{ + return g_object_new (GOA_TYPE_REST_PROXY, "url-format", url_format, "binding-required", binding_required, NULL); +} diff --git a/src/goabackend/goarestproxy.h b/src/goabackend/goarestproxy.h new file mode 100644 index 0000000..04af426 --- /dev/null +++ b/src/goabackend/goarestproxy.h @@ -0,0 +1,50 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_REST_PROXY_H__ +#define __GOA_REST_PROXY_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_REST_PROXY (goa_rest_proxy_get_type ()) + +#define GOA_REST_PROXY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + GOA_TYPE_REST_PROXY, GoaRestProxy)) + +#define GOA_IS_REST_PROXY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ + GOA_TYPE_REST_PROXY)) + +typedef struct _GoaRestProxy GoaRestProxy; +typedef struct _GoaRestProxyClass GoaRestProxyClass; + +GType goa_rest_proxy_get_type (void) G_GNUC_CONST; + +RestProxy *goa_rest_proxy_new (const gchar *url_format, + gboolean binding_required); + +G_END_DECLS + +#endif /* __GOA_REST_PROXY_H__ */ diff --git a/src/goabackend/goasmtpauth.c b/src/goabackend/goasmtpauth.c new file mode 100644 index 0000000..feebcd0 --- /dev/null +++ b/src/goabackend/goasmtpauth.c @@ -0,0 +1,638 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include + +#include "goasmtpauth.h" +#include "goautils.h" + +/* + * SECTION:goasmtpauth + * @title: GoaSmtpAuth + * @short_description: Authentication mechanisms for SMTP + * + * #GoaSmtpAuth implements the PLAIN and LOGIN + * SASL mechanisms (e.g. using usernames / passwords) for SMTP. + */ + +/* + * GoaSmtpAuth: + * + * The #GoaSmtpAuth structure contains only private data and should + * only be accessed using the provided API. + */ +struct _GoaSmtpAuth +{ + GoaMailAuth parent_instance; + + gboolean auth_supported; + gboolean greeting_absent; + gboolean login_supported; + gboolean plain_supported; + gchar *domain; + gchar *username; + gchar *password; +}; + +typedef struct +{ + GoaMailAuthClass parent_class; + +} GoaSmtpAuthClass; + +enum +{ + PROP_0, + PROP_DOMAIN, + PROP_USERNAME, + PROP_PASSWORD +}; + +static gboolean goa_smtp_auth_is_needed (GoaMailAuth *auth); +static gboolean goa_smtp_auth_run_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error); +static gboolean goa_smtp_auth_starttls_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error); + +G_DEFINE_TYPE (GoaSmtpAuth, goa_smtp_auth, GOA_TYPE_MAIL_AUTH); + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +smtp_auth_check_not_220 (const gchar *response, GError **error) +{ + if (!g_str_has_prefix (response, "220")) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + "Unexpected response `%s'", + response); + return TRUE; + } + + return FALSE; +} + +static gboolean +smtp_auth_check_not_235 (const gchar *response, GError **error) +{ + if (!g_str_has_prefix (response, "235")) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Authentication failed")); + return TRUE; + } + + return FALSE; +} + +static gboolean +smtp_auth_check_not_250 (const gchar *response, GError **error) +{ + if (!g_str_has_prefix (response, "250") || strlen (response) < 4) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + "Unexpected response `%s'", + response); + return TRUE; + } + + return FALSE; +} + +static gboolean +smtp_auth_check_not_334_login_password (const gchar *response, GError **error) +{ + if (!g_str_has_prefix (response, "334 UGFzc3dvcmQ6")) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + "Unexpected response `%s'", + response); + return TRUE; + } + + return FALSE; +} + +static gboolean +smtp_auth_check_421 (const gchar *response, GError **error) +{ + if (g_str_has_prefix (response, "421")) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Service not available")); + return TRUE; + } + + return FALSE; +} + +static gboolean +smtp_auth_check_454 (const gchar *response, GError **error) +{ + if (g_str_has_prefix (response, "454")) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("TLS not available")); + return TRUE; + } + + return FALSE; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +smtp_auth_check_greeting (GDataInputStream *input, GCancellable *cancellable, GError **error) +{ + gboolean ret = FALSE; + gchar *response = NULL; + + greeting_again: + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (smtp_auth_check_421 (response, error)) + goto out; + if (smtp_auth_check_not_220 (response, error)) + goto out; + + if (response[3] == '-') + { + g_clear_pointer (&response, g_free); + goto greeting_again; + } + + ret = TRUE; + + out: + g_free (response); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_smtp_auth_finalize (GObject *object) +{ + GoaSmtpAuth *self = GOA_SMTP_AUTH (object); + + g_free (self->domain); + g_free (self->username); + g_free (self->password); + + G_OBJECT_CLASS (goa_smtp_auth_parent_class)->finalize (object); +} + +static void +goa_smtp_auth_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaSmtpAuth *self = GOA_SMTP_AUTH (object); + + switch (prop_id) + { + case PROP_DOMAIN: + g_value_set_string (value, self->domain); + break; + + case PROP_USERNAME: + g_value_set_string (value, self->username); + break; + + case PROP_PASSWORD: + g_value_set_string (value, self->password); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +goa_smtp_auth_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaSmtpAuth *self = GOA_SMTP_AUTH (object); + + switch (prop_id) + { + case PROP_DOMAIN: + self->domain = g_value_dup_string (value); + break; + + case PROP_USERNAME: + self->username = g_value_dup_string (value); + break; + + case PROP_PASSWORD: + self->password = g_value_dup_string (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + + +static void +goa_smtp_auth_init (GoaSmtpAuth *self) +{ +} + +static void +goa_smtp_auth_class_init (GoaSmtpAuthClass *klass) +{ + GObjectClass *gobject_class; + GoaMailAuthClass *auth_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_smtp_auth_finalize; + gobject_class->get_property = goa_smtp_auth_get_property; + gobject_class->set_property = goa_smtp_auth_set_property; + + auth_class = GOA_MAIL_AUTH_CLASS (klass); + auth_class->is_needed = goa_smtp_auth_is_needed; + auth_class->run_sync = goa_smtp_auth_run_sync; + auth_class->starttls_sync = goa_smtp_auth_starttls_sync; + + /** + * GoaSmtpAuth:domain: + * + * The domain. + */ + g_object_class_install_property (gobject_class, + PROP_DOMAIN, + g_param_spec_string ("domain", + "domain", + "domain", + NULL, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + /** + * GoaSmtpAuth:user-name: + * + * The user name. + */ + g_object_class_install_property (gobject_class, + PROP_USERNAME, + g_param_spec_string ("user-name", + "user-name", + "user-name", + NULL, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + /** + * GoaSmtpAuth:password: + * + * The password. + */ + g_object_class_install_property (gobject_class, + PROP_PASSWORD, + g_param_spec_string ("password", + "password", + "password", + NULL, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * goa_smtp_auth_new: + * @domain: The domain to use. + * @username: The user name to use. + * @password: The password to use. + * + * Creates a new #GoaMailAuth to be used for username/password + * authentication using LOGIN or PLAIN over SMTP. + * + * Returns: (type GoaSmtpAuth): A #GoaSmtpAuth. Free with + * g_object_unref(). + */ +GoaMailAuth * +goa_smtp_auth_new (const gchar *domain, + const gchar *username, + const gchar *password) +{ + g_return_val_if_fail (domain != NULL && domain[0] != '\0', NULL); + g_return_val_if_fail (username != NULL, NULL); + g_return_val_if_fail (password != NULL && password[0] != '\0', NULL); + + return GOA_MAIL_AUTH (g_object_new (GOA_TYPE_SMTP_AUTH, + "domain", domain, + "user-name", username, + "password", password, + NULL)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +gboolean +goa_smtp_auth_is_login (GoaSmtpAuth *self) +{ + return self->login_supported; +} + +gboolean +goa_smtp_auth_is_plain (GoaSmtpAuth *self) +{ + return self->plain_supported; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_smtp_auth_is_needed (GoaMailAuth *auth) +{ + GoaSmtpAuth *self = GOA_SMTP_AUTH (auth); + return self->auth_supported; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_smtp_auth_run_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error) +{ + GoaSmtpAuth *self = GOA_SMTP_AUTH (auth); + GDataInputStream *input; + GDataOutputStream *output; + gboolean ret = FALSE; + gchar *auth_arg_base64 = NULL; + gchar *auth_arg_plain = NULL; + gchar *request = NULL; + gchar *response = NULL; + gsize auth_arg_plain_len; + + input = goa_mail_auth_get_input (auth); + output = goa_mail_auth_get_output (auth); + + /* Check the greeting, if there is one */ + + if (!self->greeting_absent) + { + if (!smtp_auth_check_greeting (input, cancellable, error)) + goto out; + } + + /* Send EHLO */ + + request = g_strdup_printf ("EHLO %s\r\n", self->domain); + g_debug ("> %s", request); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + /* Check which SASL mechanisms are supported */ + + ehlo_again: + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (smtp_auth_check_421 (response, error)) + goto out; + if (smtp_auth_check_not_250 (response, error)) + goto out; + + if (g_str_has_prefix (response + 4, "AUTH")) + { + self->auth_supported = TRUE; + if (strstr (response, "PLAIN") != NULL) + self->plain_supported = TRUE; + else if (strstr (response, "LOGIN") != NULL) + self->login_supported = TRUE; + } + + if (response[3] == '-') + { + g_free (response); + goto ehlo_again; + } + else if (!self->auth_supported) + { + ret = TRUE; + goto out; + } + else if (!self->login_supported && !self->plain_supported) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_SUPPORTED, + _("Unknown authentication mechanism")); + goto out; + } + g_clear_pointer (&response, g_free); + + /* Try different SASL mechanisms */ + + if (self->plain_supported) + { + /* AUTH PLAIN */ + + auth_arg_plain = g_strdup_printf ("%s%c%s%c%s", self->username, '\0', self->username, '\0', self->password); + auth_arg_plain_len = 2 * strlen (self->username) + 2 + strlen (self->password); + auth_arg_base64 = g_base64_encode ((guchar *) auth_arg_plain, auth_arg_plain_len); + + request = g_strdup_printf ("AUTH PLAIN %s\r\n", auth_arg_base64); + g_debug ("> AUTH PLAIN ********************"); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + } + else + { + /* AUTH LOGIN */ + + auth_arg_plain = g_strdup (self->username); + auth_arg_plain_len = strlen (self->username); + auth_arg_base64 = g_base64_encode ((guchar *) auth_arg_plain, auth_arg_plain_len); + + request = g_strdup_printf ("AUTH LOGIN %s\r\n", auth_arg_base64); + g_debug ("> AUTH LOGIN ********************"); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (smtp_auth_check_not_334_login_password (response, error)) + goto out; + + g_free (auth_arg_plain); + g_free (auth_arg_base64); + + auth_arg_plain = g_strdup (self->password); + auth_arg_plain_len = strlen (self->password); + auth_arg_base64 = g_base64_encode ((guchar *) auth_arg_plain, auth_arg_plain_len); + + request = g_strdup_printf ("%s\r\n", auth_arg_base64); + g_debug ("> ********************"); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + } + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (smtp_auth_check_not_235 (response, error)) + goto out; + g_clear_pointer (&response, g_free); + + ret = TRUE; + + out: + g_free (auth_arg_base64); + g_free (auth_arg_plain); + g_free (response); + g_free (request); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +goa_smtp_auth_starttls_sync (GoaMailAuth *auth, + GCancellable *cancellable, + GError **error) +{ + GoaSmtpAuth *self = GOA_SMTP_AUTH (auth); + GDataInputStream *input; + GDataOutputStream *output; + gboolean ret = FALSE; + gboolean starttls_supported = FALSE; + gchar *request = NULL; + gchar *response = NULL; + + input = goa_mail_auth_get_input (auth); + output = goa_mail_auth_get_output (auth); + + /* Check the greeting */ + + if (!smtp_auth_check_greeting (input, cancellable, error)) + goto out; + + /* Send EHLO */ + + request = g_strdup_printf ("EHLO %s\r\n", self->domain); + g_debug ("> %s", request); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + /* Check if STARTTLS is supported or not */ + + ehlo_again: + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (smtp_auth_check_421 (response, error)) + goto out; + if (smtp_auth_check_not_250 (response, error)) + goto out; + + if (g_str_has_prefix (response + 4, "STARTTLS")) + starttls_supported = TRUE; + + if (response[3] == '-') + { + g_free (response); + goto ehlo_again; + } + else if (!starttls_supported) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_NOT_SUPPORTED, + _("Server does not support STARTTLS")); + goto out; + } + g_clear_pointer (&response, g_free); + + /* Send STARTTLS */ + + request = g_strdup ("STARTTLS\r\n"); + g_debug ("> %s", request); + if (!g_data_output_stream_put_string (output, request, cancellable, error)) + goto out; + g_clear_pointer (&request, g_free); + + response = goa_utils_data_input_stream_read_line (input, NULL, cancellable, error); + if (response == NULL) + goto out; + g_debug ("< %s", response); + if (smtp_auth_check_454 (response, error)) + goto out; + if (smtp_auth_check_not_220 (response, error)) + goto out; + g_clear_pointer (&response, g_free); + + /* There won't be a greeting after this */ + self->greeting_absent = TRUE; + + ret = TRUE; + + out: + g_free (response); + g_free (request); + return ret; +} diff --git a/src/goabackend/goasmtpauth.h b/src/goabackend/goasmtpauth.h new file mode 100644 index 0000000..4d1919a --- /dev/null +++ b/src/goabackend/goasmtpauth.h @@ -0,0 +1,49 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_SMTP_AUTH_H__ +#define __GOA_SMTP_AUTH_H__ + +#include +#include +#include + +#include "goamailauth.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_SMTP_AUTH (goa_smtp_auth_get_type ()) +#define GOA_SMTP_AUTH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_SMTP_AUTH, GoaSmtpAuth)) +#define GOA_IS_SMTP_AUTH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_SMTP_AUTH)) + +typedef struct _GoaSmtpAuth GoaSmtpAuth; + +GType goa_smtp_auth_get_type (void) G_GNUC_CONST; +GoaMailAuth *goa_smtp_auth_new (const gchar *domain, + const gchar *user_name, + const gchar *password); +gboolean goa_smtp_auth_is_login (GoaSmtpAuth *self); +gboolean goa_smtp_auth_is_plain (GoaSmtpAuth *self); + +G_END_DECLS + +#endif /* __GOA_SMTP_AUTH_H__ */ diff --git a/src/goabackend/goasouplogger.c b/src/goabackend/goasouplogger.c new file mode 100644 index 0000000..9b0a53d --- /dev/null +++ b/src/goabackend/goasouplogger.c @@ -0,0 +1,68 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goasouplogger.h" + +struct _GoaSoupLogger +{ + SoupLogger parent_instance; +}; + +G_DEFINE_TYPE (GoaSoupLogger, goa_soup_logger, SOUP_TYPE_LOGGER); + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_soup_logger_printer (SoupLogger *logger, + SoupLoggerLogLevel level, + gchar direction, + const gchar *data, + gpointer user_data) +{ + gchar *message; + + message = g_strdup_printf ("%c %s", direction, data); + g_log_default_handler (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, message, NULL); + g_free (message); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_soup_logger_init (GoaSoupLogger *self) +{ + soup_logger_set_printer (SOUP_LOGGER (self), goa_soup_logger_printer, NULL, NULL); +} + +static void +goa_soup_logger_class_init (GoaSoupLoggerClass *klass) +{ +} + +/* ---------------------------------------------------------------------------------------------------- */ + +SoupLogger * +goa_soup_logger_new (SoupLoggerLogLevel level, + gint max_body_size) +{ + return g_object_new (GOA_TYPE_SOUP_LOGGER, "level", level, "max-body-size", max_body_size, NULL); +} diff --git a/src/goabackend/goasouplogger.h b/src/goabackend/goasouplogger.h new file mode 100644 index 0000000..4a99785 --- /dev/null +++ b/src/goabackend/goasouplogger.h @@ -0,0 +1,38 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_SOUP_LOGGER_H__ +#define __GOA_SOUP_LOGGER_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_SOUP_LOGGER (goa_soup_logger_get_type ()) +G_DECLARE_FINAL_TYPE (GoaSoupLogger, goa_soup_logger, GOA, SOUP_LOGGER, SoupLogger); + +SoupLogger *goa_soup_logger_new (SoupLoggerLogLevel level, + gint max_body_size); + +G_END_DECLS + +#endif /* __GOA_SOUP_LOGGER_H__ */ diff --git a/src/goabackend/goatelepathyfactory.c b/src/goabackend/goatelepathyfactory.c new file mode 100644 index 0000000..130c243 --- /dev/null +++ b/src/goabackend/goatelepathyfactory.c @@ -0,0 +1,151 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goatelepathyfactory.h" +#include "goaprovider-priv.h" +#include "goatelepathyprovider.h" + +/* + * SECTION:goatelepathyfactory + * @title: GoaTelepathyFactory + * @short_description: Factory for #GoaTelepathyProvider instances + * + * #GoaTelepathyFactory dynamically creates instances of #GoaTelepathyProvider + * based on the protocols available through Telepathy. + * + * It accepts the protocol names from the Telepathy specification as + * @provider_name in goa_provider_factory_get_provider(). + */ + +G_DEFINE_TYPE_WITH_CODE (GoaTelepathyFactory, goa_telepathy_factory, GOA_TYPE_PROVIDER_FACTORY, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_TELEPATHY_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaProvider * +get_provider (GoaProviderFactory *factory, + const gchar *provider_name) +{ + g_return_val_if_fail (GOA_IS_TELEPATHY_FACTORY (factory), NULL); + + return GOA_PROVIDER (goa_telepathy_provider_new_from_protocol_name (provider_name)); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +free_list_and_unref (gpointer data) +{ + g_list_free_full (data, g_object_unref); +} + +static void +get_protocols_cb (GObject *source, + GAsyncResult *res, + gpointer user_data) +{ + GTask *outer_task = user_data; + GList *protocols = NULL; + GList *ret; + GList *l; + GError *error = NULL; + GQuark facebook_quark; + +#if GOA_GOOGLE_ENABLED + GQuark google_talk_quark; +#endif + + if (!tpaw_protocol_get_all_finish (&protocols, res, &error)) + { + g_task_return_error (outer_task, error); + g_object_unref (outer_task); + return; + } + + facebook_quark = g_quark_from_static_string ("facebook"); + +#if GOA_GOOGLE_ENABLED + google_talk_quark = g_quark_from_static_string ("google-talk"); +#endif + + ret = NULL; + for (l = protocols; l != NULL; l = l->next) + { + TpawProtocol *protocol = l->data; + const gchar *service_name = tpaw_protocol_get_service_name (protocol); + GQuark service_quark = g_quark_try_string (service_name); + GoaTelepathyProvider *provider; + + /* This service does not exist anymore, so skip it. */ + if (service_quark == facebook_quark) + continue; + + /* If the service is handled natively by GOA, so we don't allow + * the creation of a Telepathy-only account. */ +#if GOA_GOOGLE_ENABLED + if (service_quark == google_talk_quark) + continue; +#endif + + provider = goa_telepathy_provider_new_from_protocol (protocol); + ret = g_list_prepend (ret, provider); + } + ret = g_list_reverse (ret); + g_list_free_full (protocols, g_object_unref); + + g_task_return_pointer (outer_task, ret, free_list_and_unref); + g_object_unref (outer_task); +} + +static void +get_providers (GoaProviderFactory *factory, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + + g_return_if_fail (GOA_IS_TELEPATHY_FACTORY (factory)); + + task = g_task_new (factory, NULL, callback, user_data); + tpaw_protocol_get_all_async (get_protocols_cb, task); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_telepathy_factory_init (GoaTelepathyFactory *provider) +{ +} + +static void +goa_telepathy_factory_class_init (GoaTelepathyFactoryClass *klass) +{ + GoaProviderFactoryClass *factory_class; + + factory_class = GOA_PROVIDER_FACTORY_CLASS (klass); + factory_class->get_provider = get_provider; + factory_class->get_providers = get_providers; +} diff --git a/src/goabackend/goatelepathyfactory.h b/src/goabackend/goatelepathyfactory.h new file mode 100644 index 0000000..f910ccc --- /dev/null +++ b/src/goabackend/goatelepathyfactory.h @@ -0,0 +1,55 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_TELEPATHY_FACTORY_H__ +#define __GOA_TELEPATHY_FACTORY_H__ + +#include "goaproviderfactory.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_TELEPATHY_FACTORY (goa_telepathy_factory_get_type ()) +#define GOA_TELEPATHY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TELEPATHY_FACTORY, GoaTelepathyFactory)) +#define GOA_TELEPATHY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_TYPE_TELEPATHY_FACTORY, GoaTelepathyFactoryClass)) +#define GOA_TELEPATHY_FACTORY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_TYPE_TELEPATHY_FACTORY, GoaTelepathyFactoryClass)) +#define GOA_IS_TELEPATHY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TELEPATHY_FACTORY)) +#define GOA_IS_TELEPATHY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_TYPE_TELEPATHY_FACTORY)) + +typedef struct _GoaTelepathyFactory GoaTelepathyFactory; +typedef struct _GoaTelepathyFactoryClass GoaTelepathyFactoryClass; + +struct _GoaTelepathyFactory +{ + /*< private >*/ + GoaProviderFactory parent_instance; +}; + +struct _GoaTelepathyFactoryClass +{ + GoaProviderFactoryClass parent_class; +}; + +GType goa_telepathy_factory_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __GOA_TELEPATHY_FACTORY_H__ */ diff --git a/src/goabackend/goatelepathyprovider.c b/src/goabackend/goatelepathyprovider.c new file mode 100644 index 0000000..188d2be --- /dev/null +++ b/src/goabackend/goatelepathyprovider.c @@ -0,0 +1,1137 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include +#include +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goatelepathyprovider.h" +#include "goatpaccountlinker.h" +#include "goaobjectskeletonutils.h" +#include "goautils.h" + +typedef struct _GoaTelepathyProviderPrivate GoaTelepathyProviderPrivate; + +struct _GoaTelepathyProviderPrivate +{ + TpawProtocol *protocol; + gchar *protocol_name; + gchar *provider_type; +}; + +enum { + PROP_0, + PROP_PROTOCOL, + PROP_PROTOCOL_NAME, + NUM_PROPERTIES +}; + +static GParamSpec *properties[NUM_PROPERTIES] = { NULL, }; + +struct _GoaTelepathyProvider +{ + GoaProvider parent_instance; + GoaTelepathyProviderPrivate *priv; +}; + +typedef struct _GoaTelepathyProviderClass GoaTelepathyProviderClass; + +struct _GoaTelepathyProviderClass +{ + GoaProviderClass parent_class; +}; + +G_DEFINE_TYPE (GoaTelepathyProvider, goa_telepathy_provider, GOA_TYPE_PROVIDER); + +/* ---------------------------------------------------------------------------------------------------- */ + +static GoaTpAccountLinker *tp_linker = NULL; +static guint name_watcher_id = 0; + +/* ---------------------------------------------------------------------------------------------------- */ + +/* Telepathy / telepathy-account widgets utility functions. */ + +static void +account_settings_ready_cb (TpawAccountSettings *settings, + GParamSpec *pspec, + gpointer user_data) +{ + GMainLoop *loop = user_data; + + g_main_loop_quit (loop); +} + +static void +wait_for_account_settings_ready (TpawAccountSettings *settings, + GMainLoop *loop) +{ + if (!tpaw_account_settings_is_ready (settings)) + { + g_signal_connect (settings, "notify::ready", + G_CALLBACK (account_settings_ready_cb), loop); + g_main_loop_run (loop); + } +} + +typedef struct +{ + GMainLoop *loop; + GError *error; + gboolean ret; +} PrepareTpProxyData; + +static void +proxy_prepared_cb (GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + PrepareTpProxyData *data = user_data; + + data->ret = tp_proxy_prepare_finish (object, res, &data->error); + g_main_loop_quit (data->loop); +} + +static gboolean +prepare_tp_proxy (gpointer proxy, + const GQuark *features, + GMainLoop *loop, + GError **error) +{ + PrepareTpProxyData data = { NULL, }; + + data.loop = loop; + + tp_proxy_prepare_async (proxy, features, proxy_prepared_cb, &data); + g_main_loop_run (data.loop); + + if (data.error != NULL) + { + g_propagate_error (error, data.error); + g_clear_error (&data.error); + } + + return data.ret; +} + +static TpAccount * +find_tp_account (GoaObject *goa_object, + GMainLoop *loop, + GError **out_error) +{ + GoaAccount *goa_account = NULL; + const gchar *id = NULL; + TpAccountManager *account_manager; + GList *tp_accounts = NULL; + GList *l = NULL; + TpAccount *tp_account = NULL; + GError *error = NULL; + + goa_account = goa_object_peek_account (goa_object); + id = goa_account_get_identity (goa_account); + + account_manager = tp_account_manager_dup (); + if (!prepare_tp_proxy (account_manager, NULL, loop, &error)) + goto out; + + tp_accounts = tp_account_manager_dup_valid_accounts (account_manager); + for (l = tp_accounts; l != NULL; l = l->next) + { + if (g_strcmp0 (tp_proxy_get_object_path (l->data), id) == 0) + { + tp_account = g_object_ref (l->data); + break; + } + } + + if (tp_account == NULL) + { + g_set_error (&error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Telepathy chat account not found")); + goto out; + } + +out: + if (error != NULL) + g_propagate_error (out_error, error); + + g_clear_error (&error); + g_clear_object (&account_manager); + g_list_free_full (tp_accounts, g_object_unref); + + return tp_account; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (provider)->priv; + return priv->provider_type; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (provider)->priv; + + return g_strdup (tpaw_protocol_name_to_display_name (priv->protocol_name)); +} + +static GIcon * +get_provider_icon (GoaProvider *provider, + GoaObject *object) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (provider)->priv; + const gchar *icon_names[3]; + gchar *icon_name; + GIcon *icon; + + /* Use symbolic icons for generic protocols. Use icons for the + * branded ones if it matches their visual identity. Otherwise do + * not use an icon. + */ + if (g_strcmp0 (priv->protocol_name, "irc") == 0 + || g_strcmp0 (priv->protocol_name, "jabber") == 0 + || g_strcmp0 (priv->protocol_name, "local-xmpp") == 0 + || g_strcmp0 (priv->protocol_name, "sip") == 0) + { + icon_name = g_strdup ("user-available-symbolic"); + } + else if (g_strcmp0 (priv->protocol_name, "aim") == 0 + || g_strcmp0 (priv->protocol_name, "gadugadu") == 0 + || g_strcmp0 (priv->protocol_name, "silc") == 0) + { + icon_name = tpaw_protocol_icon_name (priv->protocol_name); + } + else + { + icon_name = g_strdup ("goa-account"); + } + + icon_names[0] = icon_name; + /* If the icon doesn't exist, just try with the default icon. */ + icon_names[1] = "goa-account"; + icon_names[2] = NULL; + icon = g_themed_icon_new_from_names ((gchar **) icon_names, -1); + + g_free (icon_name); + + return icon; +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_CHAT; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_CHAT; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +on_name_acquired (GDBusConnection *connection, + const gchar *name, + const gchar *name_owner, + gpointer user_data) +{ + tp_linker = goa_tp_account_linker_new (); + g_bus_unwatch_name (name_watcher_id); + name_watcher_id = 0; +} + +static void +initialize (GoaProvider *provider) +{ + static gsize once_init_value = 0; + + if (g_once_init_enter (&once_init_value)) + { + name_watcher_id = g_bus_watch_name (G_BUS_TYPE_SESSION, + "org.gnome.OnlineAccounts", + G_BUS_NAME_WATCHER_FLAGS_NONE, + on_name_acquired, + NULL, + NULL, + NULL); + + g_once_init_leave (&once_init_value, 1); + } +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GMainLoop *loop; + GoaObject *ret; + GError *error; + + GoaTelepathyProvider *provider; + GtkDialog *dialog; + GtkBox *vbox; + gboolean close_received; + + TpAccount *tp_account; + + GoaClient *goa_client; + guint goa_account_added_id; +} AddAccountData; + +static void +quit_main_loop_if_finished (AddAccountData *data) +{ + if (data->ret != NULL && data->close_received) + g_main_loop_quit (data->loop); +} + +static void +run_main_loop_if_needed (AddAccountData *data) +{ + if (data->ret == NULL || !data->close_received) + g_main_loop_run (data->loop); +} + +static gboolean +check_goa_object_match (AddAccountData *data, + GoaObject *goa_object) +{ + GoaTelepathyProviderPrivate *priv = data->provider->priv; + GoaAccount *goa_account = NULL; + const gchar *provider_type = NULL; + const gchar *goa_id = NULL; + const gchar *tp_id = NULL; + + if (data->tp_account == NULL) + { + /* Still waiting for the creation of the TpAccount */ + return FALSE; + } + + goa_account = goa_object_peek_account (goa_object); + provider_type = goa_account_get_provider_type (goa_account); + if (g_strcmp0 (provider_type, priv->provider_type) != 0) + return FALSE; + + /* The backend-specific identity is set to the object path of the + * corresponding Telepathy account object. */ + goa_id = goa_account_get_identity (goa_account); + tp_id = tp_proxy_get_object_path (TP_PROXY (data->tp_account)); + if (g_strcmp0 (goa_id, tp_id) == 0) + { + /* Found it! */ + data->ret = g_object_ref (goa_object); + quit_main_loop_if_finished (data); + return TRUE; + } + + return FALSE; +} + +static gboolean +check_existing_goa_accounts (AddAccountData *data) +{ + GList *goa_accounts = NULL; + GList *l = NULL; + gboolean found = FALSE; + + if (data->tp_account == NULL) + return FALSE; + + goa_accounts = goa_client_get_accounts (data->goa_client); + for (l = goa_accounts; l != NULL; l = l->next) + { + if (check_goa_object_match (data, l->data)) + { + found = TRUE; + break; + } + } + g_list_free_full (goa_accounts, g_object_unref); + + return found; +} + +static void +tp_account_created_cb (TpawAccountWidget *widget, + TpAccount *tp_account, + AddAccountData *data) +{ + g_assert (data->tp_account == NULL); + data->tp_account = g_object_ref (tp_account); + + check_existing_goa_accounts (data); +} + +static void +goa_account_added_cb (GoaClient *client, + GoaObject *goa_object, + gpointer user_data) +{ + AddAccountData *data = user_data; + + check_goa_object_match (data, goa_object); +} + +static void +account_widget_close_cb (TpawAccountWidget *widget, + GtkResponseType response, + AddAccountData *data) +{ + data->close_received = TRUE; + quit_main_loop_if_finished (data); +} + +static GoaObject * +add_account (GoaProvider *provider, + GoaClient *client, + GtkDialog *dialog, + GtkBox *vbox, + GError **error) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (provider)->priv; + AddAccountData data; + TpawAccountSettings *settings = NULL; + TpawAccountWidget *account_widget = NULL; + gint response; + gint width; + + settings = tpaw_protocol_create_account_settings (priv->protocol); + if (settings == NULL) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Failed to create a user interface for %s"), + priv->protocol != NULL ? + tpaw_protocol_get_protocol_name (priv->protocol) : + "(null)"); + return NULL; + } + + memset (&data, 0, sizeof (AddAccountData)); + data.loop = g_main_loop_new (NULL, FALSE); + data.error = NULL; + data.provider = GOA_TELEPATHY_PROVIDER (provider); + data.dialog = dialog; + data.vbox = vbox; + + data.goa_client = client; + data.goa_account_added_id = g_signal_connect (data.goa_client, + "account-added", G_CALLBACK (goa_account_added_cb), &data); + + wait_for_account_settings_ready (settings, data.loop); + + account_widget = tpaw_account_widget_new_for_protocol (settings, + dialog, TRUE); + gtk_container_add (GTK_CONTAINER (vbox), GTK_WIDGET (account_widget)); + gtk_widget_show (GTK_WIDGET (account_widget)); + g_signal_connect (account_widget, "account-created", + G_CALLBACK (tp_account_created_cb), &data); + g_signal_connect (account_widget, "close", + G_CALLBACK (account_widget_close_cb), &data); + + /* The dialog now contains a lot of empty space between the account widget + * and the buttons. We force it's vertical size to be just right to fit the + * widget. */ + gtk_window_get_size (GTK_WINDOW (dialog), &width, NULL); + gtk_window_set_default_size (GTK_WINDOW (dialog), width, -1); + + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response != GTK_RESPONSE_OK && response != GTK_RESPONSE_APPLY) + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + if (data.error != NULL) + { + /* An error could have been set by a callback */ + goto out; + } + + /* We wait for the account to be created */ + run_main_loop_if_needed (&data); + +out: + if (data.error != NULL) + g_propagate_error (error, data.error); + else + g_assert (data.ret != NULL); + + if (data.goa_account_added_id) + g_signal_handler_disconnect (data.goa_client, data.goa_account_added_id); + + g_clear_pointer (&data.loop, g_main_loop_unref); + g_clear_object (&data.tp_account); + + return data.ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +account_dialog_widget_cancelled_cb (TpawAccountWidget *account_widget, + gpointer user_data) +{ + GError **error = user_data; + + g_set_error (error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); +} + +static gboolean +edit_connection_parameters (GoaObject *goa_object, + GtkWindow *parent, + GError **out_error) +{ + GMainLoop *loop = NULL; + TpAccount *tp_account = NULL; + TpawAccountSettings *settings = NULL; + GtkWidget *dialog = NULL; + TpawAccountWidget *account_widget = NULL; + GtkWidget *content_area = NULL; + gboolean ret; + GError *error = NULL; + + loop = g_main_loop_new (NULL, FALSE); + + tp_account = find_tp_account (goa_object, loop, &error); + if (tp_account == NULL) + goto out; + + settings = tpaw_account_settings_new_for_account (tp_account); + wait_for_account_settings_ready (settings, loop); + + dialog = gtk_dialog_new_with_buttons (_("Connection Settings"), + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + NULL, NULL); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + + account_widget = tpaw_account_widget_new_for_protocol (settings, + GTK_DIALOG (dialog), FALSE); + gtk_widget_set_margin_end (GTK_WIDGET (account_widget), 6); + gtk_widget_set_margin_start (GTK_WIDGET (account_widget), 6); + gtk_widget_set_margin_top (GTK_WIDGET (account_widget), 6); + g_signal_connect (account_widget, "cancelled", + G_CALLBACK (account_dialog_widget_cancelled_cb), &error); + g_signal_connect_swapped (account_widget, "close", + G_CALLBACK (g_main_loop_quit), loop); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_pack_start (GTK_BOX (content_area), GTK_WIDGET (account_widget), + TRUE, TRUE, 0); + + gtk_widget_show (GTK_WIDGET (account_widget)); + gtk_widget_show (dialog); + + /* Wait for the dialog to be dismissed */ + g_main_loop_run (loop); + + gtk_widget_destroy (dialog); + +out: + if (error != NULL) + { + g_propagate_error (out_error, error); + ret = FALSE; + } + else + { + ret = TRUE; + } + + g_clear_object (&settings); + g_clear_object (&tp_account); + g_clear_pointer (&loop, g_main_loop_unref); + + return ret; +} + +static gboolean +refresh_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkWindow *parent, + GError **error) +{ + return edit_connection_parameters (object, parent, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + GMainLoop *loop; + GError *error; +} EditPersonalDetailsData; + +static void +user_info_apply_cb (GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + EditPersonalDetailsData *data = user_data; + + tpaw_user_info_apply_finish (TPAW_USER_INFO (object), res, &data->error); + g_main_loop_quit (data->loop); +} + +static gboolean +personal_details_timeout_cb (gpointer user_data) +{ + EditPersonalDetailsData *data = user_data; + + g_main_loop_quit (data->loop); + return G_SOURCE_REMOVE; +} + +static gboolean +edit_personal_details (GoaObject *goa_object, + GtkWindow *parent, + GError **error) +{ + EditPersonalDetailsData data; + TpAccount *tp_account = NULL; + GtkWidget *dialog = NULL; + GtkWidget *user_info = NULL; + GtkWidget *content_area = NULL; + gint response; + gboolean ret = FALSE; + + memset (&data, 0, sizeof (EditPersonalDetailsData)); + data.loop = g_main_loop_new (NULL, FALSE); + + tp_account = find_tp_account (goa_object, data.loop, &data.error); + if (tp_account == NULL) + goto out; + + dialog = gtk_dialog_new_with_buttons (_("Personal Details"), + parent, + GTK_DIALOG_MODAL + | GTK_DIALOG_DESTROY_WITH_PARENT + | GTK_DIALOG_USE_HEADER_BAR, + _("_Cancel"), GTK_RESPONSE_CANCEL, + _("_OK"), GTK_RESPONSE_OK, + NULL); + gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); + + user_info = tpaw_user_info_new (tp_account); + gtk_widget_set_margin_end (user_info, 6); + gtk_widget_set_margin_start (user_info, 6); + gtk_widget_set_margin_top (user_info, 6); + gtk_widget_show (user_info); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_pack_start (GTK_BOX (content_area), user_info, TRUE, TRUE, 0); + + g_timeout_add (100, personal_details_timeout_cb, &data); + g_main_loop_run (data.loop); + + response = gtk_dialog_run (GTK_DIALOG (dialog)); + if (response == GTK_RESPONSE_OK) + { + tpaw_user_info_apply_async (TPAW_USER_INFO (user_info), + user_info_apply_cb, &data); + g_main_loop_run (data.loop); + if (data.error != NULL) + goto out; + } + else + { + g_set_error (&data.error, + GOA_ERROR, + GOA_ERROR_DIALOG_DISMISSED, + _("Dialog was dismissed")); + goto out; + } + + ret = TRUE; + +out: + if (data.error != NULL) + { + g_propagate_error (error, data.error); + } + + g_clear_pointer (&dialog, gtk_widget_destroy); + g_clear_object (&tp_account); + g_clear_pointer (&data.loop, g_main_loop_unref); + + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account; + gboolean chat_enabled; + gboolean ret; + + account = NULL; + ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_telepathy_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Chat */ + chat_enabled = g_key_file_get_boolean (key_file, group, "ChatEnabled", NULL); + goa_object_skeleton_attach_chat (object, chat_enabled); + + if (just_added) + { + goa_account_set_chat_disabled (account, !chat_enabled); + g_signal_connect (account, + "notify::chat-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "ChatEnabled"); + } + + ret = TRUE; + +out: + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +remove_account_remove_tp_account_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GError *error; + GTask *task = G_TASK (user_data); + + error = NULL; + if (!goa_tp_account_linker_remove_tp_account_finish (tp_linker, res, &error)) + { + g_task_return_error (task, error); + goto out; + } + + g_task_return_boolean (task, TRUE); + + out: + g_object_unref (task); +} + +static void +remove_account (GoaProvider *provider, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaTelepathyProvider *self = GOA_TELEPATHY_PROVIDER (provider); + GTask *task; + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, remove_account); + + goa_tp_account_linker_remove_tp_account (tp_linker, + object, + cancellable, + remove_account_remove_tp_account_cb, + g_object_ref (task)); + + g_object_unref (task); +} + +static gboolean +remove_account_finish (GoaProvider *provider, + GAsyncResult *res, + GError **error) +{ + GoaTelepathyProvider *self = GOA_TELEPATHY_PROVIDER (provider); + GTask *task; + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == remove_account, FALSE); + + return g_task_propagate_boolean (task, error); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +typedef struct +{ + guint ref_count; + GoaObject *object; + GtkWindow *parent; +} EditData; + +static EditData * +edit_data_new (GoaObject *object, + GtkWindow *parent) +{ + EditData *data; + + data = g_slice_new0 (EditData); + data->ref_count = 1; + data->object = g_object_ref (object); + data->parent = parent; + + return data; +} + +static void +edit_data_unref (EditData *data) +{ + data->ref_count--; + if (data->ref_count >= 1) + return; + + g_object_unref (data->object); + g_slice_free (EditData, data); +} + +static void +edit_button_destroy_cb (GtkWidget *button, + gpointer user_data) +{ + EditData *data = user_data; + + edit_data_unref (data); +} + +static void +edit_data_handle_button (EditData *data, + GtkWidget *button, + GCallback cb) +{ + g_return_if_fail (GTK_IS_BUTTON (button)); + + g_signal_connect (button, "clicked", cb, data); + g_signal_connect (button, "destroy", G_CALLBACK (edit_button_destroy_cb), data); + + data->ref_count++; +} + +static void +maybe_show_error (GtkWindow *parent, + GError *error, + const gchar *msg) +{ + GtkWidget *dialog; + + if (error->domain == GOA_ERROR && error->code == GOA_ERROR_DIALOG_DISMISSED) + return; + + dialog = gtk_message_dialog_new (GTK_WINDOW (parent), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, + "%s: %s (%s, %d)", + msg, + error->message, + g_quark_to_string (error->domain), + error->code); + g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); + gtk_dialog_run (GTK_DIALOG (dialog)); +} + +static void +edit_parameters_clicked_cb (GtkButton *button, + gpointer user_data) +{ + EditData *data = user_data; + GError *error = NULL; + + if (!edit_connection_parameters (data->object, data->parent, &error)) + maybe_show_error (data->parent, error, _("Cannot save the connection parameters")); + g_clear_error (&error); +} + +static void +edit_personal_details_clicked_cb (GtkButton *button, + gpointer user_data) +{ + EditData *data = user_data; + GError *error = NULL; + + if (!edit_personal_details (data->object, data->parent, &error)) + maybe_show_error (data->parent, error, + _("Cannot save your personal information on the server")); + g_clear_error (&error); +} + +static void +show_account (GoaProvider *provider, + GoaClient *client, + GoaObject *object, + GtkBox *vbox, + G_GNUC_UNUSED GtkGrid *dummy1, + G_GNUC_UNUSED GtkGrid *dummy2) +{ + EditData *data = NULL; + GtkWidget *grid; + GtkWidget *params_button = NULL; + GtkWidget *details_button = NULL; + GtkWidget *button_box = NULL; + gint row = 0; + + goa_utils_account_add_attention_needed (client, object, provider, vbox); + + grid = gtk_grid_new (); + gtk_widget_set_halign (grid, GTK_ALIGN_CENTER); + gtk_widget_set_hexpand (grid, TRUE); + gtk_widget_set_margin_end (grid, 72); + gtk_widget_set_margin_start (grid, 72); + gtk_widget_set_margin_top (grid, 24); + gtk_grid_set_column_spacing (GTK_GRID (grid), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid), 6); + gtk_container_add (GTK_CONTAINER (vbox), grid); + + goa_utils_account_add_header (object, GTK_GRID (grid), row++); + + goa_util_add_row_switch_from_keyfile_with_blurb (GTK_GRID (grid), + row++, + object, + /* Translators: This is a label for a series of + * options switches. For example: “Use for Mail”. */ + _("Use for"), + "chat-disabled", + _("C_hat")); + + data = edit_data_new (object, tpaw_get_toplevel_window (GTK_WIDGET (vbox))); + + /* Connection Settings button */ + params_button = gtk_button_new_with_mnemonic (_("_Connection Settings")); + edit_data_handle_button (data, params_button, G_CALLBACK (edit_parameters_clicked_cb)); + + /* Edit Personal Information button */ + details_button = gtk_button_new_with_mnemonic (_("_Personal Details")); + edit_data_handle_button (data, details_button, G_CALLBACK (edit_personal_details_clicked_cb)); + + /* Box containing the buttons */ + button_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_box_pack_start (GTK_BOX (button_box), params_button, + FALSE, FALSE, 12); + gtk_container_add (GTK_CONTAINER (button_box), details_button); + + goa_util_add_row_widget (GTK_GRID (grid), row++, NULL, button_box); + + edit_data_unref (data); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GoaTelepathyProvider * +goa_telepathy_provider_new_from_protocol_name (const gchar *protocol_name) +{ + g_return_val_if_fail (protocol_name != NULL, NULL); + + return g_object_new (GOA_TYPE_TELEPATHY_PROVIDER, + "protocol-name", protocol_name, + NULL); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +GoaTelepathyProvider * +goa_telepathy_provider_new_from_protocol (TpawProtocol *protocol) +{ + g_return_val_if_fail (TPAW_IS_PROTOCOL (protocol), NULL); + + return g_object_new (GOA_TYPE_TELEPATHY_PROVIDER, + "protocol", protocol, + NULL); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_telepathy_provider_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (object)->priv; + + switch (property_id) { + case PROP_PROTOCOL: + g_value_set_object (value, priv->protocol); + break; + case PROP_PROTOCOL_NAME: + g_value_set_string (value, priv->protocol_name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +goa_telepathy_provider_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (object)->priv; + + switch (property_id) { + case PROP_PROTOCOL: + priv->protocol = g_value_dup_object (value); + break; + case PROP_PROTOCOL_NAME: + priv->protocol_name = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +goa_telepathy_provider_init (GoaTelepathyProvider *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + GOA_TYPE_TELEPATHY_PROVIDER, GoaTelepathyProviderPrivate); +} + +static void +goa_telepathy_provider_constructed (GObject *object) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (object)->priv; + + G_OBJECT_CLASS (goa_telepathy_provider_parent_class)->constructed (object); + + if (priv->protocol != NULL) + { + if (priv->protocol_name != NULL) + g_error ("You cannot set \"protocol-name\" if you set \"protocol\""); + priv->protocol_name = g_strdup (tpaw_protocol_get_protocol_name (priv->protocol)); + } + else + { + if (priv->protocol_name == NULL) + g_error ("You must set \"protocol-name\" or \"protocol\" on GoaTelepathyProvider"); + } + + priv->provider_type = g_strdup_printf ("%s/%s", + GOA_TELEPATHY_NAME, priv->protocol_name); +} + +static void +goa_telepathy_provider_finalize (GObject *object) +{ + GoaTelepathyProviderPrivate *priv = GOA_TELEPATHY_PROVIDER (object)->priv; + + g_clear_object (&priv->protocol); + g_free (priv->protocol_name); + g_free (priv->provider_type); + + (G_OBJECT_CLASS (goa_telepathy_provider_parent_class)->finalize) (object); +} + +static void +goa_telepathy_provider_class_init (GoaTelepathyProviderClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GoaProviderClass *provider_class = GOA_PROVIDER_CLASS (klass); + + goa_utils_initialize_client_factory (); + + object_class->constructed = goa_telepathy_provider_constructed; + object_class->finalize = goa_telepathy_provider_finalize; + object_class->get_property = goa_telepathy_provider_get_property; + object_class->set_property = goa_telepathy_provider_set_property; + + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_icon = get_provider_icon; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->initialize = initialize; + provider_class->add_account = add_account; + provider_class->refresh_account = refresh_account; + provider_class->build_object = build_object; + provider_class->remove_account = remove_account; + provider_class->remove_account_finish = remove_account_finish; + provider_class->show_account = show_account; + + g_type_class_add_private (object_class, sizeof (GoaTelepathyProviderPrivate)); + + /** + * GoaTelepathyProvider:protocol + * + * A #TpawProtocol associated to this provider (or NULL). + */ + properties[PROP_PROTOCOL] = + g_param_spec_object ("protocol", + "Protocol", + "A #TpawProtocol associated to the provider (or NULL)", + TPAW_TYPE_PROTOCOL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + + /** + * GoaTelepathyProvider:protocol-name + * + * The name of the protocol associated to the provider. + */ + properties[PROP_PROTOCOL_NAME] = + g_param_spec_string ("protocol-name", + "Protocol name", + "The name of the protocol associated to the provider", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, NUM_PROPERTIES, properties); +} diff --git a/src/goabackend/goatelepathyprovider.h b/src/goabackend/goatelepathyprovider.h new file mode 100644 index 0000000..1b44018 --- /dev/null +++ b/src/goabackend/goatelepathyprovider.h @@ -0,0 +1,45 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_TELEPATHY_PROVIDER_H__ +#define __GOA_TELEPATHY_PROVIDER_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_TELEPATHY_PROVIDER (goa_telepathy_provider_get_type ()) +#define GOA_TELEPATHY_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_TYPE_TELEPATHY_PROVIDER, GoaTelepathyProvider)) +#define GOA_IS_TELEPATHY_PROVIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_TYPE_TELEPATHY_PROVIDER)) + +typedef struct _GoaTelepathyProvider GoaTelepathyProvider; + +GType goa_telepathy_provider_get_type (void) G_GNUC_CONST; + +GoaTelepathyProvider *goa_telepathy_provider_new_from_protocol_name (const gchar *protocol_name); +GoaTelepathyProvider *goa_telepathy_provider_new_from_protocol (TpawProtocol *protocol); + +G_END_DECLS + +#endif /* __GOA_TELEPATHY_PROVIDER_H__ */ diff --git a/src/goabackend/goatodoistprovider.c b/src/goabackend/goatodoistprovider.c new file mode 100644 index 0000000..d97c33c --- /dev/null +++ b/src/goabackend/goatodoistprovider.c @@ -0,0 +1,342 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2017 Ekta Nandwani + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goaoauth2provider.h" +#include "goaoauth2provider-priv.h" +#include "goatodoistprovider.h" +#include "goaobjectskeletonutils.h" +#include "goarestproxy.h" + + +struct _GoaTodoistProvider +{ + GoaOAuth2Provider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaTodoistProvider, goa_todoist_provider, GOA_TYPE_OAUTH2_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_TODOIST_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_TODOIST_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Todoist")); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_TODO; +} + +static const gchar * +get_authorization_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://todoist.com/oauth/authorize"; +} + +static const gchar * +get_scope (GoaOAuth2Provider *oauth2_provider) +{ + return "data:read_write,data:delete,task:add,project:delete"; +} + +static const gchar * +get_redirect_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://localhost"; +} + +static const gchar * +get_client_id (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_TODOIST_CLIENT_ID; +} + +static const gchar * +get_client_secret (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_TODOIST_CLIENT_SECRET; +} + +static const gchar * +get_token_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://todoist.com/oauth/access_token"; +} + +static gchar * +build_authorization_uri (GoaOAuth2Provider *oauth2_provider, + const gchar *authorization_uri, + const gchar *escaped_redirect_uri, + const gchar *escaped_client_id, + const gchar *escaped_scope) +{ + gchar *state; + gchar *uri; + + state = g_uuid_string_random (); + uri = g_strdup_printf ("%s" + "?response_type=token" + "&client_id=%s" + "&scope=%s" + "&state=%s", + authorization_uri, + escaped_client_id, + escaped_scope, + state); + + g_free (state); + return uri; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_identity_node (GoaOAuth2Provider *oauth2_provider, WebKitDOMHTMLInputElement *element) +{ + gboolean ret = FALSE; + gchar *element_type = NULL; + gchar *id = NULL; + gchar *name = NULL; + + g_object_get (element, "type", &element_type, NULL); + if (g_strcmp0 (element_type, "email") != 0) + goto out; + + id = webkit_dom_element_get_id (WEBKIT_DOM_ELEMENT (element)); + if (g_strcmp0 (id, "email") != 0) + goto out; + + ret = TRUE; + + out: + g_free (element_type); + g_free (id); + g_free (name); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_identity_sync (GoaOAuth2Provider *oauth2_provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + GError *identity_error = NULL; + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + JsonObject *json_object; + JsonObject *json_object_user; + JsonParser *parser = NULL; + gchar *email = NULL; + gchar *ret = NULL; + + proxy = goa_rest_proxy_new ("https://todoist.com/API/v7/sync", FALSE); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "GET"); + rest_proxy_call_add_param (call, "token", access_token); + rest_proxy_call_add_param (call, "sync_token", "*"); + rest_proxy_call_add_param (call, "resource_types", "[\"user\"]"); + + if (!rest_proxy_call_sync (call, error)) + goto out; + if (rest_proxy_call_get_status_code (call) != 200) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Expected status 200 when requesting your identity, instead got status %d (%s)"), + rest_proxy_call_get_status_code (call), + rest_proxy_call_get_status_message (call)); + goto out; + } + + parser = json_parser_new (); + if (!json_parser_load_from_data (parser, + rest_proxy_call_get_payload (call), + rest_proxy_call_get_payload_length (call), + &identity_error)) + { + g_warning ("json_parser_load_from_data() failed: %s (%s, %d)", + identity_error->message, + g_quark_to_string (identity_error->domain), + identity_error->code); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (json_object, "user")) + { + g_warning ("Did not find user in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object_user = json_object_get_object_member (json_object, "user"); + if (!json_object_has_member (json_object_user, "email")) + { + g_warning ("Did not find user.email in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + email = g_strdup (json_object_get_string_member (json_object_user, "email")); + + ret = email; + email = NULL; + if (out_presentation_identity != NULL) + *out_presentation_identity = g_strdup (ret); + + out: + g_clear_object (&parser); + g_clear_error (&identity_error); + g_clear_object (&call); + g_clear_object (&proxy); + g_free (email); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + gboolean todo_enabled; + gboolean ret = FALSE; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_todoist_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + + /* Todo */ + todo_enabled = g_key_file_get_boolean (key_file, group, "TodoEnabled", NULL); + goa_object_skeleton_attach_todo (object, todo_enabled); + + if (just_added) + { + goa_account_set_todo_disabled (account, !todo_enabled); + + g_signal_connect (account, + "notify::todo-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "TodoEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_key_values (GoaOAuth2Provider *oauth2_provider, + GVariantBuilder *builder) +{ + g_variant_builder_add (builder, "{ss}", "TodoEnabled", "true"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_todoist_provider_init (GoaTodoistProvider *self) +{ +} + +static void +goa_todoist_provider_class_init (GoaTodoistProviderClass *klass) +{ + GoaProviderClass *provider_class; + GoaOAuth2ProviderClass *oauth2_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->build_object = build_object; + + oauth2_class = GOA_OAUTH2_PROVIDER_CLASS (klass); + oauth2_class->get_authorization_uri = get_authorization_uri; + oauth2_class->build_authorization_uri = build_authorization_uri; + oauth2_class->get_redirect_uri = get_redirect_uri; + oauth2_class->get_client_id = get_client_id; + oauth2_class->get_token_uri = get_token_uri; + oauth2_class->get_client_secret = get_client_secret; + oauth2_class->get_scope = get_scope; + oauth2_class->get_identity_sync = get_identity_sync; + oauth2_class->is_identity_node = is_identity_node; + oauth2_class->add_account_key_values = add_account_key_values; +} diff --git a/src/goabackend/goatodoistprovider.h b/src/goabackend/goatodoistprovider.h new file mode 100644 index 0000000..d618947 --- /dev/null +++ b/src/goabackend/goatodoistprovider.h @@ -0,0 +1,37 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2017 Ekta Nandwani + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_TODOIST_PROVIDER_H__ +#define __GOA_TODOIST_PROVIDER_H__ + +#include + +#include "goaoauth2provider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_TODOIST_PROVIDER (goa_todoist_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaTodoistProvider, goa_todoist_provider, GOA, TODOIST_PROVIDER, GoaOAuth2Provider); + +G_END_DECLS + +#endif /* __GOA_TODOIST_PROVIDER_H__ */ \ No newline at end of file diff --git a/src/goabackend/goatpaccountlinker.c b/src/goabackend/goatpaccountlinker.c new file mode 100644 index 0000000..b31cfef --- /dev/null +++ b/src/goabackend/goatpaccountlinker.c @@ -0,0 +1,669 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2010 – 2013 Collabora Ltd. + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +/* This class makes sure we have a GOA account for each Telepathy account + * configured in the system. + * Note that this handles only plain Telepathy accounts; the ones with + * multiple capabilities (e.g. Facebook) are handled differently. */ + +#include "config.h" + +#include +#include + +#include "goatpaccountlinker.h" +#include "goabackend/goautils.h" + +#define GOA_TP_ACCOUNT_LINKER_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GOA_TYPE_TP_ACCOUNT_LINKER, \ + GoaTpAccountLinkerPrivate)) + +G_DEFINE_TYPE (GoaTpAccountLinker, goa_tp_account_linker, G_TYPE_OBJECT) + +struct _GoaTpAccountLinkerPrivate +{ + TpAccountManager *account_manager; + GoaClient *goa_client; + + GHashTable *tp_accounts; /* owned gchar *id -> reffed TpAccount * */ + GHashTable *goa_accounts; /* owned gchar *id -> reffed GoaObject * */ + + GQueue *remove_tp_account_queue; +}; + +/* The path of the Telepathy account is used as common identifier between + * GOA and Telepathy */ +static const gchar * +get_id_from_tp_account (TpAccount *tp_account) +{ + return tp_proxy_get_object_path (tp_account); +} + +static const gchar * +get_id_from_goa_account (GoaAccount *goa_account) +{ + return goa_account_get_identity (goa_account); +} + +static gboolean +is_telepathy_account (GoaAccount *goa_account) +{ + const gchar *type = goa_account_get_provider_type (goa_account); + return g_str_has_prefix (type, "telepathy/"); +} + +static void +tp_account_removed_by_us_cb (GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + TpAccount *tp_account = TP_ACCOUNT (object); + GError *error = NULL; + GTask *task = G_TASK (user_data); + + if (!tp_account_remove_finish (tp_account, res, &error)) + { + g_critical ("Error removing Telepathy account %s: %s (%s, %d)", + get_id_from_tp_account (tp_account), + error->message, + g_quark_to_string (error->domain), + error->code); + g_task_return_error (task, error); + goto out; + } + + g_task_return_boolean (task, TRUE); + + out: + g_object_unref (task); +} + +static void +remove_tp_account_queue_check (GoaTpAccountLinker *self) +{ + GoaTpAccountLinkerPrivate *priv = self->priv; + GList *l; + + if (priv->goa_client == NULL || + priv->account_manager == NULL || + !tp_proxy_is_prepared (priv->account_manager, TP_ACCOUNT_MANAGER_FEATURE_CORE)) + { + /* Not everything is ready yet */ + return; + } + + if (priv->remove_tp_account_queue->length == 0) + return; + + for (l = priv->remove_tp_account_queue->head; l != NULL; l = l->next) + { + GTask *task = G_TASK (l->data); + GoaAccount *goa_account; + GoaObject *goa_object; + TpAccount *tp_account; + const gchar *id; + + goa_object = GOA_OBJECT (g_task_get_task_data (task)); + goa_account = goa_object_peek_account (goa_object); + + id = get_id_from_goa_account (goa_account); + if (!g_hash_table_remove (priv->goa_accounts, id)) + { + /* 1 - The user removes the Telepathy account (but not the GOA one) + * 2 - We delete the corresponding GOA account and remove it + * from priv->goa_accounts + * 3 - The Telepathy provider again tries to remove the + * corresponding Telepathy account + */ + g_debug ("Ignoring removal of GOA account we asked to remove " + "(%s, Telepathy object path: %s)", + goa_account_get_id (goa_account), + id); + g_task_return_boolean (task, TRUE); + continue; + } + + g_info ("GOA account %s for Telepathy account %s removed, " + "removing Telepathy account", + goa_account_get_id (goa_account), id); + + tp_account = g_hash_table_lookup (priv->tp_accounts, id); + if (tp_account == NULL) + { + g_critical ("There is no Telepathy account for removed GOA " + "account %s (Telepathy object path: %s)", + goa_account_get_id (goa_account), id); + g_task_return_boolean (task, TRUE); + continue; + } + tp_account_remove_async (tp_account, tp_account_removed_by_us_cb, g_object_ref (task)); + g_hash_table_remove (priv->tp_accounts, id); + } + + g_queue_foreach (priv->remove_tp_account_queue, (GFunc) g_object_unref, NULL); + g_queue_clear (priv->remove_tp_account_queue); +} + +static void +goa_account_chat_disabled_changed_cb (GoaAccount *goa_account, + GParamSpec *spec, + GoaTpAccountLinker *self) +{ + GoaTpAccountLinkerPrivate *priv = self->priv; + const gchar *id; + TpAccount *tp_account; + gboolean tp_enabled; + gboolean goa_enabled; + + id = get_id_from_goa_account (goa_account); + tp_account = g_hash_table_lookup (priv->tp_accounts, id); + if (tp_account == NULL) + return; + + goa_enabled = !goa_account_get_chat_disabled (goa_account); + tp_enabled = tp_account_is_enabled (tp_account); + if (tp_enabled != goa_enabled) + { + g_info ("The GOA account %s (Telepathy object path: %s) has been %s, " + "propagating to Telepathy", + goa_account_get_id (goa_account), id, + goa_enabled ? "enabled" : "disabled"); + tp_account_set_enabled_async (tp_account, goa_enabled, NULL, NULL); + } +} + +static void +tp_account_chat_enabled_changed_cb (TpAccount *tp_account, + GParamSpec *spec, + GoaTpAccountLinker *self) +{ + GoaTpAccountLinkerPrivate *priv = self->priv; + const gchar *id; + GoaObject *goa_object; + GoaAccount *goa_account; + gboolean tp_enabled; + gboolean goa_enabled; + + id = get_id_from_tp_account (tp_account); + goa_object = g_hash_table_lookup (priv->goa_accounts, id); + if (goa_object == NULL) + return; + + goa_account = goa_object_peek_account (goa_object); + goa_enabled = !goa_account_get_chat_disabled (goa_account); + tp_enabled = tp_account_is_enabled (tp_account); + if (tp_enabled != goa_enabled) + { + g_info ("The Telepathy account %s has been %s, propagating to GOA", + id, tp_enabled ? "enabled" : "disabled"); + /* When we set this property, the autogenerated code emits a notify + * signal immediately even if the property hasn't changed, so + * goa_account_chat_disabled_changed_cb() thinks that the property + * changed back to the old value and a cycle starts. + * The right notify signal will be emitted later when the property is + * actually changed. */ + g_signal_handlers_block_by_func (goa_account, + goa_account_chat_disabled_changed_cb, self); + goa_account_set_chat_disabled (goa_account, !tp_enabled); + g_signal_handlers_unblock_by_func (goa_account, + goa_account_chat_disabled_changed_cb, self); + } +} + +static void +goa_account_created_cb (GoaManager *manager, + GAsyncResult *res, + gpointer user_data) +{ + TpAccount *tp_account = user_data; + gchar *goa_account_object_path = NULL; + GError *error = NULL; + + if (!goa_manager_call_add_account_finish (manager, + &goa_account_object_path, res, &error)) + { + g_critical ("Failed to create a GOA account for %s: %s (%s, %d)", + get_id_from_tp_account (tp_account), + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + goto out; + } + + g_info ("Created new %s GOA account for Telepathy account %s", + goa_account_object_path, get_id_from_tp_account (tp_account)); + + out: + g_object_unref (tp_account); +} + +static void +create_goa_account (GoaTpAccountLinker *self, + TpAccount *tp_account) +{ + GoaTpAccountLinkerPrivate *priv = self->priv; + GVariantBuilder credentials; + GVariantBuilder details; + gchar *provider; + + g_info ("Creating new GOA account for Telepathy account %s", + get_id_from_tp_account (tp_account)); + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "ChatEnabled", + tp_account_is_enabled (tp_account) ? "true" : "false"); + + provider = g_strdup_printf ("telepathy/%s", + tp_account_get_protocol_name (tp_account)); + + goa_manager_call_add_account (goa_client_get_manager (priv->goa_client), + provider, + get_id_from_tp_account (tp_account), + tp_account_get_display_name (tp_account), + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, /* GCancellable* */ + (GAsyncReadyCallback) goa_account_created_cb, + g_object_ref (tp_account)); + + g_free (provider); +} + +static gboolean +is_account_filtered (TpAccount *tp_account) +{ + const gchar *env; + const gchar *id; + + env = g_getenv ("GOA_TELEPATHY_DEBUG_ACCOUNT_FILTER"); + if (env == NULL || env[0] == '\0') + return FALSE; + + id = get_id_from_tp_account (tp_account); + if (g_strstr_len (id, -1, env) != NULL) + return FALSE; /* "env" is contained in "id" */ + else + return TRUE; +} + +static void +tp_account_added (GoaTpAccountLinker *self, + TpAccount *tp_account) +{ + GoaTpAccountLinkerPrivate *priv = self->priv; + const gchar *id = get_id_from_tp_account (tp_account); + GoaObject *goa_object = NULL; + + if (g_strcmp0 (tp_account_get_storage_provider (tp_account), + "org.gnome.OnlineAccounts") == 0) + { + g_debug ("Skipping Telepathy account %s as it's handled directly by GOA", id); + return; + } + + if (is_account_filtered (tp_account)) + { + g_debug ("The account %s is ignored for debugging reasons", id); + return; + } + + g_debug ("Telepathy account found: %s", id); + + g_hash_table_replace (priv->tp_accounts, g_strdup (id), + g_object_ref (tp_account)); + + g_signal_connect_object (tp_account, "notify::enabled", + G_CALLBACK (tp_account_chat_enabled_changed_cb), + self, 0); + + goa_object = g_hash_table_lookup (priv->goa_accounts, id); + if (goa_object == NULL) + { + g_debug ("Found a Telepathy account with no corresponding " + "GOA account: %s", id); + create_goa_account (self, tp_account); + } + else + { + g_debug ("Found a Telepathy account with a matching " + "GOA account: %s", id); + /* Make sure the initial state is synced. */ + tp_account_chat_enabled_changed_cb (tp_account, NULL, self); + } +} + +static void +goa_account_removed_by_us_cb (GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + /* This callback is only used for debugging */ + GoaAccount *goa_account = GOA_ACCOUNT (object); + GError *error = NULL; + + if (!goa_account_call_remove_finish (goa_account, res, &error)) + { + g_critical ("Error removing GOA account %s (Telepathy object path: %s): " + "%s (%s, %d)", + goa_account_get_id (goa_account), + get_id_from_goa_account (goa_account), + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + } +} + +static void +tp_account_removed_cb (TpAccountManager *manager, + TpAccount *tp_account, + gpointer user_data) +{ + GoaTpAccountLinker *self = user_data; + GoaTpAccountLinkerPrivate *priv = self->priv; + const gchar *id = get_id_from_tp_account (tp_account); + GoaObject *goa_object = NULL; + + if (!g_hash_table_remove (priv->tp_accounts, id)) + { + /* 1 - The user removes the GOA account + * 2 - We delete the corresponding Telepathy account and remove it + * from priv->tp_accounts + * 3 - "account-removed" is emitted by the account manager + * 4 - tp_account_removed_cb is called for an unknown account + */ + g_debug ("Ignoring removal of Telepathy account we asked to " + "remove (%s)", id); + return; + } + + g_info ("Telepathy account %s removed, removing corresponding " + "GOA account", id); + + goa_object = g_hash_table_lookup (priv->goa_accounts, id); + if (goa_object == NULL) + { + g_critical ("There is no GOA account for removed Telepathy " + "account %s", id); + return; + } + goa_account_call_remove (goa_object_peek_account (goa_object), + NULL, /* cancellable */ + goa_account_removed_by_us_cb, NULL); + g_hash_table_remove (priv->goa_accounts, id); +} + +static void +tp_account_validity_changed_cb (TpAccountManager *manager, + TpAccount *tp_account, + gboolean valid, + gpointer user_data) +{ + GoaTpAccountLinker *self = user_data; + + if (valid) + tp_account_added (self, tp_account); +} + +static void +goa_account_added_cb (GoaClient *client, + GoaObject *goa_object, + gpointer user_data) +{ + GoaTpAccountLinker *self = user_data; + GoaTpAccountLinkerPrivate *priv = self->priv; + GoaAccount *goa_account = goa_object_peek_account (goa_object); + const gchar *id = NULL; + TpAccount *tp_account; + + if (!is_telepathy_account (goa_account)) + return; + + id = get_id_from_goa_account (goa_account); + g_debug ("GOA account %s for Telepathy account %s added", + goa_account_get_id (goa_account), id); + + g_signal_connect_object (goa_account, "notify::chat-disabled", + G_CALLBACK (goa_account_chat_disabled_changed_cb), self, 0); + + g_hash_table_insert (priv->goa_accounts, g_strdup (id), + g_object_ref (goa_object)); + + tp_account = g_hash_table_lookup (priv->tp_accounts, id); + if (tp_account != NULL) + { + /* The chat enabled status may have changed during the creation of the + * GOA account, so we need to make sure it's synced. */ + tp_account_chat_enabled_changed_cb (tp_account, NULL, self); + } +} + +static void +start_if_ready (GoaTpAccountLinker *self) +{ + GoaTpAccountLinkerPrivate *priv = self->priv; + GList *goa_accounts = NULL; + GList *tp_accounts = NULL; + GList *l = NULL; + GHashTableIter iter; + gpointer key, value; + + if (priv->goa_client == NULL || + priv->account_manager == NULL || + !tp_proxy_is_prepared (priv->account_manager, + TP_ACCOUNT_MANAGER_FEATURE_CORE)) + { + /* Not everything is ready yet */ + return; + } + + g_debug ("Both GOA and Tp are ready, starting tracking of accounts"); + + /* GOA */ + goa_accounts = goa_client_get_accounts (priv->goa_client); + for (l = goa_accounts; l != NULL; l = l->next) + goa_account_added_cb (priv->goa_client, l->data, self); + g_list_free_full (goa_accounts, g_object_unref); + + g_signal_connect_object (priv->goa_client, "account-added", + G_CALLBACK (goa_account_added_cb), self, 0); + + /* Telepathy */ + tp_accounts = tp_account_manager_dup_valid_accounts (priv->account_manager); + for (l = tp_accounts; l != NULL; l = l->next) + tp_account_added (self, l->data); + g_list_free_full (tp_accounts, g_object_unref); + + g_signal_connect_object (priv->account_manager, "account-validity-changed", + G_CALLBACK (tp_account_validity_changed_cb), self, 0); + g_signal_connect_object (priv->account_manager, "account-removed", + G_CALLBACK (tp_account_removed_cb), self, 0); + + /* Now we check if any Telepathy account was deleted while goa-daemon + * was not running. */ + g_hash_table_iter_init (&iter, priv->goa_accounts); + while (g_hash_table_iter_next (&iter, &key, &value)) + { + const gchar *id = key; + GoaObject *goa_object = value; + + if (!g_hash_table_lookup (priv->tp_accounts, id)) + { + g_warning ("The Telepathy account %s was removed while the daemon " + "was not running, removing the corresponding GOA account", id); + goa_account_call_remove (goa_object_peek_account (goa_object), + NULL, /* cancellable */ + goa_account_removed_by_us_cb, + NULL); /* user data */ + } + } + + remove_tp_account_queue_check (self); +} + +static void +account_manager_prepared_cb (GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + GoaTpAccountLinker *self = user_data; + GError *error = NULL; + + if (!tp_proxy_prepare_finish (object, res, &error)) + { + g_critical ("Error preparing AM: %s", error->message); + g_clear_error (&error); + return; + } + + g_debug("Telepathy account manager prepared"); + start_if_ready (self); +} + +static void +goa_client_new_cb (GObject *object, + GAsyncResult *result, + gpointer user_data) +{ + GoaTpAccountLinker *self = user_data; + GoaTpAccountLinkerPrivate *priv = self->priv; + GError *error = NULL; + + priv->goa_client = goa_client_new_finish (result, &error); + if (priv->goa_client == NULL) + { + g_critical ("Error connecting to GOA: %s", error->message); + g_clear_error (&error); + return; + } + + g_debug("GOA client ready"); + start_if_ready (self); +} + +static void +goa_tp_account_linker_dispose (GObject *object) +{ + GoaTpAccountLinker *self = GOA_TP_ACCOUNT_LINKER (object); + GoaTpAccountLinkerPrivate *priv = self->priv; + + if (priv->remove_tp_account_queue != NULL) + { + g_queue_free_full (priv->remove_tp_account_queue, g_object_unref); + priv->remove_tp_account_queue = NULL; + } + + g_clear_object (&priv->account_manager); + g_clear_object (&priv->goa_client); + + g_clear_pointer (&priv->goa_accounts, g_hash_table_unref); + g_clear_pointer (&priv->tp_accounts, g_hash_table_unref); + + G_OBJECT_CLASS (goa_tp_account_linker_parent_class)->dispose (object); +} + +static void +goa_tp_account_linker_init (GoaTpAccountLinker *self) +{ + GoaTpAccountLinkerPrivate *priv; + + g_debug ("Starting GOA <-> Telepathy account linker"); + + self->priv = GOA_TP_ACCOUNT_LINKER_GET_PRIVATE (self); + priv = self->priv; + + priv->goa_accounts = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, g_object_unref); + priv->tp_accounts = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, g_object_unref); + + priv->remove_tp_account_queue = g_queue_new (); + + priv->account_manager = tp_account_manager_dup (); + tp_proxy_prepare_async (priv->account_manager, NULL, + account_manager_prepared_cb, self); + + goa_client_new (NULL, goa_client_new_cb, self); +} + +static void +goa_tp_account_linker_class_init (GoaTpAccountLinkerClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + goa_utils_initialize_client_factory (); + + g_type_class_add_private (gobject_class, + sizeof (GoaTpAccountLinkerPrivate)); + + gobject_class->dispose = goa_tp_account_linker_dispose; +} + +GoaTpAccountLinker * +goa_tp_account_linker_new (void) +{ + return g_object_new (GOA_TYPE_TP_ACCOUNT_LINKER, NULL); +} + +void +goa_tp_account_linker_remove_tp_account (GoaTpAccountLinker *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaTpAccountLinkerPrivate *priv; + GTask *task; + + g_return_if_fail (GOA_IS_TP_ACCOUNT_LINKER (self)); + priv = self->priv; + + g_return_if_fail (GOA_IS_OBJECT (object)); + g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_source_tag (task, goa_tp_account_linker_remove_tp_account); + g_task_set_task_data (task, g_object_ref (object), g_object_unref); + g_queue_push_tail (priv->remove_tp_account_queue, g_object_ref (task)); + + remove_tp_account_queue_check (self); + + g_object_unref (task); +} + +gboolean +goa_tp_account_linker_remove_tp_account_finish (GoaTpAccountLinker *self, + GAsyncResult *res, + GError **error) +{ + GTask *task; + + g_return_val_if_fail (GOA_IS_TP_ACCOUNT_LINKER (self), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + g_return_val_if_fail (g_task_is_valid (res, self), FALSE); + task = G_TASK (res); + + g_return_val_if_fail (g_task_get_source_tag (task) == goa_tp_account_linker_remove_tp_account, FALSE); + + return g_task_propagate_boolean (task, error); +} diff --git a/src/goabackend/goatpaccountlinker.h b/src/goabackend/goatpaccountlinker.h new file mode 100644 index 0000000..d8b34a7 --- /dev/null +++ b/src/goabackend/goatpaccountlinker.h @@ -0,0 +1,64 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2010 – 2013 Collabora Ltd. + * Copyright © 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_TP_ACCOUNT_LINKER_H__ +#define __GOA_TP_ACCOUNT_LINKER_H__ + +#include + +#include "goa/goa.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_TP_ACCOUNT_LINKER (goa_tp_account_linker_get_type ()) +#define GOA_TP_ACCOUNT_LINKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_TP_ACCOUNT_LINKER, GoaTpAccountLinker)) +#define GOA_TP_ACCOUNT_LINKER_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GOA_TYPE_TP_ACCOUNT_LINKER, GoaTpAccountLinkerClass)) +#define GOA_IS_TP_ACCOUNT_LINKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_TP_ACCOUNT_LINKER)) +#define GOA_IS_TP_ACCOUNT_LINKER_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), GOA_TYPE_TP_ACCOUNT_LINKER)) +#define GOA_TP_ACCOUNT_LINKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOA_TYPE_TP_ACCOUNT_LINKER, GoaTpAccountLinkerClass)) + +typedef struct _GoaTpAccountLinker GoaTpAccountLinker; +typedef struct _GoaTpAccountLinkerClass GoaTpAccountLinkerClass; +typedef struct _GoaTpAccountLinkerPrivate GoaTpAccountLinkerPrivate; + +struct _GoaTpAccountLinker +{ + GObject parent_instance; + GoaTpAccountLinkerPrivate *priv; +}; + +struct _GoaTpAccountLinkerClass +{ + GObjectClass parent_class; +}; + +GType goa_tp_account_linker_get_type (void) G_GNUC_CONST; +GoaTpAccountLinker *goa_tp_account_linker_new (void); +void goa_tp_account_linker_remove_tp_account (GoaTpAccountLinker *self, + GoaObject *object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean goa_tp_account_linker_remove_tp_account_finish (GoaTpAccountLinker *self, + GAsyncResult *res, + GError **error); + +G_END_DECLS + +#endif diff --git a/src/goabackend/goautils.c b/src/goabackend/goautils.c new file mode 100644 index 0000000..9b00449 --- /dev/null +++ b/src/goabackend/goautils.c @@ -0,0 +1,986 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include +#include + +#ifdef GOA_TELEPATHY_ENABLED +#include +#endif + +#include "goautils.h" + +static const SecretSchema secret_password_schema = +{ + "org.gnome.OnlineAccounts", SECRET_SCHEMA_DONT_MATCH_NAME, + { + { "goa-identity", SECRET_SCHEMA_ATTRIBUTE_STRING }, + { "NULL", 0 } + } +}; + +typedef struct +{ + GoaClient *client; + GoaObject *object; + GoaProvider *provider; +} AttentionNeededData; + +static AttentionNeededData * +attention_needed_data_new (GoaClient *client, GoaObject *object, GoaProvider *provider) +{ + AttentionNeededData *data; + + data = g_slice_new0 (AttentionNeededData); + data->client = g_object_ref (client); + data->object = g_object_ref (object); + data->provider = g_object_ref (provider); + + return data; +} + +static void +attention_needed_data_free (AttentionNeededData *data) +{ + g_object_unref (data->client); + g_object_unref (data->object); + g_object_unref (data->provider); + g_slice_free (AttentionNeededData, data); +} + +static void +goa_utils_account_add_attention_needed_info_bar_response (GtkInfoBar *info_bar, + gint response_id, + gpointer user_data) +{ + AttentionNeededData *data = (AttentionNeededData *) user_data; + GtkWidget *parent; + GError *error; + + g_return_if_fail (response_id == GTK_RESPONSE_OK); + + parent = gtk_widget_get_toplevel (GTK_WIDGET (info_bar)); + if (!gtk_widget_is_toplevel (parent)) + { + g_warning ("Unable to find a toplevel GtkWindow"); + return; + } + + error = NULL; + if (!goa_provider_refresh_account (data->provider, data->client, data->object, GTK_WINDOW (parent), &error)) + { + if (!(error->domain == GOA_ERROR && error->code == GOA_ERROR_DIALOG_DISMISSED)) + { + GtkWidget *dialog; + dialog = gtk_message_dialog_new (GTK_WINDOW (parent), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + _("Error logging into the account")); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + "%s", + error->message); + gtk_widget_show_all (dialog); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + } + g_error_free (error); + } +} + +void +goa_utils_account_add_attention_needed (GoaClient *client, GoaObject *object, GoaProvider *provider, GtkBox *vbox) +{ + AttentionNeededData *data; + GoaAccount *account; + GtkWidget *button; + GtkWidget *content_area; + GtkWidget *info_bar; + GtkWidget *label; + GtkWidget *labels_grid; + gchar *markup = NULL; + + account = goa_object_peek_account (object); + if (!goa_account_get_attention_needed (account)) + goto out; + + info_bar = gtk_info_bar_new (); + gtk_container_add (GTK_CONTAINER (vbox), info_bar); + + content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (info_bar)); + gtk_widget_set_margin_start (content_area, 6); + + labels_grid = gtk_grid_new (); + gtk_widget_set_halign (labels_grid, GTK_ALIGN_FILL); + gtk_widget_set_hexpand (labels_grid, TRUE); + gtk_widget_set_valign (labels_grid, GTK_ALIGN_CENTER); + gtk_orientable_set_orientation (GTK_ORIENTABLE (labels_grid), GTK_ORIENTATION_VERTICAL); + gtk_grid_set_column_spacing (GTK_GRID (labels_grid), 0); + gtk_container_add (GTK_CONTAINER (content_area), labels_grid); + + label = gtk_label_new (""); + gtk_widget_set_halign (label, GTK_ALIGN_START); + markup = g_strdup_printf ("%s", _("Credentials have expired")); + gtk_label_set_markup (GTK_LABEL (label), markup); + gtk_container_add (GTK_CONTAINER (labels_grid), label); + + label = gtk_label_new (_("Sign in to enable this account.")); + gtk_widget_set_halign (label, GTK_ALIGN_START); + gtk_container_add (GTK_CONTAINER (labels_grid), label); + + button = gtk_info_bar_add_button (GTK_INFO_BAR (info_bar), _("_Sign In"), GTK_RESPONSE_OK); + gtk_widget_set_margin_end (button, 6); + + data = attention_needed_data_new (client, object, provider); + g_signal_connect_data (info_bar, + "response", + G_CALLBACK (goa_utils_account_add_attention_needed_info_bar_response), + data, + (GClosureNotify) attention_needed_data_free, + 0); + + out: + g_free (markup); +} + +void +goa_utils_account_add_header (GoaObject *object, GtkGrid *grid, gint row) +{ + GIcon *icon; + GoaAccount *account; + GtkWidget *image; + GtkWidget *label; + const gchar *icon_str; + const gchar *identity; + const gchar *name; + gchar *markup; + + account = goa_object_peek_account (object); + + icon_str = goa_account_get_provider_icon (account); + icon = g_icon_new_for_string (icon_str, NULL); + image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_DIALOG); + g_object_unref (icon); + gtk_widget_set_halign (image, GTK_ALIGN_END); + gtk_widget_set_hexpand (image, TRUE); + gtk_widget_set_margin_bottom (image, 12); + gtk_grid_attach (grid, image, 0, row, 1, 1); + + name = goa_account_get_provider_name (account); + identity = goa_account_get_presentation_identity (account); + markup = g_strdup_printf ("%s\n%s", + name, + (identity == NULL || identity[0] == '\0') ? "\xe2\x80\x94" : identity); + label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (label), markup); + gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); + gtk_label_set_max_width_chars (GTK_LABEL (label), 24); + gtk_label_set_width_chars (GTK_LABEL (label), 24); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_widget_set_margin_bottom (label, 12); + g_free (markup); + gtk_grid_attach (grid, label, 1, row, 3, 1); +} + +void +goa_utils_initialize_client_factory (void) +{ + static gsize once_init_value = 0; + + if (g_once_init_enter (&once_init_value)) + { +#ifdef GOA_TELEPATHY_ENABLED + TpSimpleClientFactory *factory; + TpAccountManager *account_manager; + GQuark account_features[] = {TP_ACCOUNT_FEATURE_ADDRESSING, + TP_ACCOUNT_FEATURE_STORAGE, + TP_ACCOUNT_FEATURE_CONNECTION, + 0}; + GQuark connection_features[] = {TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS, + TP_CONNECTION_FEATURE_CONTACT_INFO, + 0}; + + /* We make sure that new instances of Telepathy objects will have all + * the features we need. + */ + factory = tp_simple_client_factory_new (NULL); + tp_simple_client_factory_add_account_features (factory, account_features); + tp_simple_client_factory_add_connection_features (factory, connection_features); + + account_manager = tp_account_manager_new_with_factory (factory); + tp_account_manager_set_default (account_manager); + + g_object_unref (account_manager); + g_object_unref (factory); +#endif + + g_once_init_leave (&once_init_value, 1); + } +} + +gboolean +goa_utils_check_duplicate (GoaClient *client, + const gchar *identity, + const gchar *presentation_identity, + const gchar *provider_type, + GoaPeekInterfaceFunc func, + GError **error) +{ + GList *accounts; + GList *l; + gboolean ret = FALSE; + + accounts = goa_client_get_accounts (client); + for (l = accounts; l != NULL; l = l->next) + { + GoaObject *object = GOA_OBJECT (l->data); + GoaAccount *account; + gpointer *interface; + const gchar *identity_from_object; + const gchar *presentation_identity_from_object; + const gchar *provider_type_from_object; + + account = goa_object_peek_account (object); + interface = (*func) (object); + if (interface == NULL) + continue; + + provider_type_from_object = goa_account_get_provider_type (account); + if (g_strcmp0 (provider_type_from_object, provider_type) != 0) + continue; + + identity_from_object = goa_account_get_identity (account); + presentation_identity_from_object = goa_account_get_presentation_identity (account); + if (g_strcmp0 (identity_from_object, identity) == 0 + && g_strcmp0 (presentation_identity_from_object, presentation_identity) == 0) + { + const gchar *provider_name; + + provider_name = goa_account_get_provider_name (account); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_ACCOUNT_EXISTS, + _("A %s account already exists for %s"), + provider_name, + presentation_identity); + goto out; + } + } + + ret = TRUE; + + out: + g_list_free_full (accounts, g_object_unref); + return ret; +} + +gchar * +goa_utils_data_input_stream_read_line (GDataInputStream *stream, + gsize *length, + GCancellable *cancellable, + GError **error) +{ + GError *local_error = NULL; + gchar *ret = NULL; + + ret = g_data_input_stream_read_line (stream, length, cancellable, &local_error); + + /* Handle g_data_input_stream_read_line returning NULL without + * setting an error when there was no content to read. + */ + if (ret == NULL && local_error == NULL) + { + g_set_error (&local_error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Could not parse response")); + } + + if (local_error != NULL) + g_propagate_error (error, local_error); + + return ret; +} + +void +goa_utils_set_dialog_title (GoaProvider *provider, GtkDialog *dialog, gboolean add_account) +{ + gchar *provider_name; + gchar *title; + + provider_name = goa_provider_get_provider_name (GOA_PROVIDER (provider), NULL); + /* Translators: this is the title of the "Add Account" and "Refresh + * Account" dialogs. The %s is the name of the provider. eg., + * 'Google'. + */ + title = g_strdup_printf (_("%s Account"), provider_name); + gtk_window_set_title (GTK_WINDOW (dialog), title); + g_free (title); + g_free (provider_name); +} + +gboolean +goa_utils_delete_credentials_for_account_sync (GoaProvider *provider, + GoaAccount *object, + GCancellable *cancellable, + GError **error) +{ + const gchar *id; + + g_return_val_if_fail (GOA_IS_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_ACCOUNT (object), FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + id = goa_account_get_id (object); + return goa_utils_delete_credentials_for_id_sync (provider, id, cancellable, error); +} + +gboolean +goa_utils_delete_credentials_for_id_sync (GoaProvider *provider, + const gchar *id, + GCancellable *cancellable, + GError **error) +{ + gboolean ret = FALSE; + gchar *password_key = NULL; + GError *sec_error = NULL; + + g_return_val_if_fail (GOA_IS_PROVIDER (provider), FALSE); + g_return_val_if_fail (id != NULL && id[0] != '\0', FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + password_key = g_strdup_printf ("%s:gen%d:%s", + goa_provider_get_provider_type (provider), + goa_provider_get_credentials_generation (provider), + id); + + secret_password_clear_sync (&secret_password_schema, + cancellable, + &sec_error, + "goa-identity", password_key, + NULL); + if (sec_error != NULL) + { + g_warning ("secret_password_clear_sync() failed: %s", sec_error->message); + g_set_error_literal (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Failed to delete credentials from the keyring")); + g_error_free (sec_error); + goto out; + } + + g_debug ("Cleared keyring credentials for id: %s", id); + ret = TRUE; + + out: + g_free (password_key); + return ret; +} + +GVariant * +goa_utils_lookup_credentials_sync (GoaProvider *provider, + GoaObject *object, + GCancellable *cancellable, + GError **error) +{ + gchar *password_key = NULL; + GVariant *ret = NULL; + gchar *password = NULL; + const gchar *id; + GError *sec_error = NULL; + + g_return_val_if_fail (GOA_IS_PROVIDER (provider), NULL); + g_return_val_if_fail (GOA_IS_OBJECT (object) && goa_object_peek_account (object) != NULL, FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + id = goa_account_get_id (goa_object_peek_account (object)); + + password_key = g_strdup_printf ("%s:gen%d:%s", + goa_provider_get_provider_type (provider), + goa_provider_get_credentials_generation (provider), + id); + + password = secret_password_lookup_sync (&secret_password_schema, + cancellable, + &sec_error, + "goa-identity", password_key, + NULL); + if (sec_error != NULL) + { + g_warning ("secret_password_lookup_sync() failed: %s", sec_error->message); + g_set_error_literal (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Failed to retrieve credentials from the keyring")); + g_error_free (sec_error); + goto out; + } + else if (password == NULL) + { + g_warning ("secret_password_lookup_sync() returned NULL"); + g_set_error_literal (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("No credentials found in the keyring")); + goto out; + } + + g_debug ("Retrieved keyring credentials for id: %s", id); + + ret = g_variant_parse (NULL, /* GVariantType */ + password, + NULL, /* limit */ + NULL, /* endptr */ + error); + if (ret == NULL) + { + g_prefix_error (error, _("Error parsing result obtained from the keyring: ")); + goto out; + } + + if (g_variant_is_floating (ret)) + g_variant_ref_sink (ret); + + out: + g_free (password); + g_free (password_key); + return ret; +} + +gboolean +goa_utils_store_credentials_for_id_sync (GoaProvider *provider, + const gchar *id, + GVariant *credentials, + GCancellable *cancellable, + GError **error) +{ + gboolean ret = FALSE; + gchar *credentials_str; + gchar *password_description; + gchar *password_key; + GError *sec_error = NULL; + + g_return_val_if_fail (GOA_IS_PROVIDER (provider), FALSE); + g_return_val_if_fail (id != NULL && id[0] != '\0', FALSE); + g_return_val_if_fail (credentials != NULL, FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + credentials_str = g_variant_print (credentials, TRUE); + g_variant_ref_sink (credentials); + g_variant_unref (credentials); + + password_key = g_strdup_printf ("%s:gen%d:%s", + goa_provider_get_provider_type (provider), + goa_provider_get_credentials_generation (provider), + id); + /* Translators: The %s is the type of the provider, e.g. 'google' or 'yahoo' */ + password_description = g_strdup_printf (_("GOA %s credentials for identity %s"), + goa_provider_get_provider_type (GOA_PROVIDER (provider)), + id); + + if (!secret_password_store_sync (&secret_password_schema, + SECRET_COLLECTION_DEFAULT, /* default keyring */ + password_description, + credentials_str, + cancellable, + &sec_error, + "goa-identity", password_key, + NULL)) + { + g_warning ("secret_password_store_sync() failed: %s", sec_error->message); + g_set_error_literal (error, + GOA_ERROR, + GOA_ERROR_FAILED, /* TODO: more specific */ + _("Failed to store credentials in the keyring")); + g_error_free (sec_error); + goto out; + } + + g_debug ("Stored keyring credentials for identity: %s", id); + ret = TRUE; + + out: + g_free (credentials_str); + g_free (password_key); + g_free (password_description); + return ret; +} + +gboolean +goa_utils_store_credentials_for_object_sync (GoaProvider *provider, + GoaObject *object, + GVariant *credentials, + GCancellable *cancellable, + GError **error) +{ + const gchar *id; + + g_return_val_if_fail (GOA_IS_PROVIDER (provider), FALSE); + g_return_val_if_fail (GOA_IS_OBJECT (object) && goa_object_peek_account (object) != NULL, FALSE); + g_return_val_if_fail (credentials != NULL, FALSE); + g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + id = goa_account_get_id (goa_object_peek_account (object)); + return goa_utils_store_credentials_for_id_sync (provider, id, credentials, cancellable, error); +} + +gboolean +goa_utils_keyfile_copy_group (GKeyFile *src_key_file, + const gchar *src_group_name, + GKeyFile *dest_key_file, + const gchar *dest_group_name) +{ + GError *error; + gboolean ret_val = FALSE; + gchar **keys = NULL; + gsize i; + + error = NULL; + keys = g_key_file_get_keys (src_key_file, src_group_name, NULL, &error); + if (error != NULL) + { + g_warning ("Error getting keys from group %s: %s (%s, %d)", + src_group_name, + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + goto out; + } + + for (i = 0; keys[i] != NULL; i++) + { + gchar *dest_value; + gchar *src_value; + + error = NULL; + src_value = g_key_file_get_value (src_key_file, src_group_name, keys[i], &error); + if (error != NULL) + { + g_warning ("Error reading key %s from group %s: %s (%s, %d)", + keys[i], + src_group_name, + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + continue; + } + + error = NULL; + dest_value = g_key_file_get_value (dest_key_file, dest_group_name, keys[i], &error); + if (error != NULL) + { + if (!g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND) + && !g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) + { + g_warning ("Error reading key %s from group %s: %s (%s, %d)", + keys[i], + src_group_name, + error->message, + g_quark_to_string (error->domain), + error->code); + } + + g_error_free (error); + } + + if (g_strcmp0 (dest_value, src_value) != 0) + { + g_key_file_set_value (dest_key_file, dest_group_name, keys[i], src_value); + ret_val = TRUE; + } + + g_free (dest_value); + g_free (src_value); + } + + out: + g_strfreev (keys); + return ret_val; +} + +gboolean +goa_utils_keyfile_get_boolean (GKeyFile *key_file, const gchar *group_name, const gchar *key) +{ + GError *error; + gboolean ret; + + error = NULL; + ret = g_key_file_get_boolean (key_file, group_name, key, &error); + if (error != NULL) + { + if (!g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) + { + g_warning ("Error reading key %s from group %s in keyfile: %s (%s, %d)", + key, + group_name, + error->message, + g_quark_to_string (error->domain), + error->code); + } + + g_error_free (error); + } + + return ret; +} + +void +goa_utils_keyfile_remove_key (GoaAccount *account, const gchar *key) +{ + GError *error; + GKeyFile *key_file; + gchar *group; + gchar *path; + + path = g_strdup_printf ("%s/goa-1.0/accounts.conf", g_get_user_config_dir ()); + group = g_strdup_printf ("Account %s", goa_account_get_id (account)); + + key_file = g_key_file_new (); + error = NULL; + if (!g_key_file_load_from_file (key_file, + path, + G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, + &error)) + { + g_warning ("Error loading keyfile %s: %s (%s, %d)", + path, + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + goto out; + } + + if (!g_key_file_remove_key (key_file, group, key, NULL)) + goto out; + + error = NULL; + if (!g_key_file_save_to_file (key_file, path, &error)) + { + g_prefix_error (&error, "Error writing key-value-file %s: ", path); + g_warning ("%s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + + out: + g_key_file_unref (key_file); + g_free (group); + g_free (path); +} + +void +goa_utils_keyfile_set_boolean (GoaAccount *account, const gchar *key, gboolean value) +{ + GError *error; + GKeyFile *key_file; + gboolean needs_update = FALSE; + gboolean old_value; + gchar *group; + gchar *path; + + path = g_strdup_printf ("%s/goa-1.0/accounts.conf", g_get_user_config_dir ()); + group = g_strdup_printf ("Account %s", goa_account_get_id (account)); + + key_file = g_key_file_new (); + error = NULL; + if (!g_key_file_load_from_file (key_file, + path, + G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, + &error)) + { + g_warning ("Error loading keyfile %s: %s (%s, %d)", + path, + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + goto out; + } + + error = NULL; + old_value = g_key_file_get_boolean (key_file, group, key, &error); + if (error != NULL) + { + g_warning ("Error reading key %s from keyfile %s: %s (%s, %d)", + key, + path, + error->message, + g_quark_to_string (error->domain), + error->code); + needs_update = TRUE; + g_error_free (error); + } + else if (old_value != value) + { + needs_update = TRUE; + } + + if (!needs_update) + goto out; + + g_key_file_set_boolean (key_file, group, key, value); + + error = NULL; + if (!g_key_file_save_to_file (key_file, path, &error)) + { + g_prefix_error (&error, "Error writing key-value-file %s: ", path); + g_warning ("%s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + + out: + g_key_file_unref (key_file); + g_free (group); + g_free (path); +} + +void +goa_utils_keyfile_set_string (GoaAccount *account, const gchar *key, const gchar *value) +{ + GError *error; + GKeyFile *key_file; + gboolean needs_update = FALSE; + gchar *group; + gchar *old_value = NULL; + gchar *path; + + path = g_strdup_printf ("%s/goa-1.0/accounts.conf", g_get_user_config_dir ()); + group = g_strdup_printf ("Account %s", goa_account_get_id (account)); + + key_file = g_key_file_new (); + error = NULL; + if (!g_key_file_load_from_file (key_file, + path, + G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, + &error)) + { + g_warning ("Error loading keyfile %s: %s (%s, %d)", + path, + error->message, + g_quark_to_string (error->domain), + error->code); + g_error_free (error); + goto out; + } + + error = NULL; + old_value = g_key_file_get_string (key_file, group, key, &error); + if (error != NULL) + { + g_warning ("Error reading key %s from keyfile %s: %s (%s, %d)", + key, + path, + error->message, + g_quark_to_string (error->domain), + error->code); + needs_update = TRUE; + g_error_free (error); + } + else if (g_strcmp0 (old_value, value) != 0) + { + needs_update = TRUE; + } + + if (!needs_update) + goto out; + + g_key_file_set_string (key_file, group, key, value); + + error = NULL; + if (!g_key_file_save_to_file (key_file, path, &error)) + { + g_prefix_error (&error, "Error writing key-value-file %s: ", path); + g_warning ("%s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + goto out; + } + + out: + g_key_file_unref (key_file); + g_free (group); + g_free (old_value); + g_free (path); +} + +gboolean +goa_utils_parse_email_address (const gchar *email, gchar **out_username, gchar **out_domain) +{ + gchar *at; + + if (email == NULL || email[0] == '\0') + return FALSE; + + at = strchr (email, '@'); + if (at == NULL || at == email || *(at + 1) == '\0') + return FALSE; + + if (out_username != NULL) + { + *out_username = g_strdup (email); + (*out_username)[at - email] = '\0'; + } + + if (out_domain != NULL) + *out_domain = g_strdup (at + 1); + + return TRUE; +} + +void +goa_utils_set_error_soup (GError **err, SoupMessage *msg) +{ + gchar *error_msg = NULL; + gint error_code = GOA_ERROR_FAILED; /* TODO: more specific */ + + switch (msg->status_code) + { + case SOUP_STATUS_CANT_RESOLVE: + error_msg = g_strdup (_("Cannot resolve hostname")); + break; + + case SOUP_STATUS_CANT_RESOLVE_PROXY: + error_msg = g_strdup (_("Cannot resolve proxy hostname")); + break; + + case SOUP_STATUS_INTERNAL_SERVER_ERROR: + case SOUP_STATUS_NOT_FOUND: + error_msg = g_strdup (_("Cannot find WebDAV endpoint")); + break; + + case SOUP_STATUS_UNAUTHORIZED: + error_msg = g_strdup (_("Authentication failed")); + error_code = GOA_ERROR_NOT_AUTHORIZED; + break; + + default: + error_msg = g_strdup_printf (_("Code: %u — Unexpected response from server"), msg->status_code); + break; + } + + g_set_error_literal (err, GOA_ERROR, error_code, error_msg); + g_free (error_msg); +} + +void +goa_utils_set_error_ssl (GError **err, GTlsCertificateFlags flags) +{ + const gchar *error_msg; + + switch (flags) + { + case G_TLS_CERTIFICATE_UNKNOWN_CA: + error_msg = _("The signing certificate authority is not known."); + break; + + case G_TLS_CERTIFICATE_BAD_IDENTITY: + error_msg = _("The certificate does not match the expected identity of the site that it was " + "retrieved from."); + break; + + case G_TLS_CERTIFICATE_NOT_ACTIVATED: + error_msg = _("The certificate’s activation time is still in the future."); + break; + + case G_TLS_CERTIFICATE_EXPIRED: + error_msg = _("The certificate has expired."); + break; + + case G_TLS_CERTIFICATE_REVOKED: + error_msg = _("The certificate has been revoked."); + break; + + case G_TLS_CERTIFICATE_INSECURE: + error_msg = _("The certificate’s algorithm is considered insecure."); + break; + + case G_TLS_CERTIFICATE_GENERIC_ERROR: + case G_TLS_CERTIFICATE_VALIDATE_ALL: + default: + error_msg = _("Invalid certificate."); + break; + } + + g_set_error_literal (err, GOA_ERROR, GOA_ERROR_SSL, error_msg); +} + +gboolean +goa_utils_get_credentials (GoaProvider *provider, + GoaObject *object, + const gchar *id, + gchar **out_username, + gchar **out_password, + GCancellable *cancellable, + GError **error) +{ + GVariant *credentials = NULL; + GoaAccount *account = NULL; + gboolean ret = FALSE; + gchar *username = NULL; + gchar *password = NULL; + + credentials = goa_utils_lookup_credentials_sync (provider, + object, + cancellable, + error); + if (credentials == NULL) + goto out; + + account = goa_object_get_account (object); + username = goa_account_dup_identity (account); + + if (!g_variant_lookup (credentials, id, "s", &password)) + { + g_set_error (error, GOA_ERROR, GOA_ERROR_FAILED, /* TODO: more specific */ + _("Did not find %s with identity “%s” in credentials"), + id, username); + goto out; + } + + if (out_username) + { + *out_username = username; + username = NULL; + } + + if (out_password) + { + *out_password = password; + password = NULL; + } + + ret = TRUE; + +out: + g_clear_object (&account); + g_clear_pointer (&credentials, (GDestroyNotify) g_variant_unref); + g_free (username); + g_free (password); + return ret; +} diff --git a/src/goabackend/goautils.h b/src/goabackend/goautils.h new file mode 100644 index 0000000..757318d --- /dev/null +++ b/src/goabackend/goautils.h @@ -0,0 +1,121 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_UTILS_H__ +#define __GOA_UTILS_H__ + +#include +#include +#include +#include + +#include "goaprovider.h" + +G_BEGIN_DECLS + +#define GOA_OAUTH2_ACCESS_DENIED "access_denied" + +#define GOA_SETTINGS_SCHEMA "org.gnome.online-accounts" +#define GOA_SETTINGS_WHITELISTED_PROVIDERS "whitelisted-providers" + +typedef gpointer (*GoaPeekInterfaceFunc) (GoaObject *); + +void goa_utils_account_add_attention_needed (GoaClient *client, + GoaObject *object, + GoaProvider *provider, + GtkBox *vbox); + +void goa_utils_account_add_header (GoaObject *object, GtkGrid *grid, gint row); + +void goa_utils_initialize_client_factory (void); + +gboolean goa_utils_check_duplicate (GoaClient *client, + const gchar *identity, + const gchar *presentation_identity, + const gchar *provider_type, + GoaPeekInterfaceFunc func, + GError **error); + +gchar *goa_utils_data_input_stream_read_line (GDataInputStream *stream, + gsize *length, + GCancellable *cancellable, + GError **error); + +void goa_utils_set_dialog_title (GoaProvider *provider, GtkDialog *dialog, gboolean add_account); + +gboolean goa_utils_delete_credentials_for_account_sync (GoaProvider *provider, + GoaAccount *account, + GCancellable *cancellable, + GError **error); + +gboolean goa_utils_delete_credentials_for_id_sync (GoaProvider *provider, + const gchar *id, + GCancellable *cancellable, + GError **error); + +GVariant *goa_utils_lookup_credentials_sync (GoaProvider *provider, + GoaObject *object, + GCancellable *cancellable, + GError **error); + +gboolean goa_utils_store_credentials_for_id_sync (GoaProvider *provider, + const gchar *id, + GVariant *credentials, + GCancellable *cancellable, + GError **error); + +gboolean goa_utils_store_credentials_for_object_sync (GoaProvider *provider, + GoaObject *object, + GVariant *credentials, + GCancellable *cancellable, + GError **error); + +gboolean goa_utils_keyfile_copy_group (GKeyFile *src_key_file, + const gchar *src_group_name, + GKeyFile *dest_key_file, + const gchar *dest_group_name); + +gboolean goa_utils_keyfile_get_boolean (GKeyFile *key_file, const gchar *group_name, const gchar *key); + +void goa_utils_keyfile_remove_key (GoaAccount *account, const gchar *key); + +void goa_utils_keyfile_set_boolean (GoaAccount *account, const gchar *key, gboolean value); + +void goa_utils_keyfile_set_string (GoaAccount *account, const gchar *key, const gchar *value); + +gboolean goa_utils_parse_email_address (const gchar *email, gchar **out_username, gchar **out_domain); + +void goa_utils_set_error_soup (GError **err, SoupMessage *msg); + +void goa_utils_set_error_ssl (GError **err, GTlsCertificateFlags flags); + +gboolean goa_utils_get_credentials (GoaProvider *provider, + GoaObject *object, + const gchar *id, + gchar **username, + gchar **password, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __GOA_UTILS_H__ */ diff --git a/src/goabackend/goawebextension.c b/src/goabackend/goawebextension.c new file mode 100644 index 0000000..6a25ab9 --- /dev/null +++ b/src/goabackend/goawebextension.c @@ -0,0 +1,273 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2015 Damián Nohales + * Copyright © 2015 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goaoauthprovider.h" +#include "goaoauth2provider.h" +#include "goaoauth2provider-web-extension.h" +#include "goaprovider.h" +#include "goawebextension.h" + +struct _GoaWebExtension +{ + GObject parent; + GoaProvider *provider; + WebKitWebExtension *wk_extension; + gchar *existing_identity; + gchar *provider_type; +}; + +struct _GoaWebExtensionClass +{ + GObjectClass parent; +}; + +enum +{ + PROP_0, + PROP_EXISTING_IDENTITY, + PROP_PROVIDER_TYPE, + PROP_WK_EXTENSION +}; + +G_DEFINE_TYPE (GoaWebExtension, goa_web_extension, G_TYPE_OBJECT) + +static void +web_extension_dom_node_deny_click_cb (WebKitDOMNode *element, WebKitDOMEvent *event, gpointer user_data) +{ + WebKitDOMDOMWindow *dom_window = WEBKIT_DOM_DOM_WINDOW (user_data); + webkit_dom_dom_window_webkit_message_handlers_post_message (dom_window, "deny-click", ""); +} + +static void +web_extension_dom_node_password_submit_cb (WebKitDOMNode *element, WebKitDOMEvent *event, gpointer user_data) +{ + WebKitDOMDOMWindow *dom_window = WEBKIT_DOM_DOM_WINDOW (user_data); + WebKitDOMHTMLInputElement *password_node; + gchar *password; + + password_node = WEBKIT_DOM_HTML_INPUT_ELEMENT (g_object_get_data (G_OBJECT (dom_window), "goa-password-node")); + password = webkit_dom_html_input_element_get_value (password_node); + webkit_dom_dom_window_webkit_message_handlers_post_message (dom_window, "password-submit", password); + g_free (password); +} + +static void +web_extension_document_loaded_cb (WebKitWebPage *web_page, gpointer user_data) +{ + GoaWebExtension *self = GOA_WEB_EXTENSION (user_data); + WebKitDOMDocument *document; + WebKitDOMDOMWindow *dom_window; + WebKitDOMHTMLCollection *elements = NULL; + gulong element_count; + gulong i; + + document = webkit_web_page_get_dom_document (web_page); + elements = webkit_dom_document_get_elements_by_tag_name_as_html_collection (document, "*"); + element_count = webkit_dom_html_collection_get_length (elements); + + dom_window = webkit_dom_document_get_default_view (document); + + for (i = 0; i < element_count; i++) + { + WebKitDOMNode *element = webkit_dom_html_collection_item (elements, i); + + if ((GOA_IS_OAUTH_PROVIDER (self->provider) + && goa_oauth_provider_is_deny_node (GOA_OAUTH_PROVIDER (self->provider), element)) + || (GOA_IS_OAUTH2_PROVIDER (self->provider) + && goa_oauth2_provider_is_deny_node (GOA_OAUTH2_PROVIDER (self->provider), element))) + { + webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (element), + "click", + G_CALLBACK (web_extension_dom_node_deny_click_cb), + FALSE, + dom_window); + } + else if (self->existing_identity != NULL + && self->existing_identity[0] != '\0' + && WEBKIT_DOM_IS_HTML_INPUT_ELEMENT (element) + && ((GOA_IS_OAUTH_PROVIDER (self->provider) + && goa_oauth_provider_is_identity_node (GOA_OAUTH_PROVIDER (self->provider), + WEBKIT_DOM_HTML_INPUT_ELEMENT (element))) + || (GOA_IS_OAUTH2_PROVIDER (self->provider) + && goa_oauth2_provider_is_identity_node (GOA_OAUTH2_PROVIDER (self->provider), + WEBKIT_DOM_HTML_INPUT_ELEMENT (element))))) + { + webkit_dom_html_input_element_set_value (WEBKIT_DOM_HTML_INPUT_ELEMENT (element), + self->existing_identity); + webkit_dom_html_input_element_set_read_only (WEBKIT_DOM_HTML_INPUT_ELEMENT (element), TRUE); + } + else if (WEBKIT_DOM_IS_HTML_INPUT_ELEMENT (element) + && ((GOA_IS_OAUTH_PROVIDER (self->provider) + && goa_oauth_provider_is_password_node (GOA_OAUTH_PROVIDER (self->provider), + WEBKIT_DOM_HTML_INPUT_ELEMENT (element))) + || (GOA_IS_OAUTH2_PROVIDER (self->provider) + && goa_oauth2_provider_is_password_node (GOA_OAUTH2_PROVIDER (self->provider), + WEBKIT_DOM_HTML_INPUT_ELEMENT (element))))) + { + WebKitDOMHTMLFormElement *form; + + form = webkit_dom_html_input_element_get_form (WEBKIT_DOM_HTML_INPUT_ELEMENT (element)); + if (form != NULL) + { + g_object_set_data_full (G_OBJECT (dom_window), + "goa-password-node", + g_object_ref (element), + g_object_unref); + webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (form), + "submit", + G_CALLBACK (web_extension_dom_node_password_submit_cb), + FALSE, + dom_window); + } + } + } + + g_clear_object (&elements); +} + +static void +web_extension_page_created_cb (GoaWebExtension *self, WebKitWebPage *web_page) +{ + g_signal_connect_object (web_page, "document-loaded", G_CALLBACK (web_extension_document_loaded_cb), self, 0); +} + +static void +goa_web_extension_constructed (GObject *object) +{ + GoaWebExtension *self = GOA_WEB_EXTENSION (object); + + G_OBJECT_CLASS (goa_web_extension_parent_class)->constructed (object); + + self->provider = goa_provider_get_for_provider_type (self->provider_type); + + g_signal_connect_object (self->wk_extension, + "page-created", + G_CALLBACK (web_extension_page_created_cb), + self, + G_CONNECT_SWAPPED); +} + +static void +goa_web_extension_dispose (GObject *object) +{ + GoaWebExtension *self = GOA_WEB_EXTENSION (object); + + g_clear_object (&self->provider); + g_clear_object (&self->wk_extension); + + G_OBJECT_CLASS (goa_web_extension_parent_class)->dispose (object); +} + +static void +goa_web_extension_finalize (GObject *object) +{ + GoaWebExtension *self = GOA_WEB_EXTENSION (object); + + g_free (self->existing_identity); + g_free (self->provider_type); + + G_OBJECT_CLASS (goa_web_extension_parent_class)->finalize (object); +} + +static void +goa_web_extension_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) +{ + GoaWebExtension *self = GOA_WEB_EXTENSION (object); + + switch (prop_id) + { + case PROP_EXISTING_IDENTITY: + self->existing_identity = g_value_dup_string (value); + break; + + case PROP_PROVIDER_TYPE: + self->provider_type = g_value_dup_string (value); + break; + + case PROP_WK_EXTENSION: + self->wk_extension = WEBKIT_WEB_EXTENSION (g_value_dup_object (value)); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +goa_web_extension_class_init (GoaWebExtensionClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->constructed = goa_web_extension_constructed; + object_class->dispose = goa_web_extension_dispose; + object_class->finalize = goa_web_extension_finalize; + object_class->set_property = goa_web_extension_set_property; + + g_object_class_install_property (object_class, + PROP_EXISTING_IDENTITY, + g_param_spec_string ("existing-identity", + "A GoaAccount identity", + "The user name with which we want to prefill the form", + NULL, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (object_class, + PROP_PROVIDER_TYPE, + g_param_spec_string ("provider-type", + "A GoaProvider type", + "The provider type that is represented by this view", + NULL, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (object_class, + PROP_WK_EXTENSION, + g_param_spec_object ("wk-extension", + "A WebKitWebExtension", + "The associated WebKitWebExtension", + WEBKIT_TYPE_WEB_EXTENSION, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); +} + +static void +goa_web_extension_init (GoaWebExtension *self) +{ +} + +GoaWebExtension * +goa_web_extension_new (WebKitWebExtension *wk_extension, + const gchar *provider_type, + const gchar *existing_identity) +{ + return g_object_new (GOA_TYPE_WEB_EXTENSION, + "existing-identity", existing_identity, + "provider-type", provider_type, + "wk-extension", wk_extension, + NULL); +} diff --git a/src/goabackend/goawebextension.h b/src/goabackend/goawebextension.h new file mode 100644 index 0000000..4a8cf8f --- /dev/null +++ b/src/goabackend/goawebextension.h @@ -0,0 +1,42 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2015 Damián Nohales + * Copyright © 2015 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_WEB_EXTENSION_H__ +#define __GOA_WEB_EXTENSION_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GOA_TYPE_WEB_EXTENSION (goa_web_extension_get_type()) +#define GOA_WEB_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_WEB_EXTENSION, GoaWebExtension)) +#define GOA_IS_WEB_EXTENSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_WEB_EXTENSION)) + +typedef struct _GoaWebExtension GoaWebExtension; +typedef struct _GoaWebExtensionClass GoaWebExtensionClass; + +GType goa_web_extension_get_type (void); +GoaWebExtension *goa_web_extension_new (WebKitWebExtension *wk_extension, + const gchar *provider_type, + const gchar *existing_identity); + +G_END_DECLS + +#endif /* __GOA_WEB_EXTENSION_H__ */ diff --git a/src/goabackend/goawebextensionmain.c b/src/goabackend/goawebextensionmain.c new file mode 100644 index 0000000..4fc91e5 --- /dev/null +++ b/src/goabackend/goawebextensionmain.c @@ -0,0 +1,53 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2015 Damián Nohales + * Copyright © 2015 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include +#include + +#include "goawebextension.h" + +static GoaWebExtension *the_extension; + +/* Silence -Wmissing-prototypes */ +void webkit_web_extension_initialize (WebKitWebExtension *wk_extension); +void webkit_web_extension_initialize_with_user_data (WebKitWebExtension *wk_extension, GVariant *user_data); + +G_MODULE_EXPORT void +webkit_web_extension_initialize (WebKitWebExtension *wk_extension) +{ + g_warning ("Error initializing web extension: user data not set"); +} + +G_MODULE_EXPORT void +webkit_web_extension_initialize_with_user_data (WebKitWebExtension *wk_extension, GVariant *user_data) +{ + const gchar *existing_identity; + const gchar *provider_type; + + g_variant_get (user_data, "(&s&s)", &provider_type, &existing_identity); + the_extension = goa_web_extension_new (wk_extension, provider_type, existing_identity); +} + +static void __attribute__((destructor)) +goa_web_extension_shutdown (void) +{ + g_clear_object (&the_extension); +} diff --git a/src/goabackend/goawebview.c b/src/goabackend/goawebview.c new file mode 100644 index 0000000..b7af122 --- /dev/null +++ b/src/goabackend/goawebview.c @@ -0,0 +1,501 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- + * + * Copyright © 2015 Damián Nohales + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +/* Based on code by the Epiphany team. + */ + +#include "config.h" + +#include +#include +#include +#include +#include + +#include "goawebview.h" +#include "nautilus-floating-bar.h" + +struct _GoaWebView +{ + GtkOverlay parent_instance; + GoaProvider *provider; + GtkWidget *floating_bar; + GtkWidget *progress_bar; + GtkWidget *web_view; + WebKitUserContentManager *user_content_manager; + WebKitWebContext *context; + gchar *existing_identity; + gulong clear_notify_progress_id; + gulong notify_load_status_id; + gulong notify_progress_id; +}; + +struct _GoaWebViewClass +{ + GtkOverlayClass parent_class; +}; + +enum +{ + PROP_0, + PROP_EXISTING_IDENTITY, + PROP_PROVIDER +}; + +enum +{ + DENY_CLICK, + PASSWORD_SUBMIT, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +G_DEFINE_TYPE (GoaWebView, goa_web_view, GTK_TYPE_OVERLAY) + +static gboolean +web_view_clear_notify_progress_cb (gpointer user_data) +{ + GoaWebView *self = GOA_WEB_VIEW (user_data); + + gtk_widget_hide (self->progress_bar); + self->clear_notify_progress_id = 0; + return FALSE; +} + +static char * +web_view_create_loading_title (const gchar *url) +{ + SoupURI *uri; + const gchar *hostname; + gchar *title; + + g_return_val_if_fail (url != NULL && url[0] != '\0', NULL); + + uri = soup_uri_new (url); + hostname = soup_uri_get_host (uri); + /* translators: %s here is the address of the web page */ + title = g_strdup_printf (_("Loading “%s”…"), hostname); + soup_uri_free (uri); + + return title; +} + +static void +web_view_floating_bar_update (GoaWebView *self, const gchar *text) +{ + nautilus_floating_bar_set_label (NAUTILUS_FLOATING_BAR (self->floating_bar), text); + + if (text == NULL || text[0] == '\0') + { + gtk_widget_hide (self->floating_bar); + gtk_widget_set_halign (self->floating_bar, GTK_ALIGN_START); + } + else + gtk_widget_show (self->floating_bar); +} + +static void +web_view_initialize_web_extensions_cb (GoaWebView *self) +{ + GVariant *data; + const gchar *existing_identity; + const gchar *provider_type; + + webkit_web_context_set_web_extensions_directory (self->context, PACKAGE_WEB_EXTENSIONS_DIR); + + if (self->provider == NULL) + return; + + provider_type = goa_provider_get_provider_type (self->provider); + existing_identity = (self->existing_identity == NULL) ? "" : self->existing_identity; + data = g_variant_new ("(ss)", provider_type, existing_identity); + webkit_web_context_set_web_extensions_initialization_user_data (self->context, data); +} + +#ifdef GOA_INSPECTOR_ENABLED +static void +web_view_inspector_closed_cb (WebKitWebInspector *inspector) +{ + GtkWidget *window; + WebKitWebViewBase *inspector_web_view; + + inspector_web_view = webkit_web_inspector_get_web_view (inspector); + window = gtk_widget_get_toplevel (GTK_WIDGET (inspector_web_view)); + if (gtk_widget_is_toplevel (window)) + gtk_widget_destroy (window); +} + +static gboolean +web_view_inspector_open_window_cb (WebKitWebInspector *inspector) +{ + GtkWidget *window; + GtkWindowGroup *group; + WebKitWebViewBase *inspector_web_view; + + group = gtk_window_group_new (); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_resize (GTK_WINDOW (window), 800, 600); + gtk_window_group_add_window (group, GTK_WINDOW (window)); + g_object_unref (group); + + inspector_web_view = webkit_web_inspector_get_web_view (inspector); + gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (inspector_web_view)); + + gtk_widget_show_all (window); + gtk_window_present (GTK_WINDOW (window)); + + return GDK_EVENT_STOP; +} +#endif /* GOA_INSPECTOR_ENABLED */ + +static void +web_view_load_changed_cb (WebKitWebView *web_view, + WebKitLoadEvent load_event, + gpointer user_data) +{ + GoaWebView *self = GOA_WEB_VIEW (user_data); + + switch (load_event) + { + case WEBKIT_LOAD_STARTED: + case WEBKIT_LOAD_COMMITTED: + { + const gchar *uri; + gchar *title; + + uri = webkit_web_view_get_uri (web_view); + title = web_view_create_loading_title (uri); + + web_view_floating_bar_update (self, title); + g_free (title); + break; + } + + case WEBKIT_LOAD_REDIRECTED: + /* TODO: Update the loading uri */ + break; + + case WEBKIT_LOAD_FINISHED: + web_view_floating_bar_update (self, NULL); + break; + + default: + break; + } +} + +static void +web_view_notify_estimated_load_progress_cb (GObject *object, + GParamSpec *pspec, + gpointer user_data) +{ + GoaWebView *self = GOA_WEB_VIEW (user_data); + WebKitWebView *web_view = WEBKIT_WEB_VIEW (object); + gboolean loading; + const gchar *uri; + gdouble progress; + + if (self->clear_notify_progress_id != 0) + { + g_source_remove (self->clear_notify_progress_id); + self->clear_notify_progress_id = 0; + } + + uri = webkit_web_view_get_uri (web_view); + if (!uri || g_str_equal (uri, "about:blank")) + return; + + progress = webkit_web_view_get_estimated_load_progress (web_view); + loading = webkit_web_view_is_loading (web_view); + + if (progress == 1.0 || !loading) + self->clear_notify_progress_id = g_timeout_add (500, web_view_clear_notify_progress_cb, self); + else + gtk_widget_show (self->progress_bar); + + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (self->progress_bar), + (loading || progress == 1.0) ? progress : 0.0); +} + +static void +web_view_script_message_received_deny_click_cb (GoaWebView *self) +{ + g_signal_emit (self, signals[DENY_CLICK], 0); +} + +static void +web_view_script_message_received_password_submit_cb (GoaWebView *self, WebKitJavascriptResult *js_result) +{ + JSGlobalContextRef js_context; + JSStringRef js_string; + JSValueRef js_value; + gsize max_size; + + js_value = webkit_javascript_result_get_value (js_result); + js_context = webkit_javascript_result_get_global_context (js_result); + js_string = JSValueToStringCopy (js_context, js_value, NULL); + max_size = JSStringGetMaximumUTF8CStringSize (js_string); + if (max_size > 0) + { + gchar *password; + + password = g_malloc0 (max_size); + JSStringGetUTF8CString (js_string, password, max_size); + g_signal_emit (self, signals[PASSWORD_SUBMIT], 0, password); + g_free (password); + } + + JSStringRelease (js_string); +} + +static void +goa_web_view_constructed (GObject *object) +{ + GoaWebView *self = GOA_WEB_VIEW (object); + const gchar *const *language_names; + + G_OBJECT_CLASS (goa_web_view_parent_class)->constructed (object); + + self->context = webkit_web_context_new (); + language_names = g_get_language_names (); + webkit_web_context_set_preferred_languages (self->context, language_names); + g_signal_connect_swapped (self->context, + "initialize-web-extensions", + G_CALLBACK (web_view_initialize_web_extensions_cb), + self); + + self->user_content_manager = webkit_user_content_manager_new (); + g_signal_connect_swapped (self->user_content_manager, + "script-message-received::deny-click", + G_CALLBACK (web_view_script_message_received_deny_click_cb), + self); + g_signal_connect_swapped (self->user_content_manager, + "script-message-received::password-submit", + G_CALLBACK (web_view_script_message_received_password_submit_cb), + self); + webkit_user_content_manager_register_script_message_handler (self->user_content_manager, "deny-click"); + webkit_user_content_manager_register_script_message_handler (self->user_content_manager, "password-submit"); + + self->web_view = GTK_WIDGET (g_object_new (WEBKIT_TYPE_WEB_VIEW, + "user-content-manager", self->user_content_manager, + "web-context", self->context, + NULL)); + gtk_widget_set_size_request (self->web_view, 500, 400); + gtk_container_add (GTK_CONTAINER (self), self->web_view); + +#ifdef GOA_INSPECTOR_ENABLED + { + WebKitSettings *settings; + WebKitWebInspector *inspector; + + /* Setup the inspector */ + settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (self->web_view)); + g_object_set (settings, "enable-developer-extras", TRUE, NULL); + + inspector = webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (self->web_view)); + g_signal_connect (inspector, "closed", G_CALLBACK (web_view_inspector_closed_cb), NULL); + g_signal_connect (inspector, "open-window", G_CALLBACK (web_view_inspector_open_window_cb), NULL); + } +#endif /* GOA_INSPECTOR_ENABLED */ + + /* statusbar is hidden by default */ + self->floating_bar = nautilus_floating_bar_new (NULL, FALSE); + gtk_widget_set_halign (self->floating_bar, GTK_ALIGN_START); + gtk_widget_set_valign (self->floating_bar, GTK_ALIGN_END); + gtk_widget_set_no_show_all (self->floating_bar, TRUE); + gtk_overlay_add_overlay (GTK_OVERLAY (self), self->floating_bar); + + self->progress_bar = gtk_progress_bar_new (); + gtk_style_context_add_class (gtk_widget_get_style_context (self->progress_bar), + GTK_STYLE_CLASS_OSD); + gtk_widget_set_halign (self->progress_bar, GTK_ALIGN_FILL); + gtk_widget_set_valign (self->progress_bar, GTK_ALIGN_START); + gtk_overlay_add_overlay (GTK_OVERLAY (self), self->progress_bar); + + self->notify_progress_id = g_signal_connect (self->web_view, + "notify::estimated-load-progress", + G_CALLBACK (web_view_notify_estimated_load_progress_cb), + self); + self->notify_load_status_id = g_signal_connect (self->web_view, + "load_changed", + G_CALLBACK (web_view_load_changed_cb), + self); +} + +static void +goa_web_view_dispose (GObject *object) +{ + GoaWebView *self = GOA_WEB_VIEW (object); + + g_clear_object (&self->user_content_manager); + g_clear_object (&self->context); + + if (self->clear_notify_progress_id != 0) + { + g_source_remove (self->clear_notify_progress_id); + self->clear_notify_progress_id = 0; + } + + if (self->notify_load_status_id != 0) + { + g_signal_handler_disconnect (self->web_view, self->notify_load_status_id); + self->notify_load_status_id = 0; + } + + if (self->notify_progress_id != 0) + { + g_signal_handler_disconnect (self->web_view, self->notify_progress_id); + self->notify_progress_id = 0; + } + + G_OBJECT_CLASS (goa_web_view_parent_class)->dispose (object); +} + +static void +goa_web_view_finalize (GObject *object) +{ + GoaWebView *self = GOA_WEB_VIEW (object); + + g_free (self->existing_identity); + + if (self->provider != NULL) + g_object_remove_weak_pointer (G_OBJECT (self->provider), (gpointer *) &self->provider); + + G_OBJECT_CLASS (goa_web_view_parent_class)->finalize (object); +} + +static void +goa_web_view_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) +{ + GoaWebView *self = GOA_WEB_VIEW (object); + + switch (prop_id) + { + case PROP_EXISTING_IDENTITY: + self->existing_identity = g_value_dup_string (value); + break; + + case PROP_PROVIDER: + self->provider = GOA_PROVIDER (g_value_get_object (value)); + if (self->provider != NULL) + g_object_add_weak_pointer (G_OBJECT (self->provider), (gpointer *) &self->provider); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +goa_web_view_init (GoaWebView *self) +{ +} + +static void +goa_web_view_class_init (GoaWebViewClass *klass) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (klass); + object_class->constructed = goa_web_view_constructed; + object_class->dispose = goa_web_view_dispose; + object_class->finalize = goa_web_view_finalize; + object_class->set_property = goa_web_view_set_property; + + g_object_class_install_property (object_class, + PROP_EXISTING_IDENTITY, + g_param_spec_string ("existing-identity", + "A GoaAccount identity", + "The user name with which we want to prefill the form", + NULL, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (object_class, + PROP_PROVIDER, + g_param_spec_object ("provider", + "A GoaProvider", + "The provider that is represented by this view", + GOA_TYPE_PROVIDER, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + + signals[DENY_CLICK] = g_signal_new ("deny-click", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + signals[PASSWORD_SUBMIT] = g_signal_new ("password-submit", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, + 1, + G_TYPE_STRING); +} + +GtkWidget * +goa_web_view_new (GoaProvider *provider, const gchar *existing_identity) +{ + return g_object_new (GOA_TYPE_WEB_VIEW, "provider", provider, "existing-identity", existing_identity, NULL); +} + +GtkWidget * +goa_web_view_get_view (GoaWebView *self) +{ + return self->web_view; +} + +void +goa_web_view_fake_mobile (GoaWebView *self) +{ + WebKitSettings *settings; + + settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (self->web_view)); + + /* This is based on the HTC Wildfire's user agent. Some + * providers, like Google, refuse to provide the mobile + * version of their authentication pages otherwise. eg., + * in Google's case, passing btmpl=mobile does not help. + * + * The actual user agent used by a HTC Wildfire is: + * Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; HTC Wildfire + * Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 + * Mobile Safari/533.1 + * + * Also note that the user agents of some mobile browsers may + * not work. eg., Nokia N9. + */ + webkit_settings_set_user_agent (settings, + "Mozilla/5.0 (GNOME; not Android) " + "AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile"); +} diff --git a/src/goabackend/goawebview.h b/src/goabackend/goawebview.h new file mode 100644 index 0000000..4b415cd --- /dev/null +++ b/src/goabackend/goawebview.h @@ -0,0 +1,43 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_WEB_VIEW_H__ +#define __GOA_WEB_VIEW_H__ + +#include + +#include "goaprovider.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_WEB_VIEW (goa_web_view_get_type ()) +#define GOA_WEB_VIEW(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GOA_TYPE_WEB_VIEW, GoaWebView)) +#define GOA_IS_WEB_VIEW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GOA_TYPE_WEB_VIEW)) + +typedef struct _GoaWebView GoaWebView; +typedef struct _GoaWebViewClass GoaWebViewClass; + +GType goa_web_view_get_type (void) G_GNUC_CONST; +GtkWidget *goa_web_view_new (GoaProvider *provider, + const gchar *existing_identity); +GtkWidget *goa_web_view_get_view (GoaWebView *self); +void goa_web_view_fake_mobile (GoaWebView *self); + +G_END_DECLS + +#endif /* __GOA_WEB_VIEW_H__ */ diff --git a/src/goabackend/goawindowsliveprovider.c b/src/goabackend/goawindowsliveprovider.c new file mode 100644 index 0000000..10c2dcf --- /dev/null +++ b/src/goabackend/goawindowsliveprovider.c @@ -0,0 +1,395 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * Copyright © 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include + +#include +#include + +#include "goaprovider.h" +#include "goaprovider-priv.h" +#include "goawindowsliveprovider.h" +#include "goaobjectskeletonutils.h" +#include "goarestproxy.h" + +struct _GoaWindowsLiveProvider +{ + GoaOAuth2Provider parent_instance; +}; + +G_DEFINE_TYPE_WITH_CODE (GoaWindowsLiveProvider, goa_windows_live_provider, GOA_TYPE_OAUTH2_PROVIDER, + goa_provider_ensure_extension_points_registered (); + g_io_extension_point_implement (GOA_PROVIDER_EXTENSION_POINT_NAME, + g_define_type_id, + GOA_WINDOWS_LIVE_NAME, + 0)); + +/* ---------------------------------------------------------------------------------------------------- */ + +static const gchar * +get_provider_type (GoaProvider *provider) +{ + return GOA_WINDOWS_LIVE_NAME; +} + +static gchar * +get_provider_name (GoaProvider *provider, + GoaObject *object) +{ + return g_strdup (_("Microsoft")); +} + +static GIcon * +get_provider_icon (GoaProvider *provider, + GoaObject *object) +{ + return g_themed_icon_new_with_default_fallbacks ("goa-account-msn"); +} + +static GoaProviderGroup +get_provider_group (GoaProvider *provider) +{ + return GOA_PROVIDER_GROUP_BRANDED; +} + +static GoaProviderFeatures +get_provider_features (GoaProvider *provider) +{ + return GOA_PROVIDER_FEATURE_BRANDED | + GOA_PROVIDER_FEATURE_MAIL | + GOA_PROVIDER_FEATURE_DOCUMENTS; +} + +static const gchar * +get_authorization_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://login.live.com/oauth20_authorize.srf"; +} + + +static const gchar * +get_token_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://login.live.com/oauth20_token.srf"; +} + + +static const gchar * +get_redirect_uri (GoaOAuth2Provider *oauth2_provider) +{ + return "https://login.live.com/oauth20_desktop.srf"; +} + +static const gchar * +get_scope (GoaOAuth2Provider *oauth2_provider) +{ + return "wl.imap," + "wl.offline_access," + "wl.skydrive_update," + "wl.emails"; +} + +static guint +get_credentials_generation (GoaProvider *provider) +{ + return 3; +} + +static const gchar * +get_client_id (GoaOAuth2Provider *oauth2_provider) +{ + return GOA_WINDOWS_LIVE_CLIENT_ID; +} + +static const gchar * +get_client_secret (GoaOAuth2Provider *oauth2_provider) +{ + return NULL; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gchar * +get_identity_sync (GoaOAuth2Provider *oauth2_provider, + const gchar *access_token, + gchar **out_presentation_identity, + GCancellable *cancellable, + GError **error) +{ + GError *identity_error = NULL; + RestProxy *proxy = NULL; + RestProxyCall *call = NULL; + JsonParser *parser = NULL; + JsonObject *json_object; + gchar *ret = NULL; + gchar *id = NULL; + gchar *presentation_identity = NULL; + + /* TODO: cancellable */ + + proxy = goa_rest_proxy_new ("https://apis.live.net/v5.0/me", FALSE); + call = rest_proxy_new_call (proxy); + rest_proxy_call_set_method (call, "GET"); + rest_proxy_call_add_param (call, "access_token", access_token); + + if (!rest_proxy_call_sync (call, error)) + goto out; + if (rest_proxy_call_get_status_code (call) != 200) + { + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Expected status 200 when requesting your identity, instead got status %d (%s)"), + rest_proxy_call_get_status_code (call), + rest_proxy_call_get_status_message (call)); + goto out; + } + + parser = json_parser_new (); + if (!json_parser_load_from_data (parser, + rest_proxy_call_get_payload (call), + rest_proxy_call_get_payload_length (call), + &identity_error)) + { + g_warning ("json_parser_load_from_data() failed: %s (%s, %d)", + identity_error->message, + g_quark_to_string (identity_error->domain), + identity_error->code); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + json_object = json_node_get_object (json_parser_get_root (parser)); + if (!json_object_has_member (json_object, "id")) + { + g_warning ("Did not find id in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + if (!json_object_has_member (json_object, "emails")) + { + g_warning ("Did not find emails in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + id = g_strdup (json_object_get_string_member (json_object, "id")); + + json_object = json_object_get_object_member (json_object, "emails"); + if (!json_object_has_member (json_object, "account")) + { + g_warning ("Did not find emails.account in JSON data"); + g_set_error (error, + GOA_ERROR, + GOA_ERROR_FAILED, + _("Could not parse response")); + goto out; + } + + presentation_identity = g_strdup (json_object_get_string_member (json_object, "account")); + + ret = id; + id = NULL; + if (out_presentation_identity != NULL) + { + *out_presentation_identity = presentation_identity; + presentation_identity = NULL; + } + + out: + g_clear_object (&parser); + g_clear_error (&identity_error); + g_clear_object (&call); + g_clear_object (&proxy); + g_free (id); + g_free (presentation_identity); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +is_identity_node (GoaOAuth2Provider *oauth2_provider, WebKitDOMHTMLInputElement *element) +{ + gboolean ret = FALSE; + gchar *element_type = NULL; + gchar *name = NULL; + + /* FIXME: This does not show up in + * webkit_dom_document_get_elements_by_tag_name, but can be + * seen in the inspector. Needs further investigation. + */ + + g_object_get (element, "type", &element_type, NULL); + if (g_strcmp0 (element_type, "email") != 0) + goto out; + + name = webkit_dom_html_input_element_get_name (element); + if (g_strcmp0 (name, "login") != 0) + goto out; + + ret = TRUE; + + out: + g_free (element_type); + g_free (name); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static gboolean +build_object (GoaProvider *provider, + GoaObjectSkeleton *object, + GKeyFile *key_file, + const gchar *group, + GDBusConnection *connection, + gboolean just_added, + GError **error) +{ + GoaAccount *account = NULL; + GoaMail *mail = NULL; + gboolean mail_enabled; + gboolean documents_enabled; + gboolean ret = FALSE; + const gchar *email_address; + + /* Chain up */ + if (!GOA_PROVIDER_CLASS (goa_windows_live_provider_parent_class)->build_object (provider, + object, + key_file, + group, + connection, + just_added, + error)) + goto out; + + account = goa_object_get_account (GOA_OBJECT (object)); + email_address = goa_account_get_presentation_identity (account); + + /* Email */ + mail = goa_object_get_mail (GOA_OBJECT (object)); + mail_enabled = g_key_file_get_boolean (key_file, group, "MailEnabled", NULL); + if (mail_enabled) + { + if (mail == NULL) + { + mail = goa_mail_skeleton_new (); + g_object_set (G_OBJECT (mail), + "email-address", email_address, + "imap-supported", TRUE, + "imap-host", "imap-mail.outlook.com", + "imap-user-name", email_address, + "imap-use-ssl", TRUE, + "smtp-supported", TRUE, + "smtp-host", "smtp-mail.outlook.com", + "smtp-user-name", email_address, + "smtp-use-auth", TRUE, + "smtp-auth-xoauth2", TRUE, + "smtp-use-tls", TRUE, + NULL); + goa_object_skeleton_set_mail (object, mail); + } + } + else + { + if (mail != NULL) + goa_object_skeleton_set_mail (object, NULL); + } + + /* Documents */ + documents_enabled = g_key_file_get_boolean (key_file, group, "DocumentsEnabled", NULL); + goa_object_skeleton_attach_documents (object, documents_enabled); + + if (just_added) + { + goa_account_set_mail_disabled (account, !mail_enabled); + goa_account_set_documents_disabled (account, !documents_enabled); + + g_signal_connect (account, + "notify::mail-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "MailEnabled"); + g_signal_connect (account, + "notify::documents-disabled", + G_CALLBACK (goa_util_account_notify_property_cb), + (gpointer) "DocumentsEnabled"); + } + + ret = TRUE; + + out: + g_clear_object (&mail); + g_clear_object (&account); + return ret; +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +add_account_key_values (GoaOAuth2Provider *oauth2_provider, + GVariantBuilder *builder) +{ + g_variant_builder_add (builder, "{ss}", "MailEnabled", "true"); + g_variant_builder_add (builder, "{ss}", "DocumentsEnabled", "true"); +} + +/* ---------------------------------------------------------------------------------------------------- */ + +static void +goa_windows_live_provider_init (GoaWindowsLiveProvider *self) +{ +} + +static void +goa_windows_live_provider_class_init (GoaWindowsLiveProviderClass *klass) +{ + GoaProviderClass *provider_class; + GoaOAuth2ProviderClass *oauth2_class; + + provider_class = GOA_PROVIDER_CLASS (klass); + provider_class->get_provider_type = get_provider_type; + provider_class->get_provider_name = get_provider_name; + provider_class->get_provider_icon = get_provider_icon; + provider_class->get_provider_group = get_provider_group; + provider_class->get_provider_features = get_provider_features; + provider_class->build_object = build_object; + provider_class->get_credentials_generation = get_credentials_generation; + + oauth2_class = GOA_OAUTH2_PROVIDER_CLASS (klass); + oauth2_class->get_authorization_uri = get_authorization_uri; + oauth2_class->get_token_uri = get_token_uri; + oauth2_class->get_redirect_uri = get_redirect_uri; + oauth2_class->get_scope = get_scope; + oauth2_class->get_client_id = get_client_id; + oauth2_class->get_client_secret = get_client_secret; + oauth2_class->get_identity_sync = get_identity_sync; + oauth2_class->is_identity_node = is_identity_node; + oauth2_class->add_account_key_values = add_account_key_values; +} diff --git a/src/goabackend/goawindowsliveprovider.h b/src/goabackend/goawindowsliveprovider.h new file mode 100644 index 0000000..ebbd38c --- /dev/null +++ b/src/goabackend/goawindowsliveprovider.h @@ -0,0 +1,43 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2011 – 2017 Red Hat, Inc. + * Copyright © 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#if !defined (__GOA_BACKEND_INSIDE_GOA_BACKEND_H__) && !defined (GOA_BACKEND_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GOA_WINDOWS_LIVE_PROVIDER_H__ +#define __GOA_WINDOWS_LIVE_PROVIDER_H__ + +#include + +#include "goaoauth2provider.h" +#include "goaoauth2provider-priv.h" + +G_BEGIN_DECLS + +#define GOA_TYPE_WINDOWS_LIVE_PROVIDER (goa_windows_live_provider_get_type ()) +G_DECLARE_FINAL_TYPE (GoaWindowsLiveProvider, + goa_windows_live_provider, + GOA, + WINDOWS_LIVE_PROVIDER, + GoaOAuth2Provider); + +G_END_DECLS + +#endif /* __GOA_WINDOWS_LIVE_PROVIDER_H__ */ diff --git a/src/goabackend/nautilus-floating-bar.c b/src/goabackend/nautilus-floating-bar.c new file mode 100644 index 0000000..a3676fb --- /dev/null +++ b/src/goabackend/nautilus-floating-bar.c @@ -0,0 +1,388 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ + +/* Nautilus - Floating status bar. + * + * Copyright (C) 2011 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, see . + * + * Authors: Cosimo Cecchi + * + */ + +#include + +#include "nautilus-floating-bar.h" + +struct _NautilusFloatingBarDetails { + gchar *label; + + GtkWidget *label_widget; + GtkWidget *spinner; + gboolean show_spinner; + gboolean is_interactive; +}; + +enum { + PROP_LABEL = 1, + PROP_SHOW_SPINNER, + NUM_PROPERTIES +}; + +enum { + ACTION, + NUM_SIGNALS +}; + +static GParamSpec *properties[NUM_PROPERTIES] = { NULL, }; +static guint signals[NUM_SIGNALS] = { 0, }; + +G_DEFINE_TYPE (NautilusFloatingBar, nautilus_floating_bar, + GTK_TYPE_BOX); + +static void +action_button_clicked_cb (GtkButton *button, + NautilusFloatingBar *self) +{ + gint action_id; + + action_id = GPOINTER_TO_INT + (g_object_get_data (G_OBJECT (button), "action-id")); + + g_signal_emit (self, signals[ACTION], 0, action_id); +} + +static void +nautilus_floating_bar_finalize (GObject *obj) +{ + NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (obj); + + g_free (self->priv->label); + + G_OBJECT_CLASS (nautilus_floating_bar_parent_class)->finalize (obj); +} + +static void +nautilus_floating_bar_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (object); + + switch (property_id) { + case PROP_LABEL: + g_value_set_string (value, self->priv->label); + break; + case PROP_SHOW_SPINNER: + g_value_set_boolean (value, self->priv->show_spinner); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +nautilus_floating_bar_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (object); + + switch (property_id) { + case PROP_LABEL: + nautilus_floating_bar_set_label (self, g_value_get_string (value)); + break; + case PROP_SHOW_SPINNER: + nautilus_floating_bar_set_show_spinner (self, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +update_label (NautilusFloatingBar *self) +{ + gtk_label_set_text (GTK_LABEL (self->priv->label_widget), self->priv->label); +} + +static gboolean +overlay_enter_notify_cb (GtkWidget *parent, + GdkEventCrossing *event, + gpointer user_data) +{ + GtkWidget *widget = user_data; + + if (event->window != gtk_widget_get_window (widget)) { + return FALSE; + } + + if (NAUTILUS_FLOATING_BAR (widget)->priv->is_interactive) { + return FALSE; + } + + if (gtk_widget_get_halign (widget) == GTK_ALIGN_START) { + gtk_widget_set_halign (widget, GTK_ALIGN_END); + } else { + gtk_widget_set_halign (widget, GTK_ALIGN_START); + } + + gtk_widget_queue_resize (widget); + + return FALSE; +} + +static void +nautilus_floating_bar_parent_set (GtkWidget *widget, + GtkWidget *old_parent) +{ + GtkWidget *parent; + + parent = gtk_widget_get_parent (widget); + + if (old_parent != NULL) { + g_signal_handlers_disconnect_by_func (old_parent, + overlay_enter_notify_cb, widget); + } + + if (parent != NULL) { + g_signal_connect (parent, "enter-notify-event", + G_CALLBACK (overlay_enter_notify_cb), widget); + } +} + +static void +nautilus_floating_bar_show (GtkWidget *widget) +{ + NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (widget); + + GTK_WIDGET_CLASS (nautilus_floating_bar_parent_class)->show (widget); + + if (self->priv->show_spinner) { + gtk_spinner_start (GTK_SPINNER (self->priv->spinner)); + } +} + +static void +nautilus_floating_bar_hide (GtkWidget *widget) +{ + NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (widget); + + GTK_WIDGET_CLASS (nautilus_floating_bar_parent_class)->hide (widget); + + gtk_spinner_stop (GTK_SPINNER (self->priv->spinner)); +} + +static gboolean +nautilus_floating_bar_draw (GtkWidget *widget, + cairo_t *cr) +{ + GtkStyleContext *context; + + context = gtk_widget_get_style_context (widget); + + gtk_style_context_save (context); + gtk_style_context_set_state (context, gtk_widget_get_state_flags (widget)); + + gtk_render_background (context, cr, 0, 0, + gtk_widget_get_allocated_width (widget), + gtk_widget_get_allocated_height (widget)); + + gtk_render_frame (context, cr, 0, 0, + gtk_widget_get_allocated_width (widget), + gtk_widget_get_allocated_height (widget)); + + gtk_style_context_restore (context); + + return GTK_WIDGET_CLASS (nautilus_floating_bar_parent_class)->draw (widget, cr);; +} + +static void +nautilus_floating_bar_constructed (GObject *obj) +{ + NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (obj); + GtkWidget *w, *box; + + G_OBJECT_CLASS (nautilus_floating_bar_parent_class)->constructed (obj); + + box = GTK_WIDGET (obj); + + w = gtk_spinner_new (); + gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0); + gtk_widget_set_visible (w, self->priv->show_spinner); + self->priv->spinner = w; + + gtk_widget_set_size_request (w, 16, 16); + gtk_widget_set_margin_start (w, 8); + + w = gtk_label_new (NULL); + gtk_label_set_ellipsize (GTK_LABEL (w), PANGO_ELLIPSIZE_MIDDLE); + gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0); + g_object_set (w, + "margin-top", 2, + "margin-bottom", 2, + "margin-left", 12, + "margin-right", 12, + "max-width-chars", 60, + NULL); + self->priv->label_widget = w; + gtk_widget_show (w); +} + +static void +nautilus_floating_bar_init (NautilusFloatingBar *self) +{ + GtkStyleContext *context; + + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NAUTILUS_TYPE_FLOATING_BAR, + NautilusFloatingBarDetails); + + context = gtk_widget_get_style_context (GTK_WIDGET (self)); + gtk_style_context_add_class (context, "floating-bar"); +} + +static void +nautilus_floating_bar_class_init (NautilusFloatingBarClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass); + + oclass->constructed = nautilus_floating_bar_constructed; + oclass->set_property = nautilus_floating_bar_set_property; + oclass->get_property = nautilus_floating_bar_get_property; + oclass->finalize = nautilus_floating_bar_finalize; + + wclass->draw = nautilus_floating_bar_draw; + wclass->show = nautilus_floating_bar_show; + wclass->hide = nautilus_floating_bar_hide; + wclass->parent_set = nautilus_floating_bar_parent_set; + + properties[PROP_LABEL] = + g_param_spec_string ("label", + "Bar's label", + "Label displayed by the bar", + NULL, + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS); + properties[PROP_SHOW_SPINNER] = + g_param_spec_boolean ("show-spinner", + "Show spinner", + "Whether a spinner should be shown in the floating bar", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + + signals[ACTION] = + g_signal_new ("action", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, 1, + G_TYPE_INT); + + g_type_class_add_private (klass, sizeof (NautilusFloatingBarDetails)); + g_object_class_install_properties (oclass, NUM_PROPERTIES, properties); +} + +void +nautilus_floating_bar_set_label (NautilusFloatingBar *self, + const gchar *label) +{ + if (g_strcmp0 (self->priv->label, label) != 0) { + g_free (self->priv->label); + self->priv->label = g_strdup (label); + + g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_LABEL]); + + update_label (self); + } +} + +void +nautilus_floating_bar_set_show_spinner (NautilusFloatingBar *self, + gboolean show_spinner) +{ + if (self->priv->show_spinner != show_spinner) { + self->priv->show_spinner = show_spinner; + gtk_widget_set_visible (self->priv->spinner, + show_spinner); + + g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SHOW_SPINNER]); + } +} + +GtkWidget * +nautilus_floating_bar_new (const gchar *label, + gboolean show_spinner) +{ + return g_object_new (NAUTILUS_TYPE_FLOATING_BAR, + "label", label, + "show-spinner", show_spinner, + "orientation", GTK_ORIENTATION_HORIZONTAL, + "spacing", 8, + NULL); +} + +void +nautilus_floating_bar_add_action (NautilusFloatingBar *self, + const gchar *icon_name, + gint action_id) +{ + GtkWidget *w, *button; + + w = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); + gtk_widget_show (w); + + button = gtk_button_new (); + gtk_button_set_image (GTK_BUTTON (button), w); + gtk_box_pack_end (GTK_BOX (self), button, FALSE, FALSE, 0); + gtk_widget_show (button); + + g_object_set_data (G_OBJECT (button), "action-id", + GINT_TO_POINTER (action_id)); + + g_signal_connect (button, "clicked", + G_CALLBACK (action_button_clicked_cb), self); + + self->priv->is_interactive = TRUE; +} + +void +nautilus_floating_bar_cleanup_actions (NautilusFloatingBar *self) +{ + GtkWidget *widget; + GList *children, *l; + gpointer data; + + children = gtk_container_get_children (GTK_CONTAINER (self)); + l = children; + + while (l != NULL) { + widget = l->data; + data = g_object_get_data (G_OBJECT (widget), "action-id"); + l = l->next; + + if (data != NULL) { + /* destroy this */ + gtk_widget_destroy (widget); + } + } + + g_list_free (children); + + self->priv->is_interactive = FALSE; +} diff --git a/src/goabackend/nautilus-floating-bar.h b/src/goabackend/nautilus-floating-bar.h new file mode 100644 index 0000000..d0521a5 --- /dev/null +++ b/src/goabackend/nautilus-floating-bar.h @@ -0,0 +1,73 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ + +/* Nautilus - Floating status bar. + * + * Copyright (C) 2011 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, see . + * + * Authors: Cosimo Cecchi + * + */ + +#ifndef __NAUTILUS_FLOATING_BAR_H__ +#define __NAUTILUS_FLOATING_BAR_H__ + +#include + +#define NAUTILUS_FLOATING_BAR_ACTION_ID_STOP 1 + +#define NAUTILUS_TYPE_FLOATING_BAR nautilus_floating_bar_get_type() +#define NAUTILUS_FLOATING_BAR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_FLOATING_BAR, NautilusFloatingBar)) +#define NAUTILUS_FLOATING_BAR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_FLOATING_BAR, NautilusFloatingBarClass)) +#define NAUTILUS_IS_FLOATING_BAR(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_FLOATING_BAR)) +#define NAUTILUS_IS_FLOATING_BAR_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_FLOATING_BAR)) +#define NAUTILUS_FLOATING_BAR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_FLOATING_BAR, NautilusFloatingBarClass)) + +typedef struct _NautilusFloatingBar NautilusFloatingBar; +typedef struct _NautilusFloatingBarClass NautilusFloatingBarClass; +typedef struct _NautilusFloatingBarDetails NautilusFloatingBarDetails; + +struct _NautilusFloatingBar { + GtkBox parent; + NautilusFloatingBarDetails *priv; +}; + +struct _NautilusFloatingBarClass { + GtkBoxClass parent_class; +}; + +/* GObject */ +GType nautilus_floating_bar_get_type (void); + +GtkWidget * nautilus_floating_bar_new (const gchar *label, + gboolean show_spinner); + +void nautilus_floating_bar_set_label (NautilusFloatingBar *self, + const gchar *label); +void nautilus_floating_bar_set_show_spinner (NautilusFloatingBar *self, + gboolean show_spinner); + +void nautilus_floating_bar_add_action (NautilusFloatingBar *self, + const gchar *icon_name, + gint action_id); +void nautilus_floating_bar_cleanup_actions (NautilusFloatingBar *self); + +#endif /* __NAUTILUS_FLOATING_BAR_H__ */ + diff --git a/src/goaidentity/Makefile.am b/src/goaidentity/Makefile.am new file mode 100644 index 0000000..fd933ad --- /dev/null +++ b/src/goaidentity/Makefile.am @@ -0,0 +1,119 @@ +NULL = +BUILT_SOURCES = $(NULL) +EXTRA_DIST = $(NULL) +CLEANFILES= $(NULL) + +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -I$(top_srcdir)/src/goabackend \ + -DG_LOG_DOMAIN=\"libgoaidentity\" \ + -DGOA_BACKEND_COMPILATION \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + -DGOA_API_IS_SUBJECT_TO_CHANGE \ + -DGOA_BACKEND_API_IS_SUBJECT_TO_CHANGE \ + $(WARN_CFLAGS) \ + $(NULL) + +identity_headers = \ + goaalarm.h \ + goaidentity.h \ + goaidentityinquiry.h \ + goaidentityinquiryprivate.h \ + goaidentityservice.h \ + goaidentitymanagerprivate.h \ + goaidentitymanager.h \ + goaidentitymanagererror.h \ + goaidentityutils.h \ + goakerberosidentity.h \ + goakerberosidentityinquiry.h \ + goakerberosidentitymanager.h \ + $(NULL) + +identity_sources = \ + $(identity_headers) \ + goaalarm.c \ + goaidentity.c \ + goaidentityinquiry.c \ + goaidentityservice.c \ + goaidentitymanager.c \ + goaidentitymanagererror.c \ + goaidentityutils.c \ + goakerberosidentity.c \ + goakerberosidentityinquiry.c \ + goakerberosidentitymanager.c \ + main.c \ + $(NULL) + +identity_dbus_built_sources = \ + org.gnome.Identity.c org.gnome.Identity.h \ + $(NULL) + +$(identity_dbus_built_sources) : Makefile.am org.gnome.Identity.xml + $(AM_V_GEN) gdbus-codegen \ + --interface-prefix org.gnome.Identity. \ + --c-namespace GoaIdentityService \ + --c-generate-object-manager \ + --generate-c-code org.gnome.Identity \ + $(srcdir)/org.gnome.Identity.xml \ + --annotate "org.gnome.Identity" \ + "org.gtk.GDBus.C.Name" Identity \ + $(NULL) +BUILT_SOURCES += $(identity_dbus_built_sources) +EXTRA_DIST += org.gnome.Identity.xml + +goaidentityenumtypes.h: goaidentityenumtypes.h.in $(identity_headers) + $(AM_V_GEN) glib-mkenums --template $^ > $@ +EXTRA_DIST += goaidentityenumtypes.h.in +BUILT_SOURCES += goaidentityenumtypes.h + +goaidentityenumtypes.c: goaidentityenumtypes.c.in $(identity_headers) + $(AM_V_GEN) glib-mkenums --template $^ > $@ +EXTRA_DIST += goaidentityenumtypes.c.in +BUILT_SOURCES += goaidentityenumtypes.c + +if BUILD_KERBEROS +libexec_PROGRAMS = goa-identity-service + +goa_identity_service_SOURCES = \ + goaidentityenumtypes.h goaidentityenumtypes.c \ + $(identity_dbus_built_sources) \ + $(identity_sources) \ + $(NULL) + +goa_identity_service_CFLAGS = \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) \ + $(KRB5_CFLAGS) \ + $(GCR_CFLAGS) \ + $(NULL) + +goa_identity_service_LDADD = \ + $(top_builddir)/src/goa/libgoa-1.0.la \ + $(GLIB_LIBS) \ + $(GTK_LIBS) \ + $(KRB5_LIBS) \ + $(GCR_LIBS) \ + $(NULL) + +goa_identity_service_LDFLAGS = \ + $(WARN_LDFLAGS) \ + $(NULL) + +else +EXTRA_DIST += $(identity_sources) +endif + +CLEANFILES += $(BUILT_SOURCES) + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk diff --git a/src/goaidentity/Makefile.in b/src/goaidentity/Makefile.in new file mode 100644 index 0000000..362df17 --- /dev/null +++ b/src/goaidentity/Makefile.in @@ -0,0 +1,1070 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@BUILD_KERBEROS_TRUE@libexec_PROGRAMS = goa-identity-service$(EXEEXT) +@BUILD_KERBEROS_FALSE@am__append_1 = $(identity_sources) +subdir = src/goaidentity +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_config_dir.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vapigen.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(libexecdir)" +PROGRAMS = $(libexec_PROGRAMS) +am__goa_identity_service_SOURCES_DIST = goaidentityenumtypes.h \ + goaidentityenumtypes.c org.gnome.Identity.c \ + org.gnome.Identity.h goaalarm.h goaidentity.h \ + goaidentityinquiry.h goaidentityinquiryprivate.h \ + goaidentityservice.h goaidentitymanagerprivate.h \ + goaidentitymanager.h goaidentitymanagererror.h \ + goaidentityutils.h goakerberosidentity.h \ + goakerberosidentityinquiry.h goakerberosidentitymanager.h \ + goaalarm.c goaidentity.c goaidentityinquiry.c \ + goaidentityservice.c goaidentitymanager.c \ + goaidentitymanagererror.c goaidentityutils.c \ + goakerberosidentity.c goakerberosidentityinquiry.c \ + goakerberosidentitymanager.c main.c +am__objects_1 = +am__objects_2 = goa_identity_service-org.gnome.Identity.$(OBJEXT) \ + $(am__objects_1) +am__objects_3 = $(am__objects_1) +am__objects_4 = $(am__objects_3) \ + goa_identity_service-goaalarm.$(OBJEXT) \ + goa_identity_service-goaidentity.$(OBJEXT) \ + goa_identity_service-goaidentityinquiry.$(OBJEXT) \ + goa_identity_service-goaidentityservice.$(OBJEXT) \ + goa_identity_service-goaidentitymanager.$(OBJEXT) \ + goa_identity_service-goaidentitymanagererror.$(OBJEXT) \ + goa_identity_service-goaidentityutils.$(OBJEXT) \ + goa_identity_service-goakerberosidentity.$(OBJEXT) \ + goa_identity_service-goakerberosidentityinquiry.$(OBJEXT) \ + goa_identity_service-goakerberosidentitymanager.$(OBJEXT) \ + goa_identity_service-main.$(OBJEXT) $(am__objects_1) +@BUILD_KERBEROS_TRUE@am_goa_identity_service_OBJECTS = goa_identity_service-goaidentityenumtypes.$(OBJEXT) \ +@BUILD_KERBEROS_TRUE@ $(am__objects_2) $(am__objects_4) \ +@BUILD_KERBEROS_TRUE@ $(am__objects_1) +goa_identity_service_OBJECTS = $(am_goa_identity_service_OBJECTS) +am__DEPENDENCIES_1 = +@BUILD_KERBEROS_TRUE@goa_identity_service_DEPENDENCIES = \ +@BUILD_KERBEROS_TRUE@ $(top_builddir)/src/goa/libgoa-1.0.la \ +@BUILD_KERBEROS_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_KERBEROS_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_KERBEROS_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_KERBEROS_TRUE@ $(am__DEPENDENCIES_1) \ +@BUILD_KERBEROS_TRUE@ $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +goa_identity_service_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(goa_identity_service_CFLAGS) $(CFLAGS) \ + $(goa_identity_service_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(goa_identity_service_SOURCES) +DIST_SOURCES = $(am__goa_identity_service_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCR_CFLAGS = @GCR_CFLAGS@ +GCR_LIBS = @GCR_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GOA_BACKEND_LT_VERSION = @GOA_BACKEND_LT_VERSION@ +GOA_LT_VERSION = @GOA_LT_VERSION@ +GOA_MAJOR_VERSION = @GOA_MAJOR_VERSION@ +GOA_MICRO_VERSION = @GOA_MICRO_VERSION@ +GOA_MINOR_VERSION = @GOA_MINOR_VERSION@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +JSON_GLIB_CFLAGS = @JSON_GLIB_CFLAGS@ +JSON_GLIB_LIBS = @JSON_GLIB_LIBS@ +KRB5_CFLAGS = @KRB5_CFLAGS@ +KRB5_CONFIG = @KRB5_CONFIG@ +KRB5_LIBS = @KRB5_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@ +LIBSOUP_LIBS = @LIBSOUP_LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_CFLAGS = @LIBXML_CFLAGS@ +LIBXML_LIBS = @LIBXML_LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +REST_CFLAGS = @REST_CFLAGS@ +REST_LIBS = @REST_LIBS@ +SECRET_CFLAGS = @SECRET_CFLAGS@ +SECRET_LIBS = @SECRET_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TP_CFLAGS = @TP_CFLAGS@ +TP_LIBS = @TP_LIBS@ +USE_NLS = @USE_NLS@ +VAPIGEN = @VAPIGEN@ +VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@ +VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WEBKIT_GTK_CFLAGS = @WEBKIT_GTK_CFLAGS@ +WEBKIT_GTK_LIBS = @WEBKIT_GTK_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XSLTPROC = @XSLTPROC@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +BUILT_SOURCES = $(NULL) $(identity_dbus_built_sources) \ + goaidentityenumtypes.h goaidentityenumtypes.c +EXTRA_DIST = $(NULL) org.gnome.Identity.xml goaidentityenumtypes.h.in \ + goaidentityenumtypes.c.in $(am__append_1) +CLEANFILES = $(NULL) $(BUILT_SOURCES) +AM_CPPFLAGS = \ + -I$(top_builddir)/src -I$(top_srcdir)/src \ + -I$(top_builddir)/src/goa \ + -I$(top_srcdir)/src/goabackend \ + -DG_LOG_DOMAIN=\"libgoaidentity\" \ + -DGOA_BACKEND_COMPILATION \ + -DPACKAGE_LIBEXEC_DIR=\""$(libexecdir)"\" \ + -DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \ + -DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \ + -DPACKAGE_BIN_DIR=\""$(bindir)"\" \ + -DPACKAGE_LOCALSTATE_DIR=\""$(localstatedir)"\" \ + -DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \ + -DPACKAGE_LIB_DIR=\""$(libdir)"\" \ + -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \ + -DGOA_API_IS_SUBJECT_TO_CHANGE \ + -DGOA_BACKEND_API_IS_SUBJECT_TO_CHANGE \ + $(WARN_CFLAGS) \ + $(NULL) + +identity_headers = \ + goaalarm.h \ + goaidentity.h \ + goaidentityinquiry.h \ + goaidentityinquiryprivate.h \ + goaidentityservice.h \ + goaidentitymanagerprivate.h \ + goaidentitymanager.h \ + goaidentitymanagererror.h \ + goaidentityutils.h \ + goakerberosidentity.h \ + goakerberosidentityinquiry.h \ + goakerberosidentitymanager.h \ + $(NULL) + +identity_sources = \ + $(identity_headers) \ + goaalarm.c \ + goaidentity.c \ + goaidentityinquiry.c \ + goaidentityservice.c \ + goaidentitymanager.c \ + goaidentitymanagererror.c \ + goaidentityutils.c \ + goakerberosidentity.c \ + goakerberosidentityinquiry.c \ + goakerberosidentitymanager.c \ + main.c \ + $(NULL) + +identity_dbus_built_sources = \ + org.gnome.Identity.c org.gnome.Identity.h \ + $(NULL) + +@BUILD_KERBEROS_TRUE@goa_identity_service_SOURCES = \ +@BUILD_KERBEROS_TRUE@ goaidentityenumtypes.h goaidentityenumtypes.c \ +@BUILD_KERBEROS_TRUE@ $(identity_dbus_built_sources) \ +@BUILD_KERBEROS_TRUE@ $(identity_sources) \ +@BUILD_KERBEROS_TRUE@ $(NULL) + +@BUILD_KERBEROS_TRUE@goa_identity_service_CFLAGS = \ +@BUILD_KERBEROS_TRUE@ $(GLIB_CFLAGS) \ +@BUILD_KERBEROS_TRUE@ $(GTK_CFLAGS) \ +@BUILD_KERBEROS_TRUE@ $(KRB5_CFLAGS) \ +@BUILD_KERBEROS_TRUE@ $(GCR_CFLAGS) \ +@BUILD_KERBEROS_TRUE@ $(NULL) + +@BUILD_KERBEROS_TRUE@goa_identity_service_LDADD = \ +@BUILD_KERBEROS_TRUE@ $(top_builddir)/src/goa/libgoa-1.0.la \ +@BUILD_KERBEROS_TRUE@ $(GLIB_LIBS) \ +@BUILD_KERBEROS_TRUE@ $(GTK_LIBS) \ +@BUILD_KERBEROS_TRUE@ $(KRB5_LIBS) \ +@BUILD_KERBEROS_TRUE@ $(GCR_LIBS) \ +@BUILD_KERBEROS_TRUE@ $(NULL) + +@BUILD_KERBEROS_TRUE@goa_identity_service_LDFLAGS = \ +@BUILD_KERBEROS_TRUE@ $(WARN_LDFLAGS) \ +@BUILD_KERBEROS_TRUE@ $(NULL) + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/goaidentity/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/goaidentity/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-libexecPROGRAMS: $(libexec_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-libexecPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(libexecdir)" && rm -f $$files + +clean-libexecPROGRAMS: + @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +goa-identity-service$(EXEEXT): $(goa_identity_service_OBJECTS) $(goa_identity_service_DEPENDENCIES) $(EXTRA_goa_identity_service_DEPENDENCIES) + @rm -f goa-identity-service$(EXEEXT) + $(AM_V_CCLD)$(goa_identity_service_LINK) $(goa_identity_service_OBJECTS) $(goa_identity_service_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaalarm.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaidentity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaidentityenumtypes.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaidentityinquiry.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaidentitymanager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaidentitymanagererror.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaidentityservice.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goaidentityutils.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goakerberosidentity.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goakerberosidentityinquiry.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-goakerberosidentitymanager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goa_identity_service-org.gnome.Identity.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +goa_identity_service-goaidentityenumtypes.o: goaidentityenumtypes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityenumtypes.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityenumtypes.Tpo -c -o goa_identity_service-goaidentityenumtypes.o `test -f 'goaidentityenumtypes.c' || echo '$(srcdir)/'`goaidentityenumtypes.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityenumtypes.Tpo $(DEPDIR)/goa_identity_service-goaidentityenumtypes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityenumtypes.c' object='goa_identity_service-goaidentityenumtypes.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityenumtypes.o `test -f 'goaidentityenumtypes.c' || echo '$(srcdir)/'`goaidentityenumtypes.c + +goa_identity_service-goaidentityenumtypes.obj: goaidentityenumtypes.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityenumtypes.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityenumtypes.Tpo -c -o goa_identity_service-goaidentityenumtypes.obj `if test -f 'goaidentityenumtypes.c'; then $(CYGPATH_W) 'goaidentityenumtypes.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityenumtypes.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityenumtypes.Tpo $(DEPDIR)/goa_identity_service-goaidentityenumtypes.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityenumtypes.c' object='goa_identity_service-goaidentityenumtypes.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityenumtypes.obj `if test -f 'goaidentityenumtypes.c'; then $(CYGPATH_W) 'goaidentityenumtypes.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityenumtypes.c'; fi` + +goa_identity_service-org.gnome.Identity.o: org.gnome.Identity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-org.gnome.Identity.o -MD -MP -MF $(DEPDIR)/goa_identity_service-org.gnome.Identity.Tpo -c -o goa_identity_service-org.gnome.Identity.o `test -f 'org.gnome.Identity.c' || echo '$(srcdir)/'`org.gnome.Identity.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-org.gnome.Identity.Tpo $(DEPDIR)/goa_identity_service-org.gnome.Identity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='org.gnome.Identity.c' object='goa_identity_service-org.gnome.Identity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-org.gnome.Identity.o `test -f 'org.gnome.Identity.c' || echo '$(srcdir)/'`org.gnome.Identity.c + +goa_identity_service-org.gnome.Identity.obj: org.gnome.Identity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-org.gnome.Identity.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-org.gnome.Identity.Tpo -c -o goa_identity_service-org.gnome.Identity.obj `if test -f 'org.gnome.Identity.c'; then $(CYGPATH_W) 'org.gnome.Identity.c'; else $(CYGPATH_W) '$(srcdir)/org.gnome.Identity.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-org.gnome.Identity.Tpo $(DEPDIR)/goa_identity_service-org.gnome.Identity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='org.gnome.Identity.c' object='goa_identity_service-org.gnome.Identity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-org.gnome.Identity.obj `if test -f 'org.gnome.Identity.c'; then $(CYGPATH_W) 'org.gnome.Identity.c'; else $(CYGPATH_W) '$(srcdir)/org.gnome.Identity.c'; fi` + +goa_identity_service-goaalarm.o: goaalarm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaalarm.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaalarm.Tpo -c -o goa_identity_service-goaalarm.o `test -f 'goaalarm.c' || echo '$(srcdir)/'`goaalarm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaalarm.Tpo $(DEPDIR)/goa_identity_service-goaalarm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaalarm.c' object='goa_identity_service-goaalarm.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaalarm.o `test -f 'goaalarm.c' || echo '$(srcdir)/'`goaalarm.c + +goa_identity_service-goaalarm.obj: goaalarm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaalarm.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaalarm.Tpo -c -o goa_identity_service-goaalarm.obj `if test -f 'goaalarm.c'; then $(CYGPATH_W) 'goaalarm.c'; else $(CYGPATH_W) '$(srcdir)/goaalarm.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaalarm.Tpo $(DEPDIR)/goa_identity_service-goaalarm.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaalarm.c' object='goa_identity_service-goaalarm.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaalarm.obj `if test -f 'goaalarm.c'; then $(CYGPATH_W) 'goaalarm.c'; else $(CYGPATH_W) '$(srcdir)/goaalarm.c'; fi` + +goa_identity_service-goaidentity.o: goaidentity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentity.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentity.Tpo -c -o goa_identity_service-goaidentity.o `test -f 'goaidentity.c' || echo '$(srcdir)/'`goaidentity.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentity.Tpo $(DEPDIR)/goa_identity_service-goaidentity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentity.c' object='goa_identity_service-goaidentity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentity.o `test -f 'goaidentity.c' || echo '$(srcdir)/'`goaidentity.c + +goa_identity_service-goaidentity.obj: goaidentity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentity.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentity.Tpo -c -o goa_identity_service-goaidentity.obj `if test -f 'goaidentity.c'; then $(CYGPATH_W) 'goaidentity.c'; else $(CYGPATH_W) '$(srcdir)/goaidentity.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentity.Tpo $(DEPDIR)/goa_identity_service-goaidentity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentity.c' object='goa_identity_service-goaidentity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentity.obj `if test -f 'goaidentity.c'; then $(CYGPATH_W) 'goaidentity.c'; else $(CYGPATH_W) '$(srcdir)/goaidentity.c'; fi` + +goa_identity_service-goaidentityinquiry.o: goaidentityinquiry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityinquiry.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityinquiry.Tpo -c -o goa_identity_service-goaidentityinquiry.o `test -f 'goaidentityinquiry.c' || echo '$(srcdir)/'`goaidentityinquiry.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityinquiry.Tpo $(DEPDIR)/goa_identity_service-goaidentityinquiry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityinquiry.c' object='goa_identity_service-goaidentityinquiry.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityinquiry.o `test -f 'goaidentityinquiry.c' || echo '$(srcdir)/'`goaidentityinquiry.c + +goa_identity_service-goaidentityinquiry.obj: goaidentityinquiry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityinquiry.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityinquiry.Tpo -c -o goa_identity_service-goaidentityinquiry.obj `if test -f 'goaidentityinquiry.c'; then $(CYGPATH_W) 'goaidentityinquiry.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityinquiry.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityinquiry.Tpo $(DEPDIR)/goa_identity_service-goaidentityinquiry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityinquiry.c' object='goa_identity_service-goaidentityinquiry.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityinquiry.obj `if test -f 'goaidentityinquiry.c'; then $(CYGPATH_W) 'goaidentityinquiry.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityinquiry.c'; fi` + +goa_identity_service-goaidentityservice.o: goaidentityservice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityservice.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityservice.Tpo -c -o goa_identity_service-goaidentityservice.o `test -f 'goaidentityservice.c' || echo '$(srcdir)/'`goaidentityservice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityservice.Tpo $(DEPDIR)/goa_identity_service-goaidentityservice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityservice.c' object='goa_identity_service-goaidentityservice.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityservice.o `test -f 'goaidentityservice.c' || echo '$(srcdir)/'`goaidentityservice.c + +goa_identity_service-goaidentityservice.obj: goaidentityservice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityservice.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityservice.Tpo -c -o goa_identity_service-goaidentityservice.obj `if test -f 'goaidentityservice.c'; then $(CYGPATH_W) 'goaidentityservice.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityservice.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityservice.Tpo $(DEPDIR)/goa_identity_service-goaidentityservice.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityservice.c' object='goa_identity_service-goaidentityservice.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityservice.obj `if test -f 'goaidentityservice.c'; then $(CYGPATH_W) 'goaidentityservice.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityservice.c'; fi` + +goa_identity_service-goaidentitymanager.o: goaidentitymanager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentitymanager.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentitymanager.Tpo -c -o goa_identity_service-goaidentitymanager.o `test -f 'goaidentitymanager.c' || echo '$(srcdir)/'`goaidentitymanager.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentitymanager.Tpo $(DEPDIR)/goa_identity_service-goaidentitymanager.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentitymanager.c' object='goa_identity_service-goaidentitymanager.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentitymanager.o `test -f 'goaidentitymanager.c' || echo '$(srcdir)/'`goaidentitymanager.c + +goa_identity_service-goaidentitymanager.obj: goaidentitymanager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentitymanager.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentitymanager.Tpo -c -o goa_identity_service-goaidentitymanager.obj `if test -f 'goaidentitymanager.c'; then $(CYGPATH_W) 'goaidentitymanager.c'; else $(CYGPATH_W) '$(srcdir)/goaidentitymanager.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentitymanager.Tpo $(DEPDIR)/goa_identity_service-goaidentitymanager.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentitymanager.c' object='goa_identity_service-goaidentitymanager.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentitymanager.obj `if test -f 'goaidentitymanager.c'; then $(CYGPATH_W) 'goaidentitymanager.c'; else $(CYGPATH_W) '$(srcdir)/goaidentitymanager.c'; fi` + +goa_identity_service-goaidentitymanagererror.o: goaidentitymanagererror.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentitymanagererror.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentitymanagererror.Tpo -c -o goa_identity_service-goaidentitymanagererror.o `test -f 'goaidentitymanagererror.c' || echo '$(srcdir)/'`goaidentitymanagererror.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentitymanagererror.Tpo $(DEPDIR)/goa_identity_service-goaidentitymanagererror.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentitymanagererror.c' object='goa_identity_service-goaidentitymanagererror.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentitymanagererror.o `test -f 'goaidentitymanagererror.c' || echo '$(srcdir)/'`goaidentitymanagererror.c + +goa_identity_service-goaidentitymanagererror.obj: goaidentitymanagererror.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentitymanagererror.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentitymanagererror.Tpo -c -o goa_identity_service-goaidentitymanagererror.obj `if test -f 'goaidentitymanagererror.c'; then $(CYGPATH_W) 'goaidentitymanagererror.c'; else $(CYGPATH_W) '$(srcdir)/goaidentitymanagererror.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentitymanagererror.Tpo $(DEPDIR)/goa_identity_service-goaidentitymanagererror.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentitymanagererror.c' object='goa_identity_service-goaidentitymanagererror.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentitymanagererror.obj `if test -f 'goaidentitymanagererror.c'; then $(CYGPATH_W) 'goaidentitymanagererror.c'; else $(CYGPATH_W) '$(srcdir)/goaidentitymanagererror.c'; fi` + +goa_identity_service-goaidentityutils.o: goaidentityutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityutils.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityutils.Tpo -c -o goa_identity_service-goaidentityutils.o `test -f 'goaidentityutils.c' || echo '$(srcdir)/'`goaidentityutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityutils.Tpo $(DEPDIR)/goa_identity_service-goaidentityutils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityutils.c' object='goa_identity_service-goaidentityutils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityutils.o `test -f 'goaidentityutils.c' || echo '$(srcdir)/'`goaidentityutils.c + +goa_identity_service-goaidentityutils.obj: goaidentityutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goaidentityutils.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goaidentityutils.Tpo -c -o goa_identity_service-goaidentityutils.obj `if test -f 'goaidentityutils.c'; then $(CYGPATH_W) 'goaidentityutils.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityutils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goaidentityutils.Tpo $(DEPDIR)/goa_identity_service-goaidentityutils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goaidentityutils.c' object='goa_identity_service-goaidentityutils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goaidentityutils.obj `if test -f 'goaidentityutils.c'; then $(CYGPATH_W) 'goaidentityutils.c'; else $(CYGPATH_W) '$(srcdir)/goaidentityutils.c'; fi` + +goa_identity_service-goakerberosidentity.o: goakerberosidentity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goakerberosidentity.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goakerberosidentity.Tpo -c -o goa_identity_service-goakerberosidentity.o `test -f 'goakerberosidentity.c' || echo '$(srcdir)/'`goakerberosidentity.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goakerberosidentity.Tpo $(DEPDIR)/goa_identity_service-goakerberosidentity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goakerberosidentity.c' object='goa_identity_service-goakerberosidentity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goakerberosidentity.o `test -f 'goakerberosidentity.c' || echo '$(srcdir)/'`goakerberosidentity.c + +goa_identity_service-goakerberosidentity.obj: goakerberosidentity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goakerberosidentity.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goakerberosidentity.Tpo -c -o goa_identity_service-goakerberosidentity.obj `if test -f 'goakerberosidentity.c'; then $(CYGPATH_W) 'goakerberosidentity.c'; else $(CYGPATH_W) '$(srcdir)/goakerberosidentity.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goakerberosidentity.Tpo $(DEPDIR)/goa_identity_service-goakerberosidentity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goakerberosidentity.c' object='goa_identity_service-goakerberosidentity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goakerberosidentity.obj `if test -f 'goakerberosidentity.c'; then $(CYGPATH_W) 'goakerberosidentity.c'; else $(CYGPATH_W) '$(srcdir)/goakerberosidentity.c'; fi` + +goa_identity_service-goakerberosidentityinquiry.o: goakerberosidentityinquiry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goakerberosidentityinquiry.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goakerberosidentityinquiry.Tpo -c -o goa_identity_service-goakerberosidentityinquiry.o `test -f 'goakerberosidentityinquiry.c' || echo '$(srcdir)/'`goakerberosidentityinquiry.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goakerberosidentityinquiry.Tpo $(DEPDIR)/goa_identity_service-goakerberosidentityinquiry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goakerberosidentityinquiry.c' object='goa_identity_service-goakerberosidentityinquiry.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goakerberosidentityinquiry.o `test -f 'goakerberosidentityinquiry.c' || echo '$(srcdir)/'`goakerberosidentityinquiry.c + +goa_identity_service-goakerberosidentityinquiry.obj: goakerberosidentityinquiry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goakerberosidentityinquiry.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goakerberosidentityinquiry.Tpo -c -o goa_identity_service-goakerberosidentityinquiry.obj `if test -f 'goakerberosidentityinquiry.c'; then $(CYGPATH_W) 'goakerberosidentityinquiry.c'; else $(CYGPATH_W) '$(srcdir)/goakerberosidentityinquiry.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goakerberosidentityinquiry.Tpo $(DEPDIR)/goa_identity_service-goakerberosidentityinquiry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goakerberosidentityinquiry.c' object='goa_identity_service-goakerberosidentityinquiry.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goakerberosidentityinquiry.obj `if test -f 'goakerberosidentityinquiry.c'; then $(CYGPATH_W) 'goakerberosidentityinquiry.c'; else $(CYGPATH_W) '$(srcdir)/goakerberosidentityinquiry.c'; fi` + +goa_identity_service-goakerberosidentitymanager.o: goakerberosidentitymanager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goakerberosidentitymanager.o -MD -MP -MF $(DEPDIR)/goa_identity_service-goakerberosidentitymanager.Tpo -c -o goa_identity_service-goakerberosidentitymanager.o `test -f 'goakerberosidentitymanager.c' || echo '$(srcdir)/'`goakerberosidentitymanager.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goakerberosidentitymanager.Tpo $(DEPDIR)/goa_identity_service-goakerberosidentitymanager.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goakerberosidentitymanager.c' object='goa_identity_service-goakerberosidentitymanager.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goakerberosidentitymanager.o `test -f 'goakerberosidentitymanager.c' || echo '$(srcdir)/'`goakerberosidentitymanager.c + +goa_identity_service-goakerberosidentitymanager.obj: goakerberosidentitymanager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-goakerberosidentitymanager.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-goakerberosidentitymanager.Tpo -c -o goa_identity_service-goakerberosidentitymanager.obj `if test -f 'goakerberosidentitymanager.c'; then $(CYGPATH_W) 'goakerberosidentitymanager.c'; else $(CYGPATH_W) '$(srcdir)/goakerberosidentitymanager.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-goakerberosidentitymanager.Tpo $(DEPDIR)/goa_identity_service-goakerberosidentitymanager.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='goakerberosidentitymanager.c' object='goa_identity_service-goakerberosidentitymanager.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-goakerberosidentitymanager.obj `if test -f 'goakerberosidentitymanager.c'; then $(CYGPATH_W) 'goakerberosidentitymanager.c'; else $(CYGPATH_W) '$(srcdir)/goakerberosidentitymanager.c'; fi` + +goa_identity_service-main.o: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-main.o -MD -MP -MF $(DEPDIR)/goa_identity_service-main.Tpo -c -o goa_identity_service-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-main.Tpo $(DEPDIR)/goa_identity_service-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='goa_identity_service-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c + +goa_identity_service-main.obj: main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -MT goa_identity_service-main.obj -MD -MP -MF $(DEPDIR)/goa_identity_service-main.Tpo -c -o goa_identity_service-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/goa_identity_service-main.Tpo $(DEPDIR)/goa_identity_service-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='goa_identity_service-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(goa_identity_service_CFLAGS) $(CFLAGS) -c -o goa_identity_service-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(libexecdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \ + clean-local mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-libexecPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libexecPROGRAMS + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libexecPROGRAMS clean-libtool clean-local cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libexecPROGRAMS install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-libexecPROGRAMS + +.PRECIOUS: Makefile + + +$(identity_dbus_built_sources) : Makefile.am org.gnome.Identity.xml + $(AM_V_GEN) gdbus-codegen \ + --interface-prefix org.gnome.Identity. \ + --c-namespace GoaIdentityService \ + --c-generate-object-manager \ + --generate-c-code org.gnome.Identity \ + $(srcdir)/org.gnome.Identity.xml \ + --annotate "org.gnome.Identity" \ + "org.gtk.GDBus.C.Name" Identity \ + $(NULL) + +goaidentityenumtypes.h: goaidentityenumtypes.h.in $(identity_headers) + $(AM_V_GEN) glib-mkenums --template $^ > $@ + +goaidentityenumtypes.c: goaidentityenumtypes.c.in $(identity_headers) + $(AM_V_GEN) glib-mkenums --template $^ > $@ + +clean-local : + rm -f *~ + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c new file mode 100644 index 0000000..9bdf85f --- /dev/null +++ b/src/goaidentity/goaalarm.c @@ -0,0 +1,507 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goaalarm.h" + +#ifdef HAVE_TIMERFD +#include +#endif + +#include +#include +#include + +#include +#include +#include + +#define MAX_TIMEOUT_INTERVAL (10 *1000) + +typedef enum +{ + GOA_ALARM_TYPE_UNSCHEDULED, + GOA_ALARM_TYPE_TIMER, + GOA_ALARM_TYPE_TIMEOUT, +} GoaAlarmType; + +struct _GoaAlarmPrivate +{ + GDateTime *time; + GDateTime *previous_wakeup_time; + GMainContext *context; + GSource *immediate_wakeup_source; + GRecMutex lock; + + GoaAlarmType type; + GSource *scheduled_wakeup_source; + GInputStream *stream; /* NULL, unless using timerfd */ +}; + +enum +{ + FIRED, + REARMED, + NUMBER_OF_SIGNALS, +}; + +enum +{ + PROP_0, + PROP_TIME +}; + +static void schedule_wakeups (GoaAlarm *self); +static void schedule_wakeups_with_timeout_source (GoaAlarm *self); +static void goa_alarm_set_time (GoaAlarm *self, GDateTime *time); +static void clear_wakeup_source_pointer (GoaAlarm *self); +static guint signals[NUMBER_OF_SIGNALS] = { 0 }; + +G_DEFINE_TYPE (GoaAlarm, goa_alarm, G_TYPE_OBJECT); + +static void +goa_alarm_dispose (GObject *object) +{ + GoaAlarm *self = GOA_ALARM (object); + + g_clear_object (&self->priv->stream); + g_clear_pointer (&self->priv->immediate_wakeup_source, (GDestroyNotify) g_source_destroy); + g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy); + g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref); + g_clear_pointer (&self->priv->time, (GDestroyNotify) g_date_time_unref); + g_clear_pointer (&self->priv->previous_wakeup_time, (GDestroyNotify) g_date_time_unref); + + G_OBJECT_CLASS (goa_alarm_parent_class)->dispose (object); +} + +static void +goa_alarm_finalize (GObject *object) +{ + GoaAlarm *self = GOA_ALARM (object); + + g_rec_mutex_clear (&self->priv->lock); + + G_OBJECT_CLASS (goa_alarm_parent_class)->finalize (object); +} + +static void +goa_alarm_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *param_spec) +{ + GoaAlarm *self = GOA_ALARM (object); + GDateTime *time; + + switch (property_id) + { + case PROP_TIME: + time = (GDateTime *) g_value_get_boxed (value); + goa_alarm_set_time (self, time); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, param_spec); + break; + } +} + +static void +goa_alarm_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *param_spec) +{ + GoaAlarm *self = GOA_ALARM (object); + + switch (property_id) + { + case PROP_TIME: + g_value_set_boxed (value, self->priv->time); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, param_spec); + break; + } +} + +static void +goa_alarm_class_init (GoaAlarmClass *klass) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = goa_alarm_dispose; + object_class->finalize = goa_alarm_finalize; + object_class->get_property = goa_alarm_get_property; + object_class->set_property = goa_alarm_set_property; + + g_type_class_add_private (klass, sizeof (GoaAlarmPrivate)); + + signals[FIRED] = g_signal_new ("fired", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, G_TYPE_NONE, 0); + + signals[REARMED] = g_signal_new ("rearmed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, G_TYPE_NONE, 0); + + g_object_class_install_property (object_class, + PROP_TIME, + g_param_spec_boxed ("time", + "Time", + "Time to fire", + G_TYPE_DATE_TIME, + G_PARAM_READWRITE)); +} + +static void +goa_alarm_init (GoaAlarm *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GOA_TYPE_ALARM, GoaAlarmPrivate); + g_rec_mutex_init (&self->priv->lock); +} + +static void +fire_alarm (GoaAlarm *self) +{ + g_signal_emit (G_OBJECT (self), signals[FIRED], 0); +} + +static void +rearm_alarm (GoaAlarm *self) +{ + g_signal_emit (G_OBJECT (self), signals[REARMED], 0); +} + +static void +fire_or_rearm_alarm (GoaAlarm *self) +{ + GTimeSpan time_until_fire; + GTimeSpan previous_time_until_fire; + GDateTime *now; + + now = g_date_time_new_now_local (); + time_until_fire = g_date_time_difference (self->priv->time, now); + + if (self->priv->previous_wakeup_time == NULL) + { + self->priv->previous_wakeup_time = now; + + /* If, according to the time, we're past when we should have fired, + * then fire the alarm. + */ + if (time_until_fire <= 0) + fire_alarm (self); + } + else + { + previous_time_until_fire = + g_date_time_difference (self->priv->time, + self->priv->previous_wakeup_time); + + g_date_time_unref (self->priv->previous_wakeup_time); + self->priv->previous_wakeup_time = now; + + /* If, according to the time, we're past when we should have fired, + * and this is the first wakeup where that's been true then fire + * the alarm. The first check makes sure we don't fire prematurely, + * and the second check makes sure we don't fire more than once + */ + if (time_until_fire <= 0 && previous_time_until_fire > 0) + { + fire_alarm (self); + + /* If, according to the time, we're before when we should fire, + * and we previously fired the alarm, then we've jumped back in + * time and need to rearm the alarm. + */ + } + else if (time_until_fire > 0 && previous_time_until_fire <= 0) + { + rearm_alarm (self); + } + } +} + +static gboolean +on_immediate_wakeup_source_ready (GoaAlarm *self) +{ + g_return_val_if_fail (self->priv->type != GOA_ALARM_TYPE_UNSCHEDULED, FALSE); + + g_rec_mutex_lock (&self->priv->lock); + fire_or_rearm_alarm (self); + g_rec_mutex_unlock (&self->priv->lock); + return FALSE; +} + +#ifdef HAVE_TIMERFD +static gboolean +on_timer_source_ready (GObject *stream, GoaAlarm *self) +{ + gint64 number_of_fires; + gssize bytes_read; + gboolean run_again = FALSE; + GError *error = NULL; + + g_return_val_if_fail (GOA_IS_ALARM (self), FALSE); + + g_rec_mutex_lock (&self->priv->lock); + + if (self->priv->type != GOA_ALARM_TYPE_TIMER) + { + g_warning ("GoaAlarm: timer source ready callback called " + "when timer source isn't supposed to be used. " + "Current timer type is %u", self->priv->type); + goto out; + } + + bytes_read = + g_pollable_input_stream_read_nonblocking (G_POLLABLE_INPUT_STREAM (stream), + &number_of_fires, sizeof (gint64), + NULL, &error); + + if (bytes_read < 0) + { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_debug ("GoaAlarm: discontinuity detected from timer fd"); + else + { + g_warning ("GoaAlarm: failed to read from timer fd: %s\n", + error->message); + goto out; + } + } + + if (bytes_read == sizeof (gint64)) + { + if (number_of_fires < 0 || number_of_fires > 1) + { + g_warning ("GoaAlarm: expected timerfd to report firing once," + "but it reported firing %ld times\n", (long) number_of_fires); + } + } + + fire_or_rearm_alarm (self); + run_again = TRUE; +out: + g_rec_mutex_unlock (&self->priv->lock); + g_clear_error (&error); + return run_again; +} +#endif + +static gboolean +schedule_wakeups_with_timerfd (GoaAlarm *self) +{ +#ifdef HAVE_TIMERFD + struct itimerspec timer_spec; + int fd; + int result; + GSource *source; + static gboolean seen_before = FALSE; + + if (!seen_before) + { + g_debug ("GoaAlarm: trying to use kernel timer"); + seen_before = TRUE; + } + + fd = timerfd_create (CLOCK_REALTIME, TFD_CLOEXEC | TFD_NONBLOCK); + + if (fd < 0) + { + g_debug ("GoaAlarm: could not create timer fd: %s", strerror (errno)); + return FALSE; + } + + memset (&timer_spec, 0, sizeof (timer_spec)); + timer_spec.it_value.tv_sec = g_date_time_to_unix (self->priv->time) + 1; + + result = timerfd_settime (fd, + TFD_TIMER_ABSTIME | TFD_TIMER_CANCEL_ON_SET, + &timer_spec, NULL); + + if (result < 0) + { + g_debug ("GoaAlarm: could not set timer: %s", strerror (errno)); + return FALSE; + } + + self->priv->type = GOA_ALARM_TYPE_TIMER; + self->priv->stream = g_unix_input_stream_new (fd, TRUE); + + source = + g_pollable_input_stream_create_source (G_POLLABLE_INPUT_STREAM + (self->priv->stream), + NULL); + self->priv->scheduled_wakeup_source = source; + g_source_set_callback (self->priv->scheduled_wakeup_source, + (GSourceFunc) on_timer_source_ready, self, + (GDestroyNotify) clear_wakeup_source_pointer); + g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context); + g_source_unref (source); + + return TRUE; + +#endif /*HAVE_TIMERFD */ + + return FALSE; +} + +static gboolean +on_timeout_source_ready (GoaAlarm *self) +{ + g_return_val_if_fail (GOA_IS_ALARM (self), FALSE); + + g_rec_mutex_lock (&self->priv->lock); + + if (self->priv->type == GOA_ALARM_TYPE_UNSCHEDULED) + goto out; + + fire_or_rearm_alarm (self); + + schedule_wakeups_with_timeout_source (self); + +out: + g_rec_mutex_unlock (&self->priv->lock); + return FALSE; +} + +static void +clear_wakeup_source_pointer (GoaAlarm *self) +{ + self->priv->scheduled_wakeup_source = NULL; +} + +static void +schedule_wakeups_with_timeout_source (GoaAlarm *self) +{ + GDateTime *now; + GSource *source; + GTimeSpan time_span; + guint interval; + + self->priv->type = GOA_ALARM_TYPE_TIMEOUT; + + now = g_date_time_new_now_local (); + time_span = g_date_time_difference (self->priv->time, now); + g_date_time_unref (now); + + time_span = + CLAMP (time_span, 1000 *G_TIME_SPAN_MILLISECOND, + G_MAXUINT *G_TIME_SPAN_MILLISECOND); + interval = (guint) time_span / G_TIME_SPAN_MILLISECOND; + + /* We poll every 10 seconds or so because we want to catch time skew + */ + interval = MIN (interval, MAX_TIMEOUT_INTERVAL); + + source = g_timeout_source_new (interval); + + self->priv->scheduled_wakeup_source = source; + g_source_set_callback (self->priv->scheduled_wakeup_source, + (GSourceFunc) + on_timeout_source_ready, + self, (GDestroyNotify) clear_wakeup_source_pointer); + + g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context); + g_source_unref (source); +} + +static void +schedule_wakeups (GoaAlarm *self) +{ + gboolean wakeup_scheduled; + + wakeup_scheduled = schedule_wakeups_with_timerfd (self); + + if (!wakeup_scheduled) + { + static gboolean seen_before = FALSE; + + if (!seen_before) + { + g_debug ("GoaAlarm: falling back to polling timeout"); + seen_before = TRUE; + } + schedule_wakeups_with_timeout_source (self); + } +} + +static void +clear_immediate_wakeup_source_pointer (GoaAlarm *self) +{ + self->priv->immediate_wakeup_source = NULL; +} + +static void +schedule_immediate_wakeup (GoaAlarm *self) +{ + GSource *source; + + source = g_idle_source_new (); + + self->priv->immediate_wakeup_source = source; + g_source_set_callback (self->priv->immediate_wakeup_source, + (GSourceFunc) + on_immediate_wakeup_source_ready, + self, + (GDestroyNotify) clear_immediate_wakeup_source_pointer); + + g_source_attach (self->priv->immediate_wakeup_source, self->priv->context); + g_source_unref (source); +} + +static void +goa_alarm_set_time (GoaAlarm *self, GDateTime *time) +{ + g_rec_mutex_lock (&self->priv->lock); + + g_date_time_ref (time); + self->priv->time = time; + + if (self->priv->context == NULL) + self->priv->context = g_main_context_ref (g_main_context_default ()); + + schedule_wakeups (self); + + /* Wake up right away, in case it's already expired leaving the gate */ + schedule_immediate_wakeup (self); + g_rec_mutex_unlock (&self->priv->lock); + g_object_notify (G_OBJECT (self), "time"); +} + +GDateTime * +goa_alarm_get_time (GoaAlarm *self) +{ + return self->priv->time; +} + +GoaAlarm * +goa_alarm_new (GDateTime *alarm_time) +{ + GoaAlarm *self; + + self = GOA_ALARM (g_object_new (GOA_TYPE_ALARM, "time", alarm_time, NULL)); + + return GOA_ALARM (self); +} diff --git a/src/goaidentity/goaalarm.h b/src/goaidentity/goaalarm.h new file mode 100644 index 0000000..c60db73 --- /dev/null +++ b/src/goaidentity/goaalarm.h @@ -0,0 +1,57 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_ALARM_H__ +#define __GOA_ALARM_H__ + +#include +#include +#include + +G_BEGIN_DECLS +#define GOA_TYPE_ALARM (goa_alarm_get_type ()) +#define GOA_ALARM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_ALARM, GoaAlarm)) +#define GOA_ALARM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOA_TYPE_ALARM, GoaAlarmClass)) +#define GOA_IS_ALARM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_ALARM)) +#define GOA_IS_ALARM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOA_TYPE_ALARM)) +#define GOA_ALARM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GOA_TYPE_ALARM, GoaAlarmClass)) +typedef struct _GoaAlarm GoaAlarm; +typedef struct _GoaAlarmClass GoaAlarmClass; +typedef struct _GoaAlarmPrivate GoaAlarmPrivate; + +struct _GoaAlarm +{ + GObject parent; + + GoaAlarmPrivate *priv; +}; + +struct _GoaAlarmClass +{ + GObjectClass parent_class; + + void (* fired) (GoaAlarm *alarm); + void (* rearmed) (GoaAlarm *alarm); +}; + +GType goa_alarm_get_type (void); + +GoaAlarm *goa_alarm_new (GDateTime *time); +GDateTime *goa_alarm_get_time (GoaAlarm *alarm); +G_END_DECLS +#endif /* __GOA_ALARM_H__ */ diff --git a/src/goaidentity/goaidentity.c b/src/goaidentity/goaidentity.c new file mode 100644 index 0000000..1f0c3b0 --- /dev/null +++ b/src/goaidentity/goaidentity.c @@ -0,0 +1,88 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include +#include + +#include "goaidentity.h" + +G_DEFINE_INTERFACE (GoaIdentity, goa_identity, G_TYPE_OBJECT); + +static void +goa_identity_default_init (GoaIdentityInterface *interface) +{ + g_object_interface_install_property (interface, + g_param_spec_string ("identifier", + "identifier", + "identifier", + NULL, G_PARAM_READABLE)); + g_object_interface_install_property (interface, + g_param_spec_boolean ("is-signed-in", + "Is signed in", + "Whether or not identity is currently signed in", + FALSE, + G_PARAM_READABLE)); + g_object_interface_install_property (interface, + g_param_spec_int64 ("start-timestamp", + "Start Timestamp", + "A timestamp of when the identities credentials first became valid", + -1, + G_MAXINT64, + -1, G_PARAM_READABLE)); + g_object_interface_install_property (interface, + g_param_spec_int64 ("renewal-timestamp", + "Renewal Timestamp", + "A timestamp of when the identities credentials can no longer be renewed", + -1, + G_MAXINT64, + -1, G_PARAM_READABLE)); + g_object_interface_install_property (interface, + g_param_spec_int64 ("expiration-timestamp", + "Expiration Timestamp", + "A timestamp of when the identities credentials expire", + -1, + G_MAXINT64, + -1, G_PARAM_READABLE)); +} + +GQuark +goa_identity_error_quark (void) +{ + static GQuark error_quark = 0; + + if (error_quark == 0) + { + error_quark = g_quark_from_static_string ("goa-identity-error"); + } + + return error_quark; +} + +const char * +goa_identity_get_identifier (GoaIdentity *self) +{ + return GOA_IDENTITY_GET_IFACE (self)->get_identifier (self); +} + +gboolean +goa_identity_is_signed_in (GoaIdentity *self) +{ + return GOA_IDENTITY_GET_IFACE (self)->is_signed_in (self); +} diff --git a/src/goaidentity/goaidentity.h b/src/goaidentity/goaidentity.h new file mode 100644 index 0000000..9b79c31 --- /dev/null +++ b/src/goaidentity/goaidentity.h @@ -0,0 +1,73 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_H__ +#define __GOA_IDENTITY_H__ + +#include +#include + +G_BEGIN_DECLS +#define GOA_TYPE_IDENTITY (goa_identity_get_type ()) +#define GOA_IDENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_IDENTITY, GoaIdentity)) +#define GOA_IDENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOA_TYPE_IDENTITY, GoaIdentityInterface)) +#define GOA_IS_IDENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_IDENTITY)) +#define GOA_IDENTITY_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GOA_TYPE_IDENTITY, GoaIdentityInterface)) +#define GOA_IDENTITY_ERROR (goa_identity_error_quark ()) +typedef struct _GoaIdentity GoaIdentity; +typedef struct _GoaIdentityInterface GoaIdentityInterface; + +struct _GoaIdentityInterface +{ + GTypeInterface base_interface; + + const char * (* get_identifier) (GoaIdentity *identity); + gboolean (* is_signed_in) (GoaIdentity *identity); +}; + +typedef enum +{ + GOA_IDENTITY_ERROR_NOT_FOUND, + GOA_IDENTITY_ERROR_VERIFYING, + GOA_IDENTITY_ERROR_RENEWING, + GOA_IDENTITY_ERROR_CREDENTIALS_UNAVAILABLE, + GOA_IDENTITY_ERROR_ENUMERATING_CREDENTIALS, + GOA_IDENTITY_ERROR_ALLOCATING_CREDENTIALS, + GOA_IDENTITY_ERROR_AUTHENTICATION_FAILED, + GOA_IDENTITY_ERROR_SAVING_CREDENTIALS, + GOA_IDENTITY_ERROR_REMOVING_CREDENTIALS, + GOA_IDENTITY_ERROR_PARSING_IDENTIFIER, +} GoaIdentityError; + +typedef enum +{ + GOA_IDENTITY_SIGN_IN_FLAGS_NONE = 0, + GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_RENEWAL = 1, + GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_FORWARDING = 1 << 1, + GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_PROXYING = 1 << 2 +} GoaIdentitySignInFlags; + +GType goa_identity_get_type (void); +GQuark goa_identity_error_quark (void); + +const char *goa_identity_get_identifier (GoaIdentity *identity); +gboolean goa_identity_is_signed_in (GoaIdentity *identity); + + +G_END_DECLS +#endif /* __GOA_IDENTITY_H__ */ diff --git a/src/goaidentity/goaidentityenumtypes.c b/src/goaidentity/goaidentityenumtypes.c new file mode 100644 index 0000000..b46a16c --- /dev/null +++ b/src/goaidentity/goaidentityenumtypes.c @@ -0,0 +1,147 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + + +#include +#include "goaidentity.h" +/* enumerations from "goaidentity.h" */ +GType goa_identity_error_get_type (void) G_GNUC_CONST; + +GType +goa_identity_error_get_type (void) +{ + static GType etype = 0; + + if (G_UNLIKELY(etype == 0)) { + static const GEnumValue values[] = { + { GOA_IDENTITY_ERROR_NOT_FOUND, "GOA_IDENTITY_ERROR_NOT_FOUND", "not-found" }, + { GOA_IDENTITY_ERROR_VERIFYING, "GOA_IDENTITY_ERROR_VERIFYING", "verifying" }, + { GOA_IDENTITY_ERROR_RENEWING, "GOA_IDENTITY_ERROR_RENEWING", "renewing" }, + { GOA_IDENTITY_ERROR_CREDENTIALS_UNAVAILABLE, "GOA_IDENTITY_ERROR_CREDENTIALS_UNAVAILABLE", "credentials-unavailable" }, + { GOA_IDENTITY_ERROR_ENUMERATING_CREDENTIALS, "GOA_IDENTITY_ERROR_ENUMERATING_CREDENTIALS", "enumerating-credentials" }, + { GOA_IDENTITY_ERROR_ALLOCATING_CREDENTIALS, "GOA_IDENTITY_ERROR_ALLOCATING_CREDENTIALS", "allocating-credentials" }, + { GOA_IDENTITY_ERROR_AUTHENTICATION_FAILED, "GOA_IDENTITY_ERROR_AUTHENTICATION_FAILED", "authentication-failed" }, + { GOA_IDENTITY_ERROR_SAVING_CREDENTIALS, "GOA_IDENTITY_ERROR_SAVING_CREDENTIALS", "saving-credentials" }, + { GOA_IDENTITY_ERROR_REMOVING_CREDENTIALS, "GOA_IDENTITY_ERROR_REMOVING_CREDENTIALS", "removing-credentials" }, + { GOA_IDENTITY_ERROR_PARSING_IDENTIFIER, "GOA_IDENTITY_ERROR_PARSING_IDENTIFIER", "parsing-identifier" }, + { 0, NULL, NULL } + }; + + etype = g_enum_register_static (g_intern_static_string ("GoaIdentityError"), values); + } + + return etype; +} +GType goa_identity_sign_in_flags_get_type (void) G_GNUC_CONST; + +GType +goa_identity_sign_in_flags_get_type (void) +{ + static GType etype = 0; + + if (G_UNLIKELY(etype == 0)) { + static const GFlagsValue values[] = { + { GOA_IDENTITY_SIGN_IN_FLAGS_NONE, "GOA_IDENTITY_SIGN_IN_FLAGS_NONE", "none" }, + { GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_RENEWAL, "GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_RENEWAL", "disallow-renewal" }, + { GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_FORWARDING, "GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_FORWARDING", "disallow-forwarding" }, + { GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_PROXYING, "GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_PROXYING", "disallow-proxying" }, + { 0, NULL, NULL } + }; + + etype = g_flags_register_static (g_intern_static_string ("GoaIdentitySignInFlags"), values); + } + + return etype; +} +#include "goaidentityinquiry.h" +/* enumerations from "goaidentityinquiry.h" */ +GType goa_identity_query_mode_get_type (void) G_GNUC_CONST; + +GType +goa_identity_query_mode_get_type (void) +{ + static GType etype = 0; + + if (G_UNLIKELY(etype == 0)) { + static const GEnumValue values[] = { + { GOA_IDENTITY_QUERY_MODE_INVISIBLE, "GOA_IDENTITY_QUERY_MODE_INVISIBLE", "invisible" }, + { GOA_IDENTITY_QUERY_MODE_VISIBLE, "GOA_IDENTITY_QUERY_MODE_VISIBLE", "visible" }, + { 0, NULL, NULL } + }; + + etype = g_enum_register_static (g_intern_static_string ("GoaIdentityQueryMode"), values); + } + + return etype; +} +#include "goaidentitymanagererror.h" +/* enumerations from "goaidentitymanagererror.h" */ +GType goa_identity_manager_error_get_type (void) G_GNUC_CONST; + +GType +goa_identity_manager_error_get_type (void) +{ + static GType etype = 0; + + if (G_UNLIKELY(etype == 0)) { + static const GEnumValue values[] = { + { GOA_IDENTITY_MANAGER_ERROR_INITIALIZING, "GOA_IDENTITY_MANAGER_ERROR_INITIALIZING", "initializing" }, + { GOA_IDENTITY_MANAGER_ERROR_IDENTITY_NOT_FOUND, "GOA_IDENTITY_MANAGER_ERROR_IDENTITY_NOT_FOUND", "identity-not-found" }, + { GOA_IDENTITY_MANAGER_ERROR_CREATING_IDENTITY, "GOA_IDENTITY_MANAGER_ERROR_CREATING_IDENTITY", "creating-identity" }, + { GOA_IDENTITY_MANAGER_ERROR_ACCESSING_CREDENTIALS, "GOA_IDENTITY_MANAGER_ERROR_ACCESSING_CREDENTIALS", "accessing-credentials" }, + { GOA_IDENTITY_MANAGER_ERROR_UNSUPPORTED_CREDENTIALS, "GOA_IDENTITY_MANAGER_ERROR_UNSUPPORTED_CREDENTIALS", "unsupported-credentials" }, + { 0, NULL, NULL } + }; + + etype = g_enum_register_static (g_intern_static_string ("GoaIdentityManagerError"), values); + } + + return etype; +} +#include "goakerberosidentity.h" +/* enumerations from "goakerberosidentity.h" */ +GType struct_struct_get_type (void) G_GNUC_CONST; + +GType +struct_struct_get_type (void) +{ + static GType etype = 0; + + if (G_UNLIKELY(etype == 0)) { + static const GEnumValue values[] = { + { GOA_KERBEROS_IDENTITY_DESCRIPTION_REALM, "GOA_KERBEROS_IDENTITY_DESCRIPTION_REALM", "realm" }, + { GOA_KERBEROS_IDENTITY_DESCRIPTION_USERNAME_AND_REALM, "GOA_KERBEROS_IDENTITY_DESCRIPTION_USERNAME_AND_REALM", "username-and-realm" }, + { GOA_KERBEROS_IDENTITY_DESCRIPTION_USERNAME_ROLE_AND_REALM, "GOA_KERBEROS_IDENTITY_DESCRIPTION_USERNAME_ROLE_AND_REALM", "username-role-and-realm" }, + { 0, NULL, NULL } + }; + + etype = g_enum_register_static (g_intern_static_string ("struct"), values); + } + + return etype; +} +#include "goakerberosidentityinquiry.h" +/* enumerations from "goakerberosidentityinquiry.h" */ +GType goa_kerberos_identity_query_mode_get_type (void) G_GNUC_CONST; + +GType +goa_kerberos_identity_query_mode_get_type (void) +{ + static GType etype = 0; + + if (G_UNLIKELY(etype == 0)) { + static const GEnumValue values[] = { + { GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE, "GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE", "invisible" }, + { GOA_KERBEROS_IDENTITY_QUERY_MODE_VISIBLE, "GOA_KERBEROS_IDENTITY_QUERY_MODE_VISIBLE", "visible" }, + { 0, NULL, NULL } + }; + + etype = g_enum_register_static (g_intern_static_string ("GoaKerberosIdentityQueryMode"), values); + } + + return etype; +} + /**/ + +/* Generated data ends here */ + diff --git a/src/goaidentity/goaidentityenumtypes.c.in b/src/goaidentity/goaidentityenumtypes.c.in new file mode 100644 index 0000000..c028690 --- /dev/null +++ b/src/goaidentity/goaidentityenumtypes.c.in @@ -0,0 +1,42 @@ +/*** BEGIN file-header ***/ + +#include + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +#include "@filename@" +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; + +GType +@enum_name@_get_type (void) +{ + static GType etype = 0; + + if (G_UNLIKELY(etype == 0)) { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + + etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + } + + return etype; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ + /**/ +/*** END file-tail ***/ diff --git a/src/goaidentity/goaidentityenumtypes.h b/src/goaidentity/goaidentityenumtypes.h new file mode 100644 index 0000000..60bb2e1 --- /dev/null +++ b/src/goaidentity/goaidentityenumtypes.h @@ -0,0 +1,37 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + +#ifndef GOA_IDENTITY_ENUM_TYPES_H +#define GOA_IDENTITY_ENUM_TYPES_H + +#include + +G_BEGIN_DECLS + +/* enumerations from "goaidentity.h" */ +GType goa_identity_error_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_IDENTITY_ERROR (goa_identity_error_get_type ()) +GType goa_identity_sign_in_flags_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_IDENTITY_SIGN_IN_FLAGS (goa_identity_sign_in_flags_get_type ()) + +/* enumerations from "goaidentityinquiry.h" */ +GType goa_identity_query_mode_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_IDENTITY_QUERY_MODE (goa_identity_query_mode_get_type ()) + +/* enumerations from "goaidentitymanagererror.h" */ +GType goa_identity_manager_error_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_IDENTITY_MANAGER_ERROR (goa_identity_manager_error_get_type ()) + +/* enumerations from "goakerberosidentity.h" */ +GType struct_struct_get_type (void) G_GNUC_CONST; +#define STRUCT_TYPE_STRUCT (struct_struct_get_type ()) + +/* enumerations from "goakerberosidentityinquiry.h" */ +GType goa_kerberos_identity_query_mode_get_type (void) G_GNUC_CONST; +#define GOA_TYPE_KERBEROS_IDENTITY_QUERY_MODE (goa_kerberos_identity_query_mode_get_type ()) +G_END_DECLS + +#endif /* GOA_IDENTITY_ENUM_TYPES_H */ + +/* Generated data ends here */ + diff --git a/src/goaidentity/goaidentityenumtypes.h.in b/src/goaidentity/goaidentityenumtypes.h.in new file mode 100644 index 0000000..35d4d5c --- /dev/null +++ b/src/goaidentity/goaidentityenumtypes.h.in @@ -0,0 +1,24 @@ +/*** BEGIN file-header ***/ +#ifndef GOA_IDENTITY_ENUM_TYPES_H +#define GOA_IDENTITY_ENUM_TYPES_H + +#include + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* GOA_IDENTITY_ENUM_TYPES_H */ +/*** END file-tail ***/ diff --git a/src/goaidentity/goaidentityinquiry.c b/src/goaidentity/goaidentityinquiry.c new file mode 100644 index 0000000..c11db88 --- /dev/null +++ b/src/goaidentity/goaidentityinquiry.c @@ -0,0 +1,147 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goaidentityinquiry.h" +#include "goaidentityinquiryprivate.h" + +#include +#include +#include + +enum +{ + COMPLETE, + NUMBER_OF_SIGNALS, +}; + +static guint signals[NUMBER_OF_SIGNALS] = { 0 }; + +G_DEFINE_INTERFACE (GoaIdentityInquiry, goa_identity_inquiry, G_TYPE_OBJECT); + +static void +goa_identity_inquiry_default_init (GoaIdentityInquiryInterface *interface) +{ + signals[COMPLETE] = g_signal_new ("complete", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, G_TYPE_NONE, 0); +} + +void +_goa_identity_inquiry_emit_complete (GoaIdentityInquiry *self) +{ + g_signal_emit (G_OBJECT (self), signals[COMPLETE], 0); +} + +char * +goa_identity_inquiry_get_name (GoaIdentityInquiry *self) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), NULL); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->get_name (self); +} + +char * +goa_identity_inquiry_get_banner (GoaIdentityInquiry *self) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), NULL); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->get_banner (self); +} + +gboolean +goa_identity_inquiry_is_complete (GoaIdentityInquiry *self) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), TRUE); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->is_complete (self); +} + +gboolean +goa_identity_inquiry_is_failed (GoaIdentityInquiry *self) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), TRUE); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->is_failed (self); +} + +void +goa_identity_inquiry_iter_init (GoaIdentityInquiryIter *iter, + GoaIdentityInquiry *inquiry) +{ + g_return_if_fail (GOA_IS_IDENTITY_INQUIRY (inquiry)); + + GOA_IDENTITY_INQUIRY_GET_IFACE (inquiry)->iter_init (iter, inquiry); +} + +GoaIdentityQuery * +goa_identity_inquiry_iter_next (GoaIdentityInquiryIter *iter, + GoaIdentityInquiry *inquiry) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (inquiry), NULL); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (inquiry)->iter_next (iter, inquiry); +} + +GoaIdentity * +goa_identity_inquiry_get_identity (GoaIdentityInquiry *self) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), NULL); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->get_identity (self); +} + +GoaIdentityQueryMode +goa_identity_query_get_mode (GoaIdentityInquiry *self, + GoaIdentityQuery *query) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), + GOA_IDENTITY_QUERY_MODE_INVISIBLE); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->get_mode (self, query); +} + +char * +goa_identity_query_get_prompt (GoaIdentityInquiry *self, + GoaIdentityQuery *query) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), NULL); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->get_prompt (self, query); +} + +void +goa_identity_inquiry_answer_query (GoaIdentityInquiry *self, + GoaIdentityQuery *query, + const char *answer) +{ + g_return_if_fail (GOA_IS_IDENTITY_INQUIRY (self)); + + GOA_IDENTITY_INQUIRY_GET_IFACE (self)->answer_query (self, query, answer); +} + +gboolean +goa_identity_query_is_answered (GoaIdentityInquiry *self, + GoaIdentityQuery *query) +{ + g_return_val_if_fail (GOA_IS_IDENTITY_INQUIRY (self), FALSE); + + return GOA_IDENTITY_INQUIRY_GET_IFACE (self)->is_answered (self, query); +} diff --git a/src/goaidentity/goaidentityinquiry.h b/src/goaidentity/goaidentityinquiry.h new file mode 100644 index 0000000..8a4f264 --- /dev/null +++ b/src/goaidentity/goaidentityinquiry.h @@ -0,0 +1,108 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_INQUIRY_H__ +#define __GOA_IDENTITY_INQUIRY_H__ + +#include + +#include +#include +#include + +#include "goaidentity.h" + +G_BEGIN_DECLS +#define GOA_TYPE_IDENTITY_INQUIRY (goa_identity_inquiry_get_type ()) +#define GOA_IDENTITY_INQUIRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_IDENTITY_INQUIRY, GoaIdentityInquiry)) +#define GOA_IDENTITY_INQUIRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOA_TYPE_IDENTITY_INQUIRY, GoaIdentityInquiryClass)) +#define GOA_IS_IDENTITY_INQUIRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_IDENTITY_INQUIRY)) +#define GOA_IDENTITY_INQUIRY_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GOA_TYPE_IDENTITY_INQUIRY, GoaIdentityInquiryInterface)) +typedef struct _GoaIdentityInquiry GoaIdentityInquiry; +typedef struct _GoaIdentityInquiryInterface GoaIdentityInquiryInterface; +typedef struct _GoaIdentityInquiryIter GoaIdentityInquiryIter; + +typedef struct _GoaIdentityQuery GoaIdentityQuery; + +typedef void (* GoaIdentityInquiryFunc) (GoaIdentityInquiry *inquiry, + GCancellable *cancellable, + gpointer user_data); + +typedef enum +{ + GOA_IDENTITY_QUERY_MODE_INVISIBLE, + GOA_IDENTITY_QUERY_MODE_VISIBLE +} GoaIdentityQueryMode; + +struct _GoaIdentityInquiryIter +{ + gpointer data; +}; + +struct _GoaIdentityInquiryInterface +{ + GTypeInterface base_interface; + + GoaIdentity * (* get_identity) (GoaIdentityInquiry *inquiry); + char * (* get_name) (GoaIdentityInquiry *inquiry); + char * (* get_banner) (GoaIdentityInquiry *inquiry); + + gboolean (* is_complete) (GoaIdentityInquiry *inquiry); + void (* answer_query) (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query, + const char *answer); + + void (* iter_init) (GoaIdentityInquiryIter *iter, + GoaIdentityInquiry *inquiry); + + GoaIdentityQuery * (* iter_next) (GoaIdentityInquiryIter *iter, + GoaIdentityInquiry *inquiry); + + GoaIdentityQueryMode (* get_mode) (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query); + char * (* get_prompt) (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query); + gboolean (* is_answered) (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query); + gboolean (* is_failed) (GoaIdentityInquiry *inquiry); +}; + +GType goa_identity_inquiry_get_type (void); + +GoaIdentity *goa_identity_inquiry_get_identity (GoaIdentityInquiry *inquiry); +char *goa_identity_inquiry_get_name (GoaIdentityInquiry *inquiry); +char *goa_identity_inquiry_get_banner (GoaIdentityInquiry *inquiry); +gboolean goa_identity_inquiry_is_complete (GoaIdentityInquiry *inquiry); +gboolean goa_identity_inquiry_is_failed (GoaIdentityInquiry *inquiry); +void goa_identity_inquiry_answer_query (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query, + const char *answer); + +void goa_identity_inquiry_iter_init (GoaIdentityInquiryIter *iter, + GoaIdentityInquiry *inquiry); +GoaIdentityQuery *goa_identity_inquiry_iter_next (GoaIdentityInquiryIter *iter, + GoaIdentityInquiry *inquiry); + +GoaIdentityQueryMode goa_identity_query_get_mode (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query); +char * goa_identity_query_get_prompt (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query); +gboolean goa_identity_query_is_answered (GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query); + +#endif /* __GOA_IDENTITY_INQUIRY_H__ */ diff --git a/src/goaidentity/goaidentityinquiryprivate.h b/src/goaidentity/goaidentityinquiryprivate.h new file mode 100644 index 0000000..9182552 --- /dev/null +++ b/src/goaidentity/goaidentityinquiryprivate.h @@ -0,0 +1,30 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_INQUIRY_PRIVATE_H__ +#define __GOA_IDENTITY_INQUIRY_PRIVATE_H__ + +#include +#include + +#include "goaidentityinquiry.h" + +G_BEGIN_DECLS +void _goa_identity_inquiry_emit_complete (GoaIdentityInquiry *inquiry); +G_END_DECLS +#endif /* __GOA_IDENTITY_INQUIRY_PRIVATE_H__ */ diff --git a/src/goaidentity/goaidentitymanager.c b/src/goaidentity/goaidentitymanager.c new file mode 100644 index 0000000..0825356 --- /dev/null +++ b/src/goaidentity/goaidentitymanager.c @@ -0,0 +1,302 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include +#include +#include + +#include "goaidentitymanager.h" +#include "goaidentitymanagerprivate.h" + +enum +{ + IDENTITY_ADDED, + IDENTITY_REMOVED, + IDENTITY_RENAMED, + IDENTITY_REFRESHED, + IDENTITY_NEEDS_RENEWAL, + IDENTITY_EXPIRING, + IDENTITY_EXPIRED, + NUMBER_OF_SIGNALS, +}; + +static guint signals[NUMBER_OF_SIGNALS] = { 0 }; + +G_DEFINE_INTERFACE (GoaIdentityManager, goa_identity_manager, G_TYPE_OBJECT); + +static void +goa_identity_manager_default_init (GoaIdentityManagerInterface *interface) +{ + signals[IDENTITY_ADDED] = g_signal_new ("identity-added", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET + (GoaIdentityManagerInterface, + identity_added), NULL, NULL, NULL, + G_TYPE_NONE, 1, GOA_TYPE_IDENTITY); + signals[IDENTITY_REMOVED] = g_signal_new ("identity-removed", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityManagerInterface, + identity_removed), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + GOA_TYPE_IDENTITY); + signals[IDENTITY_REFRESHED] = g_signal_new ("identity-refreshed", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityManagerInterface, + identity_refreshed), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + GOA_TYPE_IDENTITY); + signals[IDENTITY_RENAMED] = g_signal_new ("identity-renamed", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityManagerInterface, + identity_renamed), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + GOA_TYPE_IDENTITY); + signals[IDENTITY_NEEDS_RENEWAL] = g_signal_new ("identity-needs-renewal", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityManagerInterface, + identity_needs_renewal), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + GOA_TYPE_IDENTITY); + signals[IDENTITY_EXPIRING] = g_signal_new ("identity-expiring", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityManagerInterface, + identity_expiring), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + GOA_TYPE_IDENTITY); + signals[IDENTITY_EXPIRED] = g_signal_new ("identity-expired", + G_TYPE_FROM_INTERFACE (interface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityManagerInterface, + identity_expired), + NULL, + NULL, + NULL, + G_TYPE_NONE, + 1, + GOA_TYPE_IDENTITY); +} + +void +goa_identity_manager_get_identity (GoaIdentityManager *self, + const char *identifier, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GOA_IDENTITY_MANAGER_GET_IFACE (self)->get_identity (self, + identifier, + cancellable, + callback, + user_data); +} + +GoaIdentity * +goa_identity_manager_get_identity_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + return GOA_IDENTITY_MANAGER_GET_IFACE (self)->get_identity_finish (self, + result, + error); +} + +void +goa_identity_manager_list_identities (GoaIdentityManager *self, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GOA_IDENTITY_MANAGER_GET_IFACE (self)->list_identities (self, + cancellable, + callback, + user_data); +} + +GList * +goa_identity_manager_list_identities_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + return GOA_IDENTITY_MANAGER_GET_IFACE (self)->list_identities_finish (self, + result, + error); +} + +void +goa_identity_manager_renew_identity (GoaIdentityManager *self, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GOA_IDENTITY_MANAGER_GET_IFACE (self)->renew_identity (self, + identity, + cancellable, + callback, + user_data); +} + +void +goa_identity_manager_renew_identity_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + GOA_IDENTITY_MANAGER_GET_IFACE (self)->renew_identity_finish (self, result, error); +} + +void +goa_identity_manager_sign_identity_in (GoaIdentityManager *self, + const char *identifier, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GoaIdentityInquiryFunc inquiry_func, + gpointer inquiry_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GOA_IDENTITY_MANAGER_GET_IFACE (self)->sign_identity_in (self, + identifier, + initial_password, + preauth_source, + flags, + inquiry_func, + inquiry_data, + cancellable, + callback, + user_data); +} + +GoaIdentity * +goa_identity_manager_sign_identity_in_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + return GOA_IDENTITY_MANAGER_GET_IFACE (self)->sign_identity_in_finish (self, + result, + error); +} + +void +goa_identity_manager_sign_identity_out (GoaIdentityManager *self, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GOA_IDENTITY_MANAGER_GET_IFACE (self)->sign_identity_out (self, + identity, + cancellable, + callback, + user_data); +} + +void +goa_identity_manager_sign_identity_out_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + GOA_IDENTITY_MANAGER_GET_IFACE (self)->sign_identity_out_finish (self, + result, + error); +} + +char * +goa_identity_manager_name_identity (GoaIdentityManager *self, + GoaIdentity *identity) +{ + return GOA_IDENTITY_MANAGER_GET_IFACE (self)->name_identity (self, identity); +} + +void +_goa_identity_manager_emit_identity_added (GoaIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_emit (G_OBJECT (self), signals[IDENTITY_ADDED], 0, identity); +} + +void +_goa_identity_manager_emit_identity_removed (GoaIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_emit (G_OBJECT (self), signals[IDENTITY_REMOVED], 0, identity); +} + +void +_goa_identity_manager_emit_identity_renamed (GoaIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_emit (G_OBJECT (self), signals[IDENTITY_RENAMED], 0, identity); +} + +void +_goa_identity_manager_emit_identity_refreshed (GoaIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_emit (G_OBJECT (self), signals[IDENTITY_REFRESHED], 0, identity); +} + +void +_goa_identity_manager_emit_identity_needs_renewal (GoaIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_emit (G_OBJECT (self), signals[IDENTITY_NEEDS_RENEWAL], 0, identity); +} + +void +_goa_identity_manager_emit_identity_expiring (GoaIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_emit (G_OBJECT (self), signals[IDENTITY_EXPIRING], 0, identity); +} + +void +_goa_identity_manager_emit_identity_expired (GoaIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_emit (G_OBJECT (self), signals[IDENTITY_EXPIRED], 0, identity); +} diff --git a/src/goaidentity/goaidentitymanager.h b/src/goaidentity/goaidentitymanager.h new file mode 100644 index 0000000..415f424 --- /dev/null +++ b/src/goaidentity/goaidentitymanager.h @@ -0,0 +1,167 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_MANAGER_H__ +#define __GOA_IDENTITY_MANAGER_H__ + +#include +#include +#include + +#include "goaidentity.h" +#include "goaidentityinquiry.h" + +G_BEGIN_DECLS +#define GOA_TYPE_IDENTITY_MANAGER (goa_identity_manager_get_type ()) +#define GOA_IDENTITY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_IDENTITY_MANAGER, GoaIdentityManager)) +#define GOA_IDENTITY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOA_TYPE_IDENTITY_MANAGER, GoaIdentityManagerInterface)) +#define GOA_IS_IDENTITY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_IDENTITY_MANAGER)) +#define GOA_IDENTITY_MANAGER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GOA_TYPE_IDENTITY_MANAGER, GoaIdentityManagerInterface)) + +typedef struct _GoaIdentityManager GoaIdentityManager; +typedef struct _GoaIdentityManagerInterface GoaIdentityManagerInterface; + +struct _GoaIdentityManagerInterface +{ + GTypeInterface base_interface; + + /* Signals */ + void (* identity_added) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + + void (* identity_removed) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + void (* identity_renamed) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + void (* identity_refreshed) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + void (* identity_needs_renewal) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + void (* identity_expiring) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + void (* identity_expired) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + + /* Virtual Functions */ + void (* get_identity) (GoaIdentityManager *identity_manager, + const char *identifier, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GoaIdentity * (* get_identity_finish) (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + void (* list_identities) (GoaIdentityManager *identity_manager, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GList * (* list_identities_finish) (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + + void (* sign_identity_in) (GoaIdentityManager *identity_manager, + const char *identifier, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GoaIdentityInquiryFunc inquiry_func, + gpointer inquiry_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GoaIdentity * (* sign_identity_in_finish) (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + + void (* sign_identity_out) (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + void (* sign_identity_out_finish) (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + + void (* renew_identity) (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + void (* renew_identity_finish) (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + + char * (* name_identity) (GoaIdentityManager *identity_manager, + GoaIdentity *identity); +}; + +GType goa_identity_manager_get_type (void); + +void goa_identity_manager_get_identity (GoaIdentityManager *identity_manager, + const char *identifier, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaIdentity *goa_identity_manager_get_identity_finish (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); +void goa_identity_manager_list_identities (GoaIdentityManager *identity_manager, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GList *goa_identity_manager_list_identities_finish (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + +void goa_identity_manager_sign_identity_in (GoaIdentityManager *identity_manager, + const char *identifier, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GoaIdentityInquiryFunc inquiry_func, + gpointer inquiry_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaIdentity *goa_identity_manager_sign_identity_in_finish (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + +void goa_identity_manager_sign_identity_out (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +void goa_identity_manager_sign_identity_out_finish (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + +void goa_identity_manager_renew_identity (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +void goa_identity_manager_renew_identity_finish (GoaIdentityManager *identity_manager, + GAsyncResult *result, + GError **error); + +char *goa_identity_manager_name_identity (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + +G_END_DECLS +#endif /* __GOA_IDENTITY_MANAGER_H__ */ diff --git a/src/goaidentity/goaidentitymanagererror.c b/src/goaidentity/goaidentitymanagererror.c new file mode 100644 index 0000000..28150c1 --- /dev/null +++ b/src/goaidentity/goaidentitymanagererror.c @@ -0,0 +1,44 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include "goaidentitymanagererror.h" + +static const GDBusErrorEntry dbus_error_entries[] = +{ + {GOA_IDENTITY_MANAGER_ERROR_INITIALIZING, "org.gnome.Identity.Manager.Error.Initializing"}, + {GOA_IDENTITY_MANAGER_ERROR_IDENTITY_NOT_FOUND, "org.gnome.Identity.Manager.Error.IdentityNotFound"}, + {GOA_IDENTITY_MANAGER_ERROR_CREATING_IDENTITY, "org.gnome.Identity.Manager.Error.CreatingIdentity"}, + {GOA_IDENTITY_MANAGER_ERROR_ACCESSING_CREDENTIALS, "org.gnome.Identity.Manager.Error.AccessingCredentials"}, + {GOA_IDENTITY_MANAGER_ERROR_UNSUPPORTED_CREDENTIALS, "org.gnome.Identity.Manager.Error.UnsupportedCredentials"} +}; + +GQuark +goa_identity_manager_error_quark (void) +{ + G_STATIC_ASSERT (G_N_ELEMENTS (dbus_error_entries) == GOA_IDENTITY_MANAGER_ERROR_NUM_ENTRIES); + static volatile gsize quark_volatile = 0; + g_dbus_error_register_error_domain ("goa-identity-manager-error", + &quark_volatile, + dbus_error_entries, + G_N_ELEMENTS (dbus_error_entries)); + return (GQuark) quark_volatile; +} diff --git a/src/goaidentity/goaidentitymanagererror.h b/src/goaidentity/goaidentitymanagererror.h new file mode 100644 index 0000000..4238648 --- /dev/null +++ b/src/goaidentity/goaidentitymanagererror.h @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_MANAGER_ERROR_H__ +#define __GOA_IDENTITY_MANAGER_ERROR_H__ + +#include + +G_BEGIN_DECLS + +#define GOA_IDENTITY_MANAGER_ERROR (goa_identity_manager_error_quark ()) + +#define GOA_IDENTITY_MANAGER_ERROR_NUM_ENTRIES (GOA_IDENTITY_MANAGER_ERROR_UNSUPPORTED_CREDENTIALS + 1) + +typedef enum +{ + GOA_IDENTITY_MANAGER_ERROR_INITIALIZING, /* org.gnome.Identity.Manager.Error.Initializing */ + GOA_IDENTITY_MANAGER_ERROR_IDENTITY_NOT_FOUND, /* org.gnome.Identity.Manager.Error.IdentityNotFound */ + GOA_IDENTITY_MANAGER_ERROR_CREATING_IDENTITY, /* org.gnome.Identity.Manager.Error.CreatingIdentity */ + GOA_IDENTITY_MANAGER_ERROR_ACCESSING_CREDENTIALS, /* org.gnome.Identity.Manager.Error.AccessingCredentials */ + GOA_IDENTITY_MANAGER_ERROR_UNSUPPORTED_CREDENTIALS /* org.gnome.Identity.Manager.Error.UnsupportedCredentials */ +} GoaIdentityManagerError; + +GQuark goa_identity_manager_error_quark (void); + +G_END_DECLS + +#endif /* __GOA_IDENTITY_MANAGER_ERROR_H__ */ diff --git a/src/goaidentity/goaidentitymanagerprivate.h b/src/goaidentity/goaidentitymanagerprivate.h new file mode 100644 index 0000000..130b40a --- /dev/null +++ b/src/goaidentity/goaidentitymanagerprivate.h @@ -0,0 +1,45 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_MANAGER_PRIVATE_H__ +#define __GOA_IDENTITY_MANAGER_PRIVATE_H__ + +#include +#include + +#include "goaidentitymanager.h" + +G_BEGIN_DECLS +void _goa_identity_manager_emit_identity_added (GoaIdentityManager *identity_manager, + GoaIdentity *identity); +void _goa_identity_manager_emit_identity_removed (GoaIdentityManager *identity_manager, + GoaIdentity *identity); +void _goa_identity_manager_emit_identity_refreshed (GoaIdentityManager *identity_manager, + GoaIdentity *identity); +void _goa_identity_manager_emit_identity_renamed (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + +void _goa_identity_manager_emit_identity_expiring (GoaIdentityManager *identity_manager, + GoaIdentity *identity); + +void _goa_identity_manager_emit_identity_needs_renewal (GoaIdentityManager *identity_manager, + GoaIdentity *identity); +void _goa_identity_manager_emit_identity_expired (GoaIdentityManager *identity_manager, + GoaIdentity *identity); +G_END_DECLS +#endif /* __GOA_IDENTITY_MANAGER_PRIVATE_H__ */ diff --git a/src/goaidentity/goaidentityservice.c b/src/goaidentity/goaidentityservice.c new file mode 100644 index 0000000..89307c0 --- /dev/null +++ b/src/goaidentity/goaidentityservice.c @@ -0,0 +1,1723 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" +#include "goaidentityservice.h" + +#include +#include + +#include +#include +#include + +#include + +#include + +#include "goaidentityenumtypes.h" +#include "goaidentitymanagererror.h" +#include "goaidentityutils.h" + +#include "goakerberosidentitymanager.h" + +struct _GoaIdentityServicePrivate +{ + GDBusConnection *connection; + GDBusObjectManagerServer *object_manager_server; + guint bus_id; + + GoaIdentityManager *identity_manager; + + GHashTable *watched_client_connections; + GHashTable *key_holders; + GHashTable *pending_temporary_account_results; + + GoaClient *client; +}; + +static void identity_service_manager_interface_init (GoaIdentityServiceManagerIface *interface); + +static void +sign_in (GoaIdentityService *self, + const char *identifier, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +G_DEFINE_TYPE_WITH_CODE (GoaIdentityService, + goa_identity_service, + GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_MANAGER, + identity_service_manager_interface_init)); + +static char * +get_object_path_for_identity (GoaIdentityService *self, + GoaIdentity *identity) +{ + const char *identifier; + char *escaped_identifier; + char *object_path; + + identifier = goa_identity_get_identifier (identity); + escaped_identifier = goa_identity_utils_escape_object_path (identifier, + strlen (identifier)); + object_path = g_strdup_printf ("/org/gnome/Identity/Identities/%s", escaped_identifier); + + g_free (escaped_identifier); + return object_path; +} + +static char * +export_identity (GoaIdentityService *self, + GoaIdentity *identity) +{ + char *object_path; + GDBusObjectSkeleton *object; + GDBusInterfaceSkeleton *interface; + + object_path = get_object_path_for_identity (self, identity); + + object = G_DBUS_OBJECT_SKELETON (goa_identity_service_object_skeleton_new (object_path)); + interface = G_DBUS_INTERFACE_SKELETON (goa_identity_service_identity_skeleton_new ()); + + g_object_bind_property (identity, "identifier", interface, "identifier", G_BINDING_SYNC_CREATE); + + g_object_bind_property (identity, + "expiration-timestamp", + interface, + "expiration-timestamp", + G_BINDING_SYNC_CREATE); + + g_object_bind_property (identity, "is-signed-in", interface, "is-signed-in", G_BINDING_SYNC_CREATE); + + g_dbus_object_skeleton_add_interface (object, interface); + g_object_unref (interface); + + g_dbus_object_manager_server_export (self->priv->object_manager_server, object); + g_object_unref (object); + + return object_path; +} + +static void +unexport_identity (GoaIdentityService *self, + GoaIdentity *identity) +{ + char *object_path; + + object_path = get_object_path_for_identity (self, identity); + + g_dbus_object_manager_server_unexport (self->priv->object_manager_server, + object_path); + g_free (object_path); +} + +static void +on_sign_in_done (GoaIdentityService *self, + GAsyncResult *result, + GTask *operation_result) +{ + GoaIdentity *identity; + char *object_path; + GError *error; + gboolean had_error; + + error = NULL; + /* Workaround for bgo#764163 */ + had_error = g_task_had_error (G_TASK (result)); + identity = g_task_propagate_pointer (G_TASK (result), &error); + if (had_error) + { + g_task_return_error (operation_result, error); + g_object_unref (operation_result); + return; + } + + object_path = export_identity (self, identity); + + g_task_return_pointer (operation_result, object_path, g_free); + + /* User is signed in, so we're mostly done + */ + g_object_unref (identity); + g_object_unref (operation_result); +} + +static GoaObject * +find_object_with_principal (GoaIdentityService *self, + const char *principal, + gboolean must_be_enabled) +{ + GList *objects; + GList *node; + GoaObject *found_object; + + objects = goa_client_get_accounts (self->priv->client); + + found_object = NULL; + for (node = objects; node != NULL; node = node->next) + { + GoaObject *object = GOA_OBJECT (node->data); + GoaAccount *account; + const char *provider_type; + const char *account_identity; + + account = goa_object_peek_account (object); + + if (account == NULL) + continue; + + provider_type = goa_account_get_provider_type (account); + + if (g_strcmp0 (provider_type, "kerberos") != 0) + continue; + + if (must_be_enabled) + { + GoaTicketing *ticketing; + + ticketing = goa_object_peek_ticketing (object); + + if (ticketing == NULL) + continue; + } + + account_identity = goa_account_get_identity (account); + + if (g_strcmp0 (account_identity, principal) == 0) + { + found_object = g_object_ref (object); + break; + } + } + g_list_free_full (objects, g_object_unref); + + return found_object; +} + +static void +on_credentials_ensured (GoaAccount *account, + GAsyncResult *result, + GoaIdentityService *self) +{ + GError *error; + const char *account_identity; + int expires_in; + + account_identity = goa_account_get_identity (account); + + error = NULL; + if (!goa_account_call_ensure_credentials_finish (account, + &expires_in, + result, + &error)) + { + g_debug ("GoaIdentityService: could not ensure credentials for account %s: %s", + account_identity, + error->message); + g_error_free (error); + return; + } + + g_debug ("GoaIdentityService: credentials for account %s ensured for %d seconds", + account_identity, + expires_in); +} + +static gboolean +should_ignore_object (GoaIdentityService *self, + GoaObject *object) +{ + GoaAccount *account; + + account = goa_object_peek_account (object); + + if (goa_account_get_ticketing_disabled (account)) + return TRUE; + + return FALSE; +} + +static void +ensure_account_credentials (GoaIdentityService *self, + GoaObject *object) +{ + + GoaAccount *account; + + if (should_ignore_object (self, object)) + return; + + account = goa_object_peek_account (object); + goa_account_call_ensure_credentials (account, + NULL, + (GAsyncReadyCallback) + on_credentials_ensured, + self); +} + +static void +on_sign_in_handled (GoaIdentityService *self, + GAsyncResult *result, + GDBusMethodInvocation *invocation) +{ + GError *error = NULL; + char *object_path; + + object_path = g_task_propagate_pointer (G_TASK (result), &error); + if (error != NULL) + g_dbus_method_invocation_take_error (invocation, error); + else + goa_identity_service_manager_complete_sign_in (GOA_IDENTITY_SERVICE_MANAGER (self), + invocation, + object_path); + + g_free (object_path); + g_object_unref (invocation); +} + +static void +read_sign_in_details (GoaIdentityServiceManager *manager, + GVariant *details, + GoaIdentitySignInFlags *flags, + char **secret_key, + char **preauth_source) +{ + GVariantIter iter; + char *key; + char *value; + + *flags = GOA_IDENTITY_SIGN_IN_FLAGS_NONE; + g_variant_iter_init (&iter, details); + while (g_variant_iter_loop (&iter, "{ss}", &key, &value)) + { + if (g_strcmp0 (key, "initial-password") == 0) + *secret_key = g_strdup (value); + else if (g_strcmp0 (key, "preauthentication-source") == 0) + *preauth_source = g_strdup (value); + else if (g_strcmp0 (key, "disallow-renewal") == 0 + && g_strcmp0 (value, "true") == 0) + *flags |= GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_RENEWAL; + else if (g_strcmp0 (key, "disallow-forwarding") == 0 + && g_strcmp0 (value, "true") == 0) + *flags |= GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_FORWARDING; + else if (g_strcmp0 (key, "disallow-proxying") == 0 + && g_strcmp0 (value, "true") == 0) + *flags |= GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_PROXYING; + } +} + +static gboolean +goa_identity_service_handle_sign_in (GoaIdentityServiceManager *manager, + GDBusMethodInvocation *invocation, + const char *identifier, + GVariant *details) +{ + GoaIdentityService *self = GOA_IDENTITY_SERVICE (manager); + GTask *operation_result; + GoaIdentitySignInFlags flags; + char *secret_key; + char *preauth_source; + gconstpointer initial_password; + GCancellable *cancellable; + + secret_key = NULL; + preauth_source = NULL; + initial_password = NULL; + + read_sign_in_details (manager, details, &flags, &secret_key, &preauth_source); + + if (secret_key != NULL) + { + GcrSecretExchange *secret_exchange; + gchar *key; + + key = g_strdup_printf ("%s %s", + g_dbus_method_invocation_get_sender (invocation), + identifier); + + secret_exchange = g_hash_table_lookup (self->priv->key_holders, key); + g_free (key); + + if (secret_exchange == NULL) + { + g_free (secret_key); + g_dbus_method_invocation_return_error (invocation, + GOA_IDENTITY_MANAGER_ERROR, + GOA_IDENTITY_MANAGER_ERROR_ACCESSING_CREDENTIALS, + "initial secret passed before secret key exchange"); + return TRUE; + } + + gcr_secret_exchange_receive (secret_exchange, secret_key); + g_free (secret_key); + + initial_password = gcr_secret_exchange_get_secret (secret_exchange, NULL); + } + + cancellable = g_cancellable_new (); + operation_result = g_task_new (self, + cancellable, + (GAsyncReadyCallback) on_sign_in_handled, + g_object_ref (invocation)); + g_object_set_data (G_OBJECT (operation_result), + "initial-password", + (gpointer) + initial_password); + g_object_set_data (G_OBJECT (operation_result), + "flags", + GINT_TO_POINTER ((int) flags)); + + sign_in (self, + identifier, + initial_password, + preauth_source, + flags, + cancellable, + (GAsyncReadyCallback) + on_sign_in_done, + g_object_ref (operation_result)); + + g_free (preauth_source); + g_object_unref (cancellable); + g_object_unref (operation_result); + + return TRUE; +} + +static void +on_sign_out_handled (GoaIdentityService *self, + GAsyncResult *result, + GDBusMethodInvocation *invocation) +{ + GError *error; + gboolean had_error; + + error = NULL; + /* Workaround for bgo#764163 */ + had_error = g_task_had_error (G_TASK (result)); + g_task_propagate_boolean (G_TASK (result), &error); + if (had_error) + g_dbus_method_invocation_take_error (invocation, error); + else + goa_identity_service_manager_complete_sign_out (GOA_IDENTITY_SERVICE_MANAGER (self), + invocation); + + g_object_unref (invocation); +} + +static void +on_identity_signed_out (GoaIdentityManager *manager, + GAsyncResult *result, + GTask *operation_result) +{ + GoaIdentityService *self; + GError *error; + GoaIdentity *identity; + const char *identifier; + GoaObject *object = NULL; + + self = GOA_IDENTITY_SERVICE (g_task_get_source_object (operation_result)); + identity = g_object_get_data (G_OBJECT (operation_result), "identity"); + + identifier = goa_identity_get_identifier (identity); + object = find_object_with_principal (self, identifier, FALSE); + + if (object != NULL) + ensure_account_credentials (self, object); + + error = NULL; + goa_identity_manager_sign_identity_out_finish (manager, result, &error); + if (error != NULL) + { + g_debug ("GoaIdentityService: Identity could not be signed out: %s", + error->message); + g_task_return_error (operation_result, error); + goto out; + } + + g_task_return_boolean (operation_result, TRUE); + + out: + g_clear_object (&object); + g_object_unref (operation_result); +} + +static void +on_got_identity_for_sign_out (GoaIdentityManager *manager, + GAsyncResult *result, + GTask *operation_result) +{ + GError *error; + GoaIdentity *identity = NULL; + + error = NULL; + identity = goa_identity_manager_get_identity_finish (manager, result, &error); + + if (error != NULL) + { + g_debug ("GoaIdentityService: Identity could not be signed out: %s", + error->message); + g_task_return_error (operation_result, error); + goto out; + } + + g_object_set_data_full (G_OBJECT (operation_result), "identity", g_object_ref (identity), g_object_unref); + + goa_identity_manager_sign_identity_out (manager, + identity, + NULL, + (GAsyncReadyCallback) + on_identity_signed_out, + g_object_ref (operation_result)); + + out: + g_clear_object (&identity); + g_object_unref (operation_result); +} + +static gboolean +goa_identity_service_handle_sign_out (GoaIdentityServiceManager *manager, + GDBusMethodInvocation *invocation, + const char *identifier) +{ + GoaIdentityService *self = GOA_IDENTITY_SERVICE (manager); + GTask *task; + + task = g_task_new (self, NULL, (GAsyncReadyCallback) on_sign_out_handled, g_object_ref (invocation)); + goa_identity_manager_get_identity (self->priv->identity_manager, + identifier, + NULL, + (GAsyncReadyCallback) + on_got_identity_for_sign_out, + g_object_ref (task)); + + g_object_unref (task); + return TRUE; +} + +static void +on_secret_keys_exchanged (GoaIdentityService *self, + GAsyncResult *result) +{ + GDBusMethodInvocation *invocation; + GError *error; + char *output_key = NULL; + + invocation = g_task_get_task_data (G_TASK (result)); + + error = NULL; + output_key = g_task_propagate_pointer (G_TASK (result), &error); + if (error != NULL) + { + g_dbus_method_invocation_take_error (invocation, error); + } + else + { + goa_identity_service_manager_complete_exchange_secret_keys (GOA_IDENTITY_SERVICE_MANAGER (self), + invocation, + output_key); + } + + g_free (output_key); +} + +static void +on_caller_watched (GDBusConnection *connection, + const char *name, + const char *name_owner, + GTask *operation_result) +{ + GoaIdentityService *self; + GcrSecretExchange *secret_exchange; + const char *identifier; + const char *input_key; + char *output_key; + + self = GOA_IDENTITY_SERVICE (g_task_get_source_object (operation_result)); + identifier = g_object_get_data (G_OBJECT (operation_result), "identifier"); + input_key = g_object_get_data (G_OBJECT (operation_result), "input-key"); + + secret_exchange = gcr_secret_exchange_new (NULL); + + if (!gcr_secret_exchange_receive (secret_exchange, + input_key)) + { + g_task_return_new_error (operation_result, + GCR_ERROR, + GCR_ERROR_UNRECOGNIZED, + _("Initial secret key is invalid")); + return; + } + + g_hash_table_insert (self->priv->key_holders, + g_strdup_printf ("%s %s", name_owner, identifier), + secret_exchange); + + output_key = gcr_secret_exchange_send (secret_exchange, NULL, 0); + g_task_return_pointer (operation_result, output_key, g_free); +} + +static void +on_caller_vanished (GDBusConnection *connection, + const char *name, + GTask *operation_result) +{ + GoaIdentityService *self; + GCancellable *cancellable; + + self = GOA_IDENTITY_SERVICE (g_task_get_source_object (operation_result)); + + cancellable = g_task_get_cancellable (operation_result); + g_cancellable_cancel (cancellable); + + g_hash_table_remove (self->priv->watched_client_connections, name); + g_hash_table_remove (self->priv->key_holders, name); + +} + +static gboolean +goa_identity_service_handle_exchange_secret_keys (GoaIdentityServiceManager *manager, + GDBusMethodInvocation *invocation, + const char *identifier, + const char *input_key) +{ + GoaIdentityService *self = GOA_IDENTITY_SERVICE (manager); + GTask *operation_result; + GCancellable *cancellable; + guint watch_id; + const char *sender; + + cancellable = g_cancellable_new (); + operation_result = g_task_new (self, cancellable, (GAsyncReadyCallback) on_secret_keys_exchanged, NULL); + g_task_set_task_data (operation_result, g_object_ref (invocation), g_object_unref); + + g_object_set_data_full (G_OBJECT (operation_result), + "identifier", + g_strdup (identifier), + g_free); + g_object_set_data_full (G_OBJECT (operation_result), + "input-key", + g_strdup (input_key), + g_free); + sender = g_dbus_method_invocation_get_sender (invocation); + watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION, + sender, + G_BUS_NAME_WATCHER_FLAGS_NONE, + (GBusNameAppearedCallback) + on_caller_watched, + (GBusNameVanishedCallback) + on_caller_vanished, + g_object_ref (operation_result), + g_object_unref); + g_hash_table_insert (self->priv->watched_client_connections, + g_strdup (sender), + GUINT_TO_POINTER (watch_id)); + + g_object_unref (operation_result); + return TRUE; +} + +static void +identity_service_manager_interface_init (GoaIdentityServiceManagerIface *interface) +{ + interface->handle_sign_in = goa_identity_service_handle_sign_in; + interface->handle_sign_out = goa_identity_service_handle_sign_out; + interface->handle_exchange_secret_keys = goa_identity_service_handle_exchange_secret_keys; +} + +static void +goa_identity_service_init (GoaIdentityService *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + GOA_TYPE_IDENTITY_SERVICE, + GoaIdentityServicePrivate); + + g_debug ("GoaIdentityService: initializing"); + self->priv->watched_client_connections = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) + g_bus_unwatch_name); + + self->priv->key_holders = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + g_object_unref); + self->priv->pending_temporary_account_results = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + g_object_unref); +} + +static void +goa_identity_service_finalize (GObject *object) +{ + GoaIdentityService *self; + + g_return_if_fail (object != NULL); + g_return_if_fail (GOA_IS_IDENTITY_SERVICE (object)); + + g_debug ("GoaIdentityService: finalizing"); + + self = GOA_IDENTITY_SERVICE (object); + + goa_identity_service_deactivate (self); + + g_clear_object (&self->priv->identity_manager); + g_clear_object (&self->priv->object_manager_server); + g_clear_pointer (&self->priv->watched_client_connections, + (GDestroyNotify) g_hash_table_unref); + g_clear_pointer (&self->priv->key_holders, + (GDestroyNotify) g_hash_table_unref); + g_clear_pointer (&self->priv->pending_temporary_account_results, + (GDestroyNotify) g_hash_table_unref); + + G_OBJECT_CLASS (goa_identity_service_parent_class)->finalize (object); +} + +static void +on_identity_renewed (GoaIdentityManager *manager, + GAsyncResult *result, + GoaIdentityService *self) +{ + GError *error; + + error = NULL; + goa_identity_manager_renew_identity_finish (manager, result, &error); + + if (error != NULL) + { + g_debug ("GoaIdentityService: could not renew identity: %s", + error->message); + g_error_free (error); + return; + } + + g_debug ("GoaIdentityService: identity renewed"); +} + +static void +on_identity_needs_renewal (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GoaIdentityService *self) +{ + const char *principal; + GoaObject *object = NULL; + + principal = goa_identity_get_identifier (identity); + + object = find_object_with_principal (self, principal, TRUE); + + if (object != NULL && should_ignore_object (self, object)) + { + g_debug ("GoaIdentityService: ignoring identity %s that says it needs renewal", principal); + goto out; + } + + g_debug ("GoaIdentityService: identity %s needs renewal", principal); + + goa_identity_manager_renew_identity (GOA_IDENTITY_MANAGER + (self->priv->identity_manager), + identity, + NULL, + (GAsyncReadyCallback) + on_identity_renewed, + self); + + out: + g_clear_object (&object); +} + +static void +on_identity_signed_in (GoaIdentityManager *manager, + GAsyncResult *result, + GTask *operation_result) +{ + GError *error; + GoaIdentity *identity; + + error = NULL; + identity = goa_identity_manager_sign_identity_in_finish (manager, result, &error); + + if (error != NULL) + { + g_debug ("GoaIdentityService: could not sign in identity: %s", + error->message); + g_task_return_error (operation_result, error); + } + else + { + g_debug ("GoaIdentityService: identity signed in"); + g_task_return_pointer (operation_result, g_object_ref (identity), g_object_unref); + } + + g_object_unref (operation_result); +} + +static void +on_temporary_account_added (GoaManager *manager, + GAsyncResult *result, + GTask *operation_result) +{ + GoaIdentityService *self; + GDBusObjectManager *object_manager; + const char *principal; + char *object_path; + GoaIdentity *identity; + GoaObject *object; + GError *error; + + self = GOA_IDENTITY_SERVICE (g_task_get_source_object (operation_result)); + object_path = NULL; + object = NULL; + error = NULL; + + identity = GOA_IDENTITY (g_task_get_task_data (operation_result)); + + principal = goa_identity_get_identifier (identity); + g_hash_table_remove (self->priv->pending_temporary_account_results, principal); + + if (!goa_manager_call_add_account_finish (manager, + &object_path, + result, + &error)) + { + const char *identifier; + + identifier = goa_identity_get_identifier (identity); + g_debug ("Could not add temporary account for identity %s: %s", identifier, error->message); + g_error_free (error); + goto out; + } + + if (object_path != NULL && object_path[0] != '\0') + { + g_debug ("Created account for identity with object path %s", object_path); + + object_manager = goa_client_get_object_manager (self->priv->client); + object = GOA_OBJECT (g_dbus_object_manager_get_object (object_manager, + object_path)); + g_free (object_path); + } + + if (object != NULL) + ensure_account_credentials (self, object); + + out: + g_clear_object (&object); + g_object_unref (operation_result); +} + +static void +add_temporary_account (GoaIdentityService *self, + GoaIdentity *identity) +{ + char *realm; + char *preauth_source; + const char *principal; + GTask *operation_result; + GVariantBuilder credentials; + GVariantBuilder details; + GoaManager *manager; + + principal = goa_identity_get_identifier (identity); + if (g_hash_table_contains (self->priv->pending_temporary_account_results, principal)) + { + g_debug ("GoaIdentityService: would add temporary identity %s, but it's already pending", principal); + return; + } + + g_debug ("GoaIdentityService: adding temporary identity %s", principal); + + /* If there's no account for this identity then create a temporary one. + */ + + realm = goa_kerberos_identity_get_realm_name (GOA_KERBEROS_IDENTITY (identity)); + preauth_source = goa_kerberos_identity_get_preauthentication_source (GOA_KERBEROS_IDENTITY (identity)); + + g_variant_builder_init (&credentials, G_VARIANT_TYPE_VARDICT); + + g_variant_builder_init (&details, G_VARIANT_TYPE ("a{ss}")); + g_variant_builder_add (&details, "{ss}", "Realm", realm); + g_variant_builder_add (&details, "{ss}", "IsTemporary", "true"); + if (preauth_source != NULL) + g_variant_builder_add (&details, "{ss}", "PreauthenticationSource", preauth_source); + g_variant_builder_add (&details, "{ss}", "TicketingEnabled", "true"); + + + g_debug ("GoaIdentityService: asking to sign back in"); + + operation_result = g_task_new (self, NULL, NULL, NULL); + g_task_set_task_data (operation_result, g_object_ref (identity), g_object_unref); + + g_hash_table_insert (self->priv->pending_temporary_account_results, + g_strdup (principal), + g_object_ref (operation_result)); + + manager = goa_client_get_manager (self->priv->client); + goa_manager_call_add_account (manager, + "kerberos", + principal, + principal, + g_variant_builder_end (&credentials), + g_variant_builder_end (&details), + NULL, + (GAsyncReadyCallback) + on_temporary_account_added, + g_object_ref (operation_result)); + g_free (realm); + g_free (preauth_source); + g_object_unref (operation_result); +} + +static void +on_identity_added (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GoaIdentityService *self) +{ + GoaObject *object; + const char *identifier; + + export_identity (self, identity); + + identifier = goa_identity_get_identifier (identity); + + object = find_object_with_principal (self, identifier, FALSE); + + if (object == NULL) + add_temporary_account (self, identity); + + g_clear_object (&object); +} + +static void +on_identity_removed (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GoaIdentityService *self) +{ + GoaObject *object; + const char *identifier; + + identifier = goa_identity_get_identifier (identity); + object = find_object_with_principal (self, identifier, FALSE); + + if (object != NULL) + ensure_account_credentials (self, object); + + unexport_identity (self, identity); + g_clear_object (&object); +} + +static void +on_identity_refreshed (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GoaIdentityService *self) +{ + GoaObject *object; + const char *identifier; + + identifier = goa_identity_get_identifier (identity); + object = find_object_with_principal (self, identifier, FALSE); + + if (object == NULL) + add_temporary_account (self, identity); + else + ensure_account_credentials (self, object); + + g_clear_object (&object); +} + +typedef struct +{ + GoaIdentityService *service; + GoaIdentity *identity; + GoaIdentityInquiry *inquiry; + GoaIdentityQuery *query; + GcrSystemPrompt *prompt; + GCancellable *cancellable; +} SystemPromptRequest; + +static SystemPromptRequest * +system_prompt_request_new (GoaIdentityService *service, + GcrSystemPrompt *prompt, + GoaIdentity *identity, + GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query, + GCancellable *cancellable) +{ + SystemPromptRequest *data; + + data = g_slice_new0 (SystemPromptRequest); + + data->service = service; + data->prompt = prompt; + data->identity = g_object_ref (identity); + data->inquiry = g_object_ref (inquiry); + data->query = query; + data->cancellable = g_object_ref (cancellable); + + return data; +} + +static void +system_prompt_request_free (SystemPromptRequest *data) +{ + g_clear_object (&data->identity); + g_clear_object (&data->inquiry); + g_clear_object (&data->cancellable); + g_slice_free (SystemPromptRequest, data); +} + +static void +close_system_prompt (GoaIdentityManager *manager, + GoaIdentity *identity, + SystemPromptRequest *data) +{ + GError *error; + + /* Only close the prompt if the identity we're + * waiting on got refreshed + */ + if (data->identity != identity) + return; + + g_signal_handlers_disconnect_by_func (manager, G_CALLBACK (close_system_prompt), data); + + error = NULL; + if (!gcr_system_prompt_close (data->prompt, NULL, &error)) + { + if (error != NULL) + { + g_debug ("GoaIdentityService: could not close system prompt: %s", + error->message); + g_error_free (error); + } + } +} + +static void +on_password_system_prompt_answered (GcrPrompt *prompt, + GAsyncResult *result, + SystemPromptRequest *request) +{ + GoaIdentityService *self = request->service; + GoaIdentityInquiry *inquiry = request->inquiry; + GoaIdentity *identity = request->identity; + GoaIdentityQuery *query = request->query; + GCancellable *cancellable = request->cancellable; + GError *error; + const char *password; + + error = NULL; + password = gcr_prompt_password_finish (prompt, result, &error); + + if (password == NULL) + { + if (error != NULL) + { + g_debug ("GoaIdentityService: could not get password from user: %s", + error->message); + g_error_free (error); + } + else + { + g_cancellable_cancel (cancellable); + } + } + else if (!g_cancellable_is_cancelled (cancellable)) + { + goa_identity_inquiry_answer_query (inquiry, query, password); + } + + close_system_prompt (self->priv->identity_manager, identity, request); + system_prompt_request_free (request); +} + +static void +query_user (GoaIdentityService *self, + GoaIdentity *identity, + GoaIdentityInquiry *inquiry, + GoaIdentityQuery *query, + GcrPrompt *prompt, + GCancellable *cancellable) +{ + SystemPromptRequest *request; + char *prompt_text; + GoaIdentityQueryMode query_mode; + char *description; + char *name; + + g_assert (GOA_IS_KERBEROS_IDENTITY (identity)); + + gcr_prompt_set_title (prompt, _("Log In to Realm")); + + name = goa_identity_manager_name_identity (self->priv->identity_manager, identity); + + description = + g_strdup_printf (_("The network realm %s needs some information to sign you in."), + name); + g_free (name); + + gcr_prompt_set_description (prompt, description); + g_free (description); + + prompt_text = goa_identity_query_get_prompt (inquiry, query); + gcr_prompt_set_message (prompt, prompt_text); + g_free (prompt_text); + + request = system_prompt_request_new (self, + GCR_SYSTEM_PROMPT (prompt), + identity, + inquiry, + query, + cancellable); + + g_signal_connect (self->priv->identity_manager, + "identity-refreshed", + G_CALLBACK (close_system_prompt), + request); + + query_mode = goa_identity_query_get_mode (inquiry, query); + + switch (query_mode) + { + case GOA_IDENTITY_QUERY_MODE_INVISIBLE: + gcr_prompt_password_async (prompt, + cancellable, + (GAsyncReadyCallback) + on_password_system_prompt_answered, + request); + break; + case GOA_IDENTITY_QUERY_MODE_VISIBLE: + /* FIXME: we need to either + * 1) add new GCR api to allow for asking questions with visible answers + * or + * 2) add a new shell D-Bus api and drop GCR + */ + gcr_prompt_password_async (prompt, + cancellable, + (GAsyncReadyCallback) + on_password_system_prompt_answered, + request); + break; + default: + break; + } +} + +typedef struct +{ + GoaIdentityService *service; + GoaIdentityInquiry *inquiry; + GCancellable *cancellable; +} SystemPromptOpenRequest; + +static SystemPromptOpenRequest * +system_prompt_open_request_new (GoaIdentityService *service, + GoaIdentityInquiry *inquiry, + GCancellable *cancellable) +{ + SystemPromptOpenRequest *data; + + data = g_slice_new0 (SystemPromptOpenRequest); + + data->service = service; + data->inquiry = g_object_ref (inquiry); + data->cancellable = g_object_ref (cancellable); + + return data; +} + +static void +system_prompt_open_request_free (SystemPromptOpenRequest *data) +{ + g_clear_object (&data->inquiry); + g_clear_object (&data->cancellable); + g_slice_free (SystemPromptOpenRequest, data); +} + +static void +on_system_prompt_open (GcrSystemPrompt *system_prompt, + GAsyncResult *result, + SystemPromptOpenRequest *request) +{ + GoaIdentityService *self = request->service; + GoaIdentityInquiry *inquiry = request->inquiry; + GCancellable *cancellable = request->cancellable; + GoaIdentity *identity; + GoaIdentityQuery *query; + GcrPrompt *prompt; + GError *error; + GoaIdentityInquiryIter iter; + + error = NULL; + prompt = gcr_system_prompt_open_finish (result, &error); + + if (prompt == NULL) + { + if (error != NULL) + { + g_debug ("GoaIdentityService: could not open system prompt: %s", + error->message); + g_error_free (error); + } + return; + } + + identity = goa_identity_inquiry_get_identity (inquiry); + goa_identity_inquiry_iter_init (&iter, inquiry); + while ((query = goa_identity_inquiry_iter_next (&iter, inquiry)) != NULL) + query_user (self, identity, inquiry, query, prompt, cancellable); + + system_prompt_open_request_free (request); +} + +static void +on_identity_inquiry (GoaIdentityInquiry *inquiry, + GCancellable *cancellable, + GoaIdentityService *self) +{ + SystemPromptOpenRequest *request; + + request = system_prompt_open_request_new (self, inquiry, cancellable); + gcr_system_prompt_open_async (-1, + cancellable, + (GAsyncReadyCallback) + on_system_prompt_open, + request); +} + +static void +cancel_sign_in (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GTask *operation_result) +{ + GoaIdentity *operation_identity; + + operation_identity = g_task_get_task_data (operation_result); + if (operation_identity == identity) + { + GCancellable *cancellable; + + cancellable = g_task_get_cancellable (operation_result); + g_cancellable_cancel (cancellable); + } +} + +static void +sign_in (GoaIdentityService *self, + const char *identifier, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *operation_result; + + g_debug ("GoaIdentityService: asking to sign in"); + + operation_result = g_task_new (self, cancellable, callback, user_data); + g_task_set_task_data (operation_result, user_data, NULL); + + g_signal_connect_object (self->priv->identity_manager, + "identity-refreshed", + G_CALLBACK (cancel_sign_in), + operation_result, + 0); + + goa_identity_manager_sign_identity_in (self->priv->identity_manager, + identifier, + initial_password, + preauth_source, + flags, + (GoaIdentityInquiryFunc) + on_identity_inquiry, + self, + cancellable, + (GAsyncReadyCallback) + on_identity_signed_in, + g_object_ref (operation_result)); + + g_object_unref (operation_result); +} + +static void +on_identity_expiring (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GoaIdentityService *self) +{ + const char *principal; + GoaObject *object; + + principal = goa_identity_get_identifier (identity); + + g_debug ("GoaIdentityService: identity %s expiring", principal); + + object = find_object_with_principal (self, principal, TRUE); + + if (object == NULL) + return; + + ensure_account_credentials (self, object); + g_clear_object (&object); +} + +static void +on_identity_expired (GoaIdentityManager *identity_manager, + GoaIdentity *identity, + GoaIdentityService *self) +{ + const char *principal; + GoaObject *object; + + principal = goa_identity_get_identifier (identity); + + g_debug ("GoaIdentityService: identity %s expired", principal); + + object = find_object_with_principal (self, principal, TRUE); + + if (object == NULL) + return; + + ensure_account_credentials (self, object); + g_clear_object (&object); +} + +static void +on_sign_out_for_account_change_done (GoaIdentityService *self, + GAsyncResult *result) +{ + GError *error = NULL; + gboolean had_error; + + /* Workaround for bgo#764163 */ + had_error = g_task_had_error (G_TASK (result)); + g_task_propagate_boolean (G_TASK (result), &error); + if (had_error) + { + g_debug ("Log out failed: %s", error->message); + g_error_free (error); + } + else + { + g_debug ("Log out complete"); + } +} + +static void +on_ticketing_done (GoaIdentityService *self, + GAsyncResult *result) +{ + GoaObject *object; + + object = g_task_get_task_data (G_TASK (result)); + ensure_account_credentials (self, object); +} + +static void +on_got_ticket (GoaTicketing *ticketing, + GAsyncResult *result, + GTask *operation_result) +{ + GoaObject *object; + GoaAccount *account; + GError *error; + const char *account_identity; + + object = g_task_get_task_data (operation_result); + account = goa_object_peek_account (object); + account_identity = goa_account_get_identity (account); + + error = NULL; + if (!goa_ticketing_call_get_ticket_finish (ticketing, + result, + &error)) + { + g_debug ("GoaIdentityService: could not get ticket for account %s: %s", + account_identity, + error->message); + + g_task_return_error (operation_result, error); + g_object_unref (operation_result); + return; + } + + g_debug ("GoaIdentityService: got ticket for account %s", + account_identity); + g_task_return_boolean (operation_result, TRUE); + g_object_unref (operation_result); +} + +static void +on_account_interface_added (GDBusObjectManager *manager, + GoaObject *object, + GDBusInterface *interface, + GoaIdentityService *self) +{ + GoaAccount *account; + GoaTicketing *ticketing; + GDBusInterfaceInfo *info; + const char *provider_type; + + account = goa_object_peek_account (object); + + if (account == NULL) + return; + + provider_type = goa_account_get_provider_type (account); + + if (g_strcmp0 (provider_type, "kerberos") != 0) + return; + + info = g_dbus_interface_get_info (interface); + + if (g_strcmp0 (info->name, "org.gnome.OnlineAccounts.Ticketing") != 0) + return; + + ticketing = goa_object_peek_ticketing (object); + + if (ticketing != NULL) + { + GTask *operation_result; + + operation_result = g_task_new (self, NULL, (GAsyncReadyCallback) on_ticketing_done, NULL); + g_task_set_task_data (operation_result, object, NULL); + + /* Ticketing interface is present, sign in if not already + * signed in. + */ + goa_ticketing_call_get_ticket (ticketing, + NULL, + (GAsyncReadyCallback) + on_got_ticket, + g_object_ref (operation_result)); + + g_object_unref (operation_result); + return; + } +} + +static void +on_account_interface_removed (GDBusObjectManager *manager, + GoaObject *object, + GDBusInterface *interface, + GoaIdentityService *self) +{ + GoaAccount *account; + GoaTicketing *ticketing; + GDBusInterfaceInfo *info; + const char *provider_type; + const char *account_identity; + GTask *task; + + account = goa_object_peek_account (object); + + if (account == NULL) + return; + + provider_type = goa_account_get_provider_type (account); + + if (g_strcmp0 (provider_type, "kerberos") != 0) + return; + + info = g_dbus_interface_get_info (interface); + + if (g_strcmp0 (info->name, "org.gnome.OnlineAccounts.Ticketing") != 0) + return; + + ticketing = goa_object_peek_ticketing (object); + + if (ticketing != NULL) + return; + + /* Ticketing interface is gone, sign out if not already + * signed out. Also, since the user is playing around + * with the account make it permanent. + */ + goa_account_set_is_temporary (account, FALSE); + + account_identity = goa_account_get_identity (account); + + g_debug ("Kerberos account %s was disabled and should now be signed out", account_identity); + + task = g_task_new (self, NULL, (GAsyncReadyCallback) on_sign_out_for_account_change_done, NULL); + goa_identity_manager_get_identity (self->priv->identity_manager, + account_identity, + NULL, + (GAsyncReadyCallback) + on_got_identity_for_sign_out, + g_object_ref (task)); + + g_object_unref (task); +} + +static void +on_identities_listed (GoaIdentityManager *manager, + GAsyncResult *result, + GoaIdentityService *self) +{ + GError *error = NULL; + GList *identities, *node; + + g_signal_connect (self->priv->identity_manager, "identity-added", G_CALLBACK (on_identity_added), self); + g_signal_connect (self->priv->identity_manager, "identity-removed", G_CALLBACK (on_identity_removed), self); + g_signal_connect (self->priv->identity_manager, "identity-refreshed", G_CALLBACK (on_identity_refreshed), self); + g_signal_connect (self->priv->identity_manager, + "identity-needs-renewal", + G_CALLBACK (on_identity_needs_renewal), + self); + g_signal_connect (self->priv->identity_manager, "identity-expiring", G_CALLBACK (on_identity_expiring), self); + g_signal_connect (self->priv->identity_manager, "identity-expired", G_CALLBACK (on_identity_expired), self); + + identities = goa_identity_manager_list_identities_finish (manager, result, &error); + + if (identities == NULL) + { + if (error != NULL) + { + g_warning ("Could not list identities: %s", error->message); + g_error_free (error); + } + goto out; + } + + for (node = identities; node != NULL; node = node->next) + { + GoaIdentity *identity = node->data; + const char *principal; + GoaObject *object; + char *object_path; + + object_path = export_identity (self, identity); + + principal = goa_identity_get_identifier (identity); + + object = find_object_with_principal (self, principal, TRUE); + + if (object == NULL) + add_temporary_account (self, identity); + else + g_object_unref (object); + + g_free (object_path); + } + + out: + g_object_unref (self); +} + +static void +ensure_credentials_for_accounts (GoaIdentityService *self) +{ + GDBusObjectManager *object_manager; + GList *accounts; + GList *node; + + object_manager = goa_client_get_object_manager (self->priv->client); + + g_signal_connect (object_manager, "interface-added", G_CALLBACK (on_account_interface_added), self); + g_signal_connect (object_manager, "interface-removed", G_CALLBACK (on_account_interface_removed), self); + + accounts = goa_client_get_accounts (self->priv->client); + + for (node = accounts; node != NULL; node = node->next) + { + GoaObject *object = GOA_OBJECT (node->data); + GoaAccount *account; + GoaTicketing *ticketing; + const char *provider_type; + + account = goa_object_peek_account (object); + + if (account == NULL) + continue; + + provider_type = goa_account_get_provider_type (account); + + if (g_strcmp0 (provider_type, "kerberos") != 0) + continue; + + ticketing = goa_object_peek_ticketing (object); + + if (ticketing == NULL) + continue; + + ensure_account_credentials (self, object); + } + + g_list_free_full (accounts, g_object_unref); +} + +static void +on_got_client (GoaClient *client, + GAsyncResult *result, + GoaIdentityService *self) +{ + GError *error; + + error = NULL; + + self->priv->client = goa_client_new_finish (result, &error); + + if (self->priv->client == NULL) + { + g_warning ("Could not create client: %s", error->message); + goto out; + } + + self->priv->identity_manager = goa_kerberos_identity_manager_new (NULL, &error); + + if (self->priv->identity_manager == NULL) + { + g_warning ("Could not create identity manager: %s", error->message); + goto out; + } + + goa_identity_manager_list_identities (self->priv->identity_manager, + NULL, + (GAsyncReadyCallback) + on_identities_listed, + g_object_ref (self)); + + ensure_credentials_for_accounts (self); + + out: + g_object_unref (self); +} + +static void +on_session_bus_acquired (GDBusConnection *connection, + const char *unique_name, + GoaIdentityService *self) +{ + g_debug ("GoaIdentityService: Connected to session bus"); + + if (self->priv->connection == NULL) + { + self->priv->connection = g_object_ref (connection); + + g_dbus_object_manager_server_set_connection (self->priv->object_manager_server, + self->priv->connection); + + goa_client_new (NULL, + (GAsyncReadyCallback) + on_got_client, + g_object_ref (self)); + } +} + +static void +on_name_acquired (GDBusConnection *connection, + const char *name, + GoaIdentityService *self) +{ + if (g_strcmp0 (name, "org.gnome.Identity") == 0) + g_debug ("GoaIdentityService: Acquired name org.gnome.Identity"); +} + +static void +on_name_lost (GDBusConnection *connection, + const char *name, + GoaIdentityService *self) +{ + if (g_strcmp0 (name, "org.gnome.Identity") == 0) + raise (SIGTERM); +} + +gboolean +goa_identity_service_activate (GoaIdentityService *self, + GError **error) +{ + GoaIdentityServiceObjectSkeleton *object; + + g_return_val_if_fail (GOA_IS_IDENTITY_SERVICE (self), FALSE); + + g_debug ("GoaIdentityService: Activating identity service"); + + self->priv->object_manager_server = + g_dbus_object_manager_server_new ("/org/gnome/Identity"); + + object = goa_identity_service_object_skeleton_new ("/org/gnome/Identity/Manager"); + goa_identity_service_object_skeleton_set_manager (object, + GOA_IDENTITY_SERVICE_MANAGER (self)); + + g_dbus_object_manager_server_export (self->priv->object_manager_server, + G_DBUS_OBJECT_SKELETON (object)); + g_object_unref (object); + + self->priv->bus_id = g_bus_own_name (G_BUS_TYPE_SESSION, + "org.gnome.Identity", + G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT | + G_BUS_NAME_OWNER_FLAGS_REPLACE, + (GBusAcquiredCallback) on_session_bus_acquired, + (GBusNameAcquiredCallback) on_name_acquired, + (GBusNameVanishedCallback) on_name_lost, + self, + NULL); + + return TRUE; +} + +void +goa_identity_service_deactivate (GoaIdentityService *self) +{ + g_debug ("GoaIdentityService: Deactivating identity service"); + + if (self->priv->identity_manager != NULL) + { + g_signal_handlers_disconnect_by_func (self, on_identity_needs_renewal, self); + g_signal_handlers_disconnect_by_func (self, on_identity_expiring, self); + g_signal_handlers_disconnect_by_func (self, on_identity_expired, self); + g_clear_object (&self->priv->identity_manager); + } + + g_clear_object (&self->priv->object_manager_server); + g_clear_object (&self->priv->connection); + g_clear_object (&self->priv->client); +} + +static void +goa_identity_service_class_init (GoaIdentityServiceClass *service_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (service_class); + + object_class->finalize = goa_identity_service_finalize; + + goa_identity_utils_register_error_domain (GOA_IDENTITY_ERROR, GOA_TYPE_IDENTITY_ERROR); + goa_identity_utils_register_error_domain (GOA_IDENTITY_MANAGER_ERROR, GOA_TYPE_IDENTITY_MANAGER_ERROR); + + g_type_class_add_private (service_class, sizeof (GoaIdentityServicePrivate)); +} + +GoaIdentityService * +goa_identity_service_new (void) +{ + GObject *object; + + object = g_object_new (GOA_TYPE_IDENTITY_SERVICE, + NULL); + + return GOA_IDENTITY_SERVICE (object); +} diff --git a/src/goaidentity/goaidentityservice.h b/src/goaidentity/goaidentityservice.h new file mode 100644 index 0000000..1afcaf4 --- /dev/null +++ b/src/goaidentity/goaidentityservice.h @@ -0,0 +1,57 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_SERVICE_H__ +#define __GOA_IDENTITY_SERVICE_H__ + +#include +#include +#include + +#include "org.gnome.Identity.h" + +G_BEGIN_DECLS +#define GOA_TYPE_IDENTITY_SERVICE (goa_identity_service_get_type ()) +#define GOA_IDENTITY_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GOA_TYPE_IDENTITY_SERVICE, GoaIdentityService)) +#define GOA_IDENTITY_SERVICE_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GOA_TYPE_IDENTITY_SERVICE, GoaIdentityServiceClass)) +#define GOA_IS_IDENTITY_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GOA_TYPE_IDENTITY_SERVICE)) +#define GOA_IS_IDENTITY_SERVICE_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GOA_TYPE_IDENTITY_SERVICE)) +#define GOA_IDENTITY_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOA_TYPE_IDENTITY_SERVICE, GoaIdentityServiceClass)) +typedef struct _GoaIdentityService GoaIdentityService; +typedef struct _GoaIdentityServiceClass GoaIdentityServiceClass; +typedef struct _GoaIdentityServicePrivate GoaIdentityServicePrivate; + +struct _GoaIdentityService +{ + GoaIdentityServiceManagerSkeleton parent_instance; + GoaIdentityServicePrivate *priv; +}; + +struct _GoaIdentityServiceClass +{ + GoaIdentityServiceManagerSkeletonClass parent_class; +}; + +GType goa_identity_service_get_type (void); +GoaIdentityService *goa_identity_service_new (void); +gboolean goa_identity_service_activate (GoaIdentityService *service, + GError **error); +void goa_identity_service_deactivate (GoaIdentityService *service); + +G_END_DECLS +#endif /* __GOA_IDENTITY_SERVICE_H__ */ diff --git a/src/goaidentity/goaidentityutils.c b/src/goaidentity/goaidentityutils.c new file mode 100644 index 0000000..9b85bb6 --- /dev/null +++ b/src/goaidentity/goaidentityutils.c @@ -0,0 +1,215 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goaidentityutils.h" + +#include + +#include +#include +#include + +void +goa_identity_utils_split_identifier (const char *identifier, + char **user, + char **domain) +{ + char **components; + + if (user != NULL) + *user = NULL; + + if (domain != NULL) + *domain = NULL; + + components = g_strsplit (identifier, "@", -1); + + if (components[0] != NULL) + { + if (user != NULL) + *user = g_strdup (components[0]); + + if (components[1] != NULL && domain != NULL) + *domain = g_strdup (components[1]); + } + + g_strfreev (components); +} + +char * +goa_identity_utils_escape_object_path (const char *data, + gsize length) +{ + const char *p; + char *object_path; + GString *string; + + g_return_val_if_fail (data != NULL, NULL); + + string = g_string_sized_new ((length + 1) * 6); + + for (p = data; *p != '\0'; p++) + { + guchar character; + + character = (guchar) * p; + + if (((character >= ((guchar) 'a')) && + (character <= ((guchar) 'z'))) || + ((character >= ((guchar) 'A')) && + (character <= ((guchar) 'Z'))) || + ((character >= ((guchar) '0')) && (character <= ((guchar) '9')))) + { + g_string_append_c (string, (char) character); + continue; + } + + g_string_append_printf (string, "_%x_", character); + } + + object_path = string->str; + + g_string_free (string, FALSE); + + return object_path; +} + +static char * +dashed_string_to_studly_caps (const char *dashed_string) +{ + char *studly_string; + size_t studly_string_length; + size_t i; + + i = 0; + + studly_string = g_strdup (dashed_string); + studly_string_length = strlen (studly_string); + + studly_string[i] = g_ascii_toupper (studly_string[i]); + i++; + + while (i < studly_string_length) + { + if (studly_string[i] == '-' || studly_string[i] == '_') + { + g_memmove (studly_string + i, + studly_string + i + 1, + studly_string_length - i - 1); + studly_string_length--; + if (g_ascii_isalpha (studly_string[i])) + studly_string[i] = g_ascii_toupper (studly_string[i]); + } + i++; + } + studly_string[studly_string_length] = '\0'; + + return studly_string; +} + +static char * +dashed_string_to_dbus_error_string (const char *dashed_string, + const char *old_prefix, + const char *new_prefix, + const char *suffix) +{ + char *studly_suffix; + char *dbus_error_string; + size_t dbus_error_string_length; + size_t i; + + i = 0; + + if (g_str_has_prefix (dashed_string, old_prefix) && + (dashed_string[strlen (old_prefix)] == '-' || + dashed_string[strlen (old_prefix)] == '_')) + dashed_string += strlen (old_prefix) + 1; + + studly_suffix = dashed_string_to_studly_caps (suffix); + dbus_error_string = + g_strdup_printf ("%s.%s.%s", new_prefix, dashed_string, studly_suffix); + g_free (studly_suffix); + i += strlen (new_prefix) + 1; + + dbus_error_string_length = strlen (dbus_error_string); + + dbus_error_string[i] = g_ascii_toupper (dbus_error_string[i]); + i++; + + while (i < dbus_error_string_length) + { + if (dbus_error_string[i] == '_' || dbus_error_string[i] == '-') + { + dbus_error_string[i] = '.'; + + if (g_ascii_isalpha (dbus_error_string[i + 1])) + dbus_error_string[i + 1] = g_ascii_toupper (dbus_error_string[i + 1]); + } + + i++; + } + + return dbus_error_string; +} + +void +goa_identity_utils_register_error_domain (GQuark error_domain, + GType error_enum) +{ + const char *error_domain_string; + char *type_name = NULL; + GType type; + GTypeClass *type_class = NULL; + const GEnumClass *enum_class; + guint i; + + error_domain_string = g_quark_to_string (error_domain); + type_name = dashed_string_to_studly_caps (error_domain_string); + type = g_type_from_name (type_name); + type_class = g_type_class_ref (type); + + if (type_class == NULL) + { + g_warning ("GoaIdentityUtils: Could not identity type %s", type_name); + goto out; + } + + enum_class = G_ENUM_CLASS (type_class); + + for (i = 0; i < enum_class->n_values; i++) + { + char *dbus_error_string; + + dbus_error_string = dashed_string_to_dbus_error_string (error_domain_string, + "goa", + "org.gnome", + enum_class->values[i]. + value_nick); + + g_debug ("GoaIdentityUtils: Registering dbus error %s", dbus_error_string); + g_dbus_error_register_error (error_domain, + enum_class->values[i].value, dbus_error_string); + g_free (dbus_error_string); + } + + out: + g_clear_pointer (&type_class, g_type_class_unref); + g_free (type_name); +} diff --git a/src/goaidentity/goaidentityutils.h b/src/goaidentity/goaidentityutils.h new file mode 100644 index 0000000..7527850 --- /dev/null +++ b/src/goaidentity/goaidentityutils.h @@ -0,0 +1,37 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_IDENTITY_UTILS_H__ +#define __GOA_IDENTITY_UTILS_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +void goa_identity_utils_split_identifier (const char *identifier, + char **user, + char **domain); +char *goa_identity_utils_escape_object_path (const char *data, + gsize length); +void goa_identity_utils_register_error_domain (GQuark error_domain, + GType error_enum); + +G_END_DECLS +#endif /* __GOA_IDENTITY_UTILS_H__ */ diff --git a/src/goaidentity/goakerberosidentity.c b/src/goaidentity/goakerberosidentity.c new file mode 100644 index 0000000..5f05a3d --- /dev/null +++ b/src/goaidentity/goakerberosidentity.c @@ -0,0 +1,1629 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goaidentity.h" +#include "goakerberosidentity.h" +#include "goakerberosidentityinquiry.h" +#include "goaalarm.h" + +#include +#include +#include + +#include +#include +#include + +typedef enum +{ + VERIFICATION_LEVEL_UNVERIFIED, + VERIFICATION_LEVEL_ERROR, + VERIFICATION_LEVEL_EXISTS, + VERIFICATION_LEVEL_SIGNED_IN +} VerificationLevel; + +struct _GoaKerberosIdentityPrivate +{ + krb5_context kerberos_context; + krb5_ccache credentials_cache; + + char *identifier; + guint identifier_idle_id; + + char *preauth_identity_source; + + krb5_timestamp start_time; + guint start_time_idle_id; + krb5_timestamp renewal_time; + guint renewal_time_idle_id; + krb5_timestamp expiration_time; + guint expiration_time_idle_id; + + GoaAlarm *expiration_alarm; + GoaAlarm *expiring_alarm; + GoaAlarm *renewal_alarm; + + VerificationLevel cached_verification_level; + guint is_signed_in_idle_id; +}; + +enum +{ + EXPIRING, + EXPIRED, + UNEXPIRED, + NEEDS_RENEWAL, + NEEDS_REFRESH, + NUMBER_OF_SIGNALS, +}; + +enum +{ + PROP_0, + PROP_IDENTIFIER, + PROP_IS_SIGNED_IN, + PROP_START_TIMESTAMP, + PROP_RENEWAL_TIMESTAMP, + PROP_EXPIRATION_TIMESTAMP +}; + +static guint signals[NUMBER_OF_SIGNALS] = { 0 }; + +static void identity_interface_init (GoaIdentityInterface *interface); +static void initable_interface_init (GInitableIface *interface); +static void reset_alarms (GoaKerberosIdentity *self); +static void clear_alarms (GoaKerberosIdentity *self); +static gboolean goa_kerberos_identity_is_signed_in (GoaIdentity *identity); +static void set_and_prefix_error_from_krb5_error_code (GoaKerberosIdentity *self, + GError **error, + gint code, + krb5_error_code error_code, + const char *format, + ...) G_GNUC_PRINTF (5, 6); + +G_LOCK_DEFINE_STATIC (identity_lock); + +G_DEFINE_TYPE_WITH_CODE (GoaKerberosIdentity, + goa_kerberos_identity, + G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, + initable_interface_init) + G_IMPLEMENT_INTERFACE (GOA_TYPE_IDENTITY, + identity_interface_init)); +static void +goa_kerberos_identity_dispose (GObject *object) +{ + GoaKerberosIdentity *self = GOA_KERBEROS_IDENTITY (object); + + G_LOCK (identity_lock); + clear_alarms (self); + g_clear_pointer (&self->priv->preauth_identity_source, + g_free); + G_UNLOCK (identity_lock); + + G_OBJECT_CLASS (goa_kerberos_identity_parent_class)->dispose (object); + +} + +static void +goa_kerberos_identity_finalize (GObject *object) +{ + GoaKerberosIdentity *self = GOA_KERBEROS_IDENTITY (object); + + g_free (self->priv->identifier); + + if (self->priv->credentials_cache != NULL) + krb5_cc_close (self->priv->kerberos_context, self->priv->credentials_cache); + + G_OBJECT_CLASS (goa_kerberos_identity_parent_class)->finalize (object); +} + +static void +goa_kerberos_identity_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *param_spec) +{ + GoaKerberosIdentity *self = GOA_KERBEROS_IDENTITY (object); + + switch (property_id) + { + case PROP_IDENTIFIER: + G_LOCK (identity_lock); + g_value_set_string (value, self->priv->identifier); + G_UNLOCK (identity_lock); + break; + case PROP_IS_SIGNED_IN: + g_value_set_boolean (value, + goa_kerberos_identity_is_signed_in (GOA_IDENTITY (self))); + break; + case PROP_START_TIMESTAMP: + G_LOCK (identity_lock); + g_value_set_int64 (value, (gint64) self->priv->start_time); + G_UNLOCK (identity_lock); + break; + case PROP_RENEWAL_TIMESTAMP: + G_LOCK (identity_lock); + g_value_set_int64 (value, (gint64) self->priv->renewal_time); + G_UNLOCK (identity_lock); + break; + case PROP_EXPIRATION_TIMESTAMP: + G_LOCK (identity_lock); + g_value_set_int64 (value, (gint64) self->priv->expiration_time); + G_UNLOCK (identity_lock); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, param_spec); + break; + } +} + +static void +goa_kerberos_identity_class_init (GoaKerberosIdentityClass *klass) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = goa_kerberos_identity_dispose; + object_class->finalize = goa_kerberos_identity_finalize; + object_class->get_property = goa_kerberos_identity_get_property; + + g_type_class_add_private (klass, sizeof (GoaKerberosIdentityPrivate)); + + signals[EXPIRING] = g_signal_new ("expiring", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + signals[EXPIRED] = g_signal_new ("expired", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + signals[UNEXPIRED] = g_signal_new ("unexpired", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + signals[NEEDS_RENEWAL] = g_signal_new ("needs-renewal", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + signals[NEEDS_REFRESH] = g_signal_new ("needs-refresh", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, + NULL, + NULL, + G_TYPE_NONE, + 0); + + g_object_class_override_property (object_class, PROP_IDENTIFIER, "identifier"); + g_object_class_override_property (object_class, PROP_IS_SIGNED_IN, "is-signed-in"); + g_object_class_override_property (object_class, + PROP_START_TIMESTAMP, + "start-timestamp"); + g_object_class_override_property (object_class, + PROP_RENEWAL_TIMESTAMP, + "renewal-timestamp"); + g_object_class_override_property (object_class, + PROP_EXPIRATION_TIMESTAMP, + "expiration-timestamp"); + +} + +static char * +get_identifier (GoaKerberosIdentity *self, + GError **error) +{ + krb5_principal principal; + krb5_error_code error_code; + char *unparsed_name; + char *identifier = NULL; + + if (self->priv->credentials_cache == NULL) + return NULL; + + error_code = krb5_cc_get_principal (self->priv->kerberos_context, + self->priv->credentials_cache, + &principal); + + if (error_code != 0) + { + if (error_code == KRB5_CC_END) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_CREDENTIALS_UNAVAILABLE, + error_code, + _("Could not find identity in credential cache: ")); + } + else + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_ENUMERATING_CREDENTIALS, + error_code, + _("Could not find identity in credential cache: ")); + } + return NULL; + } + + error_code = krb5_unparse_name_flags (self->priv->kerberos_context, + principal, + 0, + &unparsed_name); + + if (error_code != 0) + { + const char *error_message; + + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug ("GoaKerberosIdentity: Error parsing principal identity name: %s", + error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + goto out; + } + + identifier = g_strdup (unparsed_name); + krb5_free_unparsed_name (self->priv->kerberos_context, unparsed_name); + +out: + krb5_free_principal (self->priv->kerberos_context, principal); + return identifier; +} + +static void +goa_kerberos_identity_init (GoaKerberosIdentity *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + GOA_TYPE_KERBEROS_IDENTITY, + GoaKerberosIdentityPrivate); +} + +static void +set_and_prefix_error_from_krb5_error_code (GoaKerberosIdentity *self, + GError **error, + gint code, + krb5_error_code error_code, + const char *format, + ...) +{ + const char *error_message; + char *literal_prefix; + va_list args; + + error_message = krb5_get_error_message (self->priv->kerberos_context, error_code); + g_set_error_literal (error, GOA_IDENTITY_ERROR, code, error_message); + + va_start (args, format); + literal_prefix = g_strdup_vprintf (format, args); + va_end (args); + + g_prefix_error (error, "%s", literal_prefix); + + g_free (literal_prefix); + krb5_free_error_message (self->priv->kerberos_context, error_message); +} + +char * +goa_kerberos_identity_get_principal_name (GoaKerberosIdentity *self) +{ + krb5_principal principal; + krb5_error_code error_code; + char *unparsed_name; + char *principal_name; + int flags; + + if (self->priv->identifier == NULL) + return NULL; + + error_code = krb5_parse_name (self->priv->kerberos_context, + self->priv->identifier, + &principal); + + if (error_code != 0) + { + const char *error_message; + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug + ("GoaKerberosIdentity: Error parsing identity %s into kerberos principal: %s", + self->priv->identifier, error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + return NULL; + } + + flags = KRB5_PRINCIPAL_UNPARSE_DISPLAY; + error_code = krb5_unparse_name_flags (self->priv->kerberos_context, + principal, flags, &unparsed_name); + + if (error_code != 0) + { + const char *error_message; + + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug ("GoaKerberosIdentity: Error parsing principal identity name: %s", + error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + return NULL; + } + + principal_name = g_strdup (unparsed_name); + krb5_free_unparsed_name (self->priv->kerberos_context, unparsed_name); + + return principal_name; +} + +char * +goa_kerberos_identity_get_realm_name (GoaKerberosIdentity *self) +{ + krb5_principal principal; + krb5_error_code error_code; + krb5_data *realm; + char *realm_name; + + if (self->priv->identifier == NULL) + return NULL; + + error_code = krb5_parse_name (self->priv->kerberos_context, + self->priv->identifier, &principal); + + if (error_code != 0) + { + const char *error_message; + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug + ("GoaKerberosIdentity: Error parsing identity %s into kerberos principal: %s", + self->priv->identifier, error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + return NULL; + } + + realm = krb5_princ_realm (self->priv->kerberos_context, principal); + realm_name = g_strndup (realm->data, realm->length); + krb5_free_principal (self->priv->kerberos_context, principal); + + return realm_name; +} + +char * +goa_kerberos_identity_get_preauthentication_source (GoaKerberosIdentity *self) +{ + return g_strdup (self->priv->preauth_identity_source); +} + +static const char * +goa_kerberos_identity_get_identifier (GoaIdentity *identity) +{ + GoaKerberosIdentity *self = GOA_KERBEROS_IDENTITY (identity); + + return self->priv->identifier; +} + +static gboolean +credentials_validate_existence (GoaKerberosIdentity *self, + krb5_principal principal, krb5_creds * credentials) +{ + /* Checks if default principal associated with the cache has a valid + * ticket granting ticket in the passed in credentials + */ + + if (krb5_is_config_principal (self->priv->kerberos_context, credentials->server)) + return FALSE; + + /* looking for the krbtgt / REALM pair, so it should be exactly 2 items */ + if (krb5_princ_size (self->priv->kerberos_context, credentials->server) != 2) + return FALSE; + + if (!krb5_realm_compare (self->priv->kerberos_context, + credentials->server, principal)) + { + /* credentials are from some other realm */ + return FALSE; + } + + if (strncmp (credentials->server->data[0].data, + KRB5_TGS_NAME, credentials->server->data[0].length) != 0) + { + /* credentials aren't for ticket granting */ + return FALSE; + } + + if (credentials->server->data[1].length != principal->realm.length || + memcmp (credentials->server->data[1].data, + principal->realm.data, principal->realm.length) != 0) + { + /* credentials are for some other realm */ + return FALSE; + } + + return TRUE; +} + +static gboolean +snoop_preauth_identity_from_credentials (GoaKerberosIdentity *self, + krb5_creds *credentials, + char **identity_source) +{ + GRegex *regex; + GMatchInfo *match_info = NULL; + gboolean identity_source_exposed = FALSE; + + if (!krb5_is_config_principal (self->priv->kerberos_context, credentials->server)) + return FALSE; + + regex = g_regex_new ("\"X509_user_identity\":\"(?P[^\"]*)\"", + G_REGEX_MULTILINE | G_REGEX_CASELESS | G_REGEX_RAW, + 0, + NULL); + + if (regex == NULL) + return FALSE; + + g_regex_match_full (regex, credentials->ticket.data, credentials->ticket.length, 0, 0, &match_info, NULL); + + if (match_info != NULL && g_match_info_matches (match_info)) + { + if (identity_source) + { + g_free (*identity_source); + *identity_source = g_match_info_fetch_named (match_info, "identity_source"); + } + identity_source_exposed = TRUE; + } + + g_match_info_free (match_info); + g_regex_unref (regex); + + return identity_source_exposed; +} + +static krb5_timestamp +get_current_time (GoaKerberosIdentity *self) +{ + krb5_timestamp current_time; + krb5_error_code error_code; + + error_code = krb5_timeofday (self->priv->kerberos_context, ¤t_time); + + if (error_code != 0) + { + const char *error_message; + + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug ("GoaKerberosIdentity: Error getting current time: %s", error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + return 0; + } + + return current_time; +} + +typedef struct +{ + GoaKerberosIdentity *self; + guint *idle_id; + const char *property_name; +} NotifyRequest; + +static void +clear_idle_id (NotifyRequest *request) +{ + *request->idle_id = 0; + g_object_unref (request->self); + g_slice_free (NotifyRequest, request); +} + +static gboolean +on_notify_queued (NotifyRequest *request) +{ + g_object_notify (G_OBJECT (request->self), request->property_name); + + return FALSE; +} + +static void +queue_notify (GoaKerberosIdentity *self, + guint *idle_id, + const char *property_name) +{ + NotifyRequest *request; + + if (*idle_id != 0) + { + return; + } + + request = g_slice_new0 (NotifyRequest); + request->self = g_object_ref (self); + request->idle_id = idle_id; + request->property_name = property_name; + + *idle_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, + (GSourceFunc) + on_notify_queued, + request, + (GDestroyNotify) + clear_idle_id); +} + +static gboolean +set_start_time (GoaKerberosIdentity *self, + krb5_timestamp start_time) +{ + if (self->priv->start_time != start_time) + { + self->priv->start_time = start_time; + queue_notify (self, + &self->priv->start_time_idle_id, + "start-timestamp"); + return TRUE; + } + return FALSE; +} + +static gboolean +set_renewal_time (GoaKerberosIdentity *self, + krb5_timestamp renewal_time) +{ + if (self->priv->renewal_time != renewal_time) + { + self->priv->renewal_time = renewal_time; + queue_notify (self, + &self->priv->renewal_time_idle_id, + "renewal-timestamp"); + return TRUE; + } + return FALSE; +} + +static gboolean +set_expiration_time (GoaKerberosIdentity *self, + krb5_timestamp expiration_time) +{ + if (self->priv->expiration_time != expiration_time) + { + self->priv->expiration_time = expiration_time; + queue_notify (self, + &self->priv->expiration_time_idle_id, + "expiration-timestamp"); + return TRUE; + } + return FALSE; +} + +static void +examine_credentials (GoaKerberosIdentity *self, + krb5_creds *credentials, + krb5_timestamp *start_time, + krb5_timestamp *renewal_time, + krb5_timestamp *expiration_time, + gboolean *are_expired) +{ + krb5_timestamp credentials_start_time; + krb5_timestamp credentials_end_time; + krb5_timestamp current_time; + + G_LOCK (identity_lock); + + if (credentials->times.starttime != 0) + credentials_start_time = credentials->times.starttime; + else + credentials_start_time = credentials->times.authtime; + + *renewal_time = credentials->times.renew_till; + + credentials_end_time = credentials->times.endtime; + + if (self->priv->start_time == 0) + *start_time = credentials_start_time; + else + *start_time = MIN (self->priv->start_time, + credentials_start_time); + *expiration_time = MAX (credentials->times.endtime, + self->priv->expiration_time); + G_UNLOCK (identity_lock); + + current_time = get_current_time (self); + + if (current_time < credentials_start_time || + credentials_end_time <= current_time) + *are_expired = TRUE; + else + *are_expired = FALSE; +} + +static VerificationLevel +verify_identity (GoaKerberosIdentity *self, + char **preauth_identity_source, + GError **error) +{ + krb5_principal principal = NULL; + krb5_cc_cursor cursor; + krb5_creds credentials; + krb5_error_code error_code; + krb5_timestamp start_time = 0; + krb5_timestamp renewal_time = 0; + krb5_timestamp expiration_time = 0; + VerificationLevel verification_level = VERIFICATION_LEVEL_UNVERIFIED; + + if (self->priv->credentials_cache == NULL) + goto out; + + error_code = krb5_cc_get_principal (self->priv->kerberos_context, + self->priv->credentials_cache, + &principal); + + if (error_code != 0) + { + if (error_code == KRB5_CC_END || error_code == KRB5_FCC_NOFILE) + goto out; + + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_NOT_FOUND, + error_code, + _("Could not find identity in credential cache: ")); + verification_level = VERIFICATION_LEVEL_ERROR; + goto out; + } + + error_code = krb5_cc_start_seq_get (self->priv->kerberos_context, + self->priv->credentials_cache, &cursor); + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_CREDENTIALS_UNAVAILABLE, + error_code, + _("Could not find identity credentials in cache: ")); + + verification_level = VERIFICATION_LEVEL_ERROR; + goto out; + } + + verification_level = VERIFICATION_LEVEL_UNVERIFIED; + + error_code = krb5_cc_next_cred (self->priv->kerberos_context, + self->priv->credentials_cache, + &cursor, + &credentials); + + while (error_code == 0) + { + if (credentials_validate_existence (self, principal, &credentials)) + { + gboolean credentials_are_expired = TRUE; + + examine_credentials (self, &credentials, + &start_time, + &renewal_time, + &expiration_time, + &credentials_are_expired); + + if (!credentials_are_expired) + verification_level = VERIFICATION_LEVEL_SIGNED_IN; + else + verification_level = VERIFICATION_LEVEL_EXISTS; + } + else + { + snoop_preauth_identity_from_credentials (self, &credentials, preauth_identity_source); + } + + krb5_free_cred_contents (self->priv->kerberos_context, &credentials); + + error_code = krb5_cc_next_cred (self->priv->kerberos_context, + self->priv->credentials_cache, + &cursor, + &credentials); + } + + if (error_code != KRB5_CC_END) + { + verification_level = VERIFICATION_LEVEL_ERROR; + + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_ENUMERATING_CREDENTIALS, + error_code, + _("Could not sift through identity credentials in cache: ")); + goto end_sequence; + } + + end_sequence: + error_code = krb5_cc_end_seq_get (self->priv->kerberos_context, + self->priv->credentials_cache, + &cursor); + + if (error_code != 0) + { + verification_level = VERIFICATION_LEVEL_ERROR; + + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_ENUMERATING_CREDENTIALS, + error_code, + _("Could not finish up sifting through " + "identity credentials in cache: ")); + goto out; + } +out: + + G_LOCK (identity_lock); + set_start_time (self, start_time); + set_renewal_time (self, renewal_time); + set_expiration_time (self, expiration_time); + G_UNLOCK (identity_lock); + + if (principal != NULL) + krb5_free_principal (self->priv->kerberos_context, principal); + return verification_level; +} + +static gboolean +goa_kerberos_identity_is_signed_in (GoaIdentity *identity) +{ + GoaKerberosIdentity *self = GOA_KERBEROS_IDENTITY (identity); + gboolean is_signed_in = FALSE; + + G_LOCK (identity_lock); + if (self->priv->cached_verification_level == VERIFICATION_LEVEL_SIGNED_IN) + is_signed_in = TRUE; + G_UNLOCK (identity_lock); + + return is_signed_in; +} + +static void +identity_interface_init (GoaIdentityInterface *interface) +{ + interface->get_identifier = goa_kerberos_identity_get_identifier; + interface->is_signed_in = goa_kerberos_identity_is_signed_in; +} + +static void +on_expiration_alarm_fired (GoaAlarm *alarm, + GoaKerberosIdentity *self) +{ + g_return_if_fail (GOA_IS_ALARM (alarm)); + g_return_if_fail (GOA_IS_KERBEROS_IDENTITY (self)); + + g_debug ("GoaKerberosIdentity: expiration alarm fired for identity %s", + goa_identity_get_identifier (GOA_IDENTITY (self))); + g_signal_emit (G_OBJECT (self), signals[NEEDS_REFRESH], 0); +} + +static void +on_expiration_alarm_rearmed (GoaAlarm *alarm, + GoaKerberosIdentity *self) +{ + g_return_if_fail (GOA_IS_ALARM (alarm)); + g_return_if_fail (GOA_IS_KERBEROS_IDENTITY (self)); + + g_debug ("GoaKerberosIdentity: expiration alarm rearmed"); + g_signal_emit (G_OBJECT (self), signals[NEEDS_REFRESH], 0); +} + +static void +on_renewal_alarm_rearmed (GoaAlarm *alarm, + GoaKerberosIdentity *self) +{ + g_return_if_fail (GOA_IS_ALARM (alarm)); + g_return_if_fail (GOA_IS_KERBEROS_IDENTITY (self)); + + g_debug ("GoaKerberosIdentity: renewal alarm rearmed"); +} + +static void +on_renewal_alarm_fired (GoaAlarm *alarm, + GoaKerberosIdentity *self) +{ + g_return_if_fail (GOA_IS_ALARM (alarm)); + g_return_if_fail (GOA_IS_KERBEROS_IDENTITY (self)); + + if (self->priv->cached_verification_level == VERIFICATION_LEVEL_SIGNED_IN) + { + g_debug ("GoaKerberosIdentity: renewal alarm fired for signed-in identity"); + g_signal_emit (G_OBJECT (self), signals[NEEDS_RENEWAL], 0); + } +} + +static void +on_expiring_alarm_rearmed (GoaAlarm *alarm, + GoaKerberosIdentity *self) +{ + g_return_if_fail (GOA_IS_ALARM (alarm)); + g_return_if_fail (GOA_IS_KERBEROS_IDENTITY (self)); + + g_debug ("GoaKerberosIdentity: expiring alarm rearmed"); +} + +static void +on_expiring_alarm_fired (GoaAlarm *alarm, + GoaKerberosIdentity *self) +{ + g_return_if_fail (GOA_IS_ALARM (alarm)); + g_return_if_fail (GOA_IS_KERBEROS_IDENTITY (self)); + + if (self->priv->cached_verification_level == VERIFICATION_LEVEL_SIGNED_IN) + { + g_debug ("GoaKerberosIdentity: expiring alarm fired for signed-in identity"); + g_signal_emit (G_OBJECT (self), signals[EXPIRING], 0); + } +} + +static gboolean +unref_alarm (GoaAlarm *alarm) +{ + g_object_unref (G_OBJECT (alarm)); + return G_SOURCE_REMOVE; +} + +static void +clear_alarm_and_unref_on_idle (GoaKerberosIdentity *self, + GoaAlarm **alarm) +{ + if (!*alarm) + return; + + g_idle_add ((GSourceFunc) unref_alarm, *alarm); + *alarm = NULL; +} + +static void +reset_alarm (GoaKerberosIdentity *self, + GoaAlarm **alarm, + GDateTime *alarm_time) +{ + GDateTime *old_alarm_time = NULL; + + G_LOCK (identity_lock); + if (*alarm) + old_alarm_time = goa_alarm_get_time (*alarm); + if (old_alarm_time == NULL || !g_date_time_equal (alarm_time, old_alarm_time)) + { + clear_alarm_and_unref_on_idle (self, alarm); + *alarm = goa_alarm_new (alarm_time); + } + G_UNLOCK (identity_lock); + +} + +static void +disconnect_alarm_signals (GoaKerberosIdentity *self) +{ + if (self->priv->renewal_alarm) + { + g_signal_handlers_disconnect_by_func (G_OBJECT (self->priv->renewal_alarm), + G_CALLBACK (on_renewal_alarm_fired), + self); + g_signal_handlers_disconnect_by_func (G_OBJECT (self->priv->renewal_alarm), + G_CALLBACK (on_renewal_alarm_rearmed), + self); + } + + if (self->priv->expiring_alarm) + { + g_signal_handlers_disconnect_by_func (G_OBJECT (self->priv->expiring_alarm), + G_CALLBACK (on_expiring_alarm_fired), + self); + g_signal_handlers_disconnect_by_func (G_OBJECT (self->priv->expiring_alarm), + G_CALLBACK (on_expiring_alarm_rearmed), + self); + } + + if (self->priv->expiration_alarm) + { + g_signal_handlers_disconnect_by_func (G_OBJECT (self->priv->expiration_alarm), + G_CALLBACK (on_expiration_alarm_rearmed), + self); + g_signal_handlers_disconnect_by_func (G_OBJECT (self->priv->expiration_alarm), + G_CALLBACK (on_expiration_alarm_fired), + self); + } +} + +static void +connect_alarm_signals (GoaKerberosIdentity *self) +{ + if (self->priv->renewal_alarm) + { + g_signal_connect (G_OBJECT (self->priv->renewal_alarm), + "fired", + G_CALLBACK (on_renewal_alarm_fired), + self); + g_signal_connect (G_OBJECT (self->priv->renewal_alarm), + "rearmed", + G_CALLBACK (on_renewal_alarm_rearmed), + self); + } + g_signal_connect (G_OBJECT (self->priv->expiring_alarm), + "fired", + G_CALLBACK (on_expiring_alarm_fired), + self); + g_signal_connect (G_OBJECT (self->priv->expiring_alarm), + "rearmed", + G_CALLBACK (on_expiring_alarm_rearmed), + self); + g_signal_connect (G_OBJECT (self->priv->expiration_alarm), + "fired", + G_CALLBACK (on_expiration_alarm_fired), + self); + g_signal_connect (G_OBJECT (self->priv->expiration_alarm), + "rearmed", + G_CALLBACK (on_expiration_alarm_rearmed), + self); +} + +static void +reset_alarms (GoaKerberosIdentity *self) +{ + GDateTime *start_time = NULL; + GDateTime *expiration_time = NULL; + GDateTime *expiring_time = NULL; + GDateTime *latest_possible_renewal_time = NULL; + GDateTime *renewal_time = NULL; + + G_LOCK (identity_lock); + start_time = g_date_time_new_from_unix_local (self->priv->start_time); + if (self->priv->renewal_time != 0) + latest_possible_renewal_time = g_date_time_new_from_unix_local (self->priv->renewal_time); + expiration_time = g_date_time_new_from_unix_local (self->priv->expiration_time); + G_UNLOCK (identity_lock); + + /* Let the user reauthenticate 10 min before expiration */ + expiring_time = g_date_time_add_minutes (expiration_time, -10); + + if (latest_possible_renewal_time != NULL) + { + GTimeSpan lifespan; + + lifespan = g_date_time_difference (expiration_time, start_time); + + /* Try to quietly auto-renew halfway through so in ideal configurations + * the ticket is never more than halfway to unrenewable + */ + renewal_time = g_date_time_add (start_time, lifespan / 2); + } + + disconnect_alarm_signals (self); + + if (renewal_time != NULL) + reset_alarm (self, &self->priv->renewal_alarm, renewal_time); + + reset_alarm (self, &self->priv->expiring_alarm, expiring_time); + reset_alarm (self, &self->priv->expiration_alarm, expiration_time); + + g_clear_pointer (&expiring_time, g_date_time_unref); + g_clear_pointer (&renewal_time, g_date_time_unref); + g_clear_pointer (&expiration_time, g_date_time_unref); + g_clear_pointer (&latest_possible_renewal_time, g_date_time_unref); + g_clear_pointer (&start_time, g_date_time_unref); + + connect_alarm_signals (self); +} + +static void +clear_alarms (GoaKerberosIdentity *self) +{ + disconnect_alarm_signals (self); + clear_alarm_and_unref_on_idle (self, &self->priv->renewal_alarm); + clear_alarm_and_unref_on_idle (self, &self->priv->expiring_alarm); + clear_alarm_and_unref_on_idle (self, &self->priv->expiration_alarm); +} + +static gboolean +goa_kerberos_identity_initable_init (GInitable *initable, + GCancellable *cancellable, + GError **error) +{ + GoaKerberosIdentity *self = GOA_KERBEROS_IDENTITY (initable); + GError *verification_error; + + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + return FALSE; + + if (self->priv->identifier == NULL) + { + self->priv->identifier = get_identifier (self, error); + + if (self->priv->identifier != NULL) + queue_notify (self, &self->priv->identifier_idle_id, "identifier"); + } + + verification_error = NULL; + self->priv->cached_verification_level = + verify_identity (self, &self->priv->preauth_identity_source, &verification_error); + + switch (self->priv->cached_verification_level) + { + case VERIFICATION_LEVEL_EXISTS: + case VERIFICATION_LEVEL_SIGNED_IN: + reset_alarms (self); + + queue_notify (self, &self->priv->is_signed_in_idle_id, "is-signed-in"); + return TRUE; + + case VERIFICATION_LEVEL_UNVERIFIED: + return TRUE; + + case VERIFICATION_LEVEL_ERROR: + default: + if (verification_error != NULL) + { + g_propagate_error (error, verification_error); + return FALSE; + } + + g_set_error (error, + GOA_IDENTITY_ERROR, + GOA_IDENTITY_ERROR_VERIFYING, + _("No associated identification found")); + return FALSE; + + } +} + +static void +initable_interface_init (GInitableIface *interface) +{ + interface->init = goa_kerberos_identity_initable_init; +} + +typedef struct +{ + GoaKerberosIdentity *identity; + GoaIdentityInquiryFunc inquiry_func; + gpointer inquiry_data; + GDestroyNotify destroy_notify; + GCancellable *cancellable; +} SignInOperation; + +static krb5_error_code +on_kerberos_inquiry (krb5_context kerberos_context, + SignInOperation *operation, + const char *name, + const char *banner, + int number_of_prompts, + krb5_prompt prompts[]) +{ + GoaIdentityInquiry *inquiry; + krb5_error_code error_code; + + inquiry = goa_kerberos_identity_inquiry_new (operation->identity, + name, + banner, + prompts, + number_of_prompts); + + operation->inquiry_func (inquiry, + operation->cancellable, + operation->inquiry_data); + + if (goa_identity_inquiry_is_failed (inquiry)) + error_code = KRB5_LIBOS_CANTREADPWD; + else if (!goa_identity_inquiry_is_complete (inquiry)) + g_cancellable_cancel (operation->cancellable); + + if (g_cancellable_is_cancelled (operation->cancellable)) + error_code = KRB5_LIBOS_PWDINTR; + else + error_code = 0; + + g_object_unref (inquiry); + + return error_code; +} + +static gboolean +create_credential_cache (GoaKerberosIdentity *self, + GError **error) +{ + krb5_ccache default_cache; + const char *cache_type; + krb5_error_code error_code; + + error_code = krb5_cc_default (self->priv->kerberos_context, &default_cache); + + if (error_code == 0) + { + cache_type = krb5_cc_get_type (self->priv->kerberos_context, default_cache); + + error_code = krb5_cc_new_unique (self->priv->kerberos_context, + cache_type, + NULL, + &self->priv->credentials_cache); + } + + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_ALLOCATING_CREDENTIALS, + error_code, + _("Could not create credential cache: ")); + + return FALSE; + } + + return TRUE; +} + +static gboolean +goa_kerberos_identity_update_credentials (GoaKerberosIdentity *self, + krb5_principal principal, + krb5_creds *new_credentials, + GError **error) +{ + krb5_error_code error_code; + + if (self->priv->credentials_cache == NULL) + { + if (!create_credential_cache (self, error)) + { + krb5_free_cred_contents (self->priv->kerberos_context, new_credentials); + goto out; + } + } + + error_code = krb5_cc_initialize (self->priv->kerberos_context, + self->priv->credentials_cache, + principal); + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_ALLOCATING_CREDENTIALS, + error_code, + _("Could not initialize credentials cache: ")); + + krb5_free_cred_contents (self->priv->kerberos_context, new_credentials); + goto out; + } + + error_code = krb5_cc_store_cred (self->priv->kerberos_context, + self->priv->credentials_cache, + new_credentials); + + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_SAVING_CREDENTIALS, + error_code, + _("Could not store new credentials in credentials cache: ")); + + krb5_free_cred_contents (self->priv->kerberos_context, new_credentials); + goto out; + } + krb5_free_cred_contents (self->priv->kerberos_context, new_credentials); + + return TRUE; +out: + return FALSE; +} + +static SignInOperation * +sign_in_operation_new (GoaKerberosIdentity *identity, + GoaIdentityInquiryFunc inquiry_func, + gpointer inquiry_data, + GDestroyNotify destroy_notify, + GCancellable *cancellable) +{ + SignInOperation *operation; + + operation = g_slice_new0 (SignInOperation); + operation->identity = g_object_ref (identity); + operation->inquiry_func = inquiry_func; + operation->inquiry_data = inquiry_data; + operation->destroy_notify = destroy_notify; + + if (cancellable == NULL) + operation->cancellable = g_cancellable_new (); + else + operation->cancellable = g_object_ref (cancellable); + + return operation; +} + +static void +sign_in_operation_free (SignInOperation *operation) +{ + g_object_unref (operation->identity); + g_object_unref (operation->cancellable); + + g_slice_free (SignInOperation, operation); +} + +gboolean +goa_kerberos_identity_sign_in (GoaKerberosIdentity *self, + const char *principal_name, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GoaIdentityInquiryFunc inquiry_func, + gpointer inquiry_data, + GDestroyNotify destroy_notify, + GCancellable *cancellable, + GError **error) +{ + SignInOperation *operation; + krb5_principal principal; + krb5_error_code error_code; + krb5_creds new_credentials; + krb5_get_init_creds_opt *options; + krb5_deltat start_time; + char *service_name; + gboolean signed_in; + + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + return FALSE; + + error_code = krb5_get_init_creds_opt_alloc (self->priv->kerberos_context, + &options); + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_ALLOCATING_CREDENTIALS, + error_code, + "%s", + ""); /* Silence -Wformat-zero-length */ + if (destroy_notify) + destroy_notify (inquiry_data); + return FALSE; + } + + signed_in = FALSE; + + operation = sign_in_operation_new (self, + inquiry_func, + inquiry_data, + destroy_notify, + cancellable); + + if (g_strcmp0 (self->priv->identifier, principal_name) != 0) + { + g_free (self->priv->identifier); + self->priv->identifier = g_strdup (principal_name); + } + + error_code = krb5_parse_name (self->priv->kerberos_context, + principal_name, + &principal); + + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_PARSING_IDENTIFIER, + error_code, + "%s", + ""); /* Silence -Wformat-zero-length */ + if (destroy_notify) + destroy_notify (inquiry_data); + return FALSE; + } + + if ((flags & GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_FORWARDING) == 0) + krb5_get_init_creds_opt_set_forwardable (options, TRUE); + + if ((flags & GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_PROXYING) == 0) + krb5_get_init_creds_opt_set_proxiable (options, TRUE); + + if ((flags & GOA_IDENTITY_SIGN_IN_FLAGS_DISALLOW_RENEWAL) == 0) + krb5_get_init_creds_opt_set_renew_life (options, G_MAXINT); + + if (preauth_source != NULL) + { + krb5_get_init_creds_opt_set_pa (self->priv->kerberos_context, + options, + "X509_user_identity", preauth_source); + } + + /* Poke glibc in case the network changed + */ + res_init (); + + start_time = 0; + service_name = NULL; + error_code = krb5_get_init_creds_password (self->priv->kerberos_context, + &new_credentials, + principal, + (char *) + initial_password, + (krb5_prompter_fct) + on_kerberos_inquiry, + operation, + start_time, + service_name, + options); + + if (error_code == KRB5_LIBOS_PWDINTR) + g_cancellable_cancel (operation->cancellable); + + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + { + if (destroy_notify) + destroy_notify (inquiry_data); + sign_in_operation_free (operation); + + krb5_free_principal (self->priv->kerberos_context, principal); + goto done; + } + + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_AUTHENTICATION_FAILED, + error_code, + "%s", + ""); /* Silence -Wformat-zero-length */ + if (destroy_notify) + destroy_notify (inquiry_data); + sign_in_operation_free (operation); + + krb5_free_principal (self->priv->kerberos_context, principal); + goto done; + } + + if (destroy_notify) + destroy_notify (inquiry_data); + sign_in_operation_free (operation); + + if (!goa_kerberos_identity_update_credentials (self, + principal, + &new_credentials, + error)) + { + krb5_free_principal (self->priv->kerberos_context, principal); + goto done; + } + krb5_free_principal (self->priv->kerberos_context, principal); + + g_debug ("GoaKerberosIdentity: identity signed in"); + signed_in = TRUE; +done: + + return signed_in; +} + +static void +update_identifier (GoaKerberosIdentity *self, GoaKerberosIdentity *new_identity) +{ + char *new_identifier; + + new_identifier = get_identifier (self, NULL); + if (g_strcmp0 (self->priv->identifier, new_identifier) != 0 && new_identifier != NULL) + { + g_free (self->priv->identifier); + self->priv->identifier = new_identifier; + queue_notify (self, &self->priv->identifier_idle_id, "identifier"); + } + else + { + g_free (new_identifier); + } +} + +void +goa_kerberos_identity_update (GoaKerberosIdentity *self, + GoaKerberosIdentity *new_identity) +{ + VerificationLevel old_verification_level, new_verification_level; + gboolean time_changed = FALSE; + char *preauth_identity_source = NULL; + + if (self->priv->credentials_cache != NULL) + krb5_cc_close (self->priv->kerberos_context, self->priv->credentials_cache); + + krb5_cc_dup (new_identity->priv->kerberos_context, + new_identity->priv->credentials_cache, + &self->priv->credentials_cache); + + G_LOCK (identity_lock); + update_identifier (self, new_identity); + + time_changed |= set_start_time (self, new_identity->priv->start_time); + time_changed |= set_renewal_time (self, new_identity->priv->renewal_time); + time_changed |= set_expiration_time (self, new_identity->priv->expiration_time); + old_verification_level = self->priv->cached_verification_level; + new_verification_level = new_identity->priv->cached_verification_level; + G_UNLOCK (identity_lock); + + if (time_changed) + { + if (new_verification_level == VERIFICATION_LEVEL_SIGNED_IN) + reset_alarms (self); + else + clear_alarms (self); + } + + G_LOCK (identity_lock); + g_free (self->priv->preauth_identity_source); + self->priv->preauth_identity_source = preauth_identity_source; + G_UNLOCK (identity_lock); + + if (new_verification_level != old_verification_level) + { + if (old_verification_level == VERIFICATION_LEVEL_SIGNED_IN && + new_verification_level == VERIFICATION_LEVEL_EXISTS) + { + G_LOCK (identity_lock); + self->priv->cached_verification_level = new_verification_level; + G_UNLOCK (identity_lock); + + g_signal_emit (G_OBJECT (self), signals[EXPIRED], 0); + } + else if (old_verification_level == VERIFICATION_LEVEL_EXISTS && + new_verification_level == VERIFICATION_LEVEL_SIGNED_IN) + { + G_LOCK (identity_lock); + self->priv->cached_verification_level = new_verification_level; + G_UNLOCK (identity_lock); + + g_signal_emit (G_OBJECT (self), signals[UNEXPIRED], 0); + } + else + { + G_LOCK (identity_lock); + self->priv->cached_verification_level = new_verification_level; + G_UNLOCK (identity_lock); + } + queue_notify (self, &self->priv->is_signed_in_idle_id, "is-signed-in"); + } +} + +gboolean +goa_kerberos_identity_renew (GoaKerberosIdentity *self, GError **error) +{ + krb5_error_code error_code = 0; + krb5_principal principal; + krb5_creds new_credentials; + gboolean renewed = FALSE; + char *name = NULL; + + if (self->priv->credentials_cache == NULL) + { + g_set_error (error, + GOA_IDENTITY_ERROR, + GOA_IDENTITY_ERROR_CREDENTIALS_UNAVAILABLE, + _("Could not renew identity: Not signed in")); + goto out; + } + + error_code = krb5_cc_get_principal (self->priv->kerberos_context, + self->priv->credentials_cache, &principal); + + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_CREDENTIALS_UNAVAILABLE, + error_code, _("Could not renew identity: ")); + goto out; + } + + name = goa_kerberos_identity_get_principal_name (self); + + error_code = krb5_get_renewed_creds (self->priv->kerberos_context, + &new_credentials, + principal, + self->priv->credentials_cache, NULL); + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_RENEWING, + error_code, + _("Could not get new credentials to renew identity %s: "), + name); + goto free_principal; + } + + if (!goa_kerberos_identity_update_credentials (self, + principal, + &new_credentials, + error)) + { + goto free_principal; + } + + g_debug ("GoaKerberosIdentity: identity %s renewed", name); + renewed = TRUE; + +free_principal: + krb5_free_principal (self->priv->kerberos_context, principal); + +out: + g_free (name); + + return renewed; +} + +gboolean +goa_kerberos_identity_erase (GoaKerberosIdentity *self, GError **error) +{ + krb5_error_code error_code = 0; + + if (self->priv->credentials_cache != NULL) + { + error_code = krb5_cc_destroy (self->priv->kerberos_context, + self->priv->credentials_cache); + self->priv->credentials_cache = NULL; + } + + if (error_code != 0) + { + set_and_prefix_error_from_krb5_error_code (self, + error, + GOA_IDENTITY_ERROR_REMOVING_CREDENTIALS, + error_code, _("Could not erase identity: ")); + return FALSE; + } + + return TRUE; +} + +GoaIdentity * +goa_kerberos_identity_new (krb5_context context, krb5_ccache cache, GError **error) +{ + GoaKerberosIdentity *self; + + self = GOA_KERBEROS_IDENTITY (g_object_new (GOA_TYPE_KERBEROS_IDENTITY, NULL)); + + krb5_cc_dup (context, cache, &self->priv->credentials_cache); + self->priv->kerberos_context = context; + + error = NULL; + if (!g_initable_init (G_INITABLE (self), NULL, error)) + { + g_object_unref (self); + return NULL; + } + + return GOA_IDENTITY (self); +} diff --git a/src/goaidentity/goakerberosidentity.h b/src/goaidentity/goakerberosidentity.h new file mode 100644 index 0000000..d7cc2ab --- /dev/null +++ b/src/goaidentity/goakerberosidentity.h @@ -0,0 +1,87 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_KERBEROS_IDENTITY_H__ +#define __GOA_KERBEROS_IDENTITY_H__ + +#include +#include + +#include +#include "goaidentityinquiry.h" + +G_BEGIN_DECLS +#define GOA_TYPE_KERBEROS_IDENTITY (goa_kerberos_identity_get_type ()) +#define GOA_KERBEROS_IDENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_KERBEROS_IDENTITY, GoaKerberosIdentity)) +#define GOA_KERBEROS_IDENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOA_TYPE_KERBEROS_IDENTITY, GoaKerberosIdentityClass)) +#define GOA_IS_KERBEROS_IDENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_KERBEROS_IDENTITY)) +#define GOA_IS_KERBEROS_IDENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOA_TYPE_KERBEROS_IDENTITY)) +#define GOA_KERBEROS_IDENTITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GOA_TYPE_KERBEROS_IDENTITY, GoaKerberosIdentityClass)) +typedef struct _GoaKerberosIdentity GoaKerberosIdentity; +typedef struct _GoaKerberosIdentityClass GoaKerberosIdentityClass; +typedef struct _GoaKerberosIdentityPrivate GoaKerberosIdentityPrivate; +typedef enum _GoaKerberosIdentityDescriptionLevel + GoaKerberosIdentityDescriptionLevel; + +enum _GoaKerberosIdentityDescriptionLevel +{ + GOA_KERBEROS_IDENTITY_DESCRIPTION_REALM, + GOA_KERBEROS_IDENTITY_DESCRIPTION_USERNAME_AND_REALM, + GOA_KERBEROS_IDENTITY_DESCRIPTION_USERNAME_ROLE_AND_REALM +}; + +struct _GoaKerberosIdentity +{ + GObject parent; + + GoaKerberosIdentityPrivate *priv; +}; + +struct _GoaKerberosIdentityClass +{ + GObjectClass parent_class; +}; + +GType goa_kerberos_identity_get_type (void); + +GoaIdentity *goa_kerberos_identity_new (krb5_context kerberos_context, + krb5_ccache cache, + GError **error); + +gboolean goa_kerberos_identity_sign_in (GoaKerberosIdentity *self, + const char *principal_name, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GoaIdentityInquiryFunc inquiry_func, + gpointer inquiry_data, + GDestroyNotify destroy_notify, + GCancellable *cancellable, + GError **error); +void goa_kerberos_identity_update (GoaKerberosIdentity *identity, + GoaKerberosIdentity *new_identity); +gboolean goa_kerberos_identity_renew (GoaKerberosIdentity *self, + GError **error); +gboolean goa_kerberos_identity_erase (GoaKerberosIdentity *self, + GError **error); + +char *goa_kerberos_identity_get_principal_name (GoaKerberosIdentity *self); +char *goa_kerberos_identity_get_realm_name (GoaKerberosIdentity *self); +char *goa_kerberos_identity_get_preauthentication_source (GoaKerberosIdentity *self); +G_END_DECLS +#endif /* __GOA_KERBEROS_IDENTITY_H__ */ diff --git a/src/goaidentity/goakerberosidentityinquiry.c b/src/goaidentity/goakerberosidentityinquiry.c new file mode 100644 index 0000000..ce591a4 --- /dev/null +++ b/src/goaidentity/goakerberosidentityinquiry.c @@ -0,0 +1,400 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goakerberosidentityinquiry.h" +#include "goaidentityinquiryprivate.h" + +#include +#include +#include + +struct _GoaKerberosIdentityInquiryPrivate +{ + GoaIdentity *identity; + char *name; + char *banner; + GList *queries; + int number_of_queries; + int number_of_unanswered_queries; + gboolean is_failed; +}; + +typedef struct +{ + GoaIdentityInquiry *inquiry; + krb5_prompt *kerberos_prompt; + gboolean is_answered; +} GoaKerberosIdentityQuery; + +static void identity_inquiry_interface_init (GoaIdentityInquiryInterface * + interface); +static void initable_interface_init (GInitableIface *interface); + +G_DEFINE_TYPE_WITH_CODE (GoaKerberosIdentityInquiry, + goa_kerberos_identity_inquiry, + G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, + initable_interface_init) + G_IMPLEMENT_INTERFACE (GOA_TYPE_IDENTITY_INQUIRY, + identity_inquiry_interface_init)); + +static gboolean +goa_kerberos_identity_inquiry_initable_init (GInitable * initable, + GCancellable *cancellable, + GError ** error) +{ + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + { + return FALSE; + } + + return TRUE; +} + +static void +initable_interface_init (GInitableIface *interface) +{ + interface->init = goa_kerberos_identity_inquiry_initable_init; +} + +static GoaKerberosIdentityQuery * +goa_kerberos_identity_query_new (GoaIdentityInquiry * inquiry, + krb5_prompt * kerberos_prompt) +{ + GoaKerberosIdentityQuery *query; + + query = g_slice_new (GoaKerberosIdentityQuery); + query->inquiry = inquiry; + query->kerberos_prompt = kerberos_prompt; + query->is_answered = FALSE; + + return query; +} + +static void +goa_kerberos_identity_query_free (GoaKerberosIdentityQuery *query) +{ + g_slice_free (GoaKerberosIdentityQuery, query); +} + +static void +goa_kerberos_identity_inquiry_dispose (GObject *object) +{ + GoaKerberosIdentityInquiry *self = GOA_KERBEROS_IDENTITY_INQUIRY (object); + + g_clear_object (&self->priv->identity); + g_clear_pointer (&self->priv->name, (GDestroyNotify) g_free); + g_clear_pointer (&self->priv->banner, (GDestroyNotify) g_free); + + G_OBJECT_CLASS (goa_kerberos_identity_inquiry_parent_class)->dispose (object); +} + +static void +goa_kerberos_identity_inquiry_finalize (GObject *object) +{ + GoaKerberosIdentityInquiry *self = GOA_KERBEROS_IDENTITY_INQUIRY (object); + + g_list_free_full (self->priv->queries, (GDestroyNotify) goa_kerberos_identity_query_free); + + G_OBJECT_CLASS (goa_kerberos_identity_inquiry_parent_class)->finalize (object); +} + +static void +goa_kerberos_identity_inquiry_class_init (GoaKerberosIdentityInquiryClass *klass) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = goa_kerberos_identity_inquiry_dispose; + object_class->finalize = goa_kerberos_identity_inquiry_finalize; + + g_type_class_add_private (klass, sizeof (GoaKerberosIdentityInquiryPrivate)); +} + +static void +goa_kerberos_identity_inquiry_init (GoaKerberosIdentityInquiry *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + GOA_TYPE_KERBEROS_IDENTITY_INQUIRY, + GoaKerberosIdentityInquiryPrivate); +} + +GoaIdentityInquiry * +goa_kerberos_identity_inquiry_new (GoaKerberosIdentity * identity, + const char *name, + const char *banner, + krb5_prompt prompts[], int number_of_prompts) +{ + GObject *object; + GoaIdentityInquiry *inquiry; + GoaKerberosIdentityInquiry *self; + GError *error; + int i; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY (identity), NULL); + g_return_val_if_fail (number_of_prompts > 0, NULL); + + object = g_object_new (GOA_TYPE_KERBEROS_IDENTITY_INQUIRY, NULL); + + inquiry = GOA_IDENTITY_INQUIRY (object); + self = GOA_KERBEROS_IDENTITY_INQUIRY (object); + + /* FIXME: make these construct properties */ + self->priv->identity = g_object_ref (identity); + self->priv->name = g_strdup (name); + self->priv->banner = g_strdup (banner); + + self->priv->number_of_queries = 0; + for (i = 0; i < number_of_prompts; i++) + { + GoaKerberosIdentityQuery *query; + + query = goa_kerberos_identity_query_new (inquiry, &prompts[i]); + + self->priv->queries = g_list_prepend (self->priv->queries, query); + self->priv->number_of_queries++; + } + self->priv->queries = g_list_reverse (self->priv->queries); + + self->priv->number_of_unanswered_queries = self->priv->number_of_queries; + + error = NULL; + if (!g_initable_init (G_INITABLE (self), NULL, &error)) + { + g_debug ("%s", error->message); + g_error_free (error); + g_object_unref (self); + return NULL; + } + + return inquiry; +} + +static GoaIdentity * +goa_kerberos_identity_inquiry_get_identity (GoaIdentityInquiry *inquiry) +{ + GoaKerberosIdentityInquiry *self; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), NULL); + + self = GOA_KERBEROS_IDENTITY_INQUIRY (inquiry); + + return self->priv->identity; +} + +static char * +goa_kerberos_identity_inquiry_get_name (GoaIdentityInquiry *inquiry) +{ + GoaKerberosIdentityInquiry *self; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), NULL); + + self = GOA_KERBEROS_IDENTITY_INQUIRY (inquiry); + + return g_strdup (self->priv->name); +} + +static char * +goa_kerberos_identity_inquiry_get_banner (GoaIdentityInquiry *inquiry) +{ + GoaKerberosIdentityInquiry *self; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), NULL); + + self = GOA_KERBEROS_IDENTITY_INQUIRY (inquiry); + + return g_strdup (self->priv->banner); +} + +static gboolean +goa_kerberos_identity_inquiry_is_complete (GoaIdentityInquiry *inquiry) +{ + GoaKerberosIdentityInquiry *self; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), FALSE); + + self = GOA_KERBEROS_IDENTITY_INQUIRY (inquiry); + + return self->priv->number_of_unanswered_queries == 0 || self->priv->is_failed; +} + +static gboolean +goa_kerberos_identity_inquiry_is_failed (GoaIdentityInquiry *inquiry) +{ + GoaKerberosIdentityInquiry *self; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), FALSE); + + self = GOA_KERBEROS_IDENTITY_INQUIRY (inquiry); + + return self->priv->is_failed; +} + +static void +goa_kerberos_identity_inquiry_mark_query_answered (GoaKerberosIdentityInquiry * self, + GoaKerberosIdentityQuery * query) +{ + if (query->is_answered) + { + return; + } + + query->is_answered = TRUE; + self->priv->number_of_unanswered_queries--; + + if (self->priv->number_of_unanswered_queries == 0) + { + _goa_identity_inquiry_emit_complete (GOA_IDENTITY_INQUIRY (self)); + } +} + +static void +goa_kerberos_identity_inquiry_fail (GoaKerberosIdentityInquiry *self) +{ + self->priv->is_failed = TRUE; + _goa_identity_inquiry_emit_complete (GOA_IDENTITY_INQUIRY (self)); +} + +static void +goa_kerberos_identity_inquiry_answer_query (GoaIdentityInquiry * inquiry, + GoaIdentityQuery *query, + const char *answer) +{ + GoaKerberosIdentityInquiry *self; + GoaKerberosIdentityQuery *kerberos_query = (GoaKerberosIdentityQuery *) query; + size_t answer_length; + + g_return_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry)); + g_return_if_fail (inquiry == kerberos_query->inquiry); + g_return_if_fail (!goa_kerberos_identity_inquiry_is_complete (inquiry)); + + self = GOA_KERBEROS_IDENTITY_INQUIRY (inquiry); + + answer_length = strlen (answer); + + if (kerberos_query->kerberos_prompt->reply->length < answer_length) + { + goa_kerberos_identity_inquiry_fail (self); + } + else + { + strncpy (kerberos_query->kerberos_prompt->reply->data, + answer, kerberos_query->kerberos_prompt->reply->length); + kerberos_query->kerberos_prompt->reply->length = (unsigned int) answer_length; + + goa_kerberos_identity_inquiry_mark_query_answered (self, kerberos_query); + } +} + +static void +goa_kerberos_identity_inquiry_iter_init (GoaIdentityInquiryIter * iter, + GoaIdentityInquiry * inquiry) +{ + GoaKerberosIdentityInquiry *self = GOA_KERBEROS_IDENTITY_INQUIRY (inquiry); + + iter->data = self->priv->queries; +} + +static GoaIdentityQuery * +goa_kerberos_identity_inquiry_iter_next (GoaIdentityInquiryIter * iter, + GoaIdentityInquiry * inquiry) +{ + GoaIdentityQuery *query; + GList *node; + + node = iter->data; + + if (node == NULL) + { + return NULL; + } + + query = (GoaIdentityQuery *) node->data; + + node = node->next; + + iter->data = node; + + return query; +} + +static GoaIdentityQueryMode +goa_kerberos_identity_query_get_mode (GoaIdentityInquiry * inquiry, + GoaIdentityQuery * query) +{ + GoaKerberosIdentityQuery *kerberos_query = (GoaKerberosIdentityQuery *) query; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), + GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE); + g_return_val_if_fail (inquiry == kerberos_query->inquiry, + GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE); + + if (kerberos_query->kerberos_prompt->hidden) + { + return GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE; + } + else + { + return GOA_KERBEROS_IDENTITY_QUERY_MODE_VISIBLE; + } +} + +static char * +goa_kerberos_identity_query_get_prompt (GoaIdentityInquiry * inquiry, + GoaIdentityQuery * query) +{ + GoaKerberosIdentityQuery *kerberos_query = (GoaKerberosIdentityQuery *) query; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), + GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE); + g_return_val_if_fail (inquiry == kerberos_query->inquiry, NULL); + + return g_strdup (kerberos_query->kerberos_prompt->prompt); +} + +static gboolean +goa_kerberos_identity_query_is_answered (GoaIdentityInquiry * inquiry, + GoaIdentityQuery * query) +{ + GoaKerberosIdentityQuery *kerberos_query = (GoaKerberosIdentityQuery *) query; + + g_return_val_if_fail (GOA_IS_KERBEROS_IDENTITY_INQUIRY (inquiry), + GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE); + g_return_val_if_fail (inquiry == kerberos_query->inquiry, FALSE); + + return kerberos_query->is_answered; +} + +static void +identity_inquiry_interface_init (GoaIdentityInquiryInterface *interface) +{ + interface->get_identity = goa_kerberos_identity_inquiry_get_identity; + interface->get_name = goa_kerberos_identity_inquiry_get_name; + interface->get_banner = goa_kerberos_identity_inquiry_get_banner; + interface->is_complete = goa_kerberos_identity_inquiry_is_complete; + interface->is_failed = goa_kerberos_identity_inquiry_is_failed; + interface->answer_query = goa_kerberos_identity_inquiry_answer_query; + interface->iter_init = goa_kerberos_identity_inquiry_iter_init; + interface->iter_next = goa_kerberos_identity_inquiry_iter_next; + interface->get_mode = goa_kerberos_identity_query_get_mode; + interface->get_prompt = goa_kerberos_identity_query_get_prompt; + interface->is_answered = goa_kerberos_identity_query_is_answered; +} diff --git a/src/goaidentity/goakerberosidentityinquiry.h b/src/goaidentity/goakerberosidentityinquiry.h new file mode 100644 index 0000000..520ee21 --- /dev/null +++ b/src/goaidentity/goakerberosidentityinquiry.h @@ -0,0 +1,68 @@ +/* -*- Mode: C; tab-width: 8; ident-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_KERBEROS_IDENTITY_INQUIRY_H__ +#define __GOA_KERBEROS_IDENTITY_INQUIRY_H__ + +#include + +#include +#include + +#include "goaidentityinquiry.h" +#include "goakerberosidentity.h" + +G_BEGIN_DECLS +#define GOA_TYPE_KERBEROS_IDENTITY_INQUIRY (goa_kerberos_identity_inquiry_get_type ()) +#define GOA_KERBEROS_IDENTITY_INQUIRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOA_TYPE_KERBEROS_IDENTITY_INQUIRY, GoaKerberosIdentityInquiry)) +#define GOA_KERBEROS_IDENTITY_INQUIRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOA_TYPE_KERBEROS_IDENTITY_INQUIRY, GoaKerberosIdentityInquiryClass)) +#define GOA_IS_KERBEROS_IDENTITY_INQUIRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOA_TYPE_KERBEROS_IDENTITY_INQUIRY)) +#define GOA_IS_KERBEROS_IDENTITY_INQUIRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOA_TYPE_KERBEROS_IDENTITY_INQUIRY)) +#define GOA_KERBEROS_IDENTITY_INQUIRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GOA_TYPE_KERBEROS_IDENTITY_INQUIRY, GoaKerberosIdentityInquiryClass)) +typedef struct _GoaKerberosIdentityInquiry GoaKerberosIdentityInquiry; +typedef struct _GoaKerberosIdentityInquiryClass GoaKerberosIdentityInquiryClass; +typedef struct _GoaKerberosIdentityInquiryPrivate GoaKerberosIdentityInquiryPrivate; +typedef struct _GoaKerberosIdentityInquiryIter GoaKerberosIdentityInquiryIter; + +typedef enum +{ + GOA_KERBEROS_IDENTITY_QUERY_MODE_INVISIBLE, + GOA_KERBEROS_IDENTITY_QUERY_MODE_VISIBLE +} GoaKerberosIdentityQueryMode; + +struct _GoaKerberosIdentityInquiry +{ + GObject parent; + + GoaKerberosIdentityInquiryPrivate *priv; +}; + +struct _GoaKerberosIdentityInquiryClass +{ + GObjectClass parent_class; +}; + +GType goa_kerberos_identity_inquiry_get_type (void); + +GoaIdentityInquiry *goa_kerberos_identity_inquiry_new (GoaKerberosIdentity *identity, + const char *name, + const char *banner, + krb5_prompt prompts[], + int number_of_prompts); + +#endif /* __GOA_KERBEROS_IDENTITY_INQUIRY_H__ */ diff --git a/src/goaidentity/goakerberosidentitymanager.c b/src/goaidentity/goakerberosidentitymanager.c new file mode 100644 index 0000000..4f3c147 --- /dev/null +++ b/src/goaidentity/goakerberosidentitymanager.c @@ -0,0 +1,1700 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include "goakerberosidentitymanager.h" +#include "goaidentitymanager.h" +#include "goaidentitymanagererror.h" +#include "goaidentitymanagerprivate.h" +#include "goakerberosidentityinquiry.h" + +#include +#include +#include +#include + +#include +#include +#include + +#include + +struct _GoaKerberosIdentityManagerPrivate +{ + GHashTable *identities; + GHashTable *expired_identities; + GHashTable *identities_by_realm; + GAsyncQueue *pending_operations; + GCancellable *scheduler_cancellable; + + krb5_context kerberos_context; + GFileMonitor *credentials_cache_monitor; + gulong credentials_cache_changed_signal_id; + char *credentials_cache_type; + + GMutex scheduler_job_lock; + GCond scheduler_job_unblocked; + gboolean is_blocking_scheduler_job; + + volatile int pending_refresh_count; + + guint polling_timeout_id; +}; + +typedef enum +{ + OPERATION_TYPE_REFRESH, + OPERATION_TYPE_GET_IDENTITY, + OPERATION_TYPE_LIST, + OPERATION_TYPE_RENEW, + OPERATION_TYPE_SIGN_IN, + OPERATION_TYPE_SIGN_OUT, + OPERATION_TYPE_STOP_JOB +} OperationType; + +typedef struct +{ + GCancellable *cancellable; + GoaKerberosIdentityManager *manager; + OperationType type; + GSimpleAsyncResult *result; + GIOSchedulerJob *job; + union + { + GoaIdentity *identity; + struct + { + const char *identifier; + gconstpointer initial_password; + char *preauth_source; + GoaIdentitySignInFlags sign_in_flags; + GoaIdentityInquiry *inquiry; + GoaIdentityInquiryFunc inquiry_func; + gpointer inquiry_data; + GMutex inquiry_lock; + GCond inquiry_finished_condition; + volatile gboolean is_inquiring; + }; + }; +} Operation; + +typedef struct +{ + GoaKerberosIdentityManager *manager; + GoaIdentity *identity; +} IdentitySignalWork; + +static GoaIdentityManager *goa_kerberos_identity_manager_singleton; + +static void identity_manager_interface_init (GoaIdentityManagerInterface * + interface); +static void initable_interface_init (GInitableIface *interface); + +static void on_identity_expired (GoaIdentity *identity, + GoaKerberosIdentityManager *self); + +G_DEFINE_TYPE_WITH_CODE (GoaKerberosIdentityManager, + goa_kerberos_identity_manager, + G_TYPE_OBJECT, + G_IMPLEMENT_INTERFACE (GOA_TYPE_IDENTITY_MANAGER, + identity_manager_interface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, + initable_interface_init)); +#define FALLBACK_POLLING_INTERVAL 5 + +static Operation * +operation_new (GoaKerberosIdentityManager *self, + GCancellable *cancellable, + OperationType type, + GSimpleAsyncResult *result) +{ + Operation *operation; + + operation = g_slice_new0 (Operation); + + operation->manager = self; + operation->type = type; + + if (cancellable == NULL) + cancellable = g_cancellable_new (); + else + g_object_ref (cancellable); + operation->cancellable = cancellable; + + if (result != NULL) + g_object_ref (result); + operation->result = result; + + operation->identity = NULL; + + return operation; +} + +static void +operation_free (Operation *operation) +{ + g_clear_object (&operation->cancellable); + + if (operation->type != OPERATION_TYPE_SIGN_IN && + operation->type != OPERATION_TYPE_GET_IDENTITY) + { + g_clear_object (&operation->identity); + } + else + { + g_clear_pointer (&operation->identifier, g_free); + g_clear_pointer (&operation->preauth_source, g_free); + } + g_clear_object (&operation->result); + + g_slice_free (Operation, operation); +} + +static void +schedule_refresh (GoaKerberosIdentityManager *self) +{ + Operation *operation; + + g_atomic_int_inc (&self->priv->pending_refresh_count); + + operation = operation_new (self, NULL, OPERATION_TYPE_REFRESH, NULL); + g_async_queue_push (self->priv->pending_operations, operation); +} + +static IdentitySignalWork * +identity_signal_work_new (GoaKerberosIdentityManager *self, + GoaIdentity *identity) +{ + IdentitySignalWork *work; + + work = g_slice_new (IdentitySignalWork); + work->manager = self; + work->identity = g_object_ref (identity); + + return work; +} + +static void +identity_signal_work_free (IdentitySignalWork *work) +{ + g_object_unref (work->identity); + g_slice_free (IdentitySignalWork, work); +} + +static void +on_identity_expired (GoaIdentity *identity, + GoaKerberosIdentityManager *self) +{ + _goa_identity_manager_emit_identity_expired (GOA_IDENTITY_MANAGER (self), + identity); +} + +static void +on_identity_unexpired (GoaIdentity *identity, + GoaKerberosIdentityManager *self) +{ + g_debug ("GoaKerberosIdentityManager: identity unexpired"); + /* If an identity is now unexpired, that means some sort of weird + * clock skew happened and we should just do a full refresh, since it's + * probably affected more than one identity + */ + schedule_refresh (self); +} + +static void +on_identity_expiring (GoaIdentity *identity, + GoaKerberosIdentityManager *self) +{ + g_debug ("GoaKerberosIdentityManager: identity about to expire"); + _goa_identity_manager_emit_identity_expiring (GOA_IDENTITY_MANAGER (self), + identity); +} + +static void +on_identity_needs_renewal (GoaIdentity *identity, + GoaKerberosIdentityManager *self) +{ + g_debug ("GoaKerberosIdentityManager: identity needs renewal"); + _goa_identity_manager_emit_identity_needs_renewal (GOA_IDENTITY_MANAGER (self), + identity); +} + +static void +on_identity_needs_refresh (GoaIdentity *identity, + GoaKerberosIdentityManager *self) +{ + g_debug ("GoaKerberosIdentityManager: needs refresh"); + schedule_refresh (self); +} + +static void +watch_for_identity_expiration (GoaKerberosIdentityManager *self, + GoaIdentity *identity) +{ + g_signal_handlers_disconnect_by_func (G_OBJECT (identity), + G_CALLBACK (on_identity_expired), + self); + g_signal_connect (G_OBJECT (identity), + "expired", + G_CALLBACK (on_identity_expired), + self); + + g_signal_handlers_disconnect_by_func (G_OBJECT (identity), + G_CALLBACK (on_identity_unexpired), + self); + g_signal_connect (G_OBJECT (identity), + "unexpired", + G_CALLBACK (on_identity_unexpired), + self); + + g_signal_handlers_disconnect_by_func (G_OBJECT (identity), + G_CALLBACK (on_identity_expiring), + self); + g_signal_connect (G_OBJECT (identity), + "expiring", + G_CALLBACK (on_identity_expiring), + self); + + g_signal_handlers_disconnect_by_func (G_OBJECT (identity), + G_CALLBACK (on_identity_needs_renewal), + self); + g_signal_connect (G_OBJECT (identity), + "needs-renewal", + G_CALLBACK (on_identity_needs_renewal), + self); + + g_signal_handlers_disconnect_by_func (G_OBJECT (identity), + G_CALLBACK (on_identity_needs_refresh), + self); + g_signal_connect (G_OBJECT (identity), + "needs-refresh", + G_CALLBACK (on_identity_needs_refresh), + self); +} + +static void +do_identity_signal_added_work (IdentitySignalWork *work) +{ + GoaKerberosIdentityManager *self = work->manager; + GoaIdentity *identity = work->identity; + + watch_for_identity_expiration (self, identity); + _goa_identity_manager_emit_identity_added (GOA_IDENTITY_MANAGER (self), identity); +} + +static void +do_identity_signal_removed_work (IdentitySignalWork *work) +{ + GoaKerberosIdentityManager *self = work->manager; + GoaIdentity *identity = work->identity; + + _goa_identity_manager_emit_identity_removed (GOA_IDENTITY_MANAGER (self), + identity); +} + +static void +do_identity_signal_renamed_work (IdentitySignalWork *work) +{ + GoaKerberosIdentityManager *self = work->manager; + GoaIdentity *identity = work->identity; + + _goa_identity_manager_emit_identity_renamed (GOA_IDENTITY_MANAGER (self), + identity); +} + +static void +do_identity_signal_refreshed_work (IdentitySignalWork *work) +{ + GoaKerberosIdentityManager *self = work->manager; + GoaIdentity *identity = work->identity; + + watch_for_identity_expiration (self, identity); + _goa_identity_manager_emit_identity_refreshed (GOA_IDENTITY_MANAGER (self), + identity); +} + +static void +remove_identity (GoaKerberosIdentityManager *self, + Operation *operation, + GoaIdentity *identity) +{ + + IdentitySignalWork *work; + const char *identifier; + char *name; + GList *other_identities = NULL; + + identifier = goa_identity_get_identifier (identity); + name = goa_kerberos_identity_get_realm_name (GOA_KERBEROS_IDENTITY (identity)); + + if (name != NULL) + { + other_identities = g_hash_table_lookup (self->priv->identities_by_realm, name); + g_hash_table_remove (self->priv->identities_by_realm, name); + + other_identities = g_list_remove (other_identities, identity); + } + + + if (other_identities != NULL) + { + g_hash_table_replace (self->priv->identities_by_realm, + g_strdup (name), other_identities); + } + g_free (name); + + work = identity_signal_work_new (self, identity); + g_hash_table_remove (self->priv->expired_identities, identifier); + g_hash_table_remove (self->priv->identities, identifier); + + g_io_scheduler_job_send_to_mainloop (operation->job, + (GSourceFunc) + do_identity_signal_removed_work, + work, + (GDestroyNotify) identity_signal_work_free); + /* If there's only one identity for this realm now, then we can + * rename that identity to just the realm name + */ + if (other_identities != NULL && other_identities->next == NULL) + { + GoaIdentity *other_identity = other_identities->data; + + work = identity_signal_work_new (self, other_identity); + + g_io_scheduler_job_send_to_mainloop (operation->job, + (GSourceFunc) + do_identity_signal_renamed_work, + work, + (GDestroyNotify) + identity_signal_work_free); + } +} + +static void +drop_stale_identities (GoaKerberosIdentityManager *self, + Operation *operation, + GHashTable *known_identities) +{ + GList *stale_identity_ids; + GList *node; + + stale_identity_ids = g_hash_table_get_keys (self->priv->identities); + + node = stale_identity_ids; + while (node != NULL) + { + GoaIdentity *identity; + const char *identifier = node->data; + + identity = g_hash_table_lookup (known_identities, identifier); + if (identity == NULL) + { + identity = g_hash_table_lookup (self->priv->identities, identifier); + + if (identity != NULL) + { + remove_identity (self, operation, identity); + } + } + node = node->next; + } + g_list_free (stale_identity_ids); +} + +static void +update_identity (GoaKerberosIdentityManager *self, + Operation *operation, + GoaIdentity *identity, + GoaIdentity *new_identity) +{ + + goa_kerberos_identity_update (GOA_KERBEROS_IDENTITY (identity), + GOA_KERBEROS_IDENTITY (new_identity)); + + if (goa_identity_is_signed_in (identity)) + { + IdentitySignalWork *work; + + /* if it's not expired, send out a refresh signal */ + g_debug ("GoaKerberosIdentityManager: identity '%s' refreshed", + goa_identity_get_identifier (identity)); + + work = identity_signal_work_new (self, identity); + g_io_scheduler_job_send_to_mainloop (operation->job, + (GSourceFunc) + do_identity_signal_refreshed_work, + work, + (GDestroyNotify) + identity_signal_work_free); + } +} + +static void +add_identity (GoaKerberosIdentityManager *self, + Operation *operation, + GoaIdentity *identity, + const char *identifier) +{ + IdentitySignalWork *work; + + g_hash_table_replace (self->priv->identities, + g_strdup (identifier), g_object_ref (identity)); + + if (!goa_identity_is_signed_in (identity)) + { + g_hash_table_replace (self->priv->expired_identities, + g_strdup (identifier), identity); + } + + work = identity_signal_work_new (self, identity); + g_io_scheduler_job_send_to_mainloop (operation->job, + (GSourceFunc) + do_identity_signal_added_work, + work, + (GDestroyNotify) identity_signal_work_free); +} + +static void +refresh_identity (GoaKerberosIdentityManager *self, + Operation *operation, + GHashTable *refreshed_identities, + GoaIdentity *identity) +{ + const char *identifier; + GoaIdentity *old_identity; + + identifier = goa_identity_get_identifier (identity); + + if (identifier == NULL) + return; + + old_identity = g_hash_table_lookup (self->priv->identities, identifier); + + if (old_identity != NULL) + { + g_debug ("GoaKerberosIdentityManager: refreshing identity '%s'", identifier); + update_identity (self, operation, old_identity, identity); + + /* Reuse the old identity, so any object data set up on it doesn't + * disappear spurriously + */ + identifier = goa_identity_get_identifier (old_identity); + identity = old_identity; + } + else + { + g_debug ("GoaKerberosIdentityManager: adding new identity '%s'", identifier); + add_identity (self, operation, identity, identifier); + } + + /* Track refreshed identities so we can emit removals when we're done fully + * enumerating the collection of credential caches + */ + g_hash_table_replace (refreshed_identities, + g_strdup (identifier), + g_object_ref (identity)); +} + +static gboolean +refresh_identities (GoaKerberosIdentityManager *self, + Operation *operation) +{ + krb5_error_code error_code; + krb5_ccache cache; + krb5_cccol_cursor cursor; + const char *error_message; + GHashTable *refreshed_identities; + + /* If we have more refreshes queued up, don't bother doing this one + */ + if (!g_atomic_int_dec_and_test (&self->priv->pending_refresh_count)) + { + return FALSE; + } + + g_debug ("GoaKerberosIdentityManager: Refreshing identities"); + refreshed_identities = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify) + g_free, + (GDestroyNotify) g_object_unref); + error_code = krb5_cccol_cursor_new (self->priv->kerberos_context, &cursor); + + if (error_code != 0) + { + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug ("GoaKerberosIdentityManager: Error looking up available credential caches: %s", + error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + goto done; + } + + error_code = krb5_cccol_cursor_next (self->priv->kerberos_context, cursor, &cache); + + while (error_code == 0 && cache != NULL) + { + GoaIdentity *identity; + + identity = goa_kerberos_identity_new (self->priv->kerberos_context, + cache, NULL); + + if (identity != NULL) + { + refresh_identity (self, operation, refreshed_identities, identity); + g_object_unref (identity); + } + + krb5_cc_close (self->priv->kerberos_context, cache); + error_code = krb5_cccol_cursor_next (self->priv->kerberos_context, + cursor, &cache); + } + + if (error_code != 0) + { + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug ("GoaKerberosIdentityManager: Error iterating over available credential caches: %s", + error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + } + + krb5_cccol_cursor_free (self->priv->kerberos_context, &cursor); +done: + drop_stale_identities (self, operation, refreshed_identities); + g_hash_table_unref (refreshed_identities); + + return TRUE; +} + +static int +identity_sort_func (GoaIdentity *a, + GoaIdentity *b) +{ + return g_strcmp0 (goa_identity_get_identifier (a), + goa_identity_get_identifier (b)); +} + +static void +free_identity_list (GList *list) +{ + g_list_free_full (list, g_object_unref); +} + +static void +list_identities (GoaKerberosIdentityManager *self, + Operation *operation) +{ + GList *identities; + + g_debug ("GoaKerberosIdentityManager: Listing identities"); + identities = g_hash_table_get_values (self->priv->identities); + + identities = g_list_sort (identities, (GCompareFunc) identity_sort_func); + + g_list_foreach (identities, (GFunc) g_object_ref, NULL); + g_simple_async_result_set_op_res_gpointer (operation->result, + identities, + (GDestroyNotify) free_identity_list); +} + +static void +renew_identity (GoaKerberosIdentityManager *self, + Operation *operation) +{ + GError *error; + gboolean was_renewed; + char *identity_name; + + identity_name = + goa_kerberos_identity_get_principal_name (GOA_KERBEROS_IDENTITY + (operation->identity)); + g_debug ("GoaKerberosIdentityManager: renewing identity %s", identity_name); + g_free (identity_name); + + error = NULL; + was_renewed = + goa_kerberos_identity_renew (GOA_KERBEROS_IDENTITY (operation->identity), + &error); + + if (!was_renewed) + { + g_debug ("GoaKerberosIdentityManager: could not renew identity: %s", + error->message); + + g_simple_async_result_set_from_error (operation->result, error); + } + + g_simple_async_result_set_op_res_gboolean (operation->result, was_renewed); +} + +static void +do_identity_inquiry (Operation *operation) +{ + if (operation->inquiry_func == NULL) + { + return; + } + + operation->inquiry_func (operation->inquiry, + operation->cancellable, + operation->inquiry_data); +} + +static void +stop_waiting_on_inquiry (Operation *operation) +{ + g_mutex_lock (&operation->inquiry_lock); + if (operation->is_inquiring) + { + operation->is_inquiring = FALSE; + g_cond_signal (&operation->inquiry_finished_condition); + } + g_mutex_unlock (&operation->inquiry_lock); +} + +static void +on_kerberos_identity_inquiry_complete (GoaIdentityInquiry *inquiry, + Operation *operation) +{ + stop_waiting_on_inquiry (operation); +} + +static void +start_inquiry (Operation *operation, + GoaIdentityInquiry *inquiry) +{ + operation->is_inquiring = TRUE; + + g_signal_connect (G_OBJECT (inquiry), + "complete", + G_CALLBACK (on_kerberos_identity_inquiry_complete), + operation); + + operation->inquiry = inquiry; + g_io_scheduler_job_send_to_mainloop (operation->job, + (GSourceFunc) + do_identity_inquiry, + operation, (GDestroyNotify) NULL); +} + +static void +wait_for_inquiry_to_complete (Operation *operation, + GoaKerberosIdentityInquiry *inquiry) +{ + g_mutex_lock (&operation->inquiry_lock); + while (operation->is_inquiring) + g_cond_wait (&operation->inquiry_finished_condition, + &operation->inquiry_lock); + g_mutex_unlock (&operation->inquiry_lock); +} + +static void +on_sign_in_operation_cancelled (GCancellable *cancellable, + Operation *operation) +{ + stop_waiting_on_inquiry (operation); +} + +static void +on_kerberos_identity_inquiry (GoaKerberosIdentityInquiry *inquiry, + GCancellable *cancellable, + Operation *operation) +{ + gulong handler_id; + + start_inquiry (operation, GOA_IDENTITY_INQUIRY (inquiry)); + + handler_id = g_cancellable_connect (cancellable, + G_CALLBACK (on_sign_in_operation_cancelled), + operation, NULL); + + if ((operation->cancellable == NULL) || + !g_cancellable_is_cancelled (operation->cancellable)) + wait_for_inquiry_to_complete (operation, inquiry); + + g_cancellable_disconnect (cancellable, handler_id); +} + +static void +get_identity (GoaKerberosIdentityManager *self, + Operation *operation) +{ + GoaIdentity *identity; + + g_debug ("GoaKerberosIdentityManager: get identity %s", operation->identifier); + identity = g_hash_table_lookup (self->priv->identities, operation->identifier); + + if (identity == NULL) + { + g_simple_async_result_set_error (operation->result, + GOA_IDENTITY_MANAGER_ERROR, + GOA_IDENTITY_MANAGER_ERROR_IDENTITY_NOT_FOUND, + _("Could not find identity")); + g_simple_async_result_set_op_res_gpointer (operation->result, NULL, NULL); + + return; + } + + g_simple_async_result_set_op_res_gpointer (operation->result, + g_object_ref (identity), + (GDestroyNotify) g_object_unref); +} + +static krb5_error_code +get_new_credentials_cache (GoaKerberosIdentityManager *self, + krb5_ccache *credentials_cache) +{ + krb5_error_code error_code; + gboolean supports_multiple_identities; + + if (g_strcmp0 (self->priv->credentials_cache_type, "FILE") == 0) + { + g_debug ("GoaKerberosIdentityManager: credential cache type %s doesn't supports cache collections", + self->priv->credentials_cache_type); + supports_multiple_identities = FALSE; + } + else if (g_strcmp0 (self->priv->credentials_cache_type, "DIR") == 0 || + g_strcmp0 (self->priv->credentials_cache_type, "KEYRING") == 0) + { + g_debug ("GoaKerberosIdentityManager: credential cache type %s supports cache collections", + self->priv->credentials_cache_type); + supports_multiple_identities = TRUE; + } + else + { + g_debug ("GoaKerberosIdentityManager: don't know if credential cache type %s supports cache collections, " + "assuming yes", + self->priv->credentials_cache_type); + supports_multiple_identities = TRUE; + } + + /* If we're configured for FILE based credentials, then we only + * have one ccache, and we need to use it always. + * + * If we're configured for DIR or KEYRING based credentials, then we + * can have multiple ccache's so we should use the default one first + * (so it gets selected automatically) and then fallback to unique + * ccache names for subsequent tickets. + * + */ + if (!supports_multiple_identities || + g_hash_table_size (self->priv->identities) == 0) + { + error_code = krb5_cc_default (self->priv->kerberos_context, credentials_cache); + } + else + { + error_code = krb5_cc_new_unique (self->priv->kerberos_context, + self->priv->credentials_cache_type, + NULL, + credentials_cache); + } + + return error_code; +} + +static void +sign_in_identity (GoaKerberosIdentityManager *self, + Operation *operation) +{ + GoaIdentity *identity; + GError *error; + krb5_error_code error_code; + gboolean is_new_identity = FALSE; + + g_debug ("GoaKerberosIdentityManager: signing in identity %s", + operation->identifier); + error = NULL; + identity = g_hash_table_lookup (self->priv->identities, operation->identifier); + if (identity == NULL) + { + krb5_ccache credentials_cache; + + error_code = get_new_credentials_cache (self, &credentials_cache); + + if (error_code != 0) + { + const char *error_message; + + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + g_debug ("GoaKerberosIdentityManager: Error creating new cache for identity credentials: %s", + error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + + g_simple_async_result_set_error (operation->result, + GOA_IDENTITY_MANAGER_ERROR, + GOA_IDENTITY_MANAGER_ERROR_CREATING_IDENTITY, + _("Could not create credential cache for identity")); + g_simple_async_result_set_op_res_gpointer (operation->result, NULL, NULL); + return; + } + + identity = goa_kerberos_identity_new (self->priv->kerberos_context, + credentials_cache, + &error); + if (identity == NULL) + { + krb5_cc_destroy (self->priv->kerberos_context, credentials_cache); + g_simple_async_result_take_error (operation->result, error); + g_simple_async_result_set_op_res_gpointer (operation->result, + NULL, + NULL); + return; + } + krb5_cc_close (self->priv->kerberos_context, credentials_cache); + is_new_identity = TRUE; + } + else + { + g_object_ref (identity); + } + + if (!goa_kerberos_identity_sign_in (GOA_KERBEROS_IDENTITY (identity), + operation->identifier, + operation->initial_password, + operation->preauth_source, + operation->sign_in_flags, + (GoaIdentityInquiryFunc) + on_kerberos_identity_inquiry, + operation, + NULL, + operation->cancellable, + &error)) + { + if (is_new_identity) + goa_kerberos_identity_erase (GOA_KERBEROS_IDENTITY (identity), NULL); + + g_simple_async_result_set_from_error (operation->result, error); + g_simple_async_result_set_op_res_gpointer (operation->result, + NULL, + NULL); + + } + else + { + g_simple_async_result_set_op_res_gpointer (operation->result, + g_object_ref (identity), + (GDestroyNotify) + g_object_unref); + + g_hash_table_replace (self->priv->identities, + g_strdup (operation->identifier), + g_object_ref (identity)); + } + + g_object_unref (identity); +} + +static void +sign_out_identity (GoaKerberosIdentityManager *self, + Operation *operation) +{ + GError *error; + gboolean was_signed_out; + char *identity_name; + + identity_name = + goa_kerberos_identity_get_principal_name (GOA_KERBEROS_IDENTITY + (operation->identity)); + g_debug ("GoaKerberosIdentityManager: signing out identity %s", identity_name); + g_free (identity_name); + + error = NULL; + was_signed_out = + goa_kerberos_identity_erase (GOA_KERBEROS_IDENTITY (operation->identity), + &error); + + if (!was_signed_out) + { + g_debug ("GoaKerberosIdentityManager: could not sign out identity: %s", + error->message); + g_error_free (error); + } +} + +static void +block_scheduler_job (GoaKerberosIdentityManager *self) +{ + g_mutex_lock (&self->priv->scheduler_job_lock); + while (self->priv->is_blocking_scheduler_job) + g_cond_wait (&self->priv->scheduler_job_unblocked, + &self->priv->scheduler_job_lock); + self->priv->is_blocking_scheduler_job = TRUE; + g_mutex_unlock (&self->priv->scheduler_job_lock); +} + +static void +stop_blocking_scheduler_job (GoaKerberosIdentityManager *self) +{ + g_mutex_lock (&self->priv->scheduler_job_lock); + self->priv->is_blocking_scheduler_job = FALSE; + g_cond_signal (&self->priv->scheduler_job_unblocked); + g_mutex_unlock (&self->priv->scheduler_job_lock); +} + +static void +wait_for_scheduler_job_to_become_unblocked (GoaKerberosIdentityManager *self) +{ + g_mutex_lock (&self->priv->scheduler_job_lock); + while (self->priv->is_blocking_scheduler_job) + g_cond_wait (&self->priv->scheduler_job_unblocked, + &self->priv->scheduler_job_lock); + g_mutex_unlock (&self->priv->scheduler_job_lock); +} + +static void +on_job_cancelled (GCancellable *cancellable, + GoaKerberosIdentityManager *self) +{ + Operation *operation; + operation = operation_new (self, cancellable, OPERATION_TYPE_STOP_JOB, NULL); + g_async_queue_push (self->priv->pending_operations, operation); + + stop_blocking_scheduler_job (self); +} + +static gboolean +on_job_scheduled (GIOSchedulerJob *job, + GCancellable *cancellable, + GoaKerberosIdentityManager *self) +{ + GAsyncQueue *pending_operations; + + g_assert (cancellable != NULL); + + g_cancellable_connect (cancellable, G_CALLBACK (on_job_cancelled), self, NULL); + + /* Take ownership of queue, since we may out live the identity manager */ + pending_operations = g_async_queue_ref (self->priv->pending_operations); + while (!g_cancellable_is_cancelled (cancellable)) + { + Operation *operation; + gboolean processed_operation = FALSE; + GError *error = NULL; + + operation = g_async_queue_pop (pending_operations); + + if (operation->result != NULL && + g_cancellable_set_error_if_cancelled (operation->cancellable, + &error)) + { + g_simple_async_result_take_error (operation->result, error); + g_simple_async_result_complete_in_idle (operation->result); + g_clear_object (&operation->result); + continue; + } + + operation->job = job; + + switch (operation->type) + { + case OPERATION_TYPE_STOP_JOB: + /* do nothing, loop will exit next iteration since cancellable + * is cancelled + */ + g_assert (g_cancellable_is_cancelled (cancellable)); + operation_free (operation); + continue; + case OPERATION_TYPE_REFRESH: + processed_operation = refresh_identities (operation->manager, operation); + break; + case OPERATION_TYPE_GET_IDENTITY: + get_identity (operation->manager, operation); + processed_operation = TRUE; + break; + case OPERATION_TYPE_LIST: + list_identities (operation->manager, operation); + processed_operation = TRUE; + + /* We want to block refreshes (and their associated "added" + * and "removed" signals) until the caller has had + * a chance to look at the batch of + * results we already processed + */ + g_assert (operation->result != NULL); + + g_debug + ("GoaKerberosIdentityManager: Blocking until identities list processed"); + block_scheduler_job (self); + g_object_weak_ref (G_OBJECT (operation->result), + (GWeakNotify) stop_blocking_scheduler_job, self); + g_debug ("GoaKerberosIdentityManager: Continuing"); + break; + case OPERATION_TYPE_SIGN_IN: + sign_in_identity (operation->manager, operation); + processed_operation = TRUE; + break; + case OPERATION_TYPE_SIGN_OUT: + sign_out_identity (operation->manager, operation); + processed_operation = TRUE; + break; + case OPERATION_TYPE_RENEW: + renew_identity (operation->manager, operation); + processed_operation = TRUE; + break; + default: + break; + } + + operation->job = NULL; + + if (operation->result != NULL) + { + g_simple_async_result_complete_in_idle (operation->result); + g_clear_object (&operation->result); + } + operation_free (operation); + + wait_for_scheduler_job_to_become_unblocked (self); + + /* Don't bother saying "Waiting for next operation" if this operation + * was a no-op, since the debug spew probably already says the message + */ + if (processed_operation) + g_debug ("GoaKerberosIdentityManager: Waiting for next operation"); + } + + g_async_queue_unref (pending_operations); + + return FALSE; +} + +static void +goa_kerberos_identity_manager_get_identity (GoaIdentityManager *manager, + const char *identifier, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (manager); + GSimpleAsyncResult *result; + Operation *operation; + + result = g_simple_async_result_new (G_OBJECT (self), + callback, + user_data, + goa_kerberos_identity_manager_get_identity); + operation = operation_new (self, cancellable, OPERATION_TYPE_GET_IDENTITY, result); + g_object_unref (result); + + operation->identifier = g_strdup (identifier); + + g_async_queue_push (self->priv->pending_operations, operation); +} + +static GoaIdentity * +goa_kerberos_identity_manager_get_identity_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + GoaIdentity *identity; + + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), + error)) + return NULL; + + identity = + g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result)); + + return g_object_ref (identity); +} + +static void +goa_kerberos_identity_manager_list_identities (GoaIdentityManager *manager, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (manager); + GSimpleAsyncResult *result; + Operation *operation; + + result = g_simple_async_result_new (G_OBJECT (self), + callback, + user_data, + goa_kerberos_identity_manager_list_identities); + + operation = operation_new (self, cancellable, OPERATION_TYPE_LIST, result); + g_object_unref (result); + + g_async_queue_push (self->priv->pending_operations, operation); +} + +static GList * +goa_kerberos_identity_manager_list_identities_finish (GoaIdentityManager *manager, + GAsyncResult *result, + GError **error) +{ + GList *identities; + + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), + error)) + return NULL; + + identities = + g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result)); + + return identities; + +} + +static void +goa_kerberos_identity_manager_renew_identity (GoaIdentityManager *manager, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (manager); + GSimpleAsyncResult *result; + Operation *operation; + + result = g_simple_async_result_new (G_OBJECT (self), + callback, + user_data, + goa_kerberos_identity_manager_renew_identity); + operation = operation_new (self, cancellable, OPERATION_TYPE_RENEW, result); + g_object_unref (result); + + operation->identity = g_object_ref (identity); + + g_async_queue_push (self->priv->pending_operations, operation); +} + +static void +goa_kerberos_identity_manager_renew_identity_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), + error)) + return; +} + +static void +goa_kerberos_identity_manager_sign_identity_in (GoaIdentityManager *manager, + const char *identifier, + gconstpointer initial_password, + const char *preauth_source, + GoaIdentitySignInFlags flags, + GoaIdentityInquiryFunc inquiry_func, + gpointer inquiry_data, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (manager); + GSimpleAsyncResult *result; + Operation *operation; + + result = g_simple_async_result_new (G_OBJECT (self), + callback, + user_data, + goa_kerberos_identity_manager_sign_identity_in); + operation = operation_new (self, cancellable, OPERATION_TYPE_SIGN_IN, result); + g_object_unref (result); + + operation->identifier = g_strdup (identifier); + /* Not duped. Caller is responsible for ensuring it stays alive + * for duration of operation + */ + operation->initial_password = initial_password; + operation->preauth_source = g_strdup (preauth_source); + operation->sign_in_flags = flags; + operation->inquiry_func = inquiry_func; + operation->inquiry_data = inquiry_data; + g_mutex_init (&operation->inquiry_lock); + g_cond_init (&operation->inquiry_finished_condition); + operation->is_inquiring = FALSE; + + g_async_queue_push (self->priv->pending_operations, operation); +} + +static GoaIdentity * +goa_kerberos_identity_manager_sign_identity_in_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + GoaIdentity *identity; + + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error)) + return NULL; + + identity = + g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result)); + + return identity; +} + +static void +goa_kerberos_identity_manager_sign_identity_out (GoaIdentityManager *manager, + GoaIdentity *identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (manager); + GSimpleAsyncResult *result; + Operation *operation; + + result = g_simple_async_result_new (G_OBJECT (self), + callback, + user_data, + goa_kerberos_identity_manager_sign_identity_out); + operation = operation_new (self, cancellable, OPERATION_TYPE_SIGN_OUT, result); + g_object_unref (result); + + operation->identity = g_object_ref (identity); + + g_async_queue_push (self->priv->pending_operations, operation); +} + +static void +goa_kerberos_identity_manager_sign_identity_out_finish (GoaIdentityManager *self, + GAsyncResult *result, + GError **error) +{ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error)) + return; + + return; +} + +static char * +goa_kerberos_identity_manager_name_identity (GoaIdentityManager *manager, + GoaIdentity *identity) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (manager); + char *name; + GList *other_identities; + gboolean other_identity_needs_rename; + + name = goa_kerberos_identity_get_realm_name (GOA_KERBEROS_IDENTITY (identity)); + + if (name == NULL) + return NULL; + + other_identities = g_hash_table_lookup (self->priv->identities_by_realm, name); + + /* If there was already exactly one identity for this realm before, + * then it was going by just the realm name, so we need to rename it + * to use the full principle name + */ + if (other_identities != NULL && + other_identities->next == NULL && other_identities->data != identity) + other_identity_needs_rename = TRUE; + + other_identities = g_list_remove (other_identities, identity); + other_identities = g_list_prepend (other_identities, identity); + + g_hash_table_replace (self->priv->identities_by_realm, + g_strdup (name), + other_identities); + + if (other_identities->next != NULL) + { + g_free (name); + name = goa_kerberos_identity_get_principal_name (GOA_KERBEROS_IDENTITY (identity)); + + if (other_identity_needs_rename) + { + GoaIdentity *other_identity = other_identities->next->data; + + _goa_identity_manager_emit_identity_renamed (GOA_IDENTITY_MANAGER (self), + other_identity); + } + } + + return name; +} + +static void +identity_manager_interface_init (GoaIdentityManagerInterface *interface) +{ + interface->get_identity = goa_kerberos_identity_manager_get_identity; + interface->get_identity_finish = goa_kerberos_identity_manager_get_identity_finish; + interface->list_identities = goa_kerberos_identity_manager_list_identities; + interface->list_identities_finish = goa_kerberos_identity_manager_list_identities_finish; + interface->sign_identity_in = goa_kerberos_identity_manager_sign_identity_in; + interface->sign_identity_in_finish = goa_kerberos_identity_manager_sign_identity_in_finish; + interface->sign_identity_out = goa_kerberos_identity_manager_sign_identity_out; + interface->sign_identity_out_finish = goa_kerberos_identity_manager_sign_identity_out_finish; + interface->renew_identity = goa_kerberos_identity_manager_renew_identity; + interface->renew_identity_finish = goa_kerberos_identity_manager_renew_identity_finish; + interface->name_identity = goa_kerberos_identity_manager_name_identity; +} + +static void +on_credentials_cache_changed (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent *event_type, + GoaKerberosIdentityManager *self) +{ + schedule_refresh (self); +} + +static gboolean +on_polling_timeout (GoaKerberosIdentityManager *self) +{ + schedule_refresh (self); + + return G_SOURCE_CONTINUE; +} + +static gboolean +monitor_credentials_cache (GoaKerberosIdentityManager *self, + GError **error) +{ + krb5_ccache default_cache; + const char *cache_type; + const char *cache_path; + GFileMonitor *monitor = NULL; + krb5_error_code error_code; + GError *monitoring_error = NULL; + gboolean can_monitor = TRUE; + + error_code = krb5_cc_default (self->priv->kerberos_context, &default_cache); + + if (error_code != 0) + { + const char *error_message; + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + + g_set_error_literal (error, + GOA_IDENTITY_MANAGER_ERROR, + GOA_IDENTITY_MANAGER_ERROR_ACCESSING_CREDENTIALS, + error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + + return FALSE; + } + + cache_type = krb5_cc_get_type (self->priv->kerberos_context, default_cache); + g_assert (cache_type != NULL); + + if (strcmp (cache_type, "FILE") != 0 && strcmp (cache_type, "DIR") != 0) + { + g_warning ("GoaKerberosIdentityManager: Using polling for change notification for credential cache type '%s'", + cache_type); + can_monitor = FALSE; + } + + g_free (self->priv->credentials_cache_type); + self->priv->credentials_cache_type = g_strdup (cache_type); + + /* If we're using a FILE type credential cache, then the + * default cache file is the only cache we care about, + * and its path is what we want to monitor. + * + * If we're using a DIR type credential cache, then the default + * cache file is one of many possible cache files, all in the + * same directory. We want to monitor that directory. + */ + cache_path = krb5_cc_get_name (self->priv->kerberos_context, default_cache); + + /* The cache name might have a : in front of it. + * See goakerberosidentity.c (fetch_raw_credentials) for similar code + * FIXME: figure out if that behavior is by design, or some + * odd bug. + */ + if (cache_path[0] == ':') + cache_path++; + + if (can_monitor) + { + GFile *file; + + file = g_file_new_for_path (cache_path); + + monitoring_error = NULL; + if (strcmp (cache_type, "FILE") == 0) + { + monitor = g_file_monitor_file (file, + G_FILE_MONITOR_NONE, + NULL, + &monitoring_error); + } + else if (strcmp (cache_type, "DIR") == 0) + { + GFile *directory; + + directory = g_file_get_parent (file); + monitor = g_file_monitor_directory (directory, + G_FILE_MONITOR_NONE, + NULL, + &monitoring_error); + g_object_unref (directory); + + } + g_object_unref (file); + } + + if (monitor == NULL) + { + if (monitoring_error != NULL) + { + g_warning ("GoaKerberosIdentityManager: Could not monitor credentials for %s (type %s), reverting to " + "polling: %s", + cache_path, + cache_type, + monitoring_error != NULL? monitoring_error->message : ""); + g_clear_error (&monitoring_error); + } + can_monitor = FALSE; + } + else + { + self->priv->credentials_cache_changed_signal_id = + g_signal_connect (G_OBJECT (monitor), "changed", + G_CALLBACK (on_credentials_cache_changed), self); + self->priv->credentials_cache_monitor = monitor; + } + + if (!can_monitor) + self->priv->polling_timeout_id = g_timeout_add_seconds (FALLBACK_POLLING_INTERVAL, + (GSourceFunc) on_polling_timeout, + self); + + krb5_cc_close (self->priv->kerberos_context, default_cache); + + return TRUE; +} + +static void +stop_watching_credentials_cache (GoaKerberosIdentityManager *self) +{ + if (self->priv->credentials_cache_monitor != NULL) + { + if (!g_file_monitor_is_cancelled (self->priv->credentials_cache_monitor)) + g_file_monitor_cancel (self->priv->credentials_cache_monitor); + + g_clear_object (&self->priv->credentials_cache_monitor); + } + + if (self->priv->polling_timeout_id != 0) + { + g_source_remove (self->priv->polling_timeout_id); + self->priv->polling_timeout_id = 0; + } +} + +static gboolean +goa_kerberos_identity_manager_initable_init (GInitable *initable, + GCancellable *cancellable, + GError **error) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (initable); + krb5_error_code error_code; + GError *monitoring_error; + + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + return FALSE; + + error_code = krb5_init_context (&self->priv->kerberos_context); + + if (error_code != 0) + { + const char *error_message; + error_message = + krb5_get_error_message (self->priv->kerberos_context, error_code); + + g_set_error_literal (error, + GOA_IDENTITY_MANAGER_ERROR, + GOA_IDENTITY_MANAGER_ERROR_INITIALIZING, error_message); + krb5_free_error_message (self->priv->kerberos_context, error_message); + + return FALSE; + } + + monitoring_error = NULL; + if (!monitor_credentials_cache (self, &monitoring_error)) + { + g_warning ("GoaKerberosIdentityManager: Could not monitor credentials: %s", + monitoring_error->message); + g_error_free (monitoring_error); + } + + schedule_refresh (self); + + return TRUE; +} + +static void +initable_interface_init (GInitableIface *interface) +{ + interface->init = goa_kerberos_identity_manager_initable_init; +} + +static void +goa_kerberos_identity_manager_init (GoaKerberosIdentityManager *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + GOA_TYPE_KERBEROS_IDENTITY_MANAGER, + GoaKerberosIdentityManagerPrivate); + self->priv->identities = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify) + g_free, + (GDestroyNotify) g_object_unref); + self->priv->expired_identities = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify) + g_free, NULL); + + self->priv->identities_by_realm = g_hash_table_new_full (g_str_hash, + g_str_equal, + (GDestroyNotify) + g_free, NULL); + self->priv->pending_operations = g_async_queue_new (); + + g_mutex_init (&self->priv->scheduler_job_lock); + g_cond_init (&self->priv->scheduler_job_unblocked); + + self->priv->scheduler_cancellable = g_cancellable_new (); + g_io_scheduler_push_job ((GIOSchedulerJobFunc) + on_job_scheduled, + self, + NULL, + G_PRIORITY_DEFAULT, + self->priv->scheduler_cancellable); + +} + +static void +cancel_pending_operations (GoaKerberosIdentityManager *self) +{ + Operation *operation; + + operation = g_async_queue_try_pop (self->priv->pending_operations); + while (operation != NULL) + { + g_cancellable_cancel (operation->cancellable); + operation_free (operation); + operation = g_async_queue_try_pop (self->priv->pending_operations); + } +} + +static void +goa_kerberos_identity_manager_dispose (GObject *object) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (object); + + if (self->priv->identities_by_realm != NULL) + { + g_hash_table_unref (self->priv->identities_by_realm); + self->priv->identities_by_realm = NULL; + } + + if (self->priv->expired_identities != NULL) + { + g_hash_table_unref (self->priv->expired_identities); + self->priv->expired_identities = NULL; + } + + if (self->priv->identities != NULL) + { + g_hash_table_unref (self->priv->identities); + self->priv->identities = NULL; + } + + stop_watching_credentials_cache (self); + + if (self->priv->pending_operations != NULL) + cancel_pending_operations (self); + + if (self->priv->scheduler_cancellable != NULL) + { + if (!g_cancellable_is_cancelled (self->priv->scheduler_cancellable)) + { + g_cancellable_cancel (self->priv->scheduler_cancellable); + } + + g_clear_object (&self->priv->scheduler_cancellable); + } + + /* Note, other thread may still be holding a local reference to queue + * while it shuts down from cancelled scheduler_cancellable above + */ + if (self->priv->pending_operations != NULL) + { + g_async_queue_unref (self->priv->pending_operations); + self->priv->pending_operations = NULL; + } + + G_OBJECT_CLASS (goa_kerberos_identity_manager_parent_class)->dispose (object); +} + +static void +goa_kerberos_identity_manager_finalize (GObject *object) +{ + GoaKerberosIdentityManager *self = GOA_KERBEROS_IDENTITY_MANAGER (object); + + g_free (self->priv->credentials_cache_type); + + g_cond_clear (&self->priv->scheduler_job_unblocked); + krb5_free_context (self->priv->kerberos_context); + + G_OBJECT_CLASS (goa_kerberos_identity_manager_parent_class)->finalize (object); +} + +static void +goa_kerberos_identity_manager_class_init (GoaKerberosIdentityManagerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = goa_kerberos_identity_manager_dispose; + object_class->finalize = goa_kerberos_identity_manager_finalize; + + g_type_class_add_private (klass, sizeof (GoaKerberosIdentityManagerPrivate)); +} + +GoaIdentityManager * +goa_kerberos_identity_manager_new (GCancellable * cancellable, GError ** error) +{ + if (goa_kerberos_identity_manager_singleton == NULL) + { + GObject *object; + + object = g_object_new (GOA_TYPE_KERBEROS_IDENTITY_MANAGER, NULL); + + goa_kerberos_identity_manager_singleton = GOA_IDENTITY_MANAGER (object); + g_object_add_weak_pointer (object, + (gpointer *) & + goa_kerberos_identity_manager_singleton); + + if (!g_initable_init (G_INITABLE (object), cancellable, error)) + { + g_object_unref (object); + return NULL; + } + + } + else + { + if (g_cancellable_set_error_if_cancelled (cancellable, error)) + return NULL; + g_object_ref (goa_kerberos_identity_manager_singleton); + } + + return goa_kerberos_identity_manager_singleton; +} diff --git a/src/goaidentity/goakerberosidentitymanager.h b/src/goaidentity/goakerberosidentitymanager.h new file mode 100644 index 0000000..9af046a --- /dev/null +++ b/src/goaidentity/goakerberosidentitymanager.h @@ -0,0 +1,57 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright © 2012 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __GOA_KERBEROS_IDENTITY_MANAGER_H__ +#define __GOA_KERBEROS_IDENTITY_MANAGER_H__ + +#include +#include +#include + +#include "goaidentitymanager.h" +#include "goakerberosidentity.h" + +G_BEGIN_DECLS +#define GOA_TYPE_KERBEROS_IDENTITY_MANAGER (goa_kerberos_identity_manager_get_type ()) +#define GOA_KERBEROS_IDENTITY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GOA_TYPE_KERBEROS_IDENTITY_MANAGER, GoaKerberosIdentityManager)) +#define GOA_KERBEROS_IDENTITY_MANAGER_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GOA_TYPE_KERBEROS_IDENTITY_MANAGER, GoaKerberosIdentityManagerClass)) +#define GOA_IS_KERBEROS_IDENTITY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GOA_TYPE_KERBEROS_IDENTITY_MANAGER)) +#define GOA_IS_KERBEROS_IDENTITY_MANAGER_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GOA_TYPE_KERBEROS_IDENTITY_MANAGER)) +#define GOA_KERBEROS_IDENTITY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOA_TYPE_KERBEROS_IDENTITY_MANAGER, GoaKerberosIdentityManagerClass)) +typedef struct _GoaKerberosIdentityManager GoaKerberosIdentityManager; +typedef struct _GoaKerberosIdentityManagerClass GoaKerberosIdentityManagerClass; +typedef struct _GoaKerberosIdentityManagerPrivate GoaKerberosIdentityManagerPrivate; +struct _GoaKerberosIdentityManager +{ + GObject parent_instance; + GoaKerberosIdentityManagerPrivate *priv; +}; + +struct _GoaKerberosIdentityManagerClass +{ + GObjectClass parent_class; +}; + +GType goa_kerberos_identity_manager_get_type (void); +GoaIdentityManager *goa_kerberos_identity_manager_new (GCancellable *cancellable, + GError **error); + +void goa_kerberos_identity_manager_start_test (GoaKerberosIdentityManager *manager, + GError **error); +G_END_DECLS +#endif /* __GOA_KERBEROS_IDENTITY_MANAGER_H__ */ diff --git a/src/goaidentity/main.c b/src/goaidentity/main.c new file mode 100644 index 0000000..62f882c --- /dev/null +++ b/src/goaidentity/main.c @@ -0,0 +1,65 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* + * Copyright © 2014 – 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#include "config.h" + +#include + +#include +#include +#include + +#include "goaidentityservice.h" + +int +main (int argc, + char **argv) +{ + GMainLoop *loop; + GoaIdentityService *service; + GError *error; + int ret = 1; + + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + + loop = g_main_loop_new (NULL, FALSE); + service = goa_identity_service_new (); + + error = NULL; + goa_identity_service_activate (service, &error); + + if (error != NULL) { + g_warning ("couldn't activate identity service: %s", error->message); + g_error_free (error); + goto out; + } + + g_main_loop_run (loop); + + goa_identity_service_deactivate (service); + + ret = 0; +out: + g_object_unref (service); + g_main_loop_unref (loop); + + return ret; +} diff --git a/src/goaidentity/org.gnome.Identity.c b/src/goaidentity/org.gnome.Identity.c new file mode 100644 index 0000000..cb31489 --- /dev/null +++ b/src/goaidentity/org.gnome.Identity.c @@ -0,0 +1,3328 @@ +/* + * Generated by gdbus-codegen 2.56.4. DO NOT EDIT. + * + * The license of this code is the same as for the D-Bus interface description + * it was derived from. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "org.gnome.Identity.h" + +#include +#ifdef G_OS_UNIX +# include +#endif + +typedef struct +{ + GDBusArgInfo parent_struct; + gboolean use_gvariant; +} _ExtendedGDBusArgInfo; + +typedef struct +{ + GDBusMethodInfo parent_struct; + const gchar *signal_name; + gboolean pass_fdlist; +} _ExtendedGDBusMethodInfo; + +typedef struct +{ + GDBusSignalInfo parent_struct; + const gchar *signal_name; +} _ExtendedGDBusSignalInfo; + +typedef struct +{ + GDBusPropertyInfo parent_struct; + const gchar *hyphen_name; + gboolean use_gvariant; +} _ExtendedGDBusPropertyInfo; + +typedef struct +{ + GDBusInterfaceInfo parent_struct; + const gchar *hyphen_name; +} _ExtendedGDBusInterfaceInfo; + +typedef struct +{ + const _ExtendedGDBusPropertyInfo *info; + guint prop_id; + GValue orig_value; /* the value before the change */ +} ChangedProperty; + +static void +_changed_property_free (ChangedProperty *data) +{ + g_value_unset (&data->orig_value); + g_free (data); +} + +static gboolean +_g_strv_equal0 (gchar **a, gchar **b) +{ + gboolean ret = FALSE; + guint n; + if (a == NULL && b == NULL) + { + ret = TRUE; + goto out; + } + if (a == NULL || b == NULL) + goto out; + if (g_strv_length (a) != g_strv_length (b)) + goto out; + for (n = 0; a[n] != NULL; n++) + if (g_strcmp0 (a[n], b[n]) != 0) + goto out; + ret = TRUE; +out: + return ret; +} + +static gboolean +_g_variant_equal0 (GVariant *a, GVariant *b) +{ + gboolean ret = FALSE; + if (a == NULL && b == NULL) + { + ret = TRUE; + goto out; + } + if (a == NULL || b == NULL) + goto out; + ret = g_variant_equal (a, b); +out: + return ret; +} + +G_GNUC_UNUSED static gboolean +_g_value_equal (const GValue *a, const GValue *b) +{ + gboolean ret = FALSE; + g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b)); + switch (G_VALUE_TYPE (a)) + { + case G_TYPE_BOOLEAN: + ret = (g_value_get_boolean (a) == g_value_get_boolean (b)); + break; + case G_TYPE_UCHAR: + ret = (g_value_get_uchar (a) == g_value_get_uchar (b)); + break; + case G_TYPE_INT: + ret = (g_value_get_int (a) == g_value_get_int (b)); + break; + case G_TYPE_UINT: + ret = (g_value_get_uint (a) == g_value_get_uint (b)); + break; + case G_TYPE_INT64: + ret = (g_value_get_int64 (a) == g_value_get_int64 (b)); + break; + case G_TYPE_UINT64: + ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b)); + break; + case G_TYPE_DOUBLE: + { + /* Avoid -Wfloat-equal warnings by doing a direct bit compare */ + gdouble da = g_value_get_double (a); + gdouble db = g_value_get_double (b); + ret = memcmp (&da, &db, sizeof (gdouble)) == 0; + } + break; + case G_TYPE_STRING: + ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0); + break; + case G_TYPE_VARIANT: + ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b)); + break; + default: + if (G_VALUE_TYPE (a) == G_TYPE_STRV) + ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b)); + else + g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a))); + break; + } + return ret; +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.Identity.Manager + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaIdentityServiceManager + * @title: GoaIdentityServiceManager + * @short_description: Generated C code for the org.gnome.Identity.Manager D-Bus interface + * + * This section contains code for working with the org.gnome.Identity.Manager D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.Identity.Manager ---- */ + +static const _ExtendedGDBusArgInfo _goa_identity_service_manager_method_info_exchange_secret_keys_IN_ARG_identifier = +{ + { + -1, + (gchar *) "identifier", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_identity_service_manager_method_info_exchange_secret_keys_IN_ARG_input_key = +{ + { + -1, + (gchar *) "input_key", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_identity_service_manager_method_info_exchange_secret_keys_IN_ARG_pointers[] = +{ + &_goa_identity_service_manager_method_info_exchange_secret_keys_IN_ARG_identifier, + &_goa_identity_service_manager_method_info_exchange_secret_keys_IN_ARG_input_key, + NULL +}; + +static const _ExtendedGDBusArgInfo _goa_identity_service_manager_method_info_exchange_secret_keys_OUT_ARG_output_key = +{ + { + -1, + (gchar *) "output_key", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_identity_service_manager_method_info_exchange_secret_keys_OUT_ARG_pointers[] = +{ + &_goa_identity_service_manager_method_info_exchange_secret_keys_OUT_ARG_output_key, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_identity_service_manager_method_info_exchange_secret_keys = +{ + { + -1, + (gchar *) "ExchangeSecretKeys", + (GDBusArgInfo **) &_goa_identity_service_manager_method_info_exchange_secret_keys_IN_ARG_pointers, + (GDBusArgInfo **) &_goa_identity_service_manager_method_info_exchange_secret_keys_OUT_ARG_pointers, + NULL + }, + "handle-exchange-secret-keys", + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_identity_service_manager_method_info_sign_in_IN_ARG_identifier = +{ + { + -1, + (gchar *) "identifier", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_identity_service_manager_method_info_sign_in_IN_ARG_details = +{ + { + -1, + (gchar *) "details", + (gchar *) "a{ss}", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_identity_service_manager_method_info_sign_in_IN_ARG_pointers[] = +{ + &_goa_identity_service_manager_method_info_sign_in_IN_ARG_identifier, + &_goa_identity_service_manager_method_info_sign_in_IN_ARG_details, + NULL +}; + +static const _ExtendedGDBusArgInfo _goa_identity_service_manager_method_info_sign_in_OUT_ARG_identity_object_path = +{ + { + -1, + (gchar *) "identity_object_path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_identity_service_manager_method_info_sign_in_OUT_ARG_pointers[] = +{ + &_goa_identity_service_manager_method_info_sign_in_OUT_ARG_identity_object_path, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_identity_service_manager_method_info_sign_in = +{ + { + -1, + (gchar *) "SignIn", + (GDBusArgInfo **) &_goa_identity_service_manager_method_info_sign_in_IN_ARG_pointers, + (GDBusArgInfo **) &_goa_identity_service_manager_method_info_sign_in_OUT_ARG_pointers, + NULL + }, + "handle-sign-in", + FALSE +}; + +static const _ExtendedGDBusArgInfo _goa_identity_service_manager_method_info_sign_out_IN_ARG_identity = +{ + { + -1, + (gchar *) "identity", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _goa_identity_service_manager_method_info_sign_out_IN_ARG_pointers[] = +{ + &_goa_identity_service_manager_method_info_sign_out_IN_ARG_identity, + NULL +}; + +static const _ExtendedGDBusMethodInfo _goa_identity_service_manager_method_info_sign_out = +{ + { + -1, + (gchar *) "SignOut", + (GDBusArgInfo **) &_goa_identity_service_manager_method_info_sign_out_IN_ARG_pointers, + NULL, + NULL + }, + "handle-sign-out", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _goa_identity_service_manager_method_info_pointers[] = +{ + &_goa_identity_service_manager_method_info_exchange_secret_keys, + &_goa_identity_service_manager_method_info_sign_in, + &_goa_identity_service_manager_method_info_sign_out, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_identity_service_manager_interface_info = +{ + { + -1, + (gchar *) "org.gnome.Identity.Manager", + (GDBusMethodInfo **) &_goa_identity_service_manager_method_info_pointers, + NULL, + NULL, + NULL + }, + "manager", +}; + + +/** + * goa_identity_service_manager_interface_info: + * + * Gets a machine-readable description of the org.gnome.Identity.Manager D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_identity_service_manager_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_identity_service_manager_interface_info.parent_struct; +} + +/** + * goa_identity_service_manager_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaIdentityServiceManager interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_identity_service_manager_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * GoaIdentityServiceManager: + * + * Abstract interface type for the D-Bus interface org.gnome.Identity.Manager. + */ + +/** + * GoaIdentityServiceManagerIface: + * @parent_iface: The parent interface. + * @handle_exchange_secret_keys: Handler for the #GoaIdentityServiceManager::handle-exchange-secret-keys signal. + * @handle_sign_in: Handler for the #GoaIdentityServiceManager::handle-sign-in signal. + * @handle_sign_out: Handler for the #GoaIdentityServiceManager::handle-sign-out signal. + * + * Virtual table for the D-Bus interface org.gnome.Identity.Manager. + */ + +typedef GoaIdentityServiceManagerIface GoaIdentityServiceManagerInterface; +G_DEFINE_INTERFACE (GoaIdentityServiceManager, goa_identity_service_manager, G_TYPE_OBJECT) + +static void +goa_identity_service_manager_default_init (GoaIdentityServiceManagerIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * GoaIdentityServiceManager::handle-exchange-secret-keys: + * @object: A #GoaIdentityServiceManager. + * @invocation: A #GDBusMethodInvocation. + * @arg_identifier: Argument passed by remote caller. + * @arg_input_key: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the ExchangeSecretKeys() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_identity_service_manager_complete_exchange_secret_keys() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-exchange-secret-keys", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityServiceManagerIface, handle_exchange_secret_keys), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 3, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING); + + /** + * GoaIdentityServiceManager::handle-sign-in: + * @object: A #GoaIdentityServiceManager. + * @invocation: A #GDBusMethodInvocation. + * @arg_identifier: Argument passed by remote caller. + * @arg_details: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the SignIn() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_identity_service_manager_complete_sign_in() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-sign-in", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityServiceManagerIface, handle_sign_in), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 3, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT); + + /** + * GoaIdentityServiceManager::handle-sign-out: + * @object: A #GoaIdentityServiceManager. + * @invocation: A #GDBusMethodInvocation. + * @arg_identity: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the SignOut() D-Bus method. + * + * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call goa_identity_service_manager_complete_sign_out() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. + * + * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run. + */ + g_signal_new ("handle-sign-out", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GoaIdentityServiceManagerIface, handle_sign_out), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 2, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); + +} + +/** + * goa_identity_service_manager_call_exchange_secret_keys: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @arg_identifier: Argument to pass with the method invocation. + * @arg_input_key: Argument to pass with the method invocation. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the ExchangeSecretKeys() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_manager_call_exchange_secret_keys_finish() to get the result of the operation. + * + * See goa_identity_service_manager_call_exchange_secret_keys_sync() for the synchronous, blocking version of this method. + */ +void +goa_identity_service_manager_call_exchange_secret_keys ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + const gchar *arg_input_key, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "ExchangeSecretKeys", + g_variant_new ("(ss)", + arg_identifier, + arg_input_key), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_identity_service_manager_call_exchange_secret_keys_finish: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @out_output_key: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_manager_call_exchange_secret_keys(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_identity_service_manager_call_exchange_secret_keys(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_identity_service_manager_call_exchange_secret_keys_finish ( + GoaIdentityServiceManager *proxy, + gchar **out_output_key, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(s)", + out_output_key); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_identity_service_manager_call_exchange_secret_keys_sync: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @arg_identifier: Argument to pass with the method invocation. + * @arg_input_key: Argument to pass with the method invocation. + * @out_output_key: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the ExchangeSecretKeys() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_identity_service_manager_call_exchange_secret_keys() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_identity_service_manager_call_exchange_secret_keys_sync ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + const gchar *arg_input_key, + gchar **out_output_key, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "ExchangeSecretKeys", + g_variant_new ("(ss)", + arg_identifier, + arg_input_key), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(s)", + out_output_key); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_identity_service_manager_call_sign_in: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @arg_identifier: Argument to pass with the method invocation. + * @arg_details: Argument to pass with the method invocation. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the SignIn() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_manager_call_sign_in_finish() to get the result of the operation. + * + * See goa_identity_service_manager_call_sign_in_sync() for the synchronous, blocking version of this method. + */ +void +goa_identity_service_manager_call_sign_in ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + GVariant *arg_details, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "SignIn", + g_variant_new ("(s@a{ss})", + arg_identifier, + arg_details), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_identity_service_manager_call_sign_in_finish: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @out_identity_object_path: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_manager_call_sign_in(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_identity_service_manager_call_sign_in(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_identity_service_manager_call_sign_in_finish ( + GoaIdentityServiceManager *proxy, + gchar **out_identity_object_path, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(o)", + out_identity_object_path); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_identity_service_manager_call_sign_in_sync: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @arg_identifier: Argument to pass with the method invocation. + * @arg_details: Argument to pass with the method invocation. + * @out_identity_object_path: (out): Return location for return parameter or %NULL to ignore. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the SignIn() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_identity_service_manager_call_sign_in() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_identity_service_manager_call_sign_in_sync ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + GVariant *arg_details, + gchar **out_identity_object_path, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "SignIn", + g_variant_new ("(s@a{ss})", + arg_identifier, + arg_details), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(o)", + out_identity_object_path); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_identity_service_manager_call_sign_out: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @arg_identity: Argument to pass with the method invocation. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + * @user_data: User data to pass to @callback. + * + * Asynchronously invokes the SignOut() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_manager_call_sign_out_finish() to get the result of the operation. + * + * See goa_identity_service_manager_call_sign_out_sync() for the synchronous, blocking version of this method. + */ +void +goa_identity_service_manager_call_sign_out ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "SignOut", + g_variant_new ("(s)", + arg_identity), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * goa_identity_service_manager_call_sign_out_finish: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_manager_call_sign_out(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with goa_identity_service_manager_call_sign_out(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_identity_service_manager_call_sign_out_finish ( + GoaIdentityServiceManager *proxy, + GAsyncResult *res, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "()"); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_identity_service_manager_call_sign_out_sync: + * @proxy: A #GoaIdentityServiceManagerProxy. + * @arg_identity: Argument to pass with the method invocation. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the SignOut() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See goa_identity_service_manager_call_sign_out() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +goa_identity_service_manager_call_sign_out_sync ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identity, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "SignOut", + g_variant_new ("(s)", + arg_identity), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "()"); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * goa_identity_service_manager_complete_exchange_secret_keys: + * @object: A #GoaIdentityServiceManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @output_key: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the ExchangeSecretKeys() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_identity_service_manager_complete_exchange_secret_keys ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation, + const gchar *output_key) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", + output_key)); +} + +/** + * goa_identity_service_manager_complete_sign_in: + * @object: A #GoaIdentityServiceManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @identity_object_path: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the SignIn() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_identity_service_manager_complete_sign_in ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation, + const gchar *identity_object_path) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(o)", + identity_object_path)); +} + +/** + * goa_identity_service_manager_complete_sign_out: + * @object: A #GoaIdentityServiceManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the SignOut() D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + * + * This method will free @invocation, you cannot use it afterwards. + */ +void +goa_identity_service_manager_complete_sign_out ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaIdentityServiceManagerProxy: + * + * The #GoaIdentityServiceManagerProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaIdentityServiceManagerProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaIdentityServiceManagerProxy. + */ + +struct _GoaIdentityServiceManagerProxyPrivate +{ + GData *qdata; +}; + +static void goa_identity_service_manager_proxy_iface_init (GoaIdentityServiceManagerIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceManagerProxy, goa_identity_service_manager_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaIdentityServiceManagerProxy) + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_MANAGER, goa_identity_service_manager_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceManagerProxy, goa_identity_service_manager_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_MANAGER, goa_identity_service_manager_proxy_iface_init)) + +#endif +static void +goa_identity_service_manager_proxy_finalize (GObject *object) +{ + GoaIdentityServiceManagerProxy *proxy = GOA_IDENTITY_SERVICE_MANAGER_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_identity_service_manager_proxy_parent_class)->finalize (object); +} + +static void +goa_identity_service_manager_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_identity_service_manager_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +goa_identity_service_manager_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_identity_service_manager_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_IDENTITY_SERVICE_TYPE_MANAGER); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_IDENTITY_SERVICE_TYPE_MANAGER); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_identity_service_manager_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaIdentityServiceManagerProxy *proxy = GOA_IDENTITY_SERVICE_MANAGER_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_manager_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_manager_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static void +goa_identity_service_manager_proxy_init (GoaIdentityServiceManagerProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_identity_service_manager_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, GoaIdentityServiceManagerProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_identity_service_manager_interface_info ()); +} + +static void +goa_identity_service_manager_proxy_class_init (GoaIdentityServiceManagerProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_identity_service_manager_proxy_finalize; + gobject_class->get_property = goa_identity_service_manager_proxy_get_property; + gobject_class->set_property = goa_identity_service_manager_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_identity_service_manager_proxy_g_signal; + proxy_class->g_properties_changed = goa_identity_service_manager_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaIdentityServiceManagerProxyPrivate)); +#endif +} + +static void +goa_identity_service_manager_proxy_iface_init (GoaIdentityServiceManagerIface *iface) +{ +} + +/** + * goa_identity_service_manager_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.Identity.Manager. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_manager_proxy_new_finish() to get the result of the operation. + * + * See goa_identity_service_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_identity_service_manager_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity.Manager", NULL); +} + +/** + * goa_identity_service_manager_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_manager_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_identity_service_manager_proxy_new(). + * + * Returns: (transfer full) (type GoaIdentityServiceManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceManager * +goa_identity_service_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_MANAGER (ret); + else + return NULL; +} + +/** + * goa_identity_service_manager_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.Identity.Manager. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_identity_service_manager_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaIdentityServiceManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceManager * +goa_identity_service_manager_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity.Manager", NULL); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_MANAGER (ret); + else + return NULL; +} + + +/** + * goa_identity_service_manager_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_identity_service_manager_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_manager_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_identity_service_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_identity_service_manager_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity.Manager", NULL); +} + +/** + * goa_identity_service_manager_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_manager_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_identity_service_manager_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaIdentityServiceManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceManager * +goa_identity_service_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_MANAGER (ret); + else + return NULL; +} + +/** + * goa_identity_service_manager_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_identity_service_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_identity_service_manager_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaIdentityServiceManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceManager * +goa_identity_service_manager_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity.Manager", NULL); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_MANAGER (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaIdentityServiceManagerSkeleton: + * + * The #GoaIdentityServiceManagerSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaIdentityServiceManagerSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaIdentityServiceManagerSkeleton. + */ + +struct _GoaIdentityServiceManagerSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_identity_service_manager_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaIdentityServiceManagerSkeleton *skeleton = GOA_IDENTITY_SERVICE_MANAGER_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_IDENTITY_SERVICE_TYPE_MANAGER); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_IDENTITY_SERVICE_TYPE_MANAGER); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_identity_service_manager_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaIdentityServiceManagerSkeleton *skeleton = GOA_IDENTITY_SERVICE_MANAGER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_manager_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_identity_service_manager_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaIdentityServiceManagerSkeleton *skeleton = GOA_IDENTITY_SERVICE_MANAGER_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_manager_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_identity_service_manager_skeleton_vtable = +{ + _goa_identity_service_manager_skeleton_handle_method_call, + _goa_identity_service_manager_skeleton_handle_get_property, + _goa_identity_service_manager_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_identity_service_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_identity_service_manager_interface_info (); +} + +static GDBusInterfaceVTable * +goa_identity_service_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_identity_service_manager_skeleton_vtable; +} + +static GVariant * +goa_identity_service_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaIdentityServiceManagerSkeleton *skeleton = GOA_IDENTITY_SERVICE_MANAGER_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_identity_service_manager_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_identity_service_manager_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_identity_service_manager_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_identity_service_manager_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.Identity.Manager", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static void +goa_identity_service_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void goa_identity_service_manager_skeleton_iface_init (GoaIdentityServiceManagerIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceManagerSkeleton, goa_identity_service_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaIdentityServiceManagerSkeleton) + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_MANAGER, goa_identity_service_manager_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceManagerSkeleton, goa_identity_service_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_MANAGER, goa_identity_service_manager_skeleton_iface_init)) + +#endif +static void +goa_identity_service_manager_skeleton_finalize (GObject *object) +{ + GoaIdentityServiceManagerSkeleton *skeleton = GOA_IDENTITY_SERVICE_MANAGER_SKELETON (object); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_identity_service_manager_skeleton_parent_class)->finalize (object); +} + +static void +goa_identity_service_manager_skeleton_init (GoaIdentityServiceManagerSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_identity_service_manager_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON, GoaIdentityServiceManagerSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +goa_identity_service_manager_skeleton_class_init (GoaIdentityServiceManagerSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_identity_service_manager_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_identity_service_manager_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_identity_service_manager_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_identity_service_manager_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_identity_service_manager_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaIdentityServiceManagerSkeletonPrivate)); +#endif +} + +static void +goa_identity_service_manager_skeleton_iface_init (GoaIdentityServiceManagerIface *iface) +{ +} + +/** + * goa_identity_service_manager_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.Identity.Manager. + * + * Returns: (transfer full) (type GoaIdentityServiceManagerSkeleton): The skeleton object. + */ +GoaIdentityServiceManager * +goa_identity_service_manager_skeleton_new (void) +{ + return GOA_IDENTITY_SERVICE_MANAGER (g_object_new (GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.gnome.Identity + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaIdentityServiceIdentity + * @title: GoaIdentityServiceIdentity + * @short_description: Generated C code for the org.gnome.Identity D-Bus interface + * + * This section contains code for working with the org.gnome.Identity D-Bus interface in C. + */ + +/* ---- Introspection data for org.gnome.Identity ---- */ + +static const _ExtendedGDBusPropertyInfo _goa_identity_service_identity_property_info_identifier = +{ + { + -1, + (gchar *) "Identifier", + (gchar *) "s", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "identifier", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_identity_service_identity_property_info_expiration_timestamp = +{ + { + -1, + (gchar *) "ExpirationTimestamp", + (gchar *) "x", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "expiration-timestamp", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo _goa_identity_service_identity_property_info_is_signed_in = +{ + { + -1, + (gchar *) "IsSignedIn", + (gchar *) "b", + G_DBUS_PROPERTY_INFO_FLAGS_READABLE, + NULL + }, + "is-signed-in", + FALSE +}; + +static const _ExtendedGDBusPropertyInfo * const _goa_identity_service_identity_property_info_pointers[] = +{ + &_goa_identity_service_identity_property_info_identifier, + &_goa_identity_service_identity_property_info_expiration_timestamp, + &_goa_identity_service_identity_property_info_is_signed_in, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _goa_identity_service_identity_interface_info = +{ + { + -1, + (gchar *) "org.gnome.Identity", + NULL, + NULL, + (GDBusPropertyInfo **) &_goa_identity_service_identity_property_info_pointers, + NULL + }, + "identity", +}; + + +/** + * goa_identity_service_identity_interface_info: + * + * Gets a machine-readable description of the org.gnome.Identity D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +goa_identity_service_identity_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_goa_identity_service_identity_interface_info.parent_struct; +} + +/** + * goa_identity_service_identity_override_properties: + * @klass: The class structure for a #GObject derived class. + * @property_id_begin: The property id to assign to the first overridden property. + * + * Overrides all #GObject properties in the #GoaIdentityServiceIdentity interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +goa_identity_service_identity_override_properties (GObjectClass *klass, guint property_id_begin) +{ + g_object_class_override_property (klass, property_id_begin++, "identifier"); + g_object_class_override_property (klass, property_id_begin++, "expiration-timestamp"); + g_object_class_override_property (klass, property_id_begin++, "is-signed-in"); + return property_id_begin - 1; +} + + + +/** + * GoaIdentityServiceIdentity: + * + * Abstract interface type for the D-Bus interface org.gnome.Identity. + */ + +/** + * GoaIdentityServiceIdentityIface: + * @parent_iface: The parent interface. + * @get_expiration_timestamp: Getter for the #GoaIdentityServiceIdentity:expiration-timestamp property. + * @get_identifier: Getter for the #GoaIdentityServiceIdentity:identifier property. + * @get_is_signed_in: Getter for the #GoaIdentityServiceIdentity:is-signed-in property. + * + * Virtual table for the D-Bus interface org.gnome.Identity. + */ + +typedef GoaIdentityServiceIdentityIface GoaIdentityServiceIdentityInterface; +G_DEFINE_INTERFACE (GoaIdentityServiceIdentity, goa_identity_service_identity, G_TYPE_OBJECT) + +static void +goa_identity_service_identity_default_init (GoaIdentityServiceIdentityIface *iface) +{ + /* GObject properties for D-Bus properties: */ + /** + * GoaIdentityServiceIdentity:identifier: + * + * Represents the D-Bus property "Identifier". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_string ("identifier", "Identifier", "Identifier", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaIdentityServiceIdentity:expiration-timestamp: + * + * Represents the D-Bus property "ExpirationTimestamp". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_int64 ("expiration-timestamp", "ExpirationTimestamp", "ExpirationTimestamp", G_MININT64, G_MAXINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GoaIdentityServiceIdentity:is-signed-in: + * + * Represents the D-Bus property "IsSignedIn". + * + * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side. + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("is-signed-in", "IsSignedIn", "IsSignedIn", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/** + * goa_identity_service_identity_get_identifier: (skip) + * @object: A #GoaIdentityServiceIdentity. + * + * Gets the value of the "Identifier" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use goa_identity_service_identity_dup_identifier() if on another thread. + * + * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object. + */ +const gchar * +goa_identity_service_identity_get_identifier (GoaIdentityServiceIdentity *object) +{ + return GOA_IDENTITY_SERVICE_IDENTITY_GET_IFACE (object)->get_identifier (object); +} + +/** + * goa_identity_service_identity_dup_identifier: (skip) + * @object: A #GoaIdentityServiceIdentity. + * + * Gets a copy of the "Identifier" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free(). + */ +gchar * +goa_identity_service_identity_dup_identifier (GoaIdentityServiceIdentity *object) +{ + gchar *value; + g_object_get (G_OBJECT (object), "identifier", &value, NULL); + return value; +} + +/** + * goa_identity_service_identity_set_identifier: (skip) + * @object: A #GoaIdentityServiceIdentity. + * @value: The value to set. + * + * Sets the "Identifier" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_identity_service_identity_set_identifier (GoaIdentityServiceIdentity *object, const gchar *value) +{ + g_object_set (G_OBJECT (object), "identifier", value, NULL); +} + +/** + * goa_identity_service_identity_get_expiration_timestamp: (skip) + * @object: A #GoaIdentityServiceIdentity. + * + * Gets the value of the "ExpirationTimestamp" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gint64 +goa_identity_service_identity_get_expiration_timestamp (GoaIdentityServiceIdentity *object) +{ + return GOA_IDENTITY_SERVICE_IDENTITY_GET_IFACE (object)->get_expiration_timestamp (object); +} + +/** + * goa_identity_service_identity_set_expiration_timestamp: (skip) + * @object: A #GoaIdentityServiceIdentity. + * @value: The value to set. + * + * Sets the "ExpirationTimestamp" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_identity_service_identity_set_expiration_timestamp (GoaIdentityServiceIdentity *object, gint64 value) +{ + g_object_set (G_OBJECT (object), "expiration-timestamp", value, NULL); +} + +/** + * goa_identity_service_identity_get_is_signed_in: (skip) + * @object: A #GoaIdentityServiceIdentity. + * + * Gets the value of the "IsSignedIn" D-Bus property. + * + * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side. + * + * Returns: The property value. + */ +gboolean +goa_identity_service_identity_get_is_signed_in (GoaIdentityServiceIdentity *object) +{ + return GOA_IDENTITY_SERVICE_IDENTITY_GET_IFACE (object)->get_is_signed_in (object); +} + +/** + * goa_identity_service_identity_set_is_signed_in: (skip) + * @object: A #GoaIdentityServiceIdentity. + * @value: The value to set. + * + * Sets the "IsSignedIn" D-Bus property to @value. + * + * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side. + */ +void +goa_identity_service_identity_set_is_signed_in (GoaIdentityServiceIdentity *object, gboolean value) +{ + g_object_set (G_OBJECT (object), "is-signed-in", value, NULL); +} + +/* ------------------------------------------------------------------------ */ + +/** + * GoaIdentityServiceIdentityProxy: + * + * The #GoaIdentityServiceIdentityProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaIdentityServiceIdentityProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaIdentityServiceIdentityProxy. + */ + +struct _GoaIdentityServiceIdentityProxyPrivate +{ + GData *qdata; +}; + +static void goa_identity_service_identity_proxy_iface_init (GoaIdentityServiceIdentityIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceIdentityProxy, goa_identity_service_identity_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (GoaIdentityServiceIdentityProxy) + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_IDENTITY, goa_identity_service_identity_proxy_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceIdentityProxy, goa_identity_service_identity_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_IDENTITY, goa_identity_service_identity_proxy_iface_init)) + +#endif +static void +goa_identity_service_identity_proxy_finalize (GObject *object) +{ + GoaIdentityServiceIdentityProxy *proxy = GOA_IDENTITY_SERVICE_IDENTITY_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (goa_identity_service_identity_proxy_parent_class)->finalize (object); +} + +static void +goa_identity_service_identity_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 3); + info = _goa_identity_service_identity_property_info_pointers[prop_id - 1]; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name); + if (info->use_gvariant) + { + g_value_set_variant (value, variant); + } + else + { + if (variant != NULL) + g_dbus_gvariant_to_gvalue (variant, value); + } + if (variant != NULL) + g_variant_unref (variant); +} + +static void +goa_identity_service_identity_proxy_set_property_cb (GDBusProxy *proxy, + GAsyncResult *res, + gpointer user_data) +{ + const _ExtendedGDBusPropertyInfo *info = user_data; + GError *error; + GVariant *_ret; + error = NULL; + _ret = g_dbus_proxy_call_finish (proxy, res, &error); + if (!_ret) + { + g_warning ("Error setting property '%s' on interface org.gnome.Identity: %s (%s, %d)", + info->parent_struct.name, + error->message, g_quark_to_string (error->domain), error->code); + g_error_free (error); + } + else + { + g_variant_unref (_ret); + } +} + +static void +goa_identity_service_identity_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + const _ExtendedGDBusPropertyInfo *info; + GVariant *variant; + g_assert (prop_id != 0 && prop_id - 1 < 3); + info = _goa_identity_service_identity_property_info_pointers[prop_id - 1]; + variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_dbus_proxy_call (G_DBUS_PROXY (object), + "org.freedesktop.DBus.Properties.Set", + g_variant_new ("(ssv)", "org.gnome.Identity", info->parent_struct.name, variant), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, (GAsyncReadyCallback) goa_identity_service_identity_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct); + g_variant_unref (variant); +} + +static void +goa_identity_service_identity_proxy_g_signal (GDBusProxy *proxy, + const gchar *sender_name G_GNUC_UNUSED, + const gchar *signal_name, + GVariant *parameters) +{ + _ExtendedGDBusSignalInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + gsize n; + guint signal_id; + info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_goa_identity_service_identity_interface_info.parent_struct, signal_name); + if (info == NULL) + return; + num_params = g_variant_n_children (parameters); + paramv = g_new0 (GValue, num_params + 1); + g_value_init (¶mv[0], GOA_IDENTITY_SERVICE_TYPE_IDENTITY); + g_value_set_object (¶mv[0], proxy); + g_variant_iter_init (&iter, parameters); + n = 1; + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_IDENTITY_SERVICE_TYPE_IDENTITY); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +goa_identity_service_identity_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + GoaIdentityServiceIdentityProxy *proxy = GOA_IDENTITY_SERVICE_IDENTITY_PROXY (_proxy); + guint n; + const gchar *key; + GVariantIter *iter; + _ExtendedGDBusPropertyInfo *info; + g_variant_get (changed_properties, "a{sv}", &iter); + while (g_variant_iter_next (iter, "{&sv}", &key, NULL)) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_identity_interface_info.parent_struct, key); + g_datalist_remove_data (&proxy->priv->qdata, key); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } + g_variant_iter_free (iter); + for (n = 0; invalidated_properties[n] != NULL; n++) + { + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_identity_interface_info.parent_struct, invalidated_properties[n]); + g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]); + if (info != NULL) + g_object_notify (G_OBJECT (proxy), info->hyphen_name); + } +} + +static const gchar * +goa_identity_service_identity_proxy_get_identifier (GoaIdentityServiceIdentity *object) +{ + GoaIdentityServiceIdentityProxy *proxy = GOA_IDENTITY_SERVICE_IDENTITY_PROXY (object); + GVariant *variant; + const gchar *value = NULL; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Identifier"); + if (variant != NULL) + { + value = g_variant_get_string (variant, NULL); + g_variant_unref (variant); + } + return value; +} + +static gint64 +goa_identity_service_identity_proxy_get_expiration_timestamp (GoaIdentityServiceIdentity *object) +{ + GoaIdentityServiceIdentityProxy *proxy = GOA_IDENTITY_SERVICE_IDENTITY_PROXY (object); + GVariant *variant; + gint64 value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "ExpirationTimestamp"); + if (variant != NULL) + { + value = g_variant_get_int64 (variant); + g_variant_unref (variant); + } + return value; +} + +static gboolean +goa_identity_service_identity_proxy_get_is_signed_in (GoaIdentityServiceIdentity *object) +{ + GoaIdentityServiceIdentityProxy *proxy = GOA_IDENTITY_SERVICE_IDENTITY_PROXY (object); + GVariant *variant; + gboolean value = 0; + variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "IsSignedIn"); + if (variant != NULL) + { + value = g_variant_get_boolean (variant); + g_variant_unref (variant); + } + return value; +} + +static void +goa_identity_service_identity_proxy_init (GoaIdentityServiceIdentityProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = goa_identity_service_identity_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, GoaIdentityServiceIdentityProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), goa_identity_service_identity_interface_info ()); +} + +static void +goa_identity_service_identity_proxy_class_init (GoaIdentityServiceIdentityProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_identity_service_identity_proxy_finalize; + gobject_class->get_property = goa_identity_service_identity_proxy_get_property; + gobject_class->set_property = goa_identity_service_identity_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = goa_identity_service_identity_proxy_g_signal; + proxy_class->g_properties_changed = goa_identity_service_identity_proxy_g_properties_changed; + + goa_identity_service_identity_override_properties (gobject_class, 1); + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaIdentityServiceIdentityProxyPrivate)); +#endif +} + +static void +goa_identity_service_identity_proxy_iface_init (GoaIdentityServiceIdentityIface *iface) +{ + iface->get_identifier = goa_identity_service_identity_proxy_get_identifier; + iface->get_expiration_timestamp = goa_identity_service_identity_proxy_get_expiration_timestamp; + iface->get_is_signed_in = goa_identity_service_identity_proxy_get_is_signed_in; +} + +/** + * goa_identity_service_identity_proxy_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates a proxy for the D-Bus interface org.gnome.Identity. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_identity_proxy_new_finish() to get the result of the operation. + * + * See goa_identity_service_identity_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_identity_service_identity_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity", NULL); +} + +/** + * goa_identity_service_identity_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_identity_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_identity_service_identity_proxy_new(). + * + * Returns: (transfer full) (type GoaIdentityServiceIdentityProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceIdentity * +goa_identity_service_identity_proxy_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_IDENTITY (ret); + else + return NULL; +} + +/** + * goa_identity_service_identity_proxy_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates a proxy for the D-Bus interface org.gnome.Identity. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_identity_service_identity_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaIdentityServiceIdentityProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceIdentity * +goa_identity_service_identity_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity", NULL); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_IDENTITY (ret); + else + return NULL; +} + + +/** + * goa_identity_service_identity_proxy_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_identity_service_identity_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_identity_proxy_new_for_bus_finish() to get the result of the operation. + * + * See goa_identity_service_identity_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_identity_service_identity_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity", NULL); +} + +/** + * goa_identity_service_identity_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_identity_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_identity_service_identity_proxy_new_for_bus(). + * + * Returns: (transfer full) (type GoaIdentityServiceIdentityProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceIdentity * +goa_identity_service_identity_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_IDENTITY (ret); + else + return NULL; +} + +/** + * goa_identity_service_identity_proxy_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusProxyFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_identity_service_identity_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_identity_service_identity_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaIdentityServiceIdentityProxy): The constructed proxy object or %NULL if @error is set. + */ +GoaIdentityServiceIdentity * +goa_identity_service_identity_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.gnome.Identity", NULL); + if (ret != NULL) + return GOA_IDENTITY_SERVICE_IDENTITY (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * GoaIdentityServiceIdentitySkeleton: + * + * The #GoaIdentityServiceIdentitySkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaIdentityServiceIdentitySkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaIdentityServiceIdentitySkeleton. + */ + +struct _GoaIdentityServiceIdentitySkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_goa_identity_service_identity_skeleton_handle_method_call ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (user_data); + _ExtendedGDBusMethodInfo *info; + GVariantIter iter; + GVariant *child; + GValue *paramv; + gsize num_params; + guint num_extra; + gsize n; + guint signal_id; + GValue return_value = G_VALUE_INIT; + info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation); + g_assert (info != NULL); + num_params = g_variant_n_children (parameters); + num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra); + n = 0; + g_value_init (¶mv[n], GOA_IDENTITY_SERVICE_TYPE_IDENTITY); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation))); +#else + g_assert_not_reached (); +#endif + } + g_variant_iter_init (&iter, parameters); + while ((child = g_variant_iter_next_value (&iter)) != NULL) + { + _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra]; + if (arg_info->use_gvariant) + { + g_value_init (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, GOA_IDENTITY_SERVICE_TYPE_IDENTITY); + g_value_init (&return_value, G_TYPE_BOOLEAN); + g_signal_emitv (paramv, signal_id, 0, &return_value); + if (!g_value_get_boolean (&return_value)) + g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name); + g_value_unset (&return_value); + for (n = 0; n < num_params + num_extra; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_goa_identity_service_identity_skeleton_handle_get_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + GVariant *ret; + ret = NULL; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_identity_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + g_value_init (&value, pspec->value_type); + g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value); + ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature)); + g_value_unset (&value); + } + return ret; +} + +static gboolean +_goa_identity_service_identity_skeleton_handle_set_property ( + GDBusConnection *connection G_GNUC_UNUSED, + const gchar *sender G_GNUC_UNUSED, + const gchar *object_path G_GNUC_UNUSED, + const gchar *interface_name G_GNUC_UNUSED, + const gchar *property_name, + GVariant *variant, + GError **error, + gpointer user_data) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (user_data); + GValue value = G_VALUE_INIT; + GParamSpec *pspec; + _ExtendedGDBusPropertyInfo *info; + gboolean ret; + ret = FALSE; + info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_goa_identity_service_identity_interface_info.parent_struct, property_name); + g_assert (info != NULL); + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name); + if (pspec == NULL) + { + g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name); + } + else + { + if (info->use_gvariant) + g_value_set_variant (&value, variant); + else + g_dbus_gvariant_to_gvalue (variant, &value); + g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value); + g_value_unset (&value); + ret = TRUE; + } + return ret; +} + +static const GDBusInterfaceVTable _goa_identity_service_identity_skeleton_vtable = +{ + _goa_identity_service_identity_skeleton_handle_method_call, + _goa_identity_service_identity_skeleton_handle_get_property, + _goa_identity_service_identity_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +goa_identity_service_identity_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return goa_identity_service_identity_interface_info (); +} + +static GDBusInterfaceVTable * +goa_identity_service_identity_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_goa_identity_service_identity_skeleton_vtable; +} + +static GVariant * +goa_identity_service_identity_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_goa_identity_service_identity_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _goa_identity_service_identity_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _goa_identity_service_identity_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _goa_identity_service_identity_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.gnome.Identity", info->name, NULL, skeleton); + if (value != NULL) + { + g_variant_take_ref (value); + g_variant_builder_add (&builder, "{sv}", info->name, value); + g_variant_unref (value); + } + } + } +out: + return g_variant_builder_end (&builder); +} + +static gboolean _goa_identity_service_identity_emit_changed (gpointer user_data); + +static void +goa_identity_service_identity_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (_skeleton); + gboolean emit_changed = FALSE; + + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties_idle_source != NULL) + { + g_source_destroy (skeleton->priv->changed_properties_idle_source); + skeleton->priv->changed_properties_idle_source = NULL; + emit_changed = TRUE; + } + g_mutex_unlock (&skeleton->priv->lock); + + if (emit_changed) + _goa_identity_service_identity_emit_changed (skeleton); +} + +static void goa_identity_service_identity_skeleton_iface_init (GoaIdentityServiceIdentityIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceIdentitySkeleton, goa_identity_service_identity_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (GoaIdentityServiceIdentitySkeleton) + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_IDENTITY, goa_identity_service_identity_skeleton_iface_init)) + +#else +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceIdentitySkeleton, goa_identity_service_identity_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_IDENTITY, goa_identity_service_identity_skeleton_iface_init)) + +#endif +static void +goa_identity_service_identity_skeleton_finalize (GObject *object) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (object); + guint n; + for (n = 0; n < 3; n++) + g_value_unset (&skeleton->priv->properties[n]); + g_free (skeleton->priv->properties); + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + if (skeleton->priv->changed_properties_idle_source != NULL) + g_source_destroy (skeleton->priv->changed_properties_idle_source); + g_main_context_unref (skeleton->priv->context); + g_mutex_clear (&skeleton->priv->lock); + G_OBJECT_CLASS (goa_identity_service_identity_skeleton_parent_class)->finalize (object); +} + +static void +goa_identity_service_identity_skeleton_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 3); + g_mutex_lock (&skeleton->priv->lock); + g_value_copy (&skeleton->priv->properties[prop_id - 1], value); + g_mutex_unlock (&skeleton->priv->lock); +} + +static gboolean +_goa_identity_service_identity_emit_changed (gpointer user_data) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (user_data); + GList *l; + GVariantBuilder builder; + GVariantBuilder invalidated_builder; + guint num_changes; + + g_mutex_lock (&skeleton->priv->lock); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as")); + for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next) + { + ChangedProperty *cp = l->data; + GVariant *variant; + const GValue *cur_value; + + cur_value = &skeleton->priv->properties[cp->prop_id - 1]; + if (!_g_value_equal (cur_value, &cp->orig_value)) + { + variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature)); + g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant); + g_variant_unref (variant); + num_changes++; + } + } + if (num_changes > 0) + { + GList *connections, *ll; + GVariant *signal_variant; + signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.gnome.Identity", + &builder, &invalidated_builder)); + connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton)); + for (ll = connections; ll != NULL; ll = ll->next) + { + GDBusConnection *connection = ll->data; + + g_dbus_connection_emit_signal (connection, + NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + signal_variant, + NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); + } + else + { + g_variant_builder_clear (&builder); + g_variant_builder_clear (&invalidated_builder); + } + g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free); + skeleton->priv->changed_properties = NULL; + skeleton->priv->changed_properties_idle_source = NULL; + g_mutex_unlock (&skeleton->priv->lock); + return FALSE; +} + +static void +_goa_identity_service_identity_schedule_emit_changed (GoaIdentityServiceIdentitySkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value) +{ + ChangedProperty *cp; + GList *l; + cp = NULL; + for (l = skeleton->priv->changed_properties; l != NULL; l = l->next) + { + ChangedProperty *i_cp = l->data; + if (i_cp->info == info) + { + cp = i_cp; + break; + } + } + if (cp == NULL) + { + cp = g_new0 (ChangedProperty, 1); + cp->prop_id = prop_id; + cp->info = info; + skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp); + g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value)); + g_value_copy (orig_value, &cp->orig_value); + } +} + +static void +goa_identity_service_identity_skeleton_notify (GObject *object, + GParamSpec *pspec G_GNUC_UNUSED) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (object); + g_mutex_lock (&skeleton->priv->lock); + if (skeleton->priv->changed_properties != NULL && + skeleton->priv->changed_properties_idle_source == NULL) + { + skeleton->priv->changed_properties_idle_source = g_idle_source_new (); + g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT); + g_source_set_callback (skeleton->priv->changed_properties_idle_source, _goa_identity_service_identity_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref); + g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _goa_identity_service_identity_emit_changed"); + g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context); + g_source_unref (skeleton->priv->changed_properties_idle_source); + } + g_mutex_unlock (&skeleton->priv->lock); +} + +static void +goa_identity_service_identity_skeleton_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (object); + g_assert (prop_id != 0 && prop_id - 1 < 3); + g_mutex_lock (&skeleton->priv->lock); + g_object_freeze_notify (object); + if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1])) + { + if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL) + _goa_identity_service_identity_schedule_emit_changed (skeleton, _goa_identity_service_identity_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]); + g_value_copy (value, &skeleton->priv->properties[prop_id - 1]); + g_object_notify_by_pspec (object, pspec); + } + g_mutex_unlock (&skeleton->priv->lock); + g_object_thaw_notify (object); +} + +static void +goa_identity_service_identity_skeleton_init (GoaIdentityServiceIdentitySkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = goa_identity_service_identity_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON, GoaIdentityServiceIdentitySkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); + skeleton->priv->properties = g_new0 (GValue, 3); + g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING); + g_value_init (&skeleton->priv->properties[1], G_TYPE_INT64); + g_value_init (&skeleton->priv->properties[2], G_TYPE_BOOLEAN); +} + +static const gchar * +goa_identity_service_identity_skeleton_get_identifier (GoaIdentityServiceIdentity *object) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (object); + const gchar *value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_string (&(skeleton->priv->properties[0])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gint64 +goa_identity_service_identity_skeleton_get_expiration_timestamp (GoaIdentityServiceIdentity *object) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (object); + gint64 value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_int64 (&(skeleton->priv->properties[1])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static gboolean +goa_identity_service_identity_skeleton_get_is_signed_in (GoaIdentityServiceIdentity *object) +{ + GoaIdentityServiceIdentitySkeleton *skeleton = GOA_IDENTITY_SERVICE_IDENTITY_SKELETON (object); + gboolean value; + g_mutex_lock (&skeleton->priv->lock); + value = g_value_get_boolean (&(skeleton->priv->properties[2])); + g_mutex_unlock (&skeleton->priv->lock); + return value; +} + +static void +goa_identity_service_identity_skeleton_class_init (GoaIdentityServiceIdentitySkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = goa_identity_service_identity_skeleton_finalize; + gobject_class->get_property = goa_identity_service_identity_skeleton_get_property; + gobject_class->set_property = goa_identity_service_identity_skeleton_set_property; + gobject_class->notify = goa_identity_service_identity_skeleton_notify; + + + goa_identity_service_identity_override_properties (gobject_class, 1); + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = goa_identity_service_identity_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = goa_identity_service_identity_skeleton_dbus_interface_get_properties; + skeleton_class->flush = goa_identity_service_identity_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = goa_identity_service_identity_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (GoaIdentityServiceIdentitySkeletonPrivate)); +#endif +} + +static void +goa_identity_service_identity_skeleton_iface_init (GoaIdentityServiceIdentityIface *iface) +{ + iface->get_identifier = goa_identity_service_identity_skeleton_get_identifier; + iface->get_expiration_timestamp = goa_identity_service_identity_skeleton_get_expiration_timestamp; + iface->get_is_signed_in = goa_identity_service_identity_skeleton_get_is_signed_in; +} + +/** + * goa_identity_service_identity_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.gnome.Identity. + * + * Returns: (transfer full) (type GoaIdentityServiceIdentitySkeleton): The skeleton object. + */ +GoaIdentityServiceIdentity * +goa_identity_service_identity_skeleton_new (void) +{ + return GOA_IDENTITY_SERVICE_IDENTITY (g_object_new (GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for Object, ObjectProxy and ObjectSkeleton + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaIdentityServiceObject + * @title: GoaIdentityServiceObject + * @short_description: Specialized GDBusObject types + * + * This section contains the #GoaIdentityServiceObject, #GoaIdentityServiceObjectProxy, and #GoaIdentityServiceObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces. + */ + +/** + * GoaIdentityServiceObject: + * + * The #GoaIdentityServiceObject type is a specialized container of interfaces. + */ + +/** + * GoaIdentityServiceObjectIface: + * @parent_iface: The parent interface. + * + * Virtual table for the #GoaIdentityServiceObject interface. + */ + +typedef GoaIdentityServiceObjectIface GoaIdentityServiceObjectInterface; +G_DEFINE_INTERFACE_WITH_CODE (GoaIdentityServiceObject, goa_identity_service_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT);) + +static void +goa_identity_service_object_default_init (GoaIdentityServiceObjectIface *iface) +{ + /** + * GoaIdentityServiceObject:manager: + * + * The #GoaIdentityServiceManager instance corresponding to the D-Bus interface org.gnome.Identity.Manager, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("manager", "manager", "manager", GOA_IDENTITY_SERVICE_TYPE_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * GoaIdentityServiceObject:identity: + * + * The #GoaIdentityServiceIdentity instance corresponding to the D-Bus interface org.gnome.Identity, if any. + * + * Connect to the #GObject::notify signal to get informed of property changes. + */ + g_object_interface_install_property (iface, g_param_spec_object ("identity", "identity", "identity", GOA_IDENTITY_SERVICE_TYPE_IDENTITY, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + +} + +/** + * goa_identity_service_object_get_manager: + * @object: A #GoaIdentityServiceObject. + * + * Gets the #GoaIdentityServiceManager instance for the D-Bus interface org.gnome.Identity.Manager on @object, if any. + * + * Returns: (transfer full): A #GoaIdentityServiceManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaIdentityServiceManager *goa_identity_service_object_get_manager (GoaIdentityServiceObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity.Manager"); + if (ret == NULL) + return NULL; + return GOA_IDENTITY_SERVICE_MANAGER (ret); +} + +/** + * goa_identity_service_object_get_identity: + * @object: A #GoaIdentityServiceObject. + * + * Gets the #GoaIdentityServiceIdentity instance for the D-Bus interface org.gnome.Identity on @object, if any. + * + * Returns: (transfer full): A #GoaIdentityServiceIdentity that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +GoaIdentityServiceIdentity *goa_identity_service_object_get_identity (GoaIdentityServiceObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity"); + if (ret == NULL) + return NULL; + return GOA_IDENTITY_SERVICE_IDENTITY (ret); +} + + +/** + * goa_identity_service_object_peek_manager: (skip) + * @object: A #GoaIdentityServiceObject. + * + * Like goa_identity_service_object_get_manager() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaIdentityServiceManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaIdentityServiceManager *goa_identity_service_object_peek_manager (GoaIdentityServiceObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity.Manager"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_IDENTITY_SERVICE_MANAGER (ret); +} + +/** + * goa_identity_service_object_peek_identity: (skip) + * @object: A #GoaIdentityServiceObject. + * + * Like goa_identity_service_object_get_identity() but doesn't increase the reference count on the returned object. + * + * It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running. + * + * Returns: (transfer none): A #GoaIdentityServiceIdentity or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +GoaIdentityServiceIdentity *goa_identity_service_object_peek_identity (GoaIdentityServiceObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return GOA_IDENTITY_SERVICE_IDENTITY (ret); +} + + +static void +goa_identity_service_object_notify (GDBusObject *object, GDBusInterface *interface) +{ + _ExtendedGDBusInterfaceInfo *info = (_ExtendedGDBusInterfaceInfo *) g_dbus_interface_get_info (interface); + /* info can be NULL if the other end is using a D-Bus interface we don't know + * anything about, for example old generated code in this process talking to + * newer generated code in the other process. */ + if (info != NULL) + g_object_notify (G_OBJECT (object), info->hyphen_name); +} + +/** + * GoaIdentityServiceObjectProxy: + * + * The #GoaIdentityServiceObjectProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaIdentityServiceObjectProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GoaIdentityServiceObjectProxy. + */ + +static void +goa_identity_service_object_proxy__goa_identity_service_object_iface_init (GoaIdentityServiceObjectIface *iface G_GNUC_UNUSED) +{ +} + +static void +goa_identity_service_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = goa_identity_service_object_notify; + iface->interface_removed = goa_identity_service_object_notify; +} + + +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceObjectProxy, goa_identity_service_object_proxy, G_TYPE_DBUS_OBJECT_PROXY, + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_OBJECT, goa_identity_service_object_proxy__goa_identity_service_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, goa_identity_service_object_proxy__g_dbus_object_iface_init)) + +static void +goa_identity_service_object_proxy_init (GoaIdentityServiceObjectProxy *object G_GNUC_UNUSED) +{ +} + +static void +goa_identity_service_object_proxy_set_property (GObject *gobject, + guint prop_id, + const GValue *value G_GNUC_UNUSED, + GParamSpec *pspec) +{ + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); +} + +static void +goa_identity_service_object_proxy_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaIdentityServiceObjectProxy *object = GOA_IDENTITY_SERVICE_OBJECT_PROXY (gobject); + GDBusInterface *interface; + + switch (prop_id) + { + case 1: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity.Manager"); + g_value_take_object (value, interface); + break; + + case 2: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity"); + g_value_take_object (value, interface); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +goa_identity_service_object_proxy_class_init (GoaIdentityServiceObjectProxyClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = goa_identity_service_object_proxy_set_property; + gobject_class->get_property = goa_identity_service_object_proxy_get_property; + + g_object_class_override_property (gobject_class, 1, "manager"); + g_object_class_override_property (gobject_class, 2, "identity"); +} + +/** + * goa_identity_service_object_proxy_new: + * @connection: A #GDBusConnection. + * @object_path: An object path. + * + * Creates a new proxy object. + * + * Returns: (transfer full): The proxy object. + */ +GoaIdentityServiceObjectProxy * +goa_identity_service_object_proxy_new (GDBusConnection *connection, + const gchar *object_path) +{ + g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL); + g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); + return GOA_IDENTITY_SERVICE_OBJECT_PROXY (g_object_new (GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL)); +} + +/** + * GoaIdentityServiceObjectSkeleton: + * + * The #GoaIdentityServiceObjectSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaIdentityServiceObjectSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #GoaIdentityServiceObjectSkeleton. + */ + +static void +goa_identity_service_object_skeleton__goa_identity_service_object_iface_init (GoaIdentityServiceObjectIface *iface G_GNUC_UNUSED) +{ +} + + +static void +goa_identity_service_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = goa_identity_service_object_notify; + iface->interface_removed = goa_identity_service_object_notify; +} + +G_DEFINE_TYPE_WITH_CODE (GoaIdentityServiceObjectSkeleton, goa_identity_service_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON, + G_IMPLEMENT_INTERFACE (GOA_IDENTITY_SERVICE_TYPE_OBJECT, goa_identity_service_object_skeleton__goa_identity_service_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, goa_identity_service_object_skeleton__g_dbus_object_iface_init)) + +static void +goa_identity_service_object_skeleton_init (GoaIdentityServiceObjectSkeleton *object G_GNUC_UNUSED) +{ +} + +static void +goa_identity_service_object_skeleton_set_property (GObject *gobject, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GoaIdentityServiceObjectSkeleton *object = GOA_IDENTITY_SERVICE_OBJECT_SKELETON (gobject); + GDBusInterfaceSkeleton *interface; + + switch (prop_id) + { + case 1: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IDENTITY_SERVICE_IS_MANAGER (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.Identity.Manager"); + } + break; + + case 2: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (GOA_IDENTITY_SERVICE_IS_IDENTITY (interface)); + g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface); + } + else + { + g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.gnome.Identity"); + } + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +goa_identity_service_object_skeleton_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GoaIdentityServiceObjectSkeleton *object = GOA_IDENTITY_SERVICE_OBJECT_SKELETON (gobject); + GDBusInterface *interface; + + switch (prop_id) + { + case 1: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity.Manager"); + g_value_take_object (value, interface); + break; + + case 2: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.gnome.Identity"); + g_value_take_object (value, interface); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +goa_identity_service_object_skeleton_class_init (GoaIdentityServiceObjectSkeletonClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = goa_identity_service_object_skeleton_set_property; + gobject_class->get_property = goa_identity_service_object_skeleton_get_property; + + g_object_class_override_property (gobject_class, 1, "manager"); + g_object_class_override_property (gobject_class, 2, "identity"); +} + +/** + * goa_identity_service_object_skeleton_new: + * @object_path: An object path. + * + * Creates a new skeleton object. + * + * Returns: (transfer full): The skeleton object. + */ +GoaIdentityServiceObjectSkeleton * +goa_identity_service_object_skeleton_new (const gchar *object_path) +{ + g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); + return GOA_IDENTITY_SERVICE_OBJECT_SKELETON (g_object_new (GOA_IDENTITY_SERVICE_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL)); +} + +/** + * goa_identity_service_object_skeleton_set_manager: + * @object: A #GoaIdentityServiceObjectSkeleton. + * @interface_: (nullable): A #GoaIdentityServiceManager or %NULL to clear the interface. + * + * Sets the #GoaIdentityServiceManager instance for the D-Bus interface org.gnome.Identity.Manager on @object. + */ +void goa_identity_service_object_skeleton_set_manager (GoaIdentityServiceObjectSkeleton *object, GoaIdentityServiceManager *interface_) +{ + g_object_set (G_OBJECT (object), "manager", interface_, NULL); +} + +/** + * goa_identity_service_object_skeleton_set_identity: + * @object: A #GoaIdentityServiceObjectSkeleton. + * @interface_: (nullable): A #GoaIdentityServiceIdentity or %NULL to clear the interface. + * + * Sets the #GoaIdentityServiceIdentity instance for the D-Bus interface org.gnome.Identity on @object. + */ +void goa_identity_service_object_skeleton_set_identity (GoaIdentityServiceObjectSkeleton *object, GoaIdentityServiceIdentity *interface_) +{ + g_object_set (G_OBJECT (object), "identity", interface_, NULL); +} + + +/* ------------------------------------------------------------------------ + * Code for ObjectManager client + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:GoaIdentityServiceObjectManagerClient + * @title: GoaIdentityServiceObjectManagerClient + * @short_description: Generated GDBusObjectManagerClient type + * + * This section contains a #GDBusObjectManagerClient that uses goa_identity_service_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. + */ + +/** + * GoaIdentityServiceObjectManagerClient: + * + * The #GoaIdentityServiceObjectManagerClient structure contains only private data and should only be accessed using the provided API. + */ + +/** + * GoaIdentityServiceObjectManagerClientClass: + * @parent_class: The parent class. + * + * Class structure for #GoaIdentityServiceObjectManagerClient. + */ + +G_DEFINE_TYPE (GoaIdentityServiceObjectManagerClient, goa_identity_service_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT) + +static void +goa_identity_service_object_manager_client_init (GoaIdentityServiceObjectManagerClient *manager G_GNUC_UNUSED) +{ +} + +static void +goa_identity_service_object_manager_client_class_init (GoaIdentityServiceObjectManagerClientClass *klass G_GNUC_UNUSED) +{ +} + +/** + * goa_identity_service_object_manager_client_get_proxy_type: + * @manager: A #GDBusObjectManagerClient. + * @object_path: The object path of the remote object (unused). + * @interface_name: (nullable): Interface name of the remote object or %NULL to get the object proxy #GType. + * @user_data: User data (unused). + * + * A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy derived and #GDBusProxy derived types. + * + * Returns: A #GDBusProxy derived #GType if @interface_name is not %NULL, otherwise the #GType for #GoaIdentityServiceObjectProxy. + */ +GType +goa_identity_service_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, gpointer user_data G_GNUC_UNUSED) +{ + static gsize once_init_value = 0; + static GHashTable *lookup_hash; + GType ret; + + if (interface_name == NULL) + return GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY; + if (g_once_init_enter (&once_init_value)) + { + lookup_hash = g_hash_table_new (g_str_hash, g_str_equal); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.Identity.Manager", GSIZE_TO_POINTER (GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.gnome.Identity", GSIZE_TO_POINTER (GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY)); + g_once_init_leave (&once_init_value, 1); + } + ret = (GType) GPOINTER_TO_SIZE (g_hash_table_lookup (lookup_hash, interface_name)); + if (ret == (GType) 0) + ret = G_TYPE_DBUS_PROXY; + return ret; +} + +/** + * goa_identity_service_object_manager_client_new: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Asynchronously creates #GDBusObjectManagerClient using goa_identity_service_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_object_manager_client_new_finish() to get the result of the operation. + * + * See goa_identity_service_object_manager_client_new_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_identity_service_object_manager_client_new ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", goa_identity_service_object_manager_client_get_proxy_type, NULL); +} + +/** + * goa_identity_service_object_manager_client_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_object_manager_client_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_identity_service_object_manager_client_new(). + * + * Returns: (transfer full) (type GoaIdentityServiceObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_identity_service_object_manager_client_new_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + +/** + * goa_identity_service_object_manager_client_new_sync: + * @connection: A #GDBusConnection. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Synchronously creates #GDBusObjectManagerClient using goa_identity_service_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See goa_identity_service_object_manager_client_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaIdentityServiceObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_identity_service_object_manager_client_new_sync ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", goa_identity_service_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + +/** + * goa_identity_service_object_manager_client_new_for_bus: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @callback: A #GAsyncReadyCallback to call when the request is satisfied. + * @user_data: User data to pass to @callback. + * + * Like goa_identity_service_object_manager_client_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call goa_identity_service_object_manager_client_new_for_bus_finish() to get the result of the operation. + * + * See goa_identity_service_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +goa_identity_service_object_manager_client_new_for_bus ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_async_initable_new_async (GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", goa_identity_service_object_manager_client_get_proxy_type, NULL); +} + +/** + * goa_identity_service_object_manager_client_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to goa_identity_service_object_manager_client_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with goa_identity_service_object_manager_client_new_for_bus(). + * + * Returns: (transfer full) (type GoaIdentityServiceObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_identity_service_object_manager_client_new_for_bus_finish ( + GAsyncResult *res, + GError **error) +{ + GObject *ret; + GObject *source_object; + source_object = g_async_result_get_source_object (res); + ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error); + g_object_unref (source_object); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + +/** + * goa_identity_service_object_manager_client_new_for_bus_sync: + * @bus_type: A #GBusType. + * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration. + * @name: A bus name (well-known or unique). + * @object_path: An object path. + * @cancellable: (nullable): A #GCancellable or %NULL. + * @error: Return location for error or %NULL + * + * Like goa_identity_service_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See goa_identity_service_object_manager_client_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type GoaIdentityServiceObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +goa_identity_service_object_manager_client_new_for_bus_sync ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", goa_identity_service_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + diff --git a/src/goaidentity/org.gnome.Identity.h b/src/goaidentity/org.gnome.Identity.h new file mode 100644 index 0000000..d380091 --- /dev/null +++ b/src/goaidentity/org.gnome.Identity.h @@ -0,0 +1,550 @@ +/* + * Generated by gdbus-codegen 2.56.4. DO NOT EDIT. + * + * The license of this code is the same as for the D-Bus interface description + * it was derived from. + */ + +#ifndef __ORG_GNOME_IDENTITY_H__ +#define __ORG_GNOME_IDENTITY_H__ + +#include + +G_BEGIN_DECLS + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.Identity.Manager */ + +#define GOA_IDENTITY_SERVICE_TYPE_MANAGER (goa_identity_service_manager_get_type ()) +#define GOA_IDENTITY_SERVICE_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER, GoaIdentityServiceManager)) +#define GOA_IDENTITY_SERVICE_IS_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER)) +#define GOA_IDENTITY_SERVICE_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER, GoaIdentityServiceManagerIface)) + +struct _GoaIdentityServiceManager; +typedef struct _GoaIdentityServiceManager GoaIdentityServiceManager; +typedef struct _GoaIdentityServiceManagerIface GoaIdentityServiceManagerIface; + +struct _GoaIdentityServiceManagerIface +{ + GTypeInterface parent_iface; + + gboolean (*handle_exchange_secret_keys) ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_identifier, + const gchar *arg_input_key); + + gboolean (*handle_sign_in) ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_identifier, + GVariant *arg_details); + + gboolean (*handle_sign_out) ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_identity); + +}; + +GType goa_identity_service_manager_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_identity_service_manager_interface_info (void); +guint goa_identity_service_manager_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void goa_identity_service_manager_complete_exchange_secret_keys ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation, + const gchar *output_key); + +void goa_identity_service_manager_complete_sign_in ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation, + const gchar *identity_object_path); + +void goa_identity_service_manager_complete_sign_out ( + GoaIdentityServiceManager *object, + GDBusMethodInvocation *invocation); + + + +/* D-Bus method calls: */ +void goa_identity_service_manager_call_exchange_secret_keys ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + const gchar *arg_input_key, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_identity_service_manager_call_exchange_secret_keys_finish ( + GoaIdentityServiceManager *proxy, + gchar **out_output_key, + GAsyncResult *res, + GError **error); + +gboolean goa_identity_service_manager_call_exchange_secret_keys_sync ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + const gchar *arg_input_key, + gchar **out_output_key, + GCancellable *cancellable, + GError **error); + +void goa_identity_service_manager_call_sign_in ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + GVariant *arg_details, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_identity_service_manager_call_sign_in_finish ( + GoaIdentityServiceManager *proxy, + gchar **out_identity_object_path, + GAsyncResult *res, + GError **error); + +gboolean goa_identity_service_manager_call_sign_in_sync ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identifier, + GVariant *arg_details, + gchar **out_identity_object_path, + GCancellable *cancellable, + GError **error); + +void goa_identity_service_manager_call_sign_out ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identity, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean goa_identity_service_manager_call_sign_out_finish ( + GoaIdentityServiceManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean goa_identity_service_manager_call_sign_out_sync ( + GoaIdentityServiceManager *proxy, + const gchar *arg_identity, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY (goa_identity_service_manager_proxy_get_type ()) +#define GOA_IDENTITY_SERVICE_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, GoaIdentityServiceManagerProxy)) +#define GOA_IDENTITY_SERVICE_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, GoaIdentityServiceManagerProxyClass)) +#define GOA_IDENTITY_SERVICE_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY, GoaIdentityServiceManagerProxyClass)) +#define GOA_IDENTITY_SERVICE_IS_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY)) +#define GOA_IDENTITY_SERVICE_IS_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_IDENTITY_SERVICE_TYPE_MANAGER_PROXY)) + +typedef struct _GoaIdentityServiceManagerProxy GoaIdentityServiceManagerProxy; +typedef struct _GoaIdentityServiceManagerProxyClass GoaIdentityServiceManagerProxyClass; +typedef struct _GoaIdentityServiceManagerProxyPrivate GoaIdentityServiceManagerProxyPrivate; + +struct _GoaIdentityServiceManagerProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaIdentityServiceManagerProxyPrivate *priv; +}; + +struct _GoaIdentityServiceManagerProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_identity_service_manager_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaIdentityServiceManagerProxy, g_object_unref) +#endif + +void goa_identity_service_manager_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaIdentityServiceManager *goa_identity_service_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaIdentityServiceManager *goa_identity_service_manager_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_identity_service_manager_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaIdentityServiceManager *goa_identity_service_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaIdentityServiceManager *goa_identity_service_manager_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON (goa_identity_service_manager_skeleton_get_type ()) +#define GOA_IDENTITY_SERVICE_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON, GoaIdentityServiceManagerSkeleton)) +#define GOA_IDENTITY_SERVICE_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON, GoaIdentityServiceManagerSkeletonClass)) +#define GOA_IDENTITY_SERVICE_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON, GoaIdentityServiceManagerSkeletonClass)) +#define GOA_IDENTITY_SERVICE_IS_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON)) +#define GOA_IDENTITY_SERVICE_IS_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_IDENTITY_SERVICE_TYPE_MANAGER_SKELETON)) + +typedef struct _GoaIdentityServiceManagerSkeleton GoaIdentityServiceManagerSkeleton; +typedef struct _GoaIdentityServiceManagerSkeletonClass GoaIdentityServiceManagerSkeletonClass; +typedef struct _GoaIdentityServiceManagerSkeletonPrivate GoaIdentityServiceManagerSkeletonPrivate; + +struct _GoaIdentityServiceManagerSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaIdentityServiceManagerSkeletonPrivate *priv; +}; + +struct _GoaIdentityServiceManagerSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_identity_service_manager_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaIdentityServiceManagerSkeleton, g_object_unref) +#endif + +GoaIdentityServiceManager *goa_identity_service_manager_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.gnome.Identity */ + +#define GOA_IDENTITY_SERVICE_TYPE_IDENTITY (goa_identity_service_identity_get_type ()) +#define GOA_IDENTITY_SERVICE_IDENTITY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY, GoaIdentityServiceIdentity)) +#define GOA_IDENTITY_SERVICE_IS_IDENTITY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY)) +#define GOA_IDENTITY_SERVICE_IDENTITY_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY, GoaIdentityServiceIdentityIface)) + +struct _GoaIdentityServiceIdentity; +typedef struct _GoaIdentityServiceIdentity GoaIdentityServiceIdentity; +typedef struct _GoaIdentityServiceIdentityIface GoaIdentityServiceIdentityIface; + +struct _GoaIdentityServiceIdentityIface +{ + GTypeInterface parent_iface; + + gint64 (*get_expiration_timestamp) (GoaIdentityServiceIdentity *object); + + const gchar * (*get_identifier) (GoaIdentityServiceIdentity *object); + + gboolean (*get_is_signed_in) (GoaIdentityServiceIdentity *object); + +}; + +GType goa_identity_service_identity_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *goa_identity_service_identity_interface_info (void); +guint goa_identity_service_identity_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus property accessors: */ +const gchar *goa_identity_service_identity_get_identifier (GoaIdentityServiceIdentity *object); +gchar *goa_identity_service_identity_dup_identifier (GoaIdentityServiceIdentity *object); +void goa_identity_service_identity_set_identifier (GoaIdentityServiceIdentity *object, const gchar *value); + +gint64 goa_identity_service_identity_get_expiration_timestamp (GoaIdentityServiceIdentity *object); +void goa_identity_service_identity_set_expiration_timestamp (GoaIdentityServiceIdentity *object, gint64 value); + +gboolean goa_identity_service_identity_get_is_signed_in (GoaIdentityServiceIdentity *object); +void goa_identity_service_identity_set_is_signed_in (GoaIdentityServiceIdentity *object, gboolean value); + + +/* ---- */ + +#define GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY (goa_identity_service_identity_proxy_get_type ()) +#define GOA_IDENTITY_SERVICE_IDENTITY_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, GoaIdentityServiceIdentityProxy)) +#define GOA_IDENTITY_SERVICE_IDENTITY_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, GoaIdentityServiceIdentityProxyClass)) +#define GOA_IDENTITY_SERVICE_IDENTITY_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY, GoaIdentityServiceIdentityProxyClass)) +#define GOA_IDENTITY_SERVICE_IS_IDENTITY_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY)) +#define GOA_IDENTITY_SERVICE_IS_IDENTITY_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_PROXY)) + +typedef struct _GoaIdentityServiceIdentityProxy GoaIdentityServiceIdentityProxy; +typedef struct _GoaIdentityServiceIdentityProxyClass GoaIdentityServiceIdentityProxyClass; +typedef struct _GoaIdentityServiceIdentityProxyPrivate GoaIdentityServiceIdentityProxyPrivate; + +struct _GoaIdentityServiceIdentityProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + GoaIdentityServiceIdentityProxyPrivate *priv; +}; + +struct _GoaIdentityServiceIdentityProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType goa_identity_service_identity_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaIdentityServiceIdentityProxy, g_object_unref) +#endif + +void goa_identity_service_identity_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaIdentityServiceIdentity *goa_identity_service_identity_proxy_new_finish ( + GAsyncResult *res, + GError **error); +GoaIdentityServiceIdentity *goa_identity_service_identity_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_identity_service_identity_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GoaIdentityServiceIdentity *goa_identity_service_identity_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GoaIdentityServiceIdentity *goa_identity_service_identity_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON (goa_identity_service_identity_skeleton_get_type ()) +#define GOA_IDENTITY_SERVICE_IDENTITY_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON, GoaIdentityServiceIdentitySkeleton)) +#define GOA_IDENTITY_SERVICE_IDENTITY_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON, GoaIdentityServiceIdentitySkeletonClass)) +#define GOA_IDENTITY_SERVICE_IDENTITY_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON, GoaIdentityServiceIdentitySkeletonClass)) +#define GOA_IDENTITY_SERVICE_IS_IDENTITY_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON)) +#define GOA_IDENTITY_SERVICE_IS_IDENTITY_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_IDENTITY_SERVICE_TYPE_IDENTITY_SKELETON)) + +typedef struct _GoaIdentityServiceIdentitySkeleton GoaIdentityServiceIdentitySkeleton; +typedef struct _GoaIdentityServiceIdentitySkeletonClass GoaIdentityServiceIdentitySkeletonClass; +typedef struct _GoaIdentityServiceIdentitySkeletonPrivate GoaIdentityServiceIdentitySkeletonPrivate; + +struct _GoaIdentityServiceIdentitySkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + GoaIdentityServiceIdentitySkeletonPrivate *priv; +}; + +struct _GoaIdentityServiceIdentitySkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType goa_identity_service_identity_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaIdentityServiceIdentitySkeleton, g_object_unref) +#endif + +GoaIdentityServiceIdentity *goa_identity_service_identity_skeleton_new (void); + + +/* ---- */ + +#define GOA_IDENTITY_SERVICE_TYPE_OBJECT (goa_identity_service_object_get_type ()) +#define GOA_IDENTITY_SERVICE_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT, GoaIdentityServiceObject)) +#define GOA_IDENTITY_SERVICE_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT)) +#define GOA_IDENTITY_SERVICE_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT, GoaIdentityServiceObject)) + +struct _GoaIdentityServiceObject; +typedef struct _GoaIdentityServiceObject GoaIdentityServiceObject; +typedef struct _GoaIdentityServiceObjectIface GoaIdentityServiceObjectIface; + +struct _GoaIdentityServiceObjectIface +{ + GTypeInterface parent_iface; +}; + +GType goa_identity_service_object_get_type (void) G_GNUC_CONST; + +GoaIdentityServiceManager *goa_identity_service_object_get_manager (GoaIdentityServiceObject *object); +GoaIdentityServiceIdentity *goa_identity_service_object_get_identity (GoaIdentityServiceObject *object); +GoaIdentityServiceManager *goa_identity_service_object_peek_manager (GoaIdentityServiceObject *object); +GoaIdentityServiceIdentity *goa_identity_service_object_peek_identity (GoaIdentityServiceObject *object); + +#define GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY (goa_identity_service_object_proxy_get_type ()) +#define GOA_IDENTITY_SERVICE_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY, GoaIdentityServiceObjectProxy)) +#define GOA_IDENTITY_SERVICE_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY, GoaIdentityServiceObjectProxyClass)) +#define GOA_IDENTITY_SERVICE_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY, GoaIdentityServiceObjectProxyClass)) +#define GOA_IDENTITY_SERVICE_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY)) +#define GOA_IDENTITY_SERVICE_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_IDENTITY_SERVICE_TYPE_OBJECT_PROXY)) + +typedef struct _GoaIdentityServiceObjectProxy GoaIdentityServiceObjectProxy; +typedef struct _GoaIdentityServiceObjectProxyClass GoaIdentityServiceObjectProxyClass; +typedef struct _GoaIdentityServiceObjectProxyPrivate GoaIdentityServiceObjectProxyPrivate; + +struct _GoaIdentityServiceObjectProxy +{ + /*< private >*/ + GDBusObjectProxy parent_instance; + GoaIdentityServiceObjectProxyPrivate *priv; +}; + +struct _GoaIdentityServiceObjectProxyClass +{ + GDBusObjectProxyClass parent_class; +}; + +GType goa_identity_service_object_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaIdentityServiceObjectProxy, g_object_unref) +#endif + +GoaIdentityServiceObjectProxy *goa_identity_service_object_proxy_new (GDBusConnection *connection, const gchar *object_path); + +#define GOA_IDENTITY_SERVICE_TYPE_OBJECT_SKELETON (goa_identity_service_object_skeleton_get_type ()) +#define GOA_IDENTITY_SERVICE_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_SKELETON, GoaIdentityServiceObjectSkeleton)) +#define GOA_IDENTITY_SERVICE_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_IDENTITY_SERVICE_TYPE_OBJECT_SKELETON, GoaIdentityServiceObjectSkeletonClass)) +#define GOA_IDENTITY_SERVICE_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_SKELETON, GoaIdentityServiceObjectSkeletonClass)) +#define GOA_IDENTITY_SERVICE_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_SKELETON)) +#define GOA_IDENTITY_SERVICE_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_IDENTITY_SERVICE_TYPE_OBJECT_SKELETON)) + +typedef struct _GoaIdentityServiceObjectSkeleton GoaIdentityServiceObjectSkeleton; +typedef struct _GoaIdentityServiceObjectSkeletonClass GoaIdentityServiceObjectSkeletonClass; +typedef struct _GoaIdentityServiceObjectSkeletonPrivate GoaIdentityServiceObjectSkeletonPrivate; + +struct _GoaIdentityServiceObjectSkeleton +{ + /*< private >*/ + GDBusObjectSkeleton parent_instance; + GoaIdentityServiceObjectSkeletonPrivate *priv; +}; + +struct _GoaIdentityServiceObjectSkeletonClass +{ + GDBusObjectSkeletonClass parent_class; +}; + +GType goa_identity_service_object_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaIdentityServiceObjectSkeleton, g_object_unref) +#endif + +GoaIdentityServiceObjectSkeleton *goa_identity_service_object_skeleton_new (const gchar *object_path); +void goa_identity_service_object_skeleton_set_manager (GoaIdentityServiceObjectSkeleton *object, GoaIdentityServiceManager *interface_); +void goa_identity_service_object_skeleton_set_identity (GoaIdentityServiceObjectSkeleton *object, GoaIdentityServiceIdentity *interface_); + +/* ---- */ + +#define GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT (goa_identity_service_object_manager_client_get_type ()) +#define GOA_IDENTITY_SERVICE_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT, GoaIdentityServiceObjectManagerClient)) +#define GOA_IDENTITY_SERVICE_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT, GoaIdentityServiceObjectManagerClientClass)) +#define GOA_IDENTITY_SERVICE_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT, GoaIdentityServiceObjectManagerClientClass)) +#define GOA_IDENTITY_SERVICE_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT)) +#define GOA_IDENTITY_SERVICE_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GOA_IDENTITY_SERVICE_TYPE_OBJECT_MANAGER_CLIENT)) + +typedef struct _GoaIdentityServiceObjectManagerClient GoaIdentityServiceObjectManagerClient; +typedef struct _GoaIdentityServiceObjectManagerClientClass GoaIdentityServiceObjectManagerClientClass; +typedef struct _GoaIdentityServiceObjectManagerClientPrivate GoaIdentityServiceObjectManagerClientPrivate; + +struct _GoaIdentityServiceObjectManagerClient +{ + /*< private >*/ + GDBusObjectManagerClient parent_instance; + GoaIdentityServiceObjectManagerClientPrivate *priv; +}; + +struct _GoaIdentityServiceObjectManagerClientClass +{ + GDBusObjectManagerClientClass parent_class; +}; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GoaIdentityServiceObjectManagerClient, g_object_unref) +#endif + +GType goa_identity_service_object_manager_client_get_type (void) G_GNUC_CONST; + +GType goa_identity_service_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); + +void goa_identity_service_object_manager_client_new ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDBusObjectManager *goa_identity_service_object_manager_client_new_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *goa_identity_service_object_manager_client_new_sync ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void goa_identity_service_object_manager_client_new_for_bus ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDBusObjectManager *goa_identity_service_object_manager_client_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *goa_identity_service_object_manager_client_new_for_bus_sync ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +G_END_DECLS + +#endif /* __ORG_GNOME_IDENTITY_H__ */ diff --git a/src/goaidentity/org.gnome.Identity.xml b/src/goaidentity/org.gnome.Identity.xml new file mode 100644 index 0000000..3857746 --- /dev/null +++ b/src/goaidentity/org.gnome.Identity.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/AUTHORS b/telepathy-account-widgets/AUTHORS new file mode 100644 index 0000000..565848b --- /dev/null +++ b/telepathy-account-widgets/AUTHORS @@ -0,0 +1,5 @@ +Mikael Hallendal +Richard Hult +Martyn Russell +Xavier Claessens +Guillaume Desmottes diff --git a/telepathy-account-widgets/CONTRIBUTORS b/telepathy-account-widgets/CONTRIBUTORS new file mode 100644 index 0000000..409252c --- /dev/null +++ b/telepathy-account-widgets/CONTRIBUTORS @@ -0,0 +1,29 @@ +Alban Crequy +Andreas Lööw +Aurelien Naldi +Bastien Nocera +Christoffer Olsen +Cosimo Cecchi +Elliot Fairweather +Frederic Crozat +Frederic Peters +Geert-Jan Van den Bogaerde +Guillaume Desmottes +Johan Hammar +Jonatan Magnusson +Jonny Lamb +Jordi Mallach +Kim Andersen +Marco Barisione +Mike Gratton +Ross Burton +Sjoerd Simons +Thomas Reynolds +Vincent Untz + +Andreas Nilsson +Vinicius Depizzol +K.Vishnoo Charan Reddy + +Milo Casagrande +Seth Dudenhofer diff --git a/telepathy-account-widgets/COPYING b/telepathy-account-widgets/COPYING new file mode 100644 index 0000000..602bfc9 --- /dev/null +++ b/telepathy-account-widgets/COPYING @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/telepathy-account-widgets/ChangeLog b/telepathy-account-widgets/ChangeLog new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/telepathy-account-widgets/ChangeLog diff --git a/telepathy-account-widgets/INSTALL b/telepathy-account-widgets/INSTALL new file mode 100644 index 0000000..8865734 --- /dev/null +++ b/telepathy-account-widgets/INSTALL @@ -0,0 +1,368 @@ +Installation Instructions +************************* + + Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software +Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command './configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the 'README' file for +instructions specific to this package. Some packages provide this +'INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The 'configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that +you can run in the future to recreate the current configuration, and a +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). + + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. Caching is disabled by +default to prevent problems with accidental use of stale cache files. + + If you need to do unusual things to compile the package, please try +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can +be considered for the next release. If you are using the cache, and at +some point 'config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You need 'configure.ac' if +you want to change it or regenerate 'configure' using a newer version of +'autoconf'. + + The simplest way to compile this package is: + + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. + + Running 'configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type 'make' to compile the package. + + 3. Optionally, type 'make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type 'make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the 'make install' phase executed with root + privileges. + + 5. Optionally, type 'make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior 'make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type 'make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide 'make + distcheck', which can by used by developers to test that all other + targets like 'make install' and 'make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the 'configure' script does not know about. Run './configure --help' +for details on some of the pertinent environment variables. + + You can give 'configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here is +an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU 'make'. 'cd' to the +directory where you want the object files and executables to go and run +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. This is known +as a "VPATH" build. + + With a non-GNU 'make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use 'make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the 'lipo' tool if you have problems. + +Installation Names +================== + + By default, 'make install' installs the package's commands under +'/usr/local/bin', include files under '/usr/local/include', etc. You +can specify an installation prefix other than '/usr/local' by giving +'configure' the option '--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option '--exec-prefix=PREFIX' to 'configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like '--bindir=DIR' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the default +for these options is expressed in terms of '${prefix}', so that +specifying just '--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to 'configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +'make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, 'make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +'${prefix}'. Any directories that were specified during 'configure', +but not in terms of '${prefix}', must each be overridden at install time +for the entire installation to be relocated. The approach of makefile +variable overrides for each directory variable is required by the GNU +Coding Standards, and ideally causes no recompilation. However, some +platforms have known limitations with the semantics of shared libraries +that end up requiring recompilation when using this method, particularly +noticeable in packages that use GNU Libtool. + + The second method involves providing the 'DESTDIR' variable. For +example, 'make install DESTDIR=/alternate/directory' will prepend +'/alternate/directory' before all installation names. The approach of +'DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of '${prefix}' +at 'configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. + + Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the +package recognizes. + + For packages that use the X Window System, 'configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of 'make' will be. For these packages, running './configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with 'make V=1'; while running './configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with 'make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX 'make' updates targets which have the same time stamps as their +prerequisites, which makes it generally unusable when shipped generated +files such as 'configure' are involved. Use GNU 'make' instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its '' header file. The option '-nodtk' can be used as a +workaround. If GNU CC is not installed, it is therefore recommended to +try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put '/usr/ucb' early in your 'PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in '/usr/bin'. So, if you need '/usr/ucb' +in your 'PATH', put it _after_ '/usr/bin'. + + On Haiku, software installed for all users goes in '/boot/common', +not '/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features 'configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, 'configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +'--build=TYPE' option. TYPE can either be a short name for the system +type, such as 'sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option '--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with '--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for 'configure' scripts to share, +you can create a site shell script called 'config.site' that gives +default values for variables like 'CC', 'cache_file', and 'prefix'. +'configure' looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to 'configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the 'configure' command line, using 'VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified 'gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an +Autoconf limitation. Until the limitation is lifted, you can use this +workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +'configure' Invocation +====================== + + 'configure' recognizes the following options to control how it +operates. + +'--help' +'-h' + Print a summary of all of the options to 'configure', and exit. + +'--help=short' +'--help=recursive' + Print a summary of the options unique to this package's + 'configure', and exit. The 'short' variant lists options used only + in the top level, while the 'recursive' variant lists options also + present in any nested packages. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' + script, and exit. + +'--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally 'config.cache'. FILE defaults to '/dev/null' to + disable caching. + +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to '/dev/null' (any error + messages will still be shown). + +'--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + 'configure' can determine that directory automatically. + +'--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: for + more details, including other options available for fine-tuning the + installation locations. + +'--no-create' +'-n' + Run the configure checks, but stop before creating any output + files. + +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff --git a/telepathy-account-widgets/Makefile.am b/telepathy-account-widgets/Makefile.am new file mode 100644 index 0000000..b295e41 --- /dev/null +++ b/telepathy-account-widgets/Makefile.am @@ -0,0 +1,12 @@ +SUBDIRS = tools po data tp-account-widgets + +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +DISTCHECK_CONFIGURE_FLAGS = \ + --disable-schemas-install + +EXTRA_DIST = \ + CONTRIBUTORS \ + README \ + autogen.sh \ + $(NULL) diff --git a/telepathy-account-widgets/Makefile.in b/telepathy-account-widgets/Makefile.in new file mode 100644 index 0000000..573cf10 --- /dev/null +++ b/telepathy-account-widgets/Makefile.in @@ -0,0 +1,881 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/as-compiler-flag.m4 \ + $(top_srcdir)/m4/gsettings.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tpaw-args.m4 \ + $(top_srcdir)/m4/tpaw-valgrind.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = telepathy-account-widgets-uninstalled.pc +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/telepathy-account-widgets-uninstalled.pc.in AUTHORS \ + COPYING ChangeLog INSTALL NEWS README compile config.guess \ + config.sub install-sh ltmain.sh missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz +DIST_TARGETS = dist-xz +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACCOUNTS_APPLICATION_FILES_DIR = @ACCOUNTS_APPLICATION_FILES_DIR@ +ACCOUNTS_APP_PLUGIN_DIR = @ACCOUNTS_APP_PLUGIN_DIR@ +ACCOUNTS_PROVIDER_FILES_DIR = @ACCOUNTS_PROVIDER_FILES_DIR@ +ACCOUNTS_PROVIDER_PLUGIN_DIR = @ACCOUNTS_PROVIDER_PLUGIN_DIR@ +ACCOUNTS_SERVICE_FILES_DIR = @ACCOUNTS_SERVICE_FILES_DIR@ +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHEESE_CFLAGS = @CHEESE_CFLAGS@ +CHEESE_LIBS = @CHEESE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_CODING_STYLE_CHECKS = @ENABLE_CODING_STYLE_CHECKS@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMSGFMT = @GMSGFMT@ +GOBJECT_QUERY = @GOBJECT_QUERY@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MISSION_CONTROL_PLUGINS_DIR = @MISSION_CONTROL_PLUGINS_DIR@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +REQUIRE_CHEESE = @REQUIRE_CHEESE@ +REQUIRE_UDEV = @REQUIRE_UDEV@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TPAW_UOA_PROVIDER = @TPAW_UOA_PROVIDER@ +UDEV_CFLAGS = @UDEV_CFLAGS@ +UDEV_LIBS = @UDEV_LIBS@ +UOA_CFLAGS = @UOA_CFLAGS@ +UOA_LIBS = @UOA_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +icondir = @icondir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +real_pkgdatadir = @real_pkgdatadir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = tools po data tp-account-widgets +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} +DISTCHECK_CONFIGURE_FLAGS = \ + --disable-schemas-install + +EXTRA_DIST = \ + CONTRIBUTORS \ + README \ + autogen.sh \ + $(NULL) + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +telepathy-account-widgets-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/telepathy-account-widgets-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/telepathy-account-widgets/NEWS b/telepathy-account-widgets/NEWS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/telepathy-account-widgets/NEWS diff --git a/telepathy-account-widgets/README b/telepathy-account-widgets/README new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/telepathy-account-widgets/README diff --git a/telepathy-account-widgets/aclocal.m4 b/telepathy-account-widgets/aclocal.m4 new file mode 100644 index 0000000..2c91403 --- /dev/null +++ b/telepathy-account-widgets/aclocal.m4 @@ -0,0 +1,1754 @@ +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Configure paths for GLIB +# Owen Taylor 1997-2001 + +# Increment this whenever this file is changed. +#serial 1 + +dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) +dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject, +dnl gthread, or gio is specified in MODULES, pass to pkg-config +dnl +AC_DEFUN([AM_PATH_GLIB_2_0], +[dnl +dnl Get the cflags and libraries from pkg-config +dnl +AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], + , enable_glibtest=yes) + + pkg_config_args=glib-2.0 + for module in . $4 + do + case "$module" in + gmodule) + pkg_config_args="$pkg_config_args gmodule-2.0" + ;; + gmodule-no-export) + pkg_config_args="$pkg_config_args gmodule-no-export-2.0" + ;; + gobject) + pkg_config_args="$pkg_config_args gobject-2.0" + ;; + gthread) + pkg_config_args="$pkg_config_args gthread-2.0" + ;; + gio*) + pkg_config_args="$pkg_config_args $module-2.0" + ;; + esac + done + + PKG_PROG_PKG_CONFIG([0.16]) + + no_glib="" + + if test "x$PKG_CONFIG" = x ; then + no_glib=yes + PKG_CONFIG=no + fi + + min_glib_version=ifelse([$1], ,2.0.0,$1) + AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) + + if test x$PKG_CONFIG != xno ; then + ## don't try to run the test against uninstalled libtool libs + if $PKG_CONFIG --uninstalled $pkg_config_args; then + echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" + enable_glibtest=no + fi + + if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then + : + else + no_glib=yes + fi + fi + + if test x"$no_glib" = x ; then + GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` + GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` + GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` + GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0` + + GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` + GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` + glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_glibtest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$GLIB_LIBS $LIBS" +dnl +dnl Now check if the installed GLIB is sufficiently new. (Also sanity +dnl checks the results of pkg-config to some extent) +dnl + rm -f conf.glibtest + AC_TRY_RUN([ +#include +#include +#include + +int +main (void) +{ + unsigned int major, minor, micro; + + fclose (fopen ("conf.glibtest", "w")); + + if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_glib_version"); + exit(1); + } + + if ((glib_major_version != $glib_config_major_version) || + (glib_minor_version != $glib_config_minor_version) || + (glib_micro_version != $glib_config_micro_version)) + { + printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", + $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, + glib_major_version, glib_minor_version, glib_micro_version); + printf ("*** was found! If pkg-config was correct, then it is best\n"); + printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); + printf("*** required on your system.\n"); + printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); + printf("*** to point to the correct configuration files\n"); + } + else if ((glib_major_version != GLIB_MAJOR_VERSION) || + (glib_minor_version != GLIB_MINOR_VERSION) || + (glib_micro_version != GLIB_MICRO_VERSION)) + { + printf("*** GLIB header files (version %d.%d.%d) do not match\n", + GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); + printf("*** library (version %d.%d.%d)\n", + glib_major_version, glib_minor_version, glib_micro_version); + } + else + { + if ((glib_major_version > major) || + ((glib_major_version == major) && (glib_minor_version > minor)) || + ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n", + glib_major_version, glib_minor_version, glib_micro_version); + printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n", + major, minor, micro); + printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); + printf("*** correct copy of pkg-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + } + return 1; +} +],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_glib" = x ; then + AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$PKG_CONFIG" = "no" ; then + echo "*** A new enough version of pkg-config was not found." + echo "*** See http://www.freedesktop.org/software/pkgconfig/" + else + if test -f conf.glibtest ; then + : + else + echo "*** Could not run GLIB test program, checking why..." + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$LIBS $GLIB_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GLIB or finding the wrong" + echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means GLIB is incorrectly installed."]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + GLIB_CFLAGS="" + GLIB_LIBS="" + GLIB_GENMARSHAL="" + GOBJECT_QUERY="" + GLIB_MKENUMS="" + GLIB_COMPILE_RESOURCES="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(GLIB_CFLAGS) + AC_SUBST(GLIB_LIBS) + AC_SUBST(GLIB_GENMARSHAL) + AC_SUBST(GOBJECT_QUERY) + AC_SUBST(GLIB_MKENUMS) + AC_SUBST(GLIB_COMPILE_RESOURCES) + rm -f conf.glibtest +]) + +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software +dnl Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 11 (pkg-config-0.29.1) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + +# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/as-compiler-flag.m4]) +m4_include([m4/gsettings.m4]) +m4_include([m4/intltool.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/tpaw-args.m4]) +m4_include([m4/tpaw-valgrind.m4]) diff --git a/telepathy-account-widgets/autogen.sh b/telepathy-account-widgets/autogen.sh new file mode 100755 index 0000000..57e74ec --- /dev/null +++ b/telepathy-account-widgets/autogen.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +PKG_NAME="telepathy-account-widgets" +REQUIRED_AUTOMAKE_VERSION=1.9 + +(test -f $srcdir/configure.ac) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level gnome directory" + exit 1 +} + +which gnome-autogen.sh || { + echo "You need to install gnome-common from the GNOME GIT" + exit 1 +} + +for arg in $*; do + case $arg in + --no-configure) + export NOCONFIGURE=1 + ;; + *) + ;; + esac +done + +USE_GNOME2_MACROS=1 USE_COMMON_DOC_BUILD=yes . gnome-autogen.sh diff --git a/telepathy-account-widgets/compile b/telepathy-account-widgets/compile new file mode 100755 index 0000000..de0005d --- /dev/null +++ b/telepathy-account-widgets/compile @@ -0,0 +1,348 @@ +#!/bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/telepathy-account-widgets/config.guess b/telepathy-account-widgets/config.guess new file mode 100755 index 0000000..717b228 --- /dev/null +++ b/telepathy-account-widgets/config.guess @@ -0,0 +1,1476 @@ +#!/bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2017 Free Software Foundation, Inc. + +timestamp='2017-08-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2017 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; + *:Redox:*:*) + echo ${UNAME_MACHINE}-unknown-redox + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = hppa2.0w ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +cat >&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/telepathy-account-widgets/config.h.in b/telepathy-account-widgets/config.h.in new file mode 100644 index 0000000..f84a214 --- /dev/null +++ b/telepathy-account-widgets/config.h.in @@ -0,0 +1,106 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Enable debug code */ +#undef ENABLE_DEBUG + +/* Enable GSettings schema */ +#undef ENABLE_SETTINGS + +/* Prevent post 3.4 APIs */ +#undef GDK_VERSION_MAX_ALLOWED + +/* Ignore post 3.4 deprecations */ +#undef GDK_VERSION_MIN_REQUIRED + +/* Gettext package name */ +#undef GETTEXT_PACKAGE + +/* Prevent post 2.34 APIs */ +#undef GLIB_VERSION_MAX_ALLOWED + +/* Ignore post 2.30 deprecations */ +#undef GLIB_VERSION_MIN_REQUIRED + +/* Define to 1 to enable cheese webcam support */ +#undef HAVE_CHEESE + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define if you have gudev */ +#undef HAVE_UDEV + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 to build Ubuntu Online Accounts plugins */ +#undef HAVE_UOA + +/* Define if valgrind should be used */ +#undef HAVE_VALGRIND + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Name of provider for accounts imported from libaccounts */ +#undef TPAW_UOA_PROVIDER + +/* Disable single include header */ +#undef TP_DISABLE_SINGLE_INCLUDE + +/* Prevent to use sealed variables */ +#undef TP_SEAL_ENABLE + +/* Prevent post 0.22 APIs */ +#undef TP_VERSION_MAX_ALLOWED + +/* Ignore post 0.22 deprecations */ +#undef TP_VERSION_MIN_REQUIRED + +/* Define to 1 if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING diff --git a/telepathy-account-widgets/config.sub b/telepathy-account-widgets/config.sub new file mode 100755 index 0000000..f4bafc1 --- /dev/null +++ b/telepathy-account-widgets/config.sub @@ -0,0 +1,1836 @@ +#!/bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2017 Free Software Foundation, Inc. + +timestamp='2017-04-02' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2017 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + wasm32) + basic_machine=wasm32-unknown + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + pru-*) + os=-elf + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/telepathy-account-widgets/configure b/telepathy-account-widgets/configure new file mode 100755 index 0000000..33ac6e9 --- /dev/null +++ b/telepathy-account-widgets/configure @@ -0,0 +1,17837 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for telepathy-account-widgets 0.1. +# +# Report bugs to < http://bugzilla.gnome.org/browse.cgi?product=empathy>. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +# +# +# Copyright (C) 2003-2007 Imendio AB +# Copyright (C) 2007-2013 Collabora Ltd. +# +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://bugzilla.gnome.org/browse.cgi?product=empathy +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='telepathy-account-widgets' +PACKAGE_TARNAME='telepathy-account-widgets' +PACKAGE_VERSION='0.1' +PACKAGE_STRING='telepathy-account-widgets 0.1' +PACKAGE_BUGREPORT=' http://bugzilla.gnome.org/browse.cgi?product=empathy' +PACKAGE_URL='' + +ac_unique_file="configure.ac" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +ENABLE_CODING_STYLE_CHECKS +MISSION_CONTROL_PLUGINS_DIR +HAVE_UOA_FALSE +HAVE_UOA_TRUE +ACCOUNTS_APPLICATION_FILES_DIR +ACCOUNTS_SERVICE_FILES_DIR +ACCOUNTS_PROVIDER_FILES_DIR +ACCOUNTS_APP_PLUGIN_DIR +ACCOUNTS_PROVIDER_PLUGIN_DIR +UOA_LIBS +UOA_CFLAGS +REQUIRE_CHEESE +BUILD_CHEESE_FALSE +BUILD_CHEESE_TRUE +CHEESE_LIBS +CHEESE_CFLAGS +REQUIRE_UDEV +HAVE_UDEV_FALSE +HAVE_UDEV_TRUE +UDEV_LIBS +UDEV_CFLAGS +GETTEXT_PACKAGE +ALL_LINGUAS +INTLTOOL_PERL +GMSGFMT +MSGFMT +MSGMERGE +XGETTEXT +INTLTOOL_POLICY_RULE +INTLTOOL_SERVICE_RULE +INTLTOOL_THEME_RULE +INTLTOOL_SCHEMAS_RULE +INTLTOOL_CAVES_RULE +INTLTOOL_XML_NOMERGE_RULE +INTLTOOL_XML_RULE +INTLTOOL_KBD_RULE +INTLTOOL_XAM_RULE +INTLTOOL_UI_RULE +INTLTOOL_SOUNDLIST_RULE +INTLTOOL_SHEET_RULE +INTLTOOL_SERVER_RULE +INTLTOOL_PONG_RULE +INTLTOOL_OAF_RULE +INTLTOOL_PROP_RULE +INTLTOOL_KEYS_RULE +INTLTOOL_DIRECTORY_RULE +INTLTOOL_DESKTOP_RULE +intltool__v_merge_options_0 +intltool__v_merge_options_ +INTLTOOL_V_MERGE_OPTIONS +INTLTOOL__v_MERGE_0 +INTLTOOL__v_MERGE_ +INTLTOOL_V_MERGE +INTLTOOL_EXTRACT +INTLTOOL_MERGE +INTLTOOL_UPDATE +USE_NLS +TPAW_UOA_PROVIDER +TPAW_LIBS +TPAW_CFLAGS +ENABLE_SETTINGS_FALSE +ENABLE_SETTINGS_TRUE +icondir +real_pkgdatadir +ERROR_CFLAGS +HAVE_VALGRIND_FALSE +HAVE_VALGRIND_TRUE +VALGRIND_PATH +VALGRIND_LIBS +VALGRIND_CFLAGS +GSETTINGS_RULES +GLIB_COMPILE_SCHEMAS +gsettingsschemadir +GSETTINGS_DISABLE_SCHEMAS_COMPILE +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +X_EXTRA_LIBS +X_LIBS +X_PRE_LIBS +X_CFLAGS +XMKMF +GLIB_COMPILE_RESOURCES +GLIB_MKENUMS +GOBJECT_QUERY +GLIB_GENMARSHAL +GLIB_LIBS +GLIB_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_unreleased_checks +enable_silent_rules +enable_dependency_tracking +enable_glibtest +with_x +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_schemas_compile +enable_valgrind +enable_Werror +enable_gprof +with_pkgdatadir +with_icondir +enable_settings +enable_debug +enable_nls +with_gettext_package +enable_gudev +with_cheese +enable_ubuntu_online_accounts +enable_coding_style_checks +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +XMKMF +LT_SYS_LIBRARY_PATH +VALGRIND_CFLAGS +VALGRIND_LIBS +TPAW_CFLAGS +TPAW_LIBS +UDEV_CFLAGS +UDEV_LIBS +CHEESE_CFLAGS +CHEESE_LIBS +UOA_CFLAGS +UOA_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures telepathy-account-widgets 0.1 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root + [DATAROOTDIR/doc/telepathy-account-widgets] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of telepathy-account-widgets 0.1:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-unreleased-checks=[no/yes] + enable extra checks for unreleased versions + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --disable-glibtest do not try to compile and run a test GLIB program + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-schemas-compile + Disable regeneration of gschemas.compiled on install + --enable-valgrind enable valgrind checking and run-time detection + --disable-Werror compile without -Werror (normally enabled in + development builds) + --enable-gprof=[no/yes] build with support for gprof + --disable-settings compile without installing GSettings schema + --disable-debug compile without debug code + --disable-nls do not use Native Language Support + --enable-gudev=[no/yes/auto] + build with gudev support + --enable-ubuntu-online-accounts=[no/yes/auto] + build Ubuntu Online Accounts plugins + --disable-coding-style-checks + do not check coding style using grep + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-x use the X Window System + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-pkgdatadir set a different directory where to install data + files + --with-icondir set a different directory where to install icons + --with-gettext-package set a different GETTEXT_PACKAGE to avoid conflicts + --with-cheese enable cheese webcam support + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + XMKMF Path to xmkmf, Makefile generator for X Window System + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + VALGRIND_CFLAGS + C compiler flags for VALGRIND, overriding pkg-config + VALGRIND_LIBS + linker flags for VALGRIND, overriding pkg-config + TPAW_CFLAGS C compiler flags for TPAW, overriding pkg-config + TPAW_LIBS linker flags for TPAW, overriding pkg-config + UDEV_CFLAGS C compiler flags for UDEV, overriding pkg-config + UDEV_LIBS linker flags for UDEV, overriding pkg-config + CHEESE_CFLAGS + C compiler flags for CHEESE, overriding pkg-config + CHEESE_LIBS linker flags for CHEESE, overriding pkg-config + UOA_CFLAGS C compiler flags for UOA, overriding pkg-config + UOA_LIBS linker flags for UOA, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to < http://bugzilla.gnome.org/browse.cgi?product=empathy>. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +telepathy-account-widgets configure 0.1 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. + + + Copyright (C) 2003-2007 Imendio AB + Copyright (C) 2007-2013 Collabora Ltd. + +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by telepathy-account-widgets $as_me 0.1, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +# Minimal version required + +# Hard deps +GLIB_REQUIRED=2.33.3 + +$as_echo "#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_30" >>confdefs.h + + +$as_echo "#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_34" >>confdefs.h + + +GTK_REQUIRED=3.5.1 + +$as_echo "#define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_4" >>confdefs.h + + +$as_echo "#define GDK_VERSION_MAX_ALLOWED GDK_VERSION_3_4" >>confdefs.h + + +TELEPATHY_GLIB_REQUIRED=0.22.0 + +$as_echo "#define TP_VERSION_MIN_REQUIRED TP_VERSION_0_22" >>confdefs.h + + +$as_echo "#define TP_VERSION_MAX_ALLOWED TP_VERSION_0_22" >>confdefs.h + + +$as_echo "#define TP_SEAL_ENABLE 1" >>confdefs.h + + +$as_echo "#define TP_DISABLE_SINGLE_INCLUDE 1" >>confdefs.h + + +LIBSECRET_REQUIRED=0.5 + +# Optional deps +LIBACCOUNTS_REQUIRED=1.4 +LIBSIGNON_REQUIRED=1.8 +MC_PLUGINS_REQUIRED=5.13.1 + +# Enable extra flags for warnings if this is an unreleased version. +# Check whether --enable-unreleased_checks was given. +if test "${enable_unreleased_checks+set}" = set; then : + enableval=$enable_unreleased_checks; +else + enable_unreleased_checks=no +fi + + +# Use --enable-maintainer-mode to disable deprecated symbols, +# disable single include and enable GSEAL. +# If this is not a released tp-account-widgets, maintainer mode is forced. +# FIXME: don't disable deprecated symbols until bgo #636654 has been fixed +#if test "x$enable_unreleased_checks" = "xyes" ; then +# enable_maintainer_mode="yes" +#fi +#GNOME_MAINTAINER_MODE_DEFINES + + +ac_config_headers="$ac_config_headers config.h" + + +ac_aux_dir= +for ac_dir in . "$srcdir"/.; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in . \"$srcdir\"/." "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +am__api_version='1.15' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='telepathy-account-widgets' + VERSION='0.1' + + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test $am_uid -le $am_max_uid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test $am_gid -le $am_max_gid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + + +# Support silent build rules. Disable +# by either passing --disable-silent-rules to configure or passing V=1 +# to make +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +# Check for programs +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + + +# Check whether --enable-glibtest was given. +if test "${enable_glibtest+set}" = set; then : + enableval=$enable_glibtest; +else + enable_glibtest=yes +fi + + + pkg_config_args=glib-2.0 + for module in . + do + case "$module" in + gmodule) + pkg_config_args="$pkg_config_args gmodule-2.0" + ;; + gmodule-no-export) + pkg_config_args="$pkg_config_args gmodule-no-export-2.0" + ;; + gobject) + pkg_config_args="$pkg_config_args gobject-2.0" + ;; + gthread) + pkg_config_args="$pkg_config_args gthread-2.0" + ;; + gio*) + pkg_config_args="$pkg_config_args $module-2.0" + ;; + esac + done + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + no_glib="" + + if test "x$PKG_CONFIG" = x ; then + no_glib=yes + PKG_CONFIG=no + fi + + min_glib_version=2.0.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB - version >= $min_glib_version" >&5 +$as_echo_n "checking for GLIB - version >= $min_glib_version... " >&6; } + + if test x$PKG_CONFIG != xno ; then + ## don't try to run the test against uninstalled libtool libs + if $PKG_CONFIG --uninstalled $pkg_config_args; then + echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" + enable_glibtest=no + fi + + if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then + : + else + no_glib=yes + fi + fi + + if test x"$no_glib" = x ; then + GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` + GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` + GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` + GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0` + + GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` + GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` + glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` + glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` + glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` + if test "x$enable_glibtest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$GLIB_LIBS $LIBS" + rm -f conf.glibtest + if test "$cross_compiling" = yes; then : + echo $ac_n "cross compiling; assumed OK... $ac_c" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int +main (void) +{ + unsigned int major, minor, micro; + + fclose (fopen ("conf.glibtest", "w")); + + if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_glib_version"); + exit(1); + } + + if ((glib_major_version != $glib_config_major_version) || + (glib_minor_version != $glib_config_minor_version) || + (glib_micro_version != $glib_config_micro_version)) + { + printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", + $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, + glib_major_version, glib_minor_version, glib_micro_version); + printf ("*** was found! If pkg-config was correct, then it is best\n"); + printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); + printf("*** required on your system.\n"); + printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); + printf("*** to point to the correct configuration files\n"); + } + else if ((glib_major_version != GLIB_MAJOR_VERSION) || + (glib_minor_version != GLIB_MINOR_VERSION) || + (glib_micro_version != GLIB_MICRO_VERSION)) + { + printf("*** GLIB header files (version %d.%d.%d) do not match\n", + GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); + printf("*** library (version %d.%d.%d)\n", + glib_major_version, glib_minor_version, glib_micro_version); + } + else + { + if ((glib_major_version > major) || + ((glib_major_version == major) && (glib_minor_version > minor)) || + ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n", + glib_major_version, glib_minor_version, glib_micro_version); + printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n", + major, minor, micro); + printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); + printf("*** correct copy of pkg-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + } + return 1; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + no_glib=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_glib" = x ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5 +$as_echo "yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6; } + : + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "$PKG_CONFIG" = "no" ; then + echo "*** A new enough version of pkg-config was not found." + echo "*** See http://www.freedesktop.org/software/pkgconfig/" + else + if test -f conf.glibtest ; then + : + else + echo "*** Could not run GLIB test program, checking why..." + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$LIBS $GLIB_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ + return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GLIB or finding the wrong" + echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" +else + echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means GLIB is incorrectly installed." +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + GLIB_CFLAGS="" + GLIB_LIBS="" + GLIB_GENMARSHAL="" + GOBJECT_QUERY="" + GLIB_MKENUMS="" + GLIB_COMPILE_RESOURCES="" + : + fi + + + + + + + rm -f conf.glibtest + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } + + +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : + $as_echo_n "(cached) " >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= +else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac +fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = xyes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if ${ac_cv_lib_socket_connect+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = xyes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = xyes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if ${ac_cv_lib_posix_remove+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = xyes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if ${ac_cv_lib_ipc_shmat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + +# Initialize libtool + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.25 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + + + # Check whether --enable-schemas-compile was given. +if test "${enable_schemas_compile+set}" = set; then : + enableval=$enable_schemas_compile; case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;; + esac +fi + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + gsettingsschemadir=${datadir}/glib-2.0/schemas + + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + # Extract the first word of "glib-compile-schemas", so it can be a program name with args. +set dummy glib-compile-schemas; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GLIB_COMPILE_SCHEMAS in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS +if test -n "$GLIB_COMPILE_SCHEMAS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5 +$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5 + else + : + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch $@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" $^ > $@.tmp && mv $@.tmp $@ +endif +' + + + + + + + +GLIB_COMPILE_RESOURCES=`$PKG_CONFIG gio-2.0 --variable=glib_compile_resources` + +GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal` + + + + # Check whether --enable-valgrind was given. +if test "${enable_valgrind+set}" = set; then : + enableval=$enable_valgrind; + case "${enableval}" in + yes|no) enable="${enableval}" ;; + *) as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;; + esac + +else + enable=no +fi + + + + enable=$enable + if test -n "2.1"; then + valgrind_req=2.1 + else + valgrind_req="2.1" + fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 +$as_echo_n "checking for VALGRIND... " >&6; } + +if test -n "$VALGRIND_CFLAGS"; then + pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind > \"\$valgrind_req\"\""; } >&5 + ($PKG_CONFIG --exists --print-errors "valgrind > "$valgrind_req"") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind > "$valgrind_req"" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$VALGRIND_LIBS"; then + pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind > \"\$valgrind_req\"\""; } >&5 + ($PKG_CONFIG --exists --print-errors "valgrind > "$valgrind_req"") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind > "$valgrind_req"" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "valgrind > "$valgrind_req"" 2>&1` + else + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "valgrind > "$valgrind_req"" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$VALGRIND_PKG_ERRORS" >&5 + + have_valgrind_runtime="no" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_valgrind_runtime="no" +else + VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS + VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_valgrind_runtime="yes" +fi + + # Extract the first word of "valgrind", so it can be a program name with args. +set dummy valgrind; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_VALGRIND_PATH+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $VALGRIND_PATH in + [\\/]* | ?:[\\/]*) + ac_cv_path_VALGRIND_PATH="$VALGRIND_PATH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_VALGRIND_PATH="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +VALGRIND_PATH=$ac_cv_path_VALGRIND_PATH +if test -n "$VALGRIND_PATH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND_PATH" >&5 +$as_echo "$VALGRIND_PATH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + # Compile the instrumentation for valgrind only if the valgrind + # libraries are installed and the valgrind executable is found + if test "x$enable" = xyes && + test "$have_valgrind_runtime" = yes && + test -n "$VALGRIND_PATH" ; + then + +$as_echo "#define HAVE_VALGRIND 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: using compile-time instrumentation for valgrind" >&5 +$as_echo "$as_me: using compile-time instrumentation for valgrind" >&6;} + fi + + + + + if test -n "$VALGRIND_PATH"; then + HAVE_VALGRIND_TRUE= + HAVE_VALGRIND_FALSE='#' +else + HAVE_VALGRIND_TRUE='#' + HAVE_VALGRIND_FALSE= +fi + + + + + +# ----------------------------------------------------------- +# Error flags +# ----------------------------------------------------------- + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wall" >&5 +$as_echo_n "checking to see if compiler understands -Wall... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wall" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="-Wall" + true + else + ERROR_CFLAGS="" + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Werror" >&5 +$as_echo_n "checking to see if compiler understands -Werror... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + werror=yes + true + else + werror=no + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + +# Check whether --enable-Werror was given. +if test "${enable_Werror+set}" = set; then : + enableval=$enable_Werror; werror=$enableval +else + : +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wextra" >&5 +$as_echo_n "checking to see if compiler understands -Wextra... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wextra" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + wextra=yes + true + else + wextra=no + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wno-missing-field-initializers" >&5 +$as_echo_n "checking to see if compiler understands -Wno-missing-field-initializers... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wno-missing-field-initializers" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + wno_missing_field_initializers=yes + true + else + wno_missing_field_initializers=no + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wno-unused-parameter" >&5 +$as_echo_n "checking to see if compiler understands -Wno-unused-parameter... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wno-unused-parameter" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + wno_unused_parameter=yes + true + else + wno_unused_parameter=no + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + +if test "x$enable_unreleased_checks" = "xyes"; then + if test x$werror = xyes; then + ERROR_CFLAGS="$ERROR_CFLAGS -Werror" + fi + if test x$wextra = xyes -a \ + x$wno_missing_field_initializers = xyes -a \ + x$wno_unused_parameter = xyes; then + ERROR_CFLAGS="$ERROR_CFLAGS -Wextra -Wno-missing-field-initializers -Wno-unused-parameter" + fi +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wdeclaration-after-statement" >&5 +$as_echo_n "checking to see if compiler understands -Wdeclaration-after-statement... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="$ERROR_CFLAGS -Wdeclaration-after-statement" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wshadow" >&5 +$as_echo_n "checking to see if compiler understands -Wshadow... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wshadow" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wmissing-prototypes" >&5 +$as_echo_n "checking to see if compiler understands -Wmissing-prototypes... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wmissing-prototypes" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-prototypes" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wmissing-declarations" >&5 +$as_echo_n "checking to see if compiler understands -Wmissing-declarations... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wmissing-declarations" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-declarations" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wstrict-prototypes" >&5 +$as_echo_n "checking to see if compiler understands -Wstrict-prototypes... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wstrict-prototypes" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="$ERROR_CFLAGS -Wstrict-prototypes" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + + +# Check whether --enable-gprof was given. +if test "${enable_gprof+set}" = set; then : + enableval=$enable_gprof; +else + enable_gprof=no +fi + +if test "x$enable_gprof" != "xno" ; then + CFLAGS="$CFLAGS -pg" + LDFLAGS="$LDFLAGS -pg" +fi + + + +# ----------------------------------------------------------- +# Allow to overwrite where to install data files +# ----------------------------------------------------------- + +# Check whether --with-pkgdatadir was given. +if test "${with_pkgdatadir+set}" = set; then : + withval=$with_pkgdatadir; +else + with_pkgdatadir= +fi + + +if test x"$with_pkgdatadir" != x"" ; then + real_pkgdatadir="${with_pkgdatadir}" +else + real_pkgdatadir="${datarootdir}/${PACKAGE_NAME}" +fi + + + +# Check whether --with-icondir was given. +if test "${with_icondir+set}" = set; then : + withval=$with_icondir; +else + with_icondir= +fi + + +if test x"$with_icondir" != x"" ; then + icondir="${with_icondir}" +else + icondir="${real_pkgdatadir}/icons" +fi + + +# ----------------------------------------------------------- +# Disable the installation of tp-aw's GSettings schema. +# This can be needed to avoid multiple components shipping +# the same schema. +# See https://bugzilla.gnome.org/show_bug.cgi?id=706801 +# ----------------------------------------------------------- +# Check whether --enable-settings was given. +if test "${enable_settings+set}" = set; then : + enableval=$enable_settings; enable_settings=$enableval +else + enable_settings=yes +fi + + +if test x$enable_settings = xyes; then + +$as_echo "#define ENABLE_SETTINGS /**/" >>confdefs.h + +fi + + if test "x$enable_settings" = "xyes"; then + ENABLE_SETTINGS_TRUE= + ENABLE_SETTINGS_FALSE='#' +else + ENABLE_SETTINGS_TRUE='#' + ENABLE_SETTINGS_FALSE= +fi + + +# ----------------------------------------------------------- +# Pkg-Config dependency checks +# ----------------------------------------------------------- + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TPAW" >&5 +$as_echo_n "checking for TPAW... " >&6; } + +if test -n "$TPAW_CFLAGS"; then + pkg_cv_TPAW_CFLAGS="$TPAW_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + dbus-glib-1 + glib-2.0 >= \$GLIB_REQUIRED + gio-2.0 >= \$GLIB_REQUIRED + libsecret-1 >= \$LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= \$TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= \$GTK_REQUIRED +\""; } >&5 + ($PKG_CONFIG --exists --print-errors " + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TPAW_CFLAGS=`$PKG_CONFIG --cflags " + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$TPAW_LIBS"; then + pkg_cv_TPAW_LIBS="$TPAW_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + dbus-glib-1 + glib-2.0 >= \$GLIB_REQUIRED + gio-2.0 >= \$GLIB_REQUIRED + libsecret-1 >= \$LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= \$TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= \$GTK_REQUIRED +\""; } >&5 + ($PKG_CONFIG --exists --print-errors " + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TPAW_LIBS=`$PKG_CONFIG --libs " + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + TPAW_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +" 2>&1` + else + TPAW_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$TPAW_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements ( + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +) were not met: + +$TPAW_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables TPAW_CFLAGS +and TPAW_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables TPAW_CFLAGS +and TPAW_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + TPAW_CFLAGS=$pkg_cv_TPAW_CFLAGS + TPAW_LIBS=$pkg_cv_TPAW_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +# ----------------------------------------------------------- +# UOA configuration bits +# ----------------------------------------------------------- +TPAW_UOA_PROVIDER="im.telepathy.Account.Storage.UOA" + +cat >>confdefs.h <<_ACEOF +#define TPAW_UOA_PROVIDER "$TPAW_UOA_PROVIDER" +_ACEOF + + + +# ----------------------------------------------------------- +# Enable debug +# ----------------------------------------------------------- + +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; enable_debug=$enableval +else + enable_debug=yes +fi + + +if test x$enable_debug = xyes; then + +$as_echo "#define ENABLE_DEBUG /**/" >>confdefs.h + +fi + +# ----------------------------------------------------------- +# Language Support +# ----------------------------------------------------------- + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + +case "$am__api_version" in + 1.01234) + as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.50.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "0.50.0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.50.0" >&5 +$as_echo_n "checking for intltool >= 0.50.0... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + as_fn_error $? "Your intltool is too old. You need intltool 0.50.0 or later." "$LINENO" 5 +fi + +# Extract the first word of "intltool-update", so it can be a program name with args. +set dummy intltool-update; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_UPDATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE +if test -n "$INTLTOOL_UPDATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-merge", so it can be a program name with args. +set dummy intltool-merge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_MERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE +if test -n "$INTLTOOL_MERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-extract", so it can be a program name with args. +set dummy intltool-extract; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_EXTRACT in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT +if test -n "$INTLTOOL_EXTRACT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi + + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' + + + + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' + + + + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Check the gettext tools to make sure they are GNU +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XGETTEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XGETTEXT=$ac_cv_path_XGETTEXT +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGMERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MSGMERGE=$ac_cv_path_MSGMERGE +if test -n "$MSGMERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MSGFMT=$ac_cv_path_MSGFMT +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi + +# Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL +if test -n "$INTLTOOL_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 +$as_echo "$INTLTOOL_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_PERL"; then + as_fn_error $? "perl not found" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 +$as_echo_n "checking for perl >= 5.8.1... " >&6; } +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 +$as_echo "$IT_PERL_VERSION" >&6; } +fi +if test "x" != "xno-xml"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 +$as_echo_n "checking for XML::Parser... " >&6; } + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } + else + as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile + + + + + + + +# Check whether --with-gettext-package was given. +if test "${with_gettext_package+set}" = set; then : + withval=$with_gettext_package; +else + with_gettext_package= +fi + + +if test -n "$with_gettext_package"; then + GETTEXT_PACKAGE="$with_gettext_package" +else + GETTEXT_PACKAGE=tpaw +fi + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + +# ----------------------------------------------------------- +# gudev +# ----------------------------------------------------------- +# Check whether --enable-gudev was given. +if test "${enable_gudev+set}" = set; then : + enableval=$enable_gudev; +else + enable_gudev=auto +fi + + +if test "x$enable_gudev" != "xno"; then + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UDEV" >&5 +$as_echo_n "checking for UDEV... " >&6; } + +if test -n "$UDEV_CFLAGS"; then + pkg_cv_UDEV_CFLAGS="$UDEV_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gudev-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gudev-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_UDEV_CFLAGS=`$PKG_CONFIG --cflags "gudev-1.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$UDEV_LIBS"; then + pkg_cv_UDEV_LIBS="$UDEV_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gudev-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gudev-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_UDEV_LIBS=`$PKG_CONFIG --libs "gudev-1.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + UDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gudev-1.0" 2>&1` + else + UDEV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gudev-1.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$UDEV_PKG_ERRORS" >&5 + + have_gudev="no" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_gudev="no" +else + UDEV_CFLAGS=$pkg_cv_UDEV_CFLAGS + UDEV_LIBS=$pkg_cv_UDEV_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_gudev="yes" +fi + + if test "x$have_gudev" = "xyes"; then + +$as_echo "#define HAVE_UDEV 1" >>confdefs.h + + fi +else + have_gudev=no +fi + +if test "x$enable_gudev" = "xyes" -a "x$have_gudev" != "xyes"; then + as_fn_error $? "Could not find gudev dependencies: + +$UDEV_PKG_ERRORS" "$LINENO" 5 +fi + if test "x$have_gudev" = "xyes"; then + HAVE_UDEV_TRUE= + HAVE_UDEV_FALSE='#' +else + HAVE_UDEV_TRUE='#' + HAVE_UDEV_FALSE= +fi + + +if test x${have_gudev} = x"yes" ; then + REQUIRE_UDEV=", gudev-1.0" +else + REQUIRE_UDEV="" +fi + + +# ----------------------------------------------------------- +# Cheese (optional dependency for avatar selection) +# ----------------------------------------------------------- + +# Check whether --with-cheese was given. +if test "${with_cheese+set}" = set; then : + withval=$with_cheese; +else + with_cheese=auto +fi + + +if test x"$with_cheese" != x"no" ; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHEESE" >&5 +$as_echo_n "checking for CHEESE... " >&6; } + +if test -n "$CHEESE_CFLAGS"; then + pkg_cv_CHEESE_CFLAGS="$CHEESE_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cheese-gtk >= CHEESE_GTK_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cheese-gtk >= CHEESE_GTK_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CHEESE_CFLAGS=`$PKG_CONFIG --cflags "cheese-gtk >= CHEESE_GTK_REQUIRED" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CHEESE_LIBS"; then + pkg_cv_CHEESE_LIBS="$CHEESE_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cheese-gtk >= CHEESE_GTK_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cheese-gtk >= CHEESE_GTK_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CHEESE_LIBS=`$PKG_CONFIG --libs "cheese-gtk >= CHEESE_GTK_REQUIRED" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CHEESE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cheese-gtk >= CHEESE_GTK_REQUIRED" 2>&1` + else + CHEESE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cheese-gtk >= CHEESE_GTK_REQUIRED" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CHEESE_PKG_ERRORS" >&5 + + have_cheese=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_cheese=no +else + CHEESE_CFLAGS=$pkg_cv_CHEESE_CFLAGS + CHEESE_LIBS=$pkg_cv_CHEESE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_cheese=yes +fi + if test x${have_cheese} = xyes; then + +$as_echo "#define HAVE_CHEESE 1" >>confdefs.h + + fi + if test x${with_cheese} = xyes && test x${have_cheese} = xno; then + as_fn_error $? "Cheese configured but not found: + +$CHEESE_PKG_ERRORS" "$LINENO" 5 + fi +else + have_cheese=no +fi + if test x${have_cheese} = xyes; then + BUILD_CHEESE_TRUE= + BUILD_CHEESE_FALSE='#' +else + BUILD_CHEESE_TRUE='#' + BUILD_CHEESE_FALSE= +fi + + +if test x${have_cheese} = x"yes" ; then + REQUIRE_CHEESE=", cheese-gtk" +else + REQUIRE_CHEESE="" +fi + + +# ----------------------------------------------------------- +# ubuntu-online-accounts support +# ----------------------------------------------------------- +# Check whether --enable-ubuntu-online-accounts was given. +if test "${enable_ubuntu_online_accounts+set}" = set; then : + enableval=$enable_ubuntu_online_accounts; +else + enable_ubuntu_online_accounts=auto +fi + + +if test "x$enable_ubuntu_online_accounts" != "xno"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UOA" >&5 +$as_echo_n "checking for UOA... " >&6; } + +if test -n "$UOA_CFLAGS"; then + pkg_cv_UOA_CFLAGS="$UOA_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + account-plugin + mission-control-plugins >= \$MC_PLUGINS_REQUIRED + libaccounts-glib >= \$LIBACCOUNTS_REQUIRED + libsignon-glib >= \$LIBSIGNON_REQUIRED + \""; } >&5 + ($PKG_CONFIG --exists --print-errors " + account-plugin + mission-control-plugins >= $MC_PLUGINS_REQUIRED + libaccounts-glib >= $LIBACCOUNTS_REQUIRED + libsignon-glib >= $LIBSIGNON_REQUIRED + ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_UOA_CFLAGS=`$PKG_CONFIG --cflags " + account-plugin + mission-control-plugins >= $MC_PLUGINS_REQUIRED + libaccounts-glib >= $LIBACCOUNTS_REQUIRED + libsignon-glib >= $LIBSIGNON_REQUIRED + " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$UOA_LIBS"; then + pkg_cv_UOA_LIBS="$UOA_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + account-plugin + mission-control-plugins >= \$MC_PLUGINS_REQUIRED + libaccounts-glib >= \$LIBACCOUNTS_REQUIRED + libsignon-glib >= \$LIBSIGNON_REQUIRED + \""; } >&5 + ($PKG_CONFIG --exists --print-errors " + account-plugin + mission-control-plugins >= $MC_PLUGINS_REQUIRED + libaccounts-glib >= $LIBACCOUNTS_REQUIRED + libsignon-glib >= $LIBSIGNON_REQUIRED + ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_UOA_LIBS=`$PKG_CONFIG --libs " + account-plugin + mission-control-plugins >= $MC_PLUGINS_REQUIRED + libaccounts-glib >= $LIBACCOUNTS_REQUIRED + libsignon-glib >= $LIBSIGNON_REQUIRED + " 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + UOA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " + account-plugin + mission-control-plugins >= $MC_PLUGINS_REQUIRED + libaccounts-glib >= $LIBACCOUNTS_REQUIRED + libsignon-glib >= $LIBSIGNON_REQUIRED + " 2>&1` + else + UOA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " + account-plugin + mission-control-plugins >= $MC_PLUGINS_REQUIRED + libaccounts-glib >= $LIBACCOUNTS_REQUIRED + libsignon-glib >= $LIBSIGNON_REQUIRED + " 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$UOA_PKG_ERRORS" >&5 + + have_uoa="no" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_uoa="no" +else + UOA_CFLAGS=$pkg_cv_UOA_CFLAGS + UOA_LIBS=$pkg_cv_UOA_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_uoa="yes" +fi + + # provider plugin dir + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Accounts provider plugin dir" >&5 +$as_echo_n "checking Accounts provider plugin dir... " >&6; } + ACCOUNTS_PROVIDER_PLUGIN_DIR=`$PKG_CONFIG --variable=provider_plugindir account-plugin` + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACCOUNTS_PROVIDER_PLUGIN_DIR" >&5 +$as_echo "$ACCOUNTS_PROVIDER_PLUGIN_DIR" >&6; } + + + # app plugin dir + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Accounts provider app plugin dir" >&5 +$as_echo_n "checking Accounts provider app plugin dir... " >&6; } + ACCOUNTS_APP_PLUGIN_DIR=`$PKG_CONFIG --variable=application_plugindir account-plugin` + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACCOUNTS_APP_PLUGIN_DIR" >&5 +$as_echo "$ACCOUNTS_APP_PLUGIN_DIR" >&6; } + + + # provider files dir + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Accounts provider files dir" >&5 +$as_echo_n "checking Accounts provider files dir... " >&6; } + ACCOUNTS_PROVIDER_FILES_DIR=`$PKG_CONFIG --variable=providerfilesdir libaccounts-glib` + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACCOUNTS_PROVIDER_FILES_DIR" >&5 +$as_echo "$ACCOUNTS_PROVIDER_FILES_DIR" >&6; } + + + # service files dir + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Accounts service files dir" >&5 +$as_echo_n "checking Accounts service files dir... " >&6; } + ACCOUNTS_SERVICE_FILES_DIR=`$PKG_CONFIG --variable=servicefilesdir libaccounts-glib` + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACCOUNTS_SERVICE_FILES_DIR" >&5 +$as_echo "$ACCOUNTS_SERVICE_FILES_DIR" >&6; } + + + # application files dir + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Accounts applications files dir" >&5 +$as_echo_n "checking Accounts applications files dir... " >&6; } + ACCOUNTS_APPLICATION_FILES_DIR=`$PKG_CONFIG --variable=applicationfilesdir libaccounts-glib` + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACCOUNTS_APPLICATION_FILES_DIR" >&5 +$as_echo "$ACCOUNTS_APPLICATION_FILES_DIR" >&6; } + + +else + have_uoa=no +fi + +if test "x$enable_ubuntu_online_accounts" = "xyes" -a "x$have_uoa" != "xyes"; then + as_fn_error $? "Could not find Ubuntu Online Accounts dependencies: + +$UOA_PKG_ERRORS" "$LINENO" 5 +fi + +if test "x$have_uoa" = "xyes"; then + +$as_echo "#define HAVE_UOA 1" >>confdefs.h + +fi + + if test "x$have_uoa" = "xyes"; then + HAVE_UOA_TRUE= + HAVE_UOA_FALSE='#' +else + HAVE_UOA_TRUE='#' + HAVE_UOA_FALSE= +fi + + +if test "x$have_uoa" = "xyes" -o "x$have_goa" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Mission Control plugins dir" >&5 +$as_echo_n "checking Mission Control plugins dir... " >&6; } + MISSION_CONTROL_PLUGINS_DIR=${libdir}/mission-control-plugins.`$PKG_CONFIG --variable=MCP_ABI_VERSION mission-control-plugins` + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MISSION_CONTROL_PLUGINS_DIR" >&5 +$as_echo "$MISSION_CONTROL_PLUGINS_DIR" >&6; } + +fi + +# ----------------------------------------------------------- +# Coding style checks +# ----------------------------------------------------------- +# Check whether --enable-coding-style-checks was given. +if test "${enable_coding_style_checks+set}" = set; then : + enableval=$enable_coding_style_checks; ENABLE_CODING_STYLE_CHECKS=$enableval +else + ENABLE_CODING_STYLE_CHECKS=yes +fi + + + +# ----------------------------------------------------------- + +ac_config_files="$ac_config_files Makefile telepathy-account-widgets-uninstalled.pc data/Makefile data/icons/Makefile po/Makefile.in tp-account-widgets/Makefile tools/Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_VALGRIND_TRUE}" && test -z "${HAVE_VALGRIND_FALSE}"; then + as_fn_error $? "conditional \"HAVE_VALGRIND\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_SETTINGS_TRUE}" && test -z "${ENABLE_SETTINGS_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_SETTINGS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + ac_config_commands="$ac_config_commands po/stamp-it" + + +if test -z "${HAVE_UDEV_TRUE}" && test -z "${HAVE_UDEV_FALSE}"; then + as_fn_error $? "conditional \"HAVE_UDEV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_CHEESE_TRUE}" && test -z "${BUILD_CHEESE_FALSE}"; then + as_fn_error $? "conditional \"BUILD_CHEESE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_UOA_TRUE}" && test -z "${HAVE_UOA_FALSE}"; then + as_fn_error $? "conditional \"HAVE_UOA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by telepathy-account-widgets $as_me 0.1, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to < http://bugzilla.gnome.org/browse.cgi?product=empathy>." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +telepathy-account-widgets config.status 0.1 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "telepathy-account-widgets-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES telepathy-account-widgets-uninstalled.pc" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "tp-account-widgets/Makefile") CONFIG_FILES="$CONFIG_FILES tp-account-widgets/Makefile" ;; + "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; + "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "po/stamp-it":C) + if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then + as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 + fi + rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" + >"po/stamp-it.tmp" + sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" + + sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r po/POTFILES + } + ' "po/Makefile.in" >"po/Makefile" + rm -f "po/Makefile.tmp" + mv "po/stamp-it.tmp" "po/stamp-it" + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +echo " +Configure summary: + + Compiler....................: ${CC} + Compiler Flags..............: ${CFLAGS} ${ERROR_CFLAGS} + Linker Flags................: ${LDFLAGS} + Prefix......................: ${prefix} + Data directory .............: ${real_pkgdatadir} + Icon directory .............: ${icondir} + GSettings schema support....: ${enable_settings} + Coding style checks.........: ${ENABLE_CODING_STYLE_CHECKS} + Unreleased version checks...: ${enable_unreleased_checks} + GETTEXT_PACKAGE.............: ${GETTEXT_PACKAGE} + + Features: + Cheese webcam support ......: ${have_cheese} + Camera monitoring...........: ${have_gudev} + Ubuntu Online plugins.......: ${have_uoa} +" diff --git a/telepathy-account-widgets/configure.ac b/telepathy-account-widgets/configure.ac new file mode 100644 index 0000000..9884e6b --- /dev/null +++ b/telepathy-account-widgets/configure.ac @@ -0,0 +1,414 @@ +AC_INIT([telepathy-account-widgets], + [0.1], dnl Version doesn't really make sense for a submodule + [http://bugzilla.gnome.org/browse.cgi?product=empathy]) + +AC_PREREQ([2.64]) +AC_COPYRIGHT([ + Copyright (C) 2003-2007 Imendio AB + Copyright (C) 2007-2013 Collabora Ltd. +]) + +# Minimal version required + +# Hard deps +GLIB_REQUIRED=2.33.3 +AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_30, [Ignore post 2.30 deprecations]) +AC_DEFINE(GLIB_VERSION_MAX_ALLOWED, GLIB_VERSION_2_34, [Prevent post 2.34 APIs]) + +GTK_REQUIRED=3.5.1 +AC_DEFINE(GDK_VERSION_MIN_REQUIRED, GDK_VERSION_3_4, [Ignore post 3.4 deprecations]) +AC_DEFINE(GDK_VERSION_MAX_ALLOWED, GDK_VERSION_3_4, [Prevent post 3.4 APIs]) + +TELEPATHY_GLIB_REQUIRED=0.22.0 +AC_DEFINE(TP_VERSION_MIN_REQUIRED, TP_VERSION_0_22, [Ignore post 0.22 deprecations]) +AC_DEFINE(TP_VERSION_MAX_ALLOWED, TP_VERSION_0_22, [Prevent post 0.22 APIs]) +AC_DEFINE(TP_SEAL_ENABLE, 1, [Prevent to use sealed variables]) +AC_DEFINE(TP_DISABLE_SINGLE_INCLUDE, 1, [Disable single include header]) + +LIBSECRET_REQUIRED=0.5 + +# Optional deps +LIBACCOUNTS_REQUIRED=1.4 +LIBSIGNON_REQUIRED=1.8 +MC_PLUGINS_REQUIRED=5.13.1 + +# Enable extra flags for warnings if this is an unreleased version. +AC_ARG_ENABLE(unreleased_checks, + AS_HELP_STRING([--enable-unreleased-checks=@<:@no/yes@:>@], + [enable extra checks for unreleased versions]),, + [enable_unreleased_checks=no]) + +# Use --enable-maintainer-mode to disable deprecated symbols, +# disable single include and enable GSEAL. +# If this is not a released tp-account-widgets, maintainer mode is forced. +# FIXME: don't disable deprecated symbols until bgo #636654 has been fixed +#if test "x$enable_unreleased_checks" = "xyes" ; then +# enable_maintainer_mode="yes" +#fi +#GNOME_MAINTAINER_MODE_DEFINES + +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_SRCDIR([configure.ac]) +AC_CONFIG_AUX_DIR(.) + +AM_INIT_AUTOMAKE([1.11 no-define -Wno-portability tar-ustar no-dist-gzip dist-xz]) + +# Support silent build rules. Disable +# by either passing --disable-silent-rules to configure or passing V=1 +# to make +AM_SILENT_RULES([yes]) + +# Check for programs +AC_PROG_CC +AC_HEADER_STDC +AC_PROG_MKDIR_P +AM_PATH_GLIB_2_0 +AC_PATH_XTRA + +# Initialize libtool +LT_PREREQ([2.2]) +LT_INIT + +PKG_PROG_PKG_CONFIG([0.25]) + +GLIB_GSETTINGS + +GLIB_COMPILE_RESOURCES=`$PKG_CONFIG gio-2.0 --variable=glib_compile_resources` +AC_SUBST(GLIB_COMPILE_RESOURCES) +GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal` +AC_SUBST(GLIB_GENMARSHAL) + +TPAW_ARG_VALGRIND + + +# ----------------------------------------------------------- +# Error flags +# ----------------------------------------------------------- +AS_COMPILER_FLAG(-Wall, ERROR_CFLAGS="-Wall", ERROR_CFLAGS="") +AS_COMPILER_FLAG(-Werror, werror=yes, werror=no) + +AC_ARG_ENABLE(Werror, + AS_HELP_STRING([--disable-Werror], + [compile without -Werror (normally enabled in development builds)]), + werror=$enableval, :) + +AS_COMPILER_FLAG(-Wextra, wextra=yes, wextra=no) +AS_COMPILER_FLAG(-Wno-missing-field-initializers, + wno_missing_field_initializers=yes, + wno_missing_field_initializers=no) +AS_COMPILER_FLAG(-Wno-unused-parameter, + wno_unused_parameter=yes, + wno_unused_parameter=no) + +if test "x$enable_unreleased_checks" = "xyes"; then + if test x$werror = xyes; then + ERROR_CFLAGS="$ERROR_CFLAGS -Werror" + fi + if test x$wextra = xyes -a \ + x$wno_missing_field_initializers = xyes -a \ + x$wno_unused_parameter = xyes; then + ERROR_CFLAGS="$ERROR_CFLAGS -Wextra -Wno-missing-field-initializers -Wno-unused-parameter" + fi +fi + +AS_COMPILER_FLAG(-Wdeclaration-after-statement, ERROR_CFLAGS="$ERROR_CFLAGS -Wdeclaration-after-statement") +AS_COMPILER_FLAG(-Wshadow, ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow") +AS_COMPILER_FLAG(-Wmissing-prototypes, ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-prototypes") +AS_COMPILER_FLAG(-Wmissing-declarations, ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-declarations") +AS_COMPILER_FLAG(-Wstrict-prototypes, ERROR_CFLAGS="$ERROR_CFLAGS -Wstrict-prototypes") + +AC_SUBST(ERROR_CFLAGS) + +AC_ARG_ENABLE(gprof, + AS_HELP_STRING([--enable-gprof=@<:@no/yes@:>@], + [build with support for gprof]),, + [enable_gprof=no]) +if test "x$enable_gprof" != "xno" ; then + CFLAGS="$CFLAGS -pg" + LDFLAGS="$LDFLAGS -pg" +fi + +AC_SUBST(LDFLAGS) + +# ----------------------------------------------------------- +# Allow to overwrite where to install data files +# ----------------------------------------------------------- +AC_ARG_WITH([pkgdatadir], + AS_HELP_STRING([--with-pkgdatadir], + [set a different directory where to install data files]),, + with_pkgdatadir=) + +if test x"$with_pkgdatadir" != x"" ; then + real_pkgdatadir="${with_pkgdatadir}" +else + real_pkgdatadir="${datarootdir}/${PACKAGE_NAME}" +fi +AC_SUBST(real_pkgdatadir) + +AC_ARG_WITH([icondir], + AS_HELP_STRING([--with-icondir], + [set a different directory where to install icons]),, + with_icondir=) + +if test x"$with_icondir" != x"" ; then + icondir="${with_icondir}" +else + icondir="${real_pkgdatadir}/icons" +fi +AC_SUBST(icondir) + +# ----------------------------------------------------------- +# Disable the installation of tp-aw's GSettings schema. +# This can be needed to avoid multiple components shipping +# the same schema. +# See https://bugzilla.gnome.org/show_bug.cgi?id=706801 +# ----------------------------------------------------------- +AC_ARG_ENABLE(settings, + AS_HELP_STRING([--disable-settings], + [compile without installing GSettings schema]), + enable_settings=$enableval, enable_settings=yes ) + +if test x$enable_settings = xyes; then + AC_DEFINE(ENABLE_SETTINGS, [], [Enable GSettings schema]) +fi + +AM_CONDITIONAL(ENABLE_SETTINGS, test "x$enable_settings" = "xyes") + +# ----------------------------------------------------------- +# Pkg-Config dependency checks +# ----------------------------------------------------------- + +PKG_CHECK_MODULES(TPAW, +[ + dbus-glib-1 + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED + gobject-2.0 + libxml-2.0 + telepathy-glib >= $TELEPATHY_GLIB_REQUIRED + gtk+-3.0 >= $GTK_REQUIRED +]) + +# ----------------------------------------------------------- +# UOA configuration bits +# ----------------------------------------------------------- +TPAW_UOA_PROVIDER="im.telepathy.Account.Storage.UOA" +AC_DEFINE_UNQUOTED(TPAW_UOA_PROVIDER, "$TPAW_UOA_PROVIDER", + [Name of provider for accounts imported from libaccounts]) +AC_SUBST(TPAW_UOA_PROVIDER) + +# ----------------------------------------------------------- +# Enable debug +# ----------------------------------------------------------- + +AC_ARG_ENABLE(debug, + AS_HELP_STRING([--disable-debug], + [compile without debug code]), + enable_debug=$enableval, enable_debug=yes ) + +if test x$enable_debug = xyes; then + AC_DEFINE(ENABLE_DEBUG, [], [Enable debug code]) +fi + +# ----------------------------------------------------------- +# Language Support +# ----------------------------------------------------------- +IT_PROG_INTLTOOL([0.50.0]) + +AC_ARG_WITH([gettext-package], + AS_HELP_STRING([--with-gettext-package], + [set a different GETTEXT_PACKAGE to avoid conflicts]),, + with_gettext_package=) + +if test -n "$with_gettext_package"; then + GETTEXT_PACKAGE="$with_gettext_package" +else + GETTEXT_PACKAGE=tpaw +fi +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name]) + +# ----------------------------------------------------------- +# gudev +# ----------------------------------------------------------- +AC_ARG_ENABLE(gudev, + AS_HELP_STRING([--enable-gudev=@<:@no/yes/auto@:>@], + [build with gudev support]), , + enable_gudev=auto) + +if test "x$enable_gudev" != "xno"; then + + PKG_CHECK_MODULES(UDEV, [gudev-1.0], + have_gudev="yes", have_gudev="no") + + if test "x$have_gudev" = "xyes"; then + AC_DEFINE(HAVE_UDEV, 1, [Define if you have gudev]) + fi +else + have_gudev=no +fi + +if test "x$enable_gudev" = "xyes" -a "x$have_gudev" != "xyes"; then + AC_MSG_ERROR([Could not find gudev dependencies: + +$UDEV_PKG_ERRORS]) +fi +AM_CONDITIONAL(HAVE_UDEV, test "x$have_gudev" = "xyes") + +if test x${have_gudev} = x"yes" ; then + REQUIRE_UDEV=", gudev-1.0" +else + REQUIRE_UDEV="" +fi +AC_SUBST(REQUIRE_UDEV) + +# ----------------------------------------------------------- +# Cheese (optional dependency for avatar selection) +# ----------------------------------------------------------- +AC_ARG_WITH([cheese], + AS_HELP_STRING([--with-cheese], + [enable cheese webcam support]),, + with_cheese=auto) + +if test x"$with_cheese" != x"no" ; then + PKG_CHECK_MODULES(CHEESE, cheese-gtk >= CHEESE_GTK_REQUIRED, [have_cheese=yes], [have_cheese=no]) + if test x${have_cheese} = xyes; then + AC_DEFINE(HAVE_CHEESE, 1, [Define to 1 to enable cheese webcam support]) + fi + if test x${with_cheese} = xyes && test x${have_cheese} = xno; then + AC_MSG_ERROR([Cheese configured but not found: + +$CHEESE_PKG_ERRORS]) + fi +else + have_cheese=no +fi +AM_CONDITIONAL(BUILD_CHEESE, test x${have_cheese} = xyes) + +if test x${have_cheese} = x"yes" ; then + REQUIRE_CHEESE=", cheese-gtk" +else + REQUIRE_CHEESE="" +fi +AC_SUBST(REQUIRE_CHEESE) + +# ----------------------------------------------------------- +# ubuntu-online-accounts support +# ----------------------------------------------------------- +AC_ARG_ENABLE(ubuntu-online-accounts, + AS_HELP_STRING([--enable-ubuntu-online-accounts=@<:@no/yes/auto@:>@], + [build Ubuntu Online Accounts plugins]), , + enable_ubuntu_online_accounts=auto) + +if test "x$enable_ubuntu_online_accounts" != "xno"; then + PKG_CHECK_MODULES(UOA, + [ + account-plugin + mission-control-plugins >= $MC_PLUGINS_REQUIRED + libaccounts-glib >= $LIBACCOUNTS_REQUIRED + libsignon-glib >= $LIBSIGNON_REQUIRED + ], have_uoa="yes", have_uoa="no") + + # provider plugin dir + AC_MSG_CHECKING([Accounts provider plugin dir]) + ACCOUNTS_PROVIDER_PLUGIN_DIR=`$PKG_CONFIG --variable=provider_plugindir account-plugin` + + AC_MSG_RESULT([$ACCOUNTS_PROVIDER_PLUGIN_DIR]) + AC_SUBST(ACCOUNTS_PROVIDER_PLUGIN_DIR) + + # app plugin dir + AC_MSG_CHECKING([Accounts provider app plugin dir]) + ACCOUNTS_APP_PLUGIN_DIR=`$PKG_CONFIG --variable=application_plugindir account-plugin` + + AC_MSG_RESULT([$ACCOUNTS_APP_PLUGIN_DIR]) + AC_SUBST(ACCOUNTS_APP_PLUGIN_DIR) + + # provider files dir + AC_MSG_CHECKING([Accounts provider files dir]) + ACCOUNTS_PROVIDER_FILES_DIR=`$PKG_CONFIG --variable=providerfilesdir libaccounts-glib` + + AC_MSG_RESULT([$ACCOUNTS_PROVIDER_FILES_DIR]) + AC_SUBST(ACCOUNTS_PROVIDER_FILES_DIR) + + # service files dir + AC_MSG_CHECKING([Accounts service files dir]) + ACCOUNTS_SERVICE_FILES_DIR=`$PKG_CONFIG --variable=servicefilesdir libaccounts-glib` + + AC_MSG_RESULT([$ACCOUNTS_SERVICE_FILES_DIR]) + AC_SUBST(ACCOUNTS_SERVICE_FILES_DIR) + + # application files dir + AC_MSG_CHECKING([Accounts applications files dir]) + ACCOUNTS_APPLICATION_FILES_DIR=`$PKG_CONFIG --variable=applicationfilesdir libaccounts-glib` + + AC_MSG_RESULT([$ACCOUNTS_APPLICATION_FILES_DIR]) + AC_SUBST(ACCOUNTS_APPLICATION_FILES_DIR) + +else + have_uoa=no +fi + +if test "x$enable_ubuntu_online_accounts" = "xyes" -a "x$have_uoa" != "xyes"; then + AC_MSG_ERROR([Could not find Ubuntu Online Accounts dependencies: + +$UOA_PKG_ERRORS]) +fi + +if test "x$have_uoa" = "xyes"; then + AC_DEFINE(HAVE_UOA, 1, [Define to 1 to build Ubuntu Online Accounts plugins]) +fi + +AM_CONDITIONAL(HAVE_UOA, test "x$have_uoa" = "xyes") + +if test "x$have_uoa" = "xyes" -o "x$have_goa" = "xyes"; then + AC_MSG_CHECKING([Mission Control plugins dir]) + MISSION_CONTROL_PLUGINS_DIR=${libdir}/mission-control-plugins.`$PKG_CONFIG --variable=MCP_ABI_VERSION mission-control-plugins` + + AC_MSG_RESULT([$MISSION_CONTROL_PLUGINS_DIR]) + AC_SUBST(MISSION_CONTROL_PLUGINS_DIR) +fi + +# ----------------------------------------------------------- +# Coding style checks +# ----------------------------------------------------------- +AC_ARG_ENABLE(coding-style-checks, + AS_HELP_STRING([--disable-coding-style-checks], + [do not check coding style using grep]), + [ENABLE_CODING_STYLE_CHECKS=$enableval], + [ENABLE_CODING_STYLE_CHECKS=yes]) + +AC_SUBST([ENABLE_CODING_STYLE_CHECKS]) +# ----------------------------------------------------------- + +AC_CONFIG_FILES([ + Makefile + telepathy-account-widgets-uninstalled.pc + data/Makefile + data/icons/Makefile + po/Makefile.in + tp-account-widgets/Makefile + tools/Makefile +]) +AC_OUTPUT + +echo " +Configure summary: + + Compiler....................: ${CC} + Compiler Flags..............: ${CFLAGS} ${ERROR_CFLAGS} + Linker Flags................: ${LDFLAGS} + Prefix......................: ${prefix} + Data directory .............: ${real_pkgdatadir} + Icon directory .............: ${icondir} + GSettings schema support....: ${enable_settings} + Coding style checks.........: ${ENABLE_CODING_STYLE_CHECKS} + Unreleased version checks...: ${enable_unreleased_checks} + GETTEXT_PACKAGE.............: ${GETTEXT_PACKAGE} + + Features: + Cheese webcam support ......: ${have_cheese} + Camera monitoring...........: ${have_gudev} + Ubuntu Online plugins.......: ${have_uoa} +" diff --git a/telepathy-account-widgets/data/Makefile.am b/telepathy-account-widgets/data/Makefile.am new file mode 100644 index 0000000..037672c --- /dev/null +++ b/telepathy-account-widgets/data/Makefile.am @@ -0,0 +1,30 @@ +SUBDIRS = icons + +gsettings_SCHEMAS_real = org.gnome.telepathy-account-widgets.gschema.xml + +if ENABLE_SETTINGS +gsettings_SCHEMAS = $(gsettings_SCHEMAS_real) +else +gsettings_SCHEMAS = +endif + +@GSETTINGS_RULES@ + +# We need to compile schemas at make time +# to run from source tree +gschemas.compiled: $(gsettings_SCHEMAS:.xml=.valid) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --targetdir=. . + +if ENABLE_SETTINGS +all-local: gschemas.compiled +endif + +EXTRA_DIST = \ + $(schemas_DATA) \ + $(gsettings_SCHEMAS_real) \ + $(NULL) + +DISTCLEANFILES = \ + $(schemas_DATA) \ + gschemas.compiled \ + $(NULL) diff --git a/telepathy-account-widgets/data/Makefile.in b/telepathy-account-widgets/data/Makefile.in new file mode 100644 index 0000000..416caa2 --- /dev/null +++ b/telepathy-account-widgets/data/Makefile.in @@ -0,0 +1,699 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/as-compiler-flag.m4 \ + $(top_srcdir)/m4/gsettings.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tpaw-args.m4 \ + $(top_srcdir)/m4/tpaw-valgrind.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACCOUNTS_APPLICATION_FILES_DIR = @ACCOUNTS_APPLICATION_FILES_DIR@ +ACCOUNTS_APP_PLUGIN_DIR = @ACCOUNTS_APP_PLUGIN_DIR@ +ACCOUNTS_PROVIDER_FILES_DIR = @ACCOUNTS_PROVIDER_FILES_DIR@ +ACCOUNTS_PROVIDER_PLUGIN_DIR = @ACCOUNTS_PROVIDER_PLUGIN_DIR@ +ACCOUNTS_SERVICE_FILES_DIR = @ACCOUNTS_SERVICE_FILES_DIR@ +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHEESE_CFLAGS = @CHEESE_CFLAGS@ +CHEESE_LIBS = @CHEESE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_CODING_STYLE_CHECKS = @ENABLE_CODING_STYLE_CHECKS@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMSGFMT = @GMSGFMT@ +GOBJECT_QUERY = @GOBJECT_QUERY@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MISSION_CONTROL_PLUGINS_DIR = @MISSION_CONTROL_PLUGINS_DIR@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +REQUIRE_CHEESE = @REQUIRE_CHEESE@ +REQUIRE_UDEV = @REQUIRE_UDEV@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TPAW_UOA_PROVIDER = @TPAW_UOA_PROVIDER@ +UDEV_CFLAGS = @UDEV_CFLAGS@ +UDEV_LIBS = @UDEV_LIBS@ +UOA_CFLAGS = @UOA_CFLAGS@ +UOA_LIBS = @UOA_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +icondir = @icondir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +real_pkgdatadir = @real_pkgdatadir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = icons +gsettings_SCHEMAS_real = org.gnome.telepathy-account-widgets.gschema.xml +@ENABLE_SETTINGS_FALSE@gsettings_SCHEMAS = +@ENABLE_SETTINGS_TRUE@gsettings_SCHEMAS = $(gsettings_SCHEMAS_real) +EXTRA_DIST = \ + $(schemas_DATA) \ + $(gsettings_SCHEMAS_real) \ + $(NULL) + +DISTCLEANFILES = \ + $(schemas_DATA) \ + gschemas.compiled \ + $(NULL) + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +@ENABLE_SETTINGS_FALSE@all-local: +all-am: Makefile all-local +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ + check check-am clean clean-generic clean-libtool cscopelist-am \ + ctags ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +@GSETTINGS_RULES@ + +# We need to compile schemas at make time +# to run from source tree +gschemas.compiled: $(gsettings_SCHEMAS:.xml=.valid) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --targetdir=. . + +@ENABLE_SETTINGS_TRUE@all-local: gschemas.compiled + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/telepathy-account-widgets/data/icons/Makefile.am b/telepathy-account-widgets/data/icons/Makefile.am new file mode 100644 index 0000000..2ee5ea9 --- /dev/null +++ b/telepathy-account-widgets/data/icons/Makefile.am @@ -0,0 +1,211 @@ +NULL = + +private_icons_themes = \ + hicolor \ + $(NULL) + +private_icons = \ + hicolor_apps_16x16_im-aim.png \ + hicolor_apps_16x16_im-ekiga.png \ + hicolor_apps_16x16_im-facebook.png \ + hicolor_apps_16x16_im-gizmo.png \ + hicolor_apps_16x16_im-google-talk.png \ + hicolor_apps_16x16_im-icq.png \ + hicolor_apps_16x16_im-irc.png \ + hicolor_apps_16x16_im-jabber.png \ + hicolor_apps_16x16_im-msn.png \ + hicolor_apps_16x16_im-silc.png \ + hicolor_apps_16x16_im-sip.png \ + hicolor_apps_16x16_im-local-xmpp.png \ + hicolor_apps_16x16_im-gadugadu.png \ + hicolor_apps_16x16_im-groupwise.png \ + hicolor_apps_16x16_im-qq.png \ + hicolor_apps_16x16_im-meanwhile.png \ + hicolor_apps_16x16_im-mxit.png \ + hicolor_apps_16x16_im-myspace.png \ + hicolor_apps_16x16_im-sametime.png \ + hicolor_apps_16x16_im-skype.png \ + hicolor_apps_16x16_im-yahoo.png \ + hicolor_apps_16x16_im-zephyr.png \ + hicolor_apps_22x22_im-aim.png \ + hicolor_apps_22x22_im-ekiga.png \ + hicolor_apps_22x22_im-facebook.png \ + hicolor_apps_22x22_im-gizmo.png \ + hicolor_apps_22x22_im-google-talk.png \ + hicolor_apps_22x22_im-icq.png \ + hicolor_apps_22x22_im-irc.png \ + hicolor_apps_22x22_im-jabber.png \ + hicolor_apps_22x22_im-msn.png \ + hicolor_apps_22x22_im-silc.png \ + hicolor_apps_22x22_im-sip.png \ + hicolor_apps_22x22_im-local-xmpp.png \ + hicolor_apps_22x22_im-gadugadu.png \ + hicolor_apps_22x22_im-groupwise.png \ + hicolor_apps_22x22_im-qq.png \ + hicolor_apps_22x22_im-meanwhile.png \ + hicolor_apps_22x22_im-mxit.png \ + hicolor_apps_22x22_im-myspace.png \ + hicolor_apps_22x22_im-sametime.png \ + hicolor_apps_22x22_im-skype.png \ + hicolor_apps_22x22_im-yahoo.png \ + hicolor_apps_22x22_im-zephyr.png \ + hicolor_apps_24x24_im-aim.png \ + hicolor_apps_24x24_im-ekiga.png \ + hicolor_apps_24x24_im-gizmo.png \ + hicolor_apps_24x24_im-google-talk.png \ + hicolor_apps_24x24_im-icq.png \ + hicolor_apps_24x24_im-irc.png \ + hicolor_apps_24x24_im-jabber.png \ + hicolor_apps_24x24_im-msn.png \ + hicolor_apps_24x24_im-silc.png \ + hicolor_apps_24x24_im-sip.png \ + hicolor_apps_24x24_im-local-xmpp.png \ + hicolor_apps_24x24_im-gadugadu.png \ + hicolor_apps_24x24_im-groupwise.png \ + hicolor_apps_24x24_im-qq.png \ + hicolor_apps_24x24_im-meanwhile.png \ + hicolor_apps_24x24_im-mxit.png \ + hicolor_apps_24x24_im-myspace.png \ + hicolor_apps_24x24_im-sametime.png \ + hicolor_apps_24x24_im-yahoo.png \ + hicolor_apps_24x24_im-zephyr.png \ + hicolor_apps_32x32_im-aim.png \ + hicolor_apps_32x32_im-ekiga.png \ + hicolor_apps_32x32_im-gizmo.png \ + hicolor_apps_32x32_im-google-talk.png \ + hicolor_apps_32x32_im-icq.png \ + hicolor_apps_32x32_im-irc.png \ + hicolor_apps_32x32_im-jabber.png \ + hicolor_apps_32x32_im-msn.png \ + hicolor_apps_32x32_im-silc.png \ + hicolor_apps_32x32_im-sip.png \ + hicolor_apps_32x32_im-local-xmpp.png \ + hicolor_apps_32x32_im-gadugadu.png \ + hicolor_apps_32x32_im-groupwise.png \ + hicolor_apps_32x32_im-qq.png \ + hicolor_apps_32x32_im-meanwhile.png \ + hicolor_apps_32x32_im-mxit.png \ + hicolor_apps_32x32_im-myspace.png \ + hicolor_apps_32x32_im-sametime.png \ + hicolor_apps_32x32_im-yahoo.png \ + hicolor_apps_32x32_im-zephyr.png \ + hicolor_apps_48x48_im-aim.png \ + hicolor_apps_48x48_im-ekiga.png \ + hicolor_apps_48x48_im-facebook.png \ + hicolor_apps_48x48_im-gizmo.png \ + hicolor_apps_48x48_im-google-talk.png \ + hicolor_apps_48x48_im-icq.png \ + hicolor_apps_48x48_im-irc.png \ + hicolor_apps_48x48_im-jabber.png \ + hicolor_apps_48x48_im-msn.png \ + hicolor_apps_48x48_im-silc.png \ + hicolor_apps_48x48_im-sip.png \ + hicolor_apps_48x48_im-local-xmpp.png \ + hicolor_apps_48x48_im-gadugadu.png \ + hicolor_apps_48x48_im-groupwise.png \ + hicolor_apps_48x48_im-qq.png \ + hicolor_apps_48x48_im-meanwhile.png \ + hicolor_apps_48x48_im-mxit.png \ + hicolor_apps_48x48_im-myspace.png \ + hicolor_apps_48x48_im-sametime.png \ + hicolor_apps_48x48_im-skype.png \ + hicolor_apps_48x48_im-yahoo.png \ + hicolor_apps_48x48_im-zephyr.png \ + hicolor_apps_scalable_im-aim.svg \ + hicolor_apps_scalable_im-ekiga.svg \ + hicolor_apps_scalable_im-gizmo.svg \ + hicolor_apps_scalable_im-google-talk.svg \ + hicolor_apps_scalable_im-icq.svg \ + hicolor_apps_scalable_im-irc.svg \ + hicolor_apps_scalable_im-jabber.svg \ + hicolor_apps_scalable_im-msn.svg \ + hicolor_apps_scalable_im-silc.svg \ + hicolor_apps_scalable_im-sip.svg \ + hicolor_apps_scalable_im-local-xmpp.svg \ + hicolor_apps_scalable_im-gadugadu.svg \ + hicolor_apps_scalable_im-groupwise.svg \ + hicolor_apps_scalable_im-qq.svg \ + hicolor_apps_scalable_im-meanwhile.svg \ + hicolor_apps_scalable_im-mxit.svg \ + hicolor_apps_scalable_im-myspace.svg \ + hicolor_apps_scalable_im-sametime.svg \ + hicolor_apps_scalable_im-yahoo.svg \ + hicolor_apps_scalable_im-zephyr.svg \ + $(NULL) + +EXTRA_DIST = \ + $(private_icons) \ + local-xmpp.svg \ + $(NULL) + +include $(srcdir)/utils.mk + +############################################################################### + +gtk_update_icon_cache = gtk-update-icon-cache -f -t + +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + for theme in $(private_icons_themes); do \ + $(gtk_update_icon_cache) $(icondir)/$$theme; \ + done; \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + for theme in $(private_icons_themes); do \ + echo "*** $(gtk_update_icon_cache) $(icondir)/$$theme"; \ + done; \ + fi + +install-icons: + for icon in $(private_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + mkdir -p $(DESTDIR)$(icondir)/$$THEME/$$SIZE/$$CONTEXT; \ + $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(icondir)/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done + +uninstall-icons: + for icon in $(private_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + rm -f $(DESTDIR)$(icondir)/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done + +install-data-local: + $(MAKE) install-icons + $(MAKE) update-icon-cache + +uninstall-local: + $(MAKE) uninstall-icons + $(MAKE) update-icon-cache + +# Local copy of the "installed" icon. This is used to be able to run tp-account-widgets +# from source (see bgo #616159) +local_icons_dir = local-copy + +# Generate the lists of destination paths +private_icons_local_install_paths = $(foreach obj, $(private_icons), $(local_icons_dir)/$(subst _,/,$(call reorder,_,1 3 2 4,$(obj)))) + +# For each destination path we'll need to compute back the original icon +# and create a rule that will ensure that the destination directory exists +# and then copy the original file +define icon_local_install_rule_template +$(local_icons_dir)/$$(subst _,/,$$(call reorder,_,1 3 2 4,$1)): $1 + $$(AM_V_GEN)mkdir -p $$(@D) + $$(AM_V_GEN)cp $$^ $$@ +endef + +# Instantiate the template above for each icon +$(foreach icon,$(private_icons),$(eval $(call icon_local_install_rule_template,$(icon)))) + +install-icons-src: $(private_icons_local_install_paths) + +all: install-icons-src + +clean-local: + -rm -rf $(local_icons_dir) diff --git a/telepathy-account-widgets/data/icons/Makefile.in b/telepathy-account-widgets/data/icons/Makefile.in new file mode 100644 index 0000000..816a591 --- /dev/null +++ b/telepathy-account-widgets/data/icons/Makefile.in @@ -0,0 +1,716 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/icons +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/as-compiler-flag.m4 \ + $(top_srcdir)/m4/gsettings.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tpaw-args.m4 \ + $(top_srcdir)/m4/tpaw-valgrind.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/utils.mk +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACCOUNTS_APPLICATION_FILES_DIR = @ACCOUNTS_APPLICATION_FILES_DIR@ +ACCOUNTS_APP_PLUGIN_DIR = @ACCOUNTS_APP_PLUGIN_DIR@ +ACCOUNTS_PROVIDER_FILES_DIR = @ACCOUNTS_PROVIDER_FILES_DIR@ +ACCOUNTS_PROVIDER_PLUGIN_DIR = @ACCOUNTS_PROVIDER_PLUGIN_DIR@ +ACCOUNTS_SERVICE_FILES_DIR = @ACCOUNTS_SERVICE_FILES_DIR@ +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHEESE_CFLAGS = @CHEESE_CFLAGS@ +CHEESE_LIBS = @CHEESE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_CODING_STYLE_CHECKS = @ENABLE_CODING_STYLE_CHECKS@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMSGFMT = @GMSGFMT@ +GOBJECT_QUERY = @GOBJECT_QUERY@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MISSION_CONTROL_PLUGINS_DIR = @MISSION_CONTROL_PLUGINS_DIR@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +REQUIRE_CHEESE = @REQUIRE_CHEESE@ +REQUIRE_UDEV = @REQUIRE_UDEV@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TPAW_UOA_PROVIDER = @TPAW_UOA_PROVIDER@ +UDEV_CFLAGS = @UDEV_CFLAGS@ +UDEV_LIBS = @UDEV_LIBS@ +UOA_CFLAGS = @UOA_CFLAGS@ +UOA_LIBS = @UOA_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +icondir = @icondir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +real_pkgdatadir = @real_pkgdatadir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +private_icons_themes = \ + hicolor \ + $(NULL) + +private_icons = \ + hicolor_apps_16x16_im-aim.png \ + hicolor_apps_16x16_im-ekiga.png \ + hicolor_apps_16x16_im-facebook.png \ + hicolor_apps_16x16_im-gizmo.png \ + hicolor_apps_16x16_im-google-talk.png \ + hicolor_apps_16x16_im-icq.png \ + hicolor_apps_16x16_im-irc.png \ + hicolor_apps_16x16_im-jabber.png \ + hicolor_apps_16x16_im-msn.png \ + hicolor_apps_16x16_im-silc.png \ + hicolor_apps_16x16_im-sip.png \ + hicolor_apps_16x16_im-local-xmpp.png \ + hicolor_apps_16x16_im-gadugadu.png \ + hicolor_apps_16x16_im-groupwise.png \ + hicolor_apps_16x16_im-qq.png \ + hicolor_apps_16x16_im-meanwhile.png \ + hicolor_apps_16x16_im-mxit.png \ + hicolor_apps_16x16_im-myspace.png \ + hicolor_apps_16x16_im-sametime.png \ + hicolor_apps_16x16_im-skype.png \ + hicolor_apps_16x16_im-yahoo.png \ + hicolor_apps_16x16_im-zephyr.png \ + hicolor_apps_22x22_im-aim.png \ + hicolor_apps_22x22_im-ekiga.png \ + hicolor_apps_22x22_im-facebook.png \ + hicolor_apps_22x22_im-gizmo.png \ + hicolor_apps_22x22_im-google-talk.png \ + hicolor_apps_22x22_im-icq.png \ + hicolor_apps_22x22_im-irc.png \ + hicolor_apps_22x22_im-jabber.png \ + hicolor_apps_22x22_im-msn.png \ + hicolor_apps_22x22_im-silc.png \ + hicolor_apps_22x22_im-sip.png \ + hicolor_apps_22x22_im-local-xmpp.png \ + hicolor_apps_22x22_im-gadugadu.png \ + hicolor_apps_22x22_im-groupwise.png \ + hicolor_apps_22x22_im-qq.png \ + hicolor_apps_22x22_im-meanwhile.png \ + hicolor_apps_22x22_im-mxit.png \ + hicolor_apps_22x22_im-myspace.png \ + hicolor_apps_22x22_im-sametime.png \ + hicolor_apps_22x22_im-skype.png \ + hicolor_apps_22x22_im-yahoo.png \ + hicolor_apps_22x22_im-zephyr.png \ + hicolor_apps_24x24_im-aim.png \ + hicolor_apps_24x24_im-ekiga.png \ + hicolor_apps_24x24_im-gizmo.png \ + hicolor_apps_24x24_im-google-talk.png \ + hicolor_apps_24x24_im-icq.png \ + hicolor_apps_24x24_im-irc.png \ + hicolor_apps_24x24_im-jabber.png \ + hicolor_apps_24x24_im-msn.png \ + hicolor_apps_24x24_im-silc.png \ + hicolor_apps_24x24_im-sip.png \ + hicolor_apps_24x24_im-local-xmpp.png \ + hicolor_apps_24x24_im-gadugadu.png \ + hicolor_apps_24x24_im-groupwise.png \ + hicolor_apps_24x24_im-qq.png \ + hicolor_apps_24x24_im-meanwhile.png \ + hicolor_apps_24x24_im-mxit.png \ + hicolor_apps_24x24_im-myspace.png \ + hicolor_apps_24x24_im-sametime.png \ + hicolor_apps_24x24_im-yahoo.png \ + hicolor_apps_24x24_im-zephyr.png \ + hicolor_apps_32x32_im-aim.png \ + hicolor_apps_32x32_im-ekiga.png \ + hicolor_apps_32x32_im-gizmo.png \ + hicolor_apps_32x32_im-google-talk.png \ + hicolor_apps_32x32_im-icq.png \ + hicolor_apps_32x32_im-irc.png \ + hicolor_apps_32x32_im-jabber.png \ + hicolor_apps_32x32_im-msn.png \ + hicolor_apps_32x32_im-silc.png \ + hicolor_apps_32x32_im-sip.png \ + hicolor_apps_32x32_im-local-xmpp.png \ + hicolor_apps_32x32_im-gadugadu.png \ + hicolor_apps_32x32_im-groupwise.png \ + hicolor_apps_32x32_im-qq.png \ + hicolor_apps_32x32_im-meanwhile.png \ + hicolor_apps_32x32_im-mxit.png \ + hicolor_apps_32x32_im-myspace.png \ + hicolor_apps_32x32_im-sametime.png \ + hicolor_apps_32x32_im-yahoo.png \ + hicolor_apps_32x32_im-zephyr.png \ + hicolor_apps_48x48_im-aim.png \ + hicolor_apps_48x48_im-ekiga.png \ + hicolor_apps_48x48_im-facebook.png \ + hicolor_apps_48x48_im-gizmo.png \ + hicolor_apps_48x48_im-google-talk.png \ + hicolor_apps_48x48_im-icq.png \ + hicolor_apps_48x48_im-irc.png \ + hicolor_apps_48x48_im-jabber.png \ + hicolor_apps_48x48_im-msn.png \ + hicolor_apps_48x48_im-silc.png \ + hicolor_apps_48x48_im-sip.png \ + hicolor_apps_48x48_im-local-xmpp.png \ + hicolor_apps_48x48_im-gadugadu.png \ + hicolor_apps_48x48_im-groupwise.png \ + hicolor_apps_48x48_im-qq.png \ + hicolor_apps_48x48_im-meanwhile.png \ + hicolor_apps_48x48_im-mxit.png \ + hicolor_apps_48x48_im-myspace.png \ + hicolor_apps_48x48_im-sametime.png \ + hicolor_apps_48x48_im-skype.png \ + hicolor_apps_48x48_im-yahoo.png \ + hicolor_apps_48x48_im-zephyr.png \ + hicolor_apps_scalable_im-aim.svg \ + hicolor_apps_scalable_im-ekiga.svg \ + hicolor_apps_scalable_im-gizmo.svg \ + hicolor_apps_scalable_im-google-talk.svg \ + hicolor_apps_scalable_im-icq.svg \ + hicolor_apps_scalable_im-irc.svg \ + hicolor_apps_scalable_im-jabber.svg \ + hicolor_apps_scalable_im-msn.svg \ + hicolor_apps_scalable_im-silc.svg \ + hicolor_apps_scalable_im-sip.svg \ + hicolor_apps_scalable_im-local-xmpp.svg \ + hicolor_apps_scalable_im-gadugadu.svg \ + hicolor_apps_scalable_im-groupwise.svg \ + hicolor_apps_scalable_im-qq.svg \ + hicolor_apps_scalable_im-meanwhile.svg \ + hicolor_apps_scalable_im-mxit.svg \ + hicolor_apps_scalable_im-myspace.svg \ + hicolor_apps_scalable_im-sametime.svg \ + hicolor_apps_scalable_im-yahoo.svg \ + hicolor_apps_scalable_im-zephyr.svg \ + $(NULL) + +EXTRA_DIST = \ + $(private_icons) \ + local-xmpp.svg \ + $(NULL) + + +# define a variable containing a single space +blank := +space := $(blank) $(blank) + +############################################################################### +gtk_update_icon_cache = gtk-update-icon-cache -f -t + +# Local copy of the "installed" icon. This is used to be able to run tp-account-widgets +# from source (see bgo #616159) +local_icons_dir = local-copy + +# Generate the lists of destination paths +private_icons_local_install_paths = $(foreach obj, $(private_icons), $(local_icons_dir)/$(subst _,/,$(call reorder,_,1 3 2 4,$(obj)))) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/utils.mk $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/icons/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(srcdir)/utils.mk $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-local + +.PRECIOUS: Makefile + +# split string $3 with $1 as separator and return the token in position $2 +define token +$(word $2, $(subst $1, ,$3)) +endef +# split string $3 with $1 as separator and reassemble it using the indexes in $2 +define reorder +$(subst $(space),$1,$(foreach i,$2,$(call token,$1,$i,$3))) +endef + +update-icon-cache: + @-if test -z "$(DESTDIR)"; then \ + echo "Updating Gtk icon cache."; \ + for theme in $(private_icons_themes); do \ + $(gtk_update_icon_cache) $(icondir)/$$theme; \ + done; \ + else \ + echo "*** Icon cache not updated. After (un)install, run this:"; \ + for theme in $(private_icons_themes); do \ + echo "*** $(gtk_update_icon_cache) $(icondir)/$$theme"; \ + done; \ + fi + +install-icons: + for icon in $(private_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + mkdir -p $(DESTDIR)$(icondir)/$$THEME/$$SIZE/$$CONTEXT; \ + $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(icondir)/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done + +uninstall-icons: + for icon in $(private_icons); do \ + THEME=`echo $$icon | cut -d_ -f1`; \ + CONTEXT=`echo $$icon | cut -d_ -f2`; \ + SIZE=`echo $$icon | cut -d_ -f3`; \ + ICONFILE=`echo $$icon | cut -d_ -f4`; \ + rm -f $(DESTDIR)$(icondir)/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ + done + +install-data-local: + $(MAKE) install-icons + $(MAKE) update-icon-cache + +uninstall-local: + $(MAKE) uninstall-icons + $(MAKE) update-icon-cache + +# For each destination path we'll need to compute back the original icon +# and create a rule that will ensure that the destination directory exists +# and then copy the original file +define icon_local_install_rule_template +$(local_icons_dir)/$$(subst _,/,$$(call reorder,_,1 3 2 4,$1)): $1 + $$(AM_V_GEN)mkdir -p $$(@D) + $$(AM_V_GEN)cp $$^ $$@ +endef + +# Instantiate the template above for each icon +$(foreach icon,$(private_icons),$(eval $(call icon_local_install_rule_template,$(icon)))) + +install-icons-src: $(private_icons_local_install_paths) + +all: install-icons-src + +clean-local: + -rm -rf $(local_icons_dir) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-aim.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-aim.png new file mode 100644 index 0000000..cf66dcd Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-aim.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-ekiga.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-ekiga.png new file mode 100644 index 0000000..1bce97d Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-ekiga.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-facebook.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-facebook.png new file mode 100644 index 0000000..bc42cf9 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-facebook.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-gadugadu.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-gadugadu.png new file mode 100644 index 0000000..6c7bb8e Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-gadugadu.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-gizmo.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-gizmo.png new file mode 100644 index 0000000..a465cf9 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-gizmo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-google-talk.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-google-talk.png new file mode 100644 index 0000000..822eb3d Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-google-talk.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-groupwise.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-groupwise.png new file mode 100644 index 0000000..f675b65 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-groupwise.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-icq.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-icq.png new file mode 100644 index 0000000..316fdd4 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-icq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-irc.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-irc.png new file mode 100644 index 0000000..622b74d Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-irc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-jabber.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-jabber.png new file mode 100644 index 0000000..334d172 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-jabber.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-local-xmpp.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-local-xmpp.png new file mode 100644 index 0000000..dff0c82 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-local-xmpp.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-meanwhile.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-meanwhile.png new file mode 100644 index 0000000..99d1722 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-meanwhile.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-msn.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-msn.png new file mode 100644 index 0000000..943ba35 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-msn.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-mxit.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-mxit.png new file mode 100644 index 0000000..81932cd Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-mxit.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-myspace.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-myspace.png new file mode 100644 index 0000000..be2e7b2 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-myspace.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-qq.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-qq.png new file mode 100644 index 0000000..f384004 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-qq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-sametime.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-sametime.png new file mode 100644 index 0000000..be78359 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-sametime.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-silc.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-silc.png new file mode 100644 index 0000000..eef7cdb Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-silc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-sip.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-sip.png new file mode 100644 index 0000000..38339af Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-sip.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-skype.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-skype.png new file mode 100644 index 0000000..13e2961 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-skype.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-yahoo.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-yahoo.png new file mode 100644 index 0000000..c5e44f0 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-yahoo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-zephyr.png b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-zephyr.png new file mode 100644 index 0000000..e345611 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_16x16_im-zephyr.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-aim.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-aim.png new file mode 100644 index 0000000..54df62d Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-aim.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-ekiga.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-ekiga.png new file mode 100644 index 0000000..140fdab Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-ekiga.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-facebook.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-facebook.png new file mode 100644 index 0000000..8036b19 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-facebook.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-gadugadu.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-gadugadu.png new file mode 100644 index 0000000..110b10e Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-gadugadu.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-gizmo.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-gizmo.png new file mode 100644 index 0000000..5141337 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-gizmo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-google-talk.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-google-talk.png new file mode 100644 index 0000000..9246ed3 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-google-talk.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-groupwise.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-groupwise.png new file mode 100644 index 0000000..62297a7 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-groupwise.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-icq.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-icq.png new file mode 100644 index 0000000..f62a587 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-icq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-irc.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-irc.png new file mode 100644 index 0000000..8da5832 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-irc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-jabber.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-jabber.png new file mode 100644 index 0000000..b76e85b Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-jabber.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-local-xmpp.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-local-xmpp.png new file mode 100644 index 0000000..2558cd3 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-local-xmpp.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-meanwhile.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-meanwhile.png new file mode 100644 index 0000000..d6da494 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-meanwhile.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-msn.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-msn.png new file mode 100644 index 0000000..97977f2 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-msn.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-mxit.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-mxit.png new file mode 100644 index 0000000..ed2d139 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-mxit.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-myspace.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-myspace.png new file mode 100644 index 0000000..f1f545a Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-myspace.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-qq.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-qq.png new file mode 100644 index 0000000..3383a9d Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-qq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-sametime.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-sametime.png new file mode 100644 index 0000000..26ba87d Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-sametime.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-silc.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-silc.png new file mode 100644 index 0000000..4d6b7ef Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-silc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-sip.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-sip.png new file mode 100644 index 0000000..2aebd81 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-sip.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-skype.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-skype.png new file mode 100644 index 0000000..90984bc Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-skype.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-yahoo.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-yahoo.png new file mode 100644 index 0000000..b205ab2 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-yahoo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-zephyr.png b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-zephyr.png new file mode 100644 index 0000000..ea6bcd7 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_22x22_im-zephyr.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-aim.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-aim.png new file mode 100644 index 0000000..d49e32c Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-aim.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-ekiga.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-ekiga.png new file mode 100644 index 0000000..c20bf52 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-ekiga.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-gadugadu.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-gadugadu.png new file mode 100644 index 0000000..cfc81ba Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-gadugadu.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-gizmo.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-gizmo.png new file mode 100644 index 0000000..0127ce7 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-gizmo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-google-talk.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-google-talk.png new file mode 100644 index 0000000..04d0539 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-google-talk.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-groupwise.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-groupwise.png new file mode 100644 index 0000000..cffb695 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-groupwise.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-icq.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-icq.png new file mode 100644 index 0000000..a887894 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-icq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-irc.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-irc.png new file mode 100644 index 0000000..88efe02 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-irc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-jabber.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-jabber.png new file mode 100644 index 0000000..94f34d3 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-jabber.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-local-xmpp.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-local-xmpp.png new file mode 100644 index 0000000..f4332f4 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-local-xmpp.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-meanwhile.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-meanwhile.png new file mode 100644 index 0000000..31d2154 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-meanwhile.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-msn.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-msn.png new file mode 100644 index 0000000..3c2adcd Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-msn.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-mxit.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-mxit.png new file mode 100644 index 0000000..bdef92b Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-mxit.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-myspace.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-myspace.png new file mode 100644 index 0000000..97aff98 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-myspace.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-qq.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-qq.png new file mode 100644 index 0000000..4c62128 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-qq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-sametime.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-sametime.png new file mode 100644 index 0000000..b613ce7 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-sametime.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-silc.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-silc.png new file mode 100644 index 0000000..d20cb77 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-silc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-sip.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-sip.png new file mode 100644 index 0000000..9eee010 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-sip.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-yahoo.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-yahoo.png new file mode 100644 index 0000000..81c6478 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-yahoo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-zephyr.png b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-zephyr.png new file mode 100644 index 0000000..3fb4922 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_24x24_im-zephyr.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-aim.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-aim.png new file mode 100644 index 0000000..c05501f Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-aim.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-ekiga.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-ekiga.png new file mode 100644 index 0000000..02c2b72 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-ekiga.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-gadugadu.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-gadugadu.png new file mode 100644 index 0000000..36e2faf Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-gadugadu.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-gizmo.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-gizmo.png new file mode 100644 index 0000000..b9811b6 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-gizmo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-google-talk.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-google-talk.png new file mode 100644 index 0000000..4d08551 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-google-talk.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-groupwise.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-groupwise.png new file mode 100644 index 0000000..dbeaab5 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-groupwise.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-icq.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-icq.png new file mode 100644 index 0000000..6227a1e Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-icq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-irc.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-irc.png new file mode 100644 index 0000000..a0d9e04 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-irc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-jabber.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-jabber.png new file mode 100644 index 0000000..18e54bf Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-jabber.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-local-xmpp.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-local-xmpp.png new file mode 100644 index 0000000..975734a Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-local-xmpp.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-meanwhile.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-meanwhile.png new file mode 100644 index 0000000..138d60c Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-meanwhile.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-msn.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-msn.png new file mode 100644 index 0000000..c06eed2 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-msn.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-mxit.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-mxit.png new file mode 100644 index 0000000..d56d51a Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-mxit.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-myspace.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-myspace.png new file mode 100644 index 0000000..7651c11 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-myspace.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-qq.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-qq.png new file mode 100644 index 0000000..5f7063b Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-qq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-sametime.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-sametime.png new file mode 100644 index 0000000..28c4a5a Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-sametime.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-silc.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-silc.png new file mode 100644 index 0000000..d9411b1 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-silc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-sip.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-sip.png new file mode 100644 index 0000000..6f3a060 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-sip.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-yahoo.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-yahoo.png new file mode 100644 index 0000000..45c95ca Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-yahoo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-zephyr.png b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-zephyr.png new file mode 100644 index 0000000..e1d632d Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_32x32_im-zephyr.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-aim.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-aim.png new file mode 100644 index 0000000..b27fab6 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-aim.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-ekiga.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-ekiga.png new file mode 100644 index 0000000..d301aad Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-ekiga.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-facebook.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-facebook.png new file mode 100644 index 0000000..2501aca Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-facebook.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-gadugadu.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-gadugadu.png new file mode 100644 index 0000000..9f631e6 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-gadugadu.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-gizmo.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-gizmo.png new file mode 100644 index 0000000..212907c Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-gizmo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-google-talk.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-google-talk.png new file mode 100644 index 0000000..de3cc4b Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-google-talk.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-groupwise.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-groupwise.png new file mode 100644 index 0000000..68457fa Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-groupwise.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-icq.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-icq.png new file mode 100644 index 0000000..f8d8fff Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-icq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-irc.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-irc.png new file mode 100644 index 0000000..a271491 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-irc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-jabber.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-jabber.png new file mode 100644 index 0000000..d0a69c0 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-jabber.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-local-xmpp.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-local-xmpp.png new file mode 100644 index 0000000..2c681e3 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-local-xmpp.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-meanwhile.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-meanwhile.png new file mode 100644 index 0000000..f747a56 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-meanwhile.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-msn.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-msn.png new file mode 100644 index 0000000..1b960dd Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-msn.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-mxit.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-mxit.png new file mode 100644 index 0000000..2398c53 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-mxit.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-myspace.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-myspace.png new file mode 100644 index 0000000..537541b Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-myspace.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-qq.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-qq.png new file mode 100644 index 0000000..7ce11d5 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-qq.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-sametime.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-sametime.png new file mode 100644 index 0000000..512eb72 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-sametime.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-silc.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-silc.png new file mode 100644 index 0000000..51239eb Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-silc.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-sip.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-sip.png new file mode 100644 index 0000000..84d2609 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-sip.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-skype.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-skype.png new file mode 100644 index 0000000..1c487b7 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-skype.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-yahoo.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-yahoo.png new file mode 100644 index 0000000..91c3d16 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-yahoo.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-zephyr.png b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-zephyr.png new file mode 100644 index 0000000..bb07829 Binary files /dev/null and b/telepathy-account-widgets/data/icons/hicolor_apps_48x48_im-zephyr.png differ diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-aim.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-aim.svg new file mode 100644 index 0000000..a7a2cfa --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-aim.svg @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + IM - AIM + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-ekiga.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-ekiga.svg new file mode 100644 index 0000000..78a9e73 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-ekiga.svg @@ -0,0 +1,441 @@ + + + + + + + image/svg+xml + + Ekiga Icon + 2006-12-05 + + + Vinicius Scopel Depizzol + + + + + Ekiga + VOIP + protocol + + + vdepizzol@gmail.com + + + + Original Artwork by Jakub Steiner <jimmac_at_ximian.com> and Andreas Kwiatkowski <post_at_kwiat.org> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-gadugadu.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-gadugadu.svg new file mode 100644 index 0000000..7ceb19d --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-gadugadu.svg @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-gizmo.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-gizmo.svg new file mode 100644 index 0000000..0c6aa4a --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-gizmo.svg @@ -0,0 +1,269 @@ + + + + + + + image/svg+xml + + Gizmo Icon + 2006-12-03 + + + Vinicius Scopel Depizzol + + + vdepizzol@gmail.com + + + Gizmo + VOIP + Protocol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-google-talk.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-google-talk.svg new file mode 100644 index 0000000..53d5433 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-google-talk.svg @@ -0,0 +1,301 @@ + + + + + + + image/svg+xml + + Google Talk Icon + 2006-12-03 + + + Vinicius Scopel Depizzol + + + vdepizzol@gmail.com + + + Google Talk + GTalk + VOIP + Protocol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-groupwise.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-groupwise.svg new file mode 100644 index 0000000..e4e32cd --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-groupwise.svg @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-icq.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-icq.svg new file mode 100644 index 0000000..22f06ec --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-icq.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + IM - ICQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-irc.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-irc.svg new file mode 100644 index 0000000..a4ee660 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-irc.svg @@ -0,0 +1,785 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-jabber.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-jabber.svg new file mode 100644 index 0000000..a0a9eb8 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-jabber.svg @@ -0,0 +1,632 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-local-xmpp.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-local-xmpp.svg new file mode 100644 index 0000000..2c16135 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-local-xmpp.svg @@ -0,0 +1,13059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-meanwhile.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-meanwhile.svg new file mode 100644 index 0000000..9224409 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-meanwhile.svg @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-msn.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-msn.svg new file mode 100644 index 0000000..5619694 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-msn.svg @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-mxit.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-mxit.svg new file mode 100644 index 0000000..4815fbe --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-mxit.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-myspace.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-myspace.svg new file mode 100644 index 0000000..a4b32f0 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-myspace.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-qq.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-qq.svg new file mode 100644 index 0000000..b73677e --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-qq.svg @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-sametime.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-sametime.svg new file mode 100644 index 0000000..2c4d374 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-sametime.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-silc.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-silc.svg new file mode 100644 index 0000000..407cb3d --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-silc.svg @@ -0,0 +1,103 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-sip.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-sip.svg new file mode 100644 index 0000000..309fbf3 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-sip.svg @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-yahoo.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-yahoo.svg new file mode 100644 index 0000000..b091977 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-yahoo.svg @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + IM - Yahoo + + + + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-zephyr.svg b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-zephyr.svg new file mode 100644 index 0000000..a9b9687 --- /dev/null +++ b/telepathy-account-widgets/data/icons/hicolor_apps_scalable_im-zephyr.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/data/icons/local-xmpp.svg b/telepathy-account-widgets/data/icons/local-xmpp.svg new file mode 100644 index 0000000..fc5a7dc --- /dev/null +++ b/telepathy-account-widgets/data/icons/local-xmpp.svg @@ -0,0 +1,16338 @@ + + + +image/svg+xml +Firewall + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/telepathy-account-widgets/data/icons/utils.mk b/telepathy-account-widgets/data/icons/utils.mk new file mode 100644 index 0000000..84b1c82 --- /dev/null +++ b/telepathy-account-widgets/data/icons/utils.mk @@ -0,0 +1,11 @@ +# define a variable containing a single space +blank := +space := $(blank) $(blank) +# split string $3 with $1 as separator and return the token in position $2 +define token +$(word $2, $(subst $1, ,$3)) +endef +# split string $3 with $1 as separator and reassemble it using the indexes in $2 +define reorder +$(subst $(space),$1,$(foreach i,$2,$(call token,$1,$i,$3))) +endef diff --git a/telepathy-account-widgets/data/org.gnome.telepathy-account-widgets.gschema.xml b/telepathy-account-widgets/data/org.gnome.telepathy-account-widgets.gschema.xml new file mode 100644 index 0000000..fb69225 --- /dev/null +++ b/telepathy-account-widgets/data/org.gnome.telepathy-account-widgets.gschema.xml @@ -0,0 +1,10 @@ + + + + + '' + Default directory to select an avatar image from + The last directory that an avatar image was chosen from. + + + diff --git a/telepathy-account-widgets/depcomp b/telepathy-account-widgets/depcomp new file mode 100755 index 0000000..30379e2 --- /dev/null +++ b/telepathy-account-widgets/depcomp @@ -0,0 +1,791 @@ +#!/bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/telepathy-account-widgets/install-sh b/telepathy-account-widgets/install-sh new file mode 100755 index 0000000..0360b79 --- /dev/null +++ b/telepathy-account-widgets/install-sh @@ -0,0 +1,501 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2016-01-11.22; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/telepathy-account-widgets/ltmain.sh b/telepathy-account-widgets/ltmain.sh new file mode 100644 index 0000000..30be9c8 --- /dev/null +++ b/telepathy-account-widgets/ltmain.sh @@ -0,0 +1,11149 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.6 +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/telepathy-account-widgets/m4/as-compiler-flag.m4 b/telepathy-account-widgets/m4/as-compiler-flag.m4 new file mode 100644 index 0000000..605708a --- /dev/null +++ b/telepathy-account-widgets/m4/as-compiler-flag.m4 @@ -0,0 +1,33 @@ +dnl as-compiler-flag.m4 0.1.0 + +dnl autostars m4 macro for detection of compiler flags + +dnl David Schleef + +dnl $Id: as-compiler-flag.m4,v 1.1 2005/06/18 18:02:46 burgerman Exp $ + +dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) +dnl Tries to compile with the given CFLAGS. +dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, +dnl and ACTION-IF-NOT-ACCEPTED otherwise. + +AC_DEFUN([AS_COMPILER_FLAG], +[ + AC_MSG_CHECKING([to see if compiler understands $1]) + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + + AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + $2 + true + else + $3 + true + fi + AC_MSG_RESULT([$flag_ok]) +]) + diff --git a/telepathy-account-widgets/m4/gsettings.m4 b/telepathy-account-widgets/m4/gsettings.m4 new file mode 100644 index 0000000..7b2f9a2 --- /dev/null +++ b/telepathy-account-widgets/m4/gsettings.m4 @@ -0,0 +1,83 @@ +dnl GLIB_GSETTINGS +dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether +dnl the schema should be compiled +dnl + +AC_DEFUN([GLIB_GSETTINGS], +[ + m4_pattern_allow([AM_V_GEN]) + AC_ARG_ENABLE(schemas-compile, + AS_HELP_STRING([--disable-schemas-compile], + [Disable regeneration of gschemas.compiled on install]), + [case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;; + esac]) + AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE]) + PKG_PROG_PKG_CONFIG([0.16]) + AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas]) + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas) + fi + AC_SUBST(GLIB_COMPILE_SCHEMAS) + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2]) + else + ifelse([$1],,[:],[$1]) + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch [$]@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@ +endif +' + _GSETTINGS_SUBST(GSETTINGS_RULES) +]) + +dnl _GSETTINGS_SUBST(VARIABLE) +dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +AC_DEFUN([_GSETTINGS_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) diff --git a/telepathy-account-widgets/m4/intltool.m4 b/telepathy-account-widgets/m4/intltool.m4 new file mode 100644 index 0000000..c25b7b1 --- /dev/null +++ b/telepathy-account-widgets/m4/intltool.m4 @@ -0,0 +1,212 @@ +## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- +## Copyright (C) 2001 Eazel, Inc. +## Author: Maciej Stachowiak +## Kenneth Christiansen +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +## +## As a special exception to the GNU General Public License, if you +## distribute this file as part of a program that contains a +## configuration script generated by Autoconf, you may include it under +## the same distribution terms that you use for the rest of that program. + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 42 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi + +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi +AC_SUBST([AM_DEFAULT_VERBOSITY]) + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' +AC_SUBST(INTLTOOL_V_MERGE) +AC_SUBST(INTLTOOL__v_MERGE_) +AC_SUBST(INTLTOOL__v_MERGE_0) + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' +AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) +AC_SUBST(intltool__v_merge_options_) +AC_SUBST(intltool__v_merge_options_0) + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +IT_PO_SUBDIR([po]) + +]) + + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be executed at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) + +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + diff --git a/telepathy-account-widgets/m4/libtool.m4 b/telepathy-account-widgets/m4/libtool.m4 new file mode 100644 index 0000000..a644432 --- /dev/null +++ b/telepathy-account-widgets/m4/libtool.m4 @@ -0,0 +1,8372 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/telepathy-account-widgets/m4/ltoptions.m4 b/telepathy-account-widgets/m4/ltoptions.m4 new file mode 100644 index 0000000..94b0829 --- /dev/null +++ b/telepathy-account-widgets/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/telepathy-account-widgets/m4/ltsugar.m4 b/telepathy-account-widgets/m4/ltsugar.m4 new file mode 100644 index 0000000..48bc934 --- /dev/null +++ b/telepathy-account-widgets/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/telepathy-account-widgets/m4/ltversion.m4 b/telepathy-account-widgets/m4/ltversion.m4 new file mode 100644 index 0000000..fa04b52 --- /dev/null +++ b/telepathy-account-widgets/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/telepathy-account-widgets/m4/lt~obsolete.m4 b/telepathy-account-widgets/m4/lt~obsolete.m4 new file mode 100644 index 0000000..c6b26f8 --- /dev/null +++ b/telepathy-account-widgets/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/telepathy-account-widgets/m4/tpaw-args.m4 b/telepathy-account-widgets/m4/tpaw-args.m4 new file mode 100644 index 0000000..5dccce2 --- /dev/null +++ b/telepathy-account-widgets/m4/tpaw-args.m4 @@ -0,0 +1,19 @@ +dnl configure-time options for telepathy-account-widgets + +dnl TPAW_ARG_VALGRIND + +AC_DEFUN([TPAW_ARG_VALGRIND], +[ + dnl valgrind inclusion + AC_ARG_ENABLE(valgrind, + AC_HELP_STRING([--enable-valgrind],[enable valgrind checking and run-time detection]), + [ + case "${enableval}" in + yes|no) enable="${enableval}" ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-valgrind) ;; + esac + ], + [enable=no]) + + TPAW_VALGRIND($enable, [2.1]) +]) diff --git a/telepathy-account-widgets/m4/tpaw-valgrind.m4 b/telepathy-account-widgets/m4/tpaw-valgrind.m4 new file mode 100644 index 0000000..bda1fb5 --- /dev/null +++ b/telepathy-account-widgets/m4/tpaw-valgrind.m4 @@ -0,0 +1,31 @@ +dnl Detect Valgrind location and flags + +AC_DEFUN([TPAW_VALGRIND], +[ + enable=$1 + if test -n "$2"; then + valgrind_req=$2 + else + valgrind_req="2.1" + fi + + PKG_CHECK_MODULES(VALGRIND, valgrind > "$valgrind_req", + have_valgrind_runtime="yes", have_valgrind_runtime="no") + + AC_PATH_PROG(VALGRIND_PATH, valgrind) + + # Compile the instrumentation for valgrind only if the valgrind + # libraries are installed and the valgrind executable is found + if test "x$enable" = xyes && + test "$have_valgrind_runtime" = yes && + test -n "$VALGRIND_PATH" ; + then + AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used]) + AC_MSG_NOTICE(using compile-time instrumentation for valgrind) + fi + + AC_SUBST(VALGRIND_CFLAGS) + AC_SUBST(VALGRIND_LIBS) + + AM_CONDITIONAL(HAVE_VALGRIND, test -n "$VALGRIND_PATH") +]) diff --git a/telepathy-account-widgets/missing b/telepathy-account-widgets/missing new file mode 100755 index 0000000..b7e571e --- /dev/null +++ b/telepathy-account-widgets/missing @@ -0,0 +1,215 @@ +#!/bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/telepathy-account-widgets/po/ChangeLog b/telepathy-account-widgets/po/ChangeLog new file mode 100644 index 0000000..56bfe86 --- /dev/null +++ b/telepathy-account-widgets/po/ChangeLog @@ -0,0 +1,173 @@ +2010-08-03 Funda Wang + + * zh_CN.po: Updated zh_CN translation. + +2009-11-27 Adi Roiban + + * ro.po: Updated Romanian translation + +2009-08-13 Baris Cicek + + * tr.po: Updated Turkish translation + +2009-04-21 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation by Javier Rial. + +2009-04-12 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2009-04-11 Ihar Hrachyshka + + * be.po: Added Belarusian translation by insomnia. + +2009-03-23 Wouter Bolsterlee + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2009-03-18 Ignacio Casal Quinteiro + + * gl.po: Updated Galician translation by Suso Baleato. + +2009-03-17 Jorge Gonzalez + + * es.po: Updated Spanish translation, fixes bug #575627 + +2009-03-16 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2009-03-15 Shankar Prasad + + * kn.po: Updated Kannada translations + +2009-03-09 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2009-03-09 Sandeep Shedmake + + * mr.po: Updated Marathi Translations. + +2009-03-09 Rajesh Ranjan + + * hi.po: Updated Hindi Translation. + +2009-03-08 Kostas Papadimas + + * el.po: Updated Greek Translation by Jennie Petoumenou. + +2009-03-07 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2009-03-07 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2009-03-05 Duarte Loreto + + * pt.po: Updated Portuguese translation. + +2009-03-05 Nickolay V. Shmyrev + + * ru.po: Updated Russian translation. + +2009-03-04 Kenneth Nielsen + + * da.po: Updated Danish translation by Kenneth Nielsen + +2009-03-04 Ihar Hrachyshka + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hrachyshka. + +2009-03-02 Petr Kovar + + * cs.po: Updated Czech translation by Lucas Lommer. + +2009-03-02 Shankar Prasad + + * kn.po: Updated Kannada translations. + +2009-03-01 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2009-02-28 Ihar Hrachyshka + + * be@latin.po: Added Belarusian Latin translation by Ihar Hrachyshka. + +2009-02-27 Jochen Skulj + + * de.po: Updated German translation. + +2009-02-27 Luca Ferretti + + * it.po: Updated Italian translation by Milo Casagrande + +2009-02-24 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2009-02-23 Philip Withnall + + * en_GB.po: Updated British English translation. + +2009-02-23 Timo Jyrinki + + * ../help/fi: Added Finnish help translation by Valto Wirkola. + +2009-02-22 Praveen Arimbrathodiyil + + * ml.po: Updated Malayalam translation. + +2009-02-19 Gil Forcada + + * ca.po: Updated Catalan translation. + +2009-02-19 Og Maciel + + * pt_BR.po: Updated Brazilian Portuguese translation by + Vladimir Melo. + +2009-02-19 Raivis Dejus + + * lv.po: Added latvian translation. + * LINGUAS: Added 'lv' for Latvian + +2009-02-18 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2009-02-18 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2009-02-18 Sweta Kothari + + * gu.po: Committed Gujarati Translation. + +2009-02-16 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2009-02-14 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +=== DO NOT EDIT === + + +ChangeLog is now generated from SVN logs. Simply commit with a message in that format: + +Updated translation (). + +Replace with the language you are commiting as in the name of the po file, +and replace by the name of the author if different from the name of the committer. +For example: + +Updated fr translation (Xavier Claessens). + diff --git a/telepathy-account-widgets/po/LINGUAS b/telepathy-account-widgets/po/LINGUAS new file mode 100644 index 0000000..76d376b --- /dev/null +++ b/telepathy-account-widgets/po/LINGUAS @@ -0,0 +1,90 @@ +# please keep this list sorted alphabetically +an +ar +as +ast +az +be +be@latin +bg +bn +bn_IN +br +bs +ca +ca@valencia +crh +cs +cy +da +de +dz +el +en_CA +en_GB +en@shaw +eo +es +et +eu +fa +fi +fr +fur +ga +gl +gu +he +hi +hr +hu +id +is +it +ja +kk +km +kn +ko +ku +lt +lv +mai +mk +ml +mr +ms +my +nb +ne +nl +nn +oc +or +pa +pl +ps +pt +pt_BR +ro +ru +si +sk +sl +sq +sr +sr@latin +sv +ta +te +tg +th +tr +ug +uk +vi +xh +zh_CN +zh_HK +zh_TW +zu diff --git a/telepathy-account-widgets/po/Makefile.in.in b/telepathy-account-widgets/po/Makefile.in.in new file mode 100644 index 0000000..fcd2c3b --- /dev/null +++ b/telepathy-account-widgets/po/Makefile.in.in @@ -0,0 +1,221 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +# Copyright (C) 2004-2008 Rodney Dawes +# +# This file may be copied and used freely without restrictions. It may +# be used in projects which are not available under a GNU Public License, +# but which still want to provide support for the GNU gettext functionality. +# +# - Modified by Owen Taylor to use GETTEXT_PACKAGE +# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +# +# - Modified by jacob berkman to install +# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize +# +# - Modified by Rodney Dawes for use with intltool +# +# We have the following line for use by intltoolize: +# INTLTOOL_MAKEFILE + +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = @datadir@ +datarootdir = @datarootdir@ +libdir = @libdir@ +localedir = @localedir@ +subdir = po +install_sh = @install_sh@ +# Automake >= 1.8 provides @mkdir_p@. +# Until it can be supposed, use the safe fallback: +mkdir_p = $(install_sh) -d + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = @XGETTEXT@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist +GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot + +ALL_LINGUAS = @ALL_LINGUAS@ + +PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) + +USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) + +USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) + +POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) + +DISTFILES = Makefile.in.in POTFILES.in $(POFILES) +EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS + +POTFILES = \ +# This comment gets stripped out + +CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) + +.SUFFIXES: +.SUFFIXES: .po .pox .gmo .mo .msg .cat + +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) +INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; + +.po.pox: + $(MAKE) $(GETTEXT_PACKAGE).pot + $(MSGMERGE) $* $(GETTEXT_PACKAGE).pot -o $*.pox + +.po.mo: + $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< + +.po.gmo: + $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && gencat $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: $(CATALOGS) +all-no: + +$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(GENPOT) + +install: install-data +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $(srcdir)/$$lang.gmo as" \ + "$$dir/$(GETTEXT_PACKAGE).mo"; \ + fi; \ + if test -r $$lang.gmo.m; then \ + $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + if test -r $(srcdir)/$$lang.gmo.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ + $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $(srcdir)/$$lang.gmo.m as" \ + "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + true; \ + fi; \ + fi; \ + done + +# Empty stubs to satisfy archaic automake needs +dvi info ctags tags CTAGS TAGS ID: + +# Define this as empty until I found a useful application. +install-exec installcheck: + +uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + +check: all $(GETTEXT_PACKAGE).pot + rm -f missing notexist + srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m + if [ -r missing -o -r notexist ]; then \ + exit 1; \ + fi + +mostlyclean: + rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp + rm -f .intltool-merge-cache + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES stamp-it + rm -f *.mo *.msg *.cat *.cat.m *.gmo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f Makefile.in.in + +distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: $(DISTFILES) + dists="$(DISTFILES)"; \ + extra_dists="$(EXTRA_DISTFILES)"; \ + for file in $$extra_dists; do \ + test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ + done; \ + for file in $$dists; do \ + test -f $$file || file="$(srcdir)/$$file"; \ + ln $$file $(distdir) 2> /dev/null \ + || cp -p $$file $(distdir); \ + done + +update-po: Makefile + $(MAKE) $(GETTEXT_PACKAGE).pot + tmpdir=`pwd`; \ + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + echo "$$lang:"; \ + result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ + if $$result; then \ + if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.gmo failed!"; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi; \ + done + +Makefile POTFILES: stamp-it + @if test ! -f $@; then \ + rm -f stamp-it; \ + $(MAKE) stamp-it; \ + fi + +stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ + $(SHELL) ./config.status + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/telepathy-account-widgets/po/POTFILES.in b/telepathy-account-widgets/po/POTFILES.in new file mode 100644 index 0000000..5badbc4 --- /dev/null +++ b/telepathy-account-widgets/po/POTFILES.in @@ -0,0 +1,42 @@ +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. + +[type: gettext/gsettings]data/org.gnome.telepathy-account-widgets.gschema.xml + +tp-account-widgets/totem-subtitle-encoding.c +tp-account-widgets/tpaw-account-settings.c +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-aim.ui +tp-account-widgets/tpaw-account-widget.c +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-generic.ui +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-groupwise.ui +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-icq.ui +tp-account-widgets/tpaw-account-widget-irc.c +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-irc.ui +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-jabber.ui +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-local-xmpp.ui +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-msn.ui +tp-account-widgets/tpaw-account-widget-sip.c +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-sip.ui +[type: gettext/glade]tp-account-widgets/tpaw-account-widget-yahoo.ui +tp-account-widgets/tpaw-avatar-chooser.c +tp-account-widgets/tpaw-builder.c +tp-account-widgets/tpaw-calendar-button.c +tp-account-widgets/tpaw-camera-monitor.c +tp-account-widgets/tpaw-connection-managers.c +tp-account-widgets/tpaw-contactinfo-utils.c +tp-account-widgets/tpaw-debug.c +tp-account-widgets/tpaw-irc-network.c +tp-account-widgets/tpaw-irc-network-chooser.c +tp-account-widgets/tpaw-irc-network-chooser-dialog.c +tp-account-widgets/tpaw-irc-network-dialog.c +tp-account-widgets/tpaw-irc-network-manager.c +tp-account-widgets/tpaw-irc-server.c +tp-account-widgets/tpaw-keyring.c +tp-account-widgets/tpaw-live-search.c +tp-account-widgets/tpaw-pixbuf-utils.c +tp-account-widgets/tpaw-protocol.c +tp-account-widgets/tpaw-string-parser.c +tp-account-widgets/tpaw-time.c +tp-account-widgets/tpaw-uoa-utils.c +tp-account-widgets/tpaw-user-info.c +tp-account-widgets/tpaw-utils.c diff --git a/telepathy-account-widgets/po/POTFILES.skip b/telepathy-account-widgets/po/POTFILES.skip new file mode 100644 index 0000000..61b6fb7 --- /dev/null +++ b/telepathy-account-widgets/po/POTFILES.skip @@ -0,0 +1 @@ +# Please keep this file sorted alphabetically. diff --git a/telepathy-account-widgets/po/an.po b/telepathy-account-widgets/po/an.po new file mode 100644 index 0000000..4b28955 --- /dev/null +++ b/telepathy-account-widgets/po/an.po @@ -0,0 +1,930 @@ +# Aragonese translation for tp-account-widgets. +# Copyright (C) 2010 tp-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# Daniel Martinez , 2010, 2011, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-06 14:17+0000\n" +"PO-Revision-Date: 2015-05-07 19:43+0200\n" +"Last-Translator: Daniel \n" +"Language-Team: Aragonés \n" +"Language: an\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Pootle 2.5.1.1\n" +"X-DamnedLies-Scope: partial\n" +"X-POOTLE-MTIME: 1431024228.000000\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Directorio por defecto d'an trigar un avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "O zaguero directorio d'an s'ha trigau un avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Configuracion rechional actual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenio" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centroeuropeo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chino simplificau" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chino tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Crovata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirilico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirilico/Ruso" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirilico/Ucrainés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgiano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Griego" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreu visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindú" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Chaponés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europa d'o sud" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turco" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Cla_u de paso" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nome en pantalla" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemplo: NombreTaAmostrar" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Remerar clau de paso" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Puerto" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avanzau" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Quál ye o suyo nombre en pantalla ta AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Cuala ye la tuya clau d'AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "Cuenta" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Clau de paso" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Puerto" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +#| msgid "Username" +msgid "Username:" +msgstr "Nombre d'usuario:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "Anya_dir" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "A_plicar" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s en %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +#| msgid "New %s account" +msgid "%s Account" +msgstr "Cuenta de %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +#| msgid "New %s account" +msgid "New account" +msgstr "Cuenta nueva" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D de sesion" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemplo: nomedusuario" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Cualo ye lo tuyo ID d'usuario de GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Cuala ye la tuya clau de GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN d'ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemplo: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Conchunto de c_aracteres" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Cualo ye lo tuyo ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Cuala ye la tuya clau d'ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rete" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Conchunto de caracteres" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Anyadir…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Sacar" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Puyar" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Abaixo" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidors" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"A mayoría d'os servidors IRC no amenesten una clau, de tal forma que si no " +"ye seguro, no introduzca una clau." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Embotada" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Mensache de surtida" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nome reyal" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nome d'usuario" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Cualo rete de IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Quál ye a suya embotada de l'IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Cualo ye lo tuyo nome d'usuario de Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Iste ye lo tuyo nome d'usuario, no lo tuyo login normal de Facebook.\n" +"Si tu yes facebook.com/badger, mete badger.\n" +"Fe servir ista pachina ta " +"trigar un nome d'usuario de Facebook si encara no tiens uno." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Cuala ye la tuya clau de Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Cualo ye lo tuyo ID de google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemplo: usuario@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Cuala ye la tuya clau de Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemplo: usuario@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "No parar cuenta d'as errors de certi_ficau SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priorida_t" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Re_curso" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "S'amenista c_ifrau (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Sobreescribir os achustes d'o servidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Fer servir SS_L viello" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Cualo ye lo tuyo Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Cuala ye la tuya clau de Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Embota_da" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Apellius" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Nombre" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nome _publicau" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID de _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Adreza d'e-_mail" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemplo: usuario@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Cualo ye lo tuyo ID de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Cuala ye la tuya clau de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatico" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Rechistrar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcions" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Denguna" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Nombre de _usuario" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemplo: usuario@o.moi.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Fer servir ista cuenta ta gritar a te_lefonos fixos y moviles" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opcions de NAT transversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opcions de proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opcions de miscelania" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descubrir o servidor STUN automaticament" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descubrir vinculación" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opcions de keep-alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanismo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalo (segundos)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nome d'usuario d'autenticación" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transporte" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Enrutau impreciso" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorar errors TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Adreza IP local" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Cualo ye lo tuyo ID de login SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Cuala ye la tuya clau d'a cuenta SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Cla_u de paso:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D de Yahoo!" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignorar invitacions a conferencias y salas de chat" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Configuración d'a lista de _salas:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Conchunto de c_aracteres:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Puerto:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Cualo ye o tuyo ID de Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Cuala ye la tuya clau de Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:666 +msgid "Couldn't convert image" +msgstr "No se podió convertir a imachen" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:582 +msgid "None of the accepted image formats are supported on your system" +msgstr "" +"No s'ha trobau en o suyo sistema garra d'os formatos d'imachen suportaus" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:942 +msgid "Couldn't save picture to file" +msgstr "No se podió alzar a imachen en un fichero" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1064 +msgid "Select Your Avatar Image" +msgstr "Seleccione a imachen d'a suya avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1073 +msgid "Take a picture..." +msgstr "Fer una foto…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1086 +msgid "No Image" +msgstr "Sin imachen" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1145 +msgid "Images" +msgstr "Imachens" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1149 +msgid "All Files" +msgstr "Totz os fichers" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Seleccionar…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Trigar" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +#| msgid "Full name" +msgid "Full Name" +msgstr "Nombre completo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#| msgid "Phone number" +msgid "Phone Number" +msgstr "Numero de telefono" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#| msgid "E-mail address" +msgid "E-mail Address" +msgstr "Adreza de e-mail" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Pachina web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Cabo d'año" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#| msgid "Last seen:" +msgid "Last Seen:" +msgstr "Zaguera actividat:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +#| msgid "Connected from:" +msgid "Connected From:" +msgstr "Connectau dende:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +#| msgid "Away message:" +msgid "Away Message:" +msgstr "Mensache d'ausencia:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "treballo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "personal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "móvil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voz" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferiu" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "grupo" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nuevo rete" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Trigar un rete d'IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Rei_niciar lista de retes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Trigar" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nuevo servidor" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "No se trobó a clau" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Clau d'a cuenta IM ta %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Clau ta la sala de chat '%s' en la conta %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nueva cuenta de %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "fa %d segundo" +msgstr[1] "fa %d segundos" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "fa %d menuto" +msgstr[1] "fa %d menutos" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "fa %d hora" +msgstr[1] "fa %d horas" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "fa %d diya" +msgstr[1] "fa %d diyas" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "fa %d semana" +msgstr[1] "fa %d semanas" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "fa %d mes" +msgstr[1] "fa %d meses" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "en l'esvenidero" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Connectar ta editar a suya información personal." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Istos detalles se compartirán con atros usuarios d'iste ret de chat." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificador" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Embotada" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Detalles personals" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Chent amán" + +#: ../tp-account-widgets/tpaw-utils.c:123 +#| msgid "Yahoo! I_D:" +msgid "Yahoo! Japan" +msgstr "Yahoo! Chapón" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Chat de Facebook" + +#~ msgid "Remember Password" +#~ msgstr "Remerar clau de paso" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "¿Cualo ID de Jabber quiers?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "¿Cuala clau de Jabber quiers?" diff --git a/telepathy-account-widgets/po/ar.po b/telepathy-account-widgets/po/ar.po new file mode 100644 index 0000000..72bfbf0 --- /dev/null +++ b/telepathy-account-widgets/po/ar.po @@ -0,0 +1,854 @@ +# translation of gossip.HEAD.po to Arabic +# Arabisch translation of PACKAGE. +# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Arafat Medini , 2004. +# Abdulaziz Al-Arfaj , 2004. +# Abou Manal , 2008. +# Djihed Afifi, 2006, 2009, 2010, 2011, 2012. +# Abderrahim Kitouni , 2012. +# Ibrahim Saed , 2012. +msgid "" +msgstr "" +"Project-Id-Version: gossip.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-10-04 15:28+0200\n" +"Last-Translator: Khaled Hosny \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Virtaal 0.7.0\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "المجلد المبدئي لاختيار الصورة الشخصية" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "آخر مجلد اختِيرت منه الصورة الشخصية." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "المحلية الحالية" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "عربي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "أرميني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "بلطيقي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "كلتي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "وسط أوروبي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "الصينية المبسطة" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "الصينية التقليدية" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "كرواتي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "سيريالي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "سيريالي/روسي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "سيريالي/أوكراني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "جيورجي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "يوناني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "كوجراتي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "جورموخي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "عبري" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "عبري مرئي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "هندي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "آيسلندي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ياباني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "كوري" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "شمالي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "فارسي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "روماني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "أوروبي جنوبي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "تايلاندي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "تركي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "يونيكود" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "غربي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "فيتنامي" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "كلمة ال_سر" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "الاسم الم_عروض" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "مثال: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "تذكّر كلمة السر" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "ال_منْفذ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "ال_خادوم" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "متقدم" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "ما اسم الشاشة في AIM؟" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "ما كلمة سرك على AIM؟" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "تذكر كلمة السر" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "معرّف الو_لوج" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "مثال: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "ما معرّفك على GroupWise؟" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "ما كلمة سرك على GroupWise؟" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "مثال: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "ال_ترمير" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ما معرفك على ICQ؟" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ما كلمة سرك على ICQ؟" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "الشبكة" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "الترمير" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "أضف…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "أزِل" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "أعلى" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "أسفل" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "الخواديم" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"معظم خواديم IRC لا تحتاج كلمة سر، لذا إذا لم تكن متأكدًا، لا تُدخل كلمة سر." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "الاسم المستعار" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "كلمة السر" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "رسالة الخروج" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "الاسم الحقيقي" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "اسم المستخدم" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "أي شبكة IRC؟" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "ما كنية IRC التي تستخدمها؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "ما اسم مستخدمك على فيسبوك؟" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"هذا اسم المستخدم وليس اسم الولوج إلى فيسبوك.\n" +"إذا كنت facebook.com/badger فأدخل badger.\n" +"استخدم هذه الصفحة لاختيار " +"اسم مستخدم على فيسبوك إذا لم يكن لك واحد." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "ما كلمة سرك على فيسبوك؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "ما معرفك على جوجل؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "مثال: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "ما كلمة سرك على جوجل؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "مثال: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_تجاهل أخطاء شهادة SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "الأو_لويّة" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "الم_ورد" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "ال_تعمية مطلوبة (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "تجاوز إعدادات الخادوم" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "استعمل SS_L القديم" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "ما معرفك على جابِر؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "ما المعرف الذي تريده على جابِر؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "ما كلمة سرك على جابِر؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "ما كلمة السر التي تريدها على جابِر؟" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "الا_سم المستعار" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "الاسم ال_عائلي" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "الا_سم الأول" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "الا_سم المنشور" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "معرّف _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_عنوان البريد" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "مثال: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "ما معرّفك على Windows Live؟" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "ما كلمة سرك على Windows Live؟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "تلقائي" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "سجّل" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "الخيارات" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "لا شيء" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "اسم المست_خدم" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "مثال: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "استخدم هذا الحساب للاتصال بالهواتف الأر_ضية والهواتف الخليوية" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "خيارات انتقال NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "خيارات الوسيط" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "خيارات متنوعة" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "خادوم STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "اكتشف خادوم STUN تلقائيا" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "اكتشف الارتباط" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "الخادوم" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "خيارات إبقاء الاتصال" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "الآلية" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "المدة (بالثواني)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "اسم مستخدم الاستيثاق" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "النقل" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "توجيه متراخي" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "تجاهل أخطاء TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "المنفذ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "عنوان IP المحلي" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "ما معرف ولوجك على SIP؟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "ما كلمة سر حسابك على SIP؟" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "كلمة ال_سر:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "مُعرّف _ياهو!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_تجاهل دعوات المؤتمرات وغرف الدردشة" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "محلية لائحة ال_غرف:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "ال_ترمير:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "ال_منْفذ:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "ما معرفك على ياهو!؟" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "ما كلمة سرك على ياهو!؟" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "اختر..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "ا_ختر" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "الاسم الكامل" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "رقم الهاتف" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "عنوان البريد الإلكتروني" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "موقع الويب" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "الميلاد" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "آخر ظهور:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "الخادوم:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "متصل من:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "رسالة الغياب:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "عمل" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "المنزل" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "محمول" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "صوت" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "المفضّل" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "البريدي" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "الطرد" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "شبكة جديدة" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "اختر شبكة IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "صفِّر قائمة ال_شبكات" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "اختر" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "خادوم جديد" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "لم يُعثر على كلمة السّر" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "كلمة سر حساب المراسلة الفورية %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "كلمة السر لغرفة الدردشة '%s' على الحساب %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "حساب %s جديد" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "الآن" +msgstr[1] "منذ ثانية واحدة" +msgstr[2] "منذ ثانيتين" +msgstr[3] "منذ %d ثوان" +msgstr[4] "منذ %d ثانية" +msgstr[5] "منذ %d ثانية" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "منذ أقل من دقيقة" +msgstr[1] "منذ دقيقة واحدة" +msgstr[2] "منذ دقيقتين" +msgstr[3] "منذ %d دقائق" +msgstr[4] "منذ %d دقيقة" +msgstr[5] "منذ %d دقيقة" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "منذ أقل من ساعة" +msgstr[1] "منذ ساعة واحدة" +msgstr[2] "منذ ساعتين" +msgstr[3] "منذ %d ساعات" +msgstr[4] "منذ %d ساعة" +msgstr[5] "منذ %d ساعة" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "منذ أقل من يوم" +msgstr[1] "منذ يوم واحد" +msgstr[2] "منذ يومين" +msgstr[3] "منذ %d أيام" +msgstr[4] "منذ %d يوما" +msgstr[5] "منذ %d يوم" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "منذ أقل من أسبوع" +msgstr[1] "منذ أسبوع واحد" +msgstr[2] "منذ أسبوعين" +msgstr[3] "منذ %d أسابيع" +msgstr[4] "منذ %d أسبوعا" +msgstr[5] "منذ %d أسبوع" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "منذ أقل من شهر" +msgstr[1] "منذ شهر واحد" +msgstr[2] "منذ شهرين" +msgstr[3] "منذ %d أشهر" +msgstr[4] "منذ %d شهرا" +msgstr[5] "منذ %d شهر" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "في المستقبل" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "اتصل لتعديل معلوماتك الشخصية." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "المعرّف" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "الكُنية" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "التفاصيل الشخصية" diff --git a/telepathy-account-widgets/po/as.po b/telepathy-account-widgets/po/as.po new file mode 100644 index 0000000..f2dc66e --- /dev/null +++ b/telepathy-account-widgets/po/as.po @@ -0,0 +1,935 @@ +# Assamese translation for tp-account-widgets. +# Copyright (C) 2009 tp-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# +# Nilamdyuti Goswami , 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: empathy gnome-2-28\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-08-22 13:40+0000\n" +"PO-Revision-Date: 2013-09-23 13:35+0530\n" +"Last-Translator: Nilamdyuti Goswami \n" +"Language-Team: Assamese \n" +"Language: as\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" +"ব্যৱহাৰকাৰীৰ অৱতাৰ আখৰকৰ্তা ছবি নিৰ্ধাৰণৰ বাবে ব্যৱহৃত অবিকল্পিত ডাইৰেকটৰি" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "সৰ্বশেষ অৱতাৰৰ বাবে ব্যৱহৃত ছবি যি ডাইৰেকটৰিৰ পৰা নিৰ্বাচন কৰা হৈছে।" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "বৰ্তমান স্থানীয়" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "আৰবি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "আৰ্মেনিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "বল্টিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "ছেল্টিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "মধ্য ইউৰোপিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "সৰল চীনা" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "পাৰম্পৰিক চীনা" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ক্ৰোয়েছিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ছিৰিলিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ছিৰিলিক/ৰুচ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ছিৰিলিক/ইউক্ৰেনিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "জৰ্জিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "গ্ৰিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "গুজ্ৰাতি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "গুৰুমুখি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "হিব্ৰু" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "হিব্ৰু ভিছুৱেল" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "হিন্দি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "আইছলেন্ডিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "জাপানি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "কোৰিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "নৰ্ডিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ফাৰ্চি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "ৰোমেনিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "দক্ষিণ ইউৰোপিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "থাই" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "তুৰ্কি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "ইউনিকোড" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "পশ্চিমি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ভিয়েতনামিছ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "পাছৱাৰ্ড (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "পৰ্দাৰ নাম (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "উদাহৰণ: মোৰপৰ্দানাম" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "পাছৱাৰ্ড মনত ৰাখক" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "পোৰ্ট (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "চাৰ্ভাৰ (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "উন্নত বিকল্প" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "আপোনাৰ AIM একাওন্টৰ ব্যৱহাৰকাৰীৰ-নাম কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "আপোনাৰ AIM পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "পাছৱাৰ্ড মনত ৰাখক" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "একাওন্ট" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "পাছৱাৰ্ড" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "চাৰ্ভাৰ" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "পোৰ্ট" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +#| msgid "Username" +msgid "Username:" +msgstr "ব্যৱহাৰকাৰীনাম:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "যোগ কৰক (_d)" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "প্ৰয়োগ কৰক (_p)" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%2$s ত %1$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +#| msgid "New %s account" +msgid "%s Account" +msgstr "%s একাওন্ট" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +#| msgid "New %s account" +msgid "New account" +msgstr "নতুন একাওন্ট" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "লগিন ID (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "উদাহৰণ: ব্যৱহাৰকাৰীনাম" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "আপোনাৰ GroupWise ব্যৱহাৰকাৰীৰ ID কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "আপোনাৰ GroupWise পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "উদাহৰণ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "আখৰ সংহতি (_a)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "আপোনাৰ ICQ UIN কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "নেটৱাৰ্ক" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "আখৰ সংহতি" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "যোগ কৰক…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "আতৰাওক" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "উপৰ" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "তল" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "চাৰ্ভাৰসমূহ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"সৰহভাগ IRC চাৰ্ভাৰসমূহৰ এটা পাছৱাৰ্ডৰ প্ৰয়োজন নহয়, সেয়েহে যদি আপুনি নিশ্চিত " +"নহয়, " +"এটা পাছৱাৰ্ড নসোমাব।" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "উপনাম" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "প্ৰস্থান বাৰ্তা" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "প্ৰকৃত নাম" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ব্যৱহাৰকাৰীৰ নাম" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "কোন IRC নেটৱাৰ্ক?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "আপোনাৰ IRC উপনাম কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "আপোনাৰ Facebook ব্যৱহাৰকাৰীনাম কি?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"এইটো আপোনাৰ ব্যৱহাৰকাৰীনাম, আপোনাৰ সাধাৰণ Facebook লগিন নহয়।\n" +"যদি আপুনি এজন facebook.com/badger হয়, সুমুৱাওক badger।\n" +"যদি আপোনাৰ এটা Facebook ব্যৱহাৰকাৰীনাম নাই এটা বাছইবলে এই পৃষ্ঠা ব্যৱহাৰ কৰক।" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "আপোনাৰ Facebook পাছৱাৰ্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "আপোনাৰ Google ID কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "উদাহৰণ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "আপোনাৰ Google পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "উদাহৰণ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL প্ৰমাণপত্ৰ ত্ৰুটিসমূহ উপেক্ষা কৰক (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "গুৰুত্ব (_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "সম্পদ (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "ইনক্ৰিপষণৰ প্ৰয়োজন (TLS/SSL) (_y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "চাৰ্ভাৰৰ বৈশিষ্ট্য উপেক্ষা কৰক" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "পুৰনি SSL ব্যৱহাৰ কৰা হ'ব (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "আপোনাৰ Jabber ID কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your Jabber password?" +msgstr "আপোনাৰ Jabber পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "উপনাম (_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "শেষ নাম (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "প্ৰথম নাম (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "প্ৰকাশিত নাম (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Jabber ID (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ই-মেইল ঠিকনা (_m)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "উদাহৰণ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "আপোনাৰ Windows Live ID কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "আপোনাৰ Windows Live পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "স্বচালিত" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "ৰেজিস্টাৰ কৰক" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "বিকল্পসমূহ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "কোনো নহয়" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ব্যৱহাৰকাৰীনাম (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "উদাহৰণ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "এই একাওন্টক লেন্ডলাইন আৰু মবাইল ফোনসমূহ কল কৰিবলে ব্যৱহাৰ কৰক" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ভ্ৰমণ বিকল্পসমূহ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "প্ৰক্সি বিকল্পসমূহ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "বহু বিকল্পসমূহ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN চাৰ্ভাৰ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN চাৰ্ভাৰ স্বচালিতভাৱে খোজ কৰক" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "বান্ধনী খোজ কৰক" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "জীৱন্ত-ৰাখক বিকল্পসমূহ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "পদ্ধতি" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "অন্তৰাল (ছেকেণ্ডসমূহ)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "প্ৰমাণীকৰণ ব্যৱহাৰকাৰীনাম" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "পৰিৱহন" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ঢিলা ৰুটিং" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS ত্ৰুটিসমূহ উপেক্ষা কৰক" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "স্থানীয় IP ঠিকনা" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "আপোনাৰ SIP লগিন ID কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "আপোনাৰ SIP একাওন্টৰ পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "পাছৱাৰ্ড: (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! ID (_D):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "কনফাৰেঞ্চ আৰু চেট ৰুম নিমন্ত্ৰণসমূহ উপেক্ষা কৰক (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "ৰুম তালিকাৰ স্থানীয়: (_R)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "আখৰ সংহতি (_a):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "পোৰ্ট: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "আপোনাৰ Yahoo! ID কি ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "আপোনাৰ Yahoo! পাছৱাৰ্ড কি ?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:539 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:624 +msgid "Couldn't convert image" +msgstr "ছবি পৰিবৰ্তন কৰিব পৰা নগল" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:540 +msgid "None of the accepted image formats are supported on your system" +msgstr "গ্ৰহণ কৰা ছবি বিন্যাসসমূহৰ কোনোটোৱে আপোনাৰ চিস্টেমত সমৰ্থিত নহয়" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:900 +msgid "Couldn't save picture to file" +msgstr "ছবিক ফাইললৈ সংৰক্ষণ কৰিব নোৱাৰি" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1024 +msgid "Select Your Avatar Image" +msgstr "আপোনাৰ অৱতাৰ ছবি বাছক" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1032 +msgid "Take a picture..." +msgstr "এটা ছবি লওক..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1045 +msgid "No Image" +msgstr "কোনো ছবি নাই" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1102 +msgid "Images" +msgstr "ছবিসমূহ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1106 +msgid "All Files" +msgstr "সকলো ফাইল" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "বাছক..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "বাছক (_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +#| msgid "Full name" +msgid "Full Name" +msgstr "সম্পূৰ্ণ নাম" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#| msgid "Phone number" +msgid "Phone Number" +msgstr "ফোন নম্বৰ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#| msgid "E-mail address" +msgid "E-mail Address" +msgstr "ই-মেইল ঠিকনা" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "ৱেবছাইট" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "জন্মদিন" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#| msgid "Last seen:" +msgid "Last Seen:" +msgstr "সৰ্বশেষ ব্যৱহৃত:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "চাৰ্ভাৰ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +#| msgid "Connected from:" +msgid "Connected From:" +msgstr "চিহ্নিত ঠাইৰ পৰা সংযুক্ত:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +#| msgid "Away message:" +msgid "Away Message:" +msgstr "নিষ্ক্ৰিয় অৱস্থাৰ বাৰ্তা:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "কৰ্ম" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "ঘৰ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "মবাইল" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "মাত" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "পছন্দৰ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "ডাক সম্বন্ধীয়" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "পাৰ্চেল" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "নতুন নেটৱাৰ্ক" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "এটা IRC নেটৱাৰ্ক বাছক" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "নেটৱাৰ্কসমূহৰ তালিকা পুনৰ সংহতি কৰক (_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "নিৰ্বাচন কৰক" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "নতুন চাৰ্ভাৰ" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "পাছৱাৰ্ড পোৱা নগল" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) ৰ বাবে IM একাওন্ট পাছৱাৰ্ড" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "একাওন্ট %s (%s) ত চেটৰুম '%s' ৰ বাবে পাছৱাৰ্ড" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "নতুন %s একাওন্ট" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d ছেকেণ্ড আগতে" +msgstr[1] "%d ছেকেণ্ড আগতে" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d মিনিট আগতে" +msgstr[1] "%d মিনিট আগতে" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ঘন্টা আগতে" +msgstr[1] "%d ঘন্টা আগতে" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d দিন আগতে" +msgstr[1] "%d দিন আগতে" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d সপ্তাহ আগতে" +msgstr[1] "%d সপ্তাহ আগতে" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d মাহ আগতে" +msgstr[1] "%d মাহ আগতে" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ভবিষ্যতে" + +#: ../tp-account-widgets/tpaw-user-info.c:423 +msgid "Go online to edit your personal information." +msgstr "আপোনাৰ ব্যক্তিগত তথ্য সম্পাদন কৰিবলে অনলাইন যাওক।" + +#: ../tp-account-widgets/tpaw-user-info.c:507 +msgid "These details will be shared with other users on this chat network." +msgstr "এই বিৱৰণসমূহ এই চেট নেটৱাৰ্কৰ অন্য ব্যৱহাৰকাৰীৰ সৈতে অংশীদাৰী কৰা হব।" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:516 +msgid "Identifier" +msgstr "চিনাক্তক" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:524 +msgid "Alias" +msgstr "এলিয়াচ" + +#: ../tp-account-widgets/tpaw-user-info.c:541 +msgid "Personal Details" +msgstr "ব্যক্তিগত বিৱৰণসমূহ" + +#: ../tp-account-widgets/tpaw-utils.c:115 +msgid "People Nearby" +msgstr "ওচৰৰ ব্যক্তিসকল" + +#: ../tp-account-widgets/tpaw-utils.c:120 +#| msgid "Yahoo! I_D:" +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:156 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:157 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "আপোনাৰ পছন্দৰ Jabber ID কি ?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "আপোনাৰ পছন্দৰ Jabber পাছৱাৰ্ড কি ?" diff --git a/telepathy-account-widgets/po/ast.po b/telepathy-account-widgets/po/ast.po new file mode 100644 index 0000000..01dc812 --- /dev/null +++ b/telepathy-account-widgets/po/ast.po @@ -0,0 +1,862 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Xandru Armesto , 2011. +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2011-09-07 17:34+0200\n" +"Last-Translator: Xandru Armesto \n" +"Language-Team: Softastur \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Virtaal 0.5.2\n" +"X-Poedit-Language: Asturian\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Direutoriu predetermináu pa esbillar un avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Caberu direutoriu del que s'esbilló un avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Configuración rexonal actual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Árabe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeniu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Bálticu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centroeuropéu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinu simplificáu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinu tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirílicu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirílicu/Rusu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirílicu/Ucranianu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Xorxanu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Griegu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebréu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebréu visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindú" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Xaponés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreanu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nórdicu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumanu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europa del sur" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turcu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Contra_seña:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "_Nome en pantalla:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemplu: MioNomeEnPantalla" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Remembrar la contraseña" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Puertu:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Sirvidor:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avanzáu" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "¿Cuál ye'l so nome de pantalla en AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "¿Cuál ye la so contraseña de AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Remembrar contraseña" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "_ID de sesión:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemplu: usuariu" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "¿Cuál ye'l so ID d'usuariu en GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "¿Cuál ye la so contraseña en GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "_UIN ICQ:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemplu: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Xueu de C_arauteres:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "¿Cuál ye'l so UIN de ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "¿Cuál ye la so contraseña de ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rede" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Xuegu de carauteres:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Amestar…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Desaniciar" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Sirvidores" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"La mayoría de los sirvidores IRC nun necesiten una contraseña, de mou que si " +"nun tas seguru, nun introduzas una contraseña." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Nomatu:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Contraseña" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Mensax de salida:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Nome real:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Nome d'usuariu:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "¿Qué rede IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "¿Cuál ye'l to alcuñu nel IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "¿Cuál ye'l to usuariu de Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Esti ye'l to nome d'usuariu, non el to aniciu de sesión normal en Facebook.\n" +"Si ye facebook.com/usuariu, introduz usuariu.\n" +"Usa esta páxina pa escoyer " +"un nome d'usuariu en Facebook si nun tienes ún." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "¿Cuál ye la to contraseña de Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "¿Cuál ye'l to ID de Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemplu: usuariu@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "¿Cuál ye la to contraseña de Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemplu: usuariu@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "I_norar los errores de certificáu SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "Priori_dá:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Re_cursu:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Necesítase enc_riptación (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Sobrescribir los axustes del sirvidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Usar SS_L antiguu" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "¿Cuál ye'l so ID de Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "¿Cuál ye la to ID de Jabber deseyada?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "¿Cuál ye la so contraseña de Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "¿Cuál ye la to contraseña de Jabber deseyada?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Alcu_ñu:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Ape_llíos:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Nome:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Nome _espublizáu:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ID _Jabber:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "Direición de corréu-_e:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemplu: usuariu@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "¿Cuál ye la to ID de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "¿Cuál ye la so contraseña de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opciones" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Dengún" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Usuariu:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemplu: usuariu@mio.sirvidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Usar esta cuenta pa llamar a te_léfonos fixos y móviles" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opciones de NAT transversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opciones Proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Otres opciones" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Sirvidor STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descubrir el sirvidor STUN automáticamente" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descubrir vinculación" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Sirvidor" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opciones de «keepalive»" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Mecanismu:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalu (segundos)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Usuariu pa l'autenticación:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Tresporte:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Enrutáu imprecisu" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Inorar fallos TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Puertu" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "¿Cuál ye'l so ID d'accesu de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "¿Cuál ye la so contraseña de cuenta de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Contra_seña:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D de Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_norar los errores d'invitación a conferencies y sales de charra" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Configuración de la llista de _sales:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Xueu de C_arauteres:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Puertu:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "¿Cuál ye'l so ID de Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "¿Cuál ye la so contraseña de Yahoo!?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Seleicionar" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Seleicionar" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Nome completu:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +#, fuzzy +msgid "Phone number" +msgstr "Númberu de teléfonu:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#, fuzzy +msgid "E-mail address" +msgstr "Direición de corréu-e:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Sitiu web:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "Cumpleaños:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Cabera actividá:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Sirvidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Coneutáu dende:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Mensaxe d'ausencia:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "Rede" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +#, fuzzy +msgid "mobile" +msgstr "Móvil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Preferencies" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Rede nueva" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Escoyer una rede d'IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Re_stablecer la llista de redes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Seleicionar" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "sirvidor nuevu" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Frase nun atopada" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Cuenta de %s nueva" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "fai %d segundu" +msgstr[1] "fai %d segundos" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "fai %d minutu" +msgstr[1] "fai %d minutos" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "fai %d hora" +msgstr[1] "fai %d hores" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "fai %d día" +msgstr[1] "fai %d díes" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "fai %d selmana" +msgstr[1] "fai %d selmanes" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "fai %d mes" +msgstr[1] "fai %d meses" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "nel futuru" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identificador:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Nomatu:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Detalles Téunicos" diff --git a/telepathy-account-widgets/po/az.po b/telepathy-account-widgets/po/az.po new file mode 100644 index 0000000..d391fcd --- /dev/null +++ b/telepathy-account-widgets/po/az.po @@ -0,0 +1,844 @@ +# gossip.HEAD.po faylının Azərbaycan Dilinə tərcüməsi +# gossip.HEAD.po faylının Azərbaycan dilinə tərcüməsi +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# Mətin Əmirov , 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: gossip.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2003-10-19 20:34+0300\n" +"Last-Translator: Mətin Əmirov \n" +"Language-Team: Azərbaycan Dili \n" +"Language: az\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0.1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +#, fuzzy +msgid "Persian" +msgstr "Buraxılış:" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "_Şifrə:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "Üstünlük:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Verici:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "_Verici:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "_Şifrə:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "İsmarış:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +#, fuzzy +msgid "Options" +msgstr "Bağlan" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "_Verici:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +#, fuzzy +msgid "Server" +msgstr "_Verici:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +#, fuzzy +msgid "Port" +msgstr "Üstünlük:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +#, fuzzy +msgid "Pass_word:" +msgstr "_Şifrə:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +#, fuzzy +msgid "_Port:" +msgstr "Üstünlük:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Ad:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "_Vacibiyyət:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "_Verici:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Bağlan" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "İsmarış:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Qurğular" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, fuzzy, c-format +msgid "New %s account" +msgstr "_Gedişatlar" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, fuzzy, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "dəqiqə" +msgstr[1] "dəqiqə" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Ad:" diff --git a/telepathy-account-widgets/po/be.po b/telepathy-account-widgets/po/be.po new file mode 100644 index 0000000..27f6d21 --- /dev/null +++ b/telepathy-account-widgets/po/be.po @@ -0,0 +1,921 @@ +# insomnia , 2009. +# Kasia Bondarava , 2011. +# Ihar Hrachyshka , 2011, 2013. +# Yuras Shumovich , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy.master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-03-03 15:37+0000\n" +"PO-Revision-Date: 2017-03-26 16:53+0300\n" +"Last-Translator: Yuras Shumovich \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Прадвызначаны каталог для выбару аватар" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Апошні каталог, з якога была выбрана аватара." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Дзейныя настройкі мясцовасці" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Арабскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Армянскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Балтыйскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Кельцкі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Цэнтральнаеўрапейскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Спрошчаны кітайскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Традыцыйны кітайскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Харвацкі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Кірыліца" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Кірыліца/Рускі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Кірыліца/Украінскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Грузінскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Грэцкі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Гуджараці" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Гурмукхі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Іўрыт" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Іўрыт (бачны)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Хіндзі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Ісландскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Японскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Карэйскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Скандынаўскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Іранскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Румынскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Паўднёваеўрапейскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Тайскі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Турэцкі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Унікод" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Заходні" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "В'етнамскі" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Пароль" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Кантактнае імя" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Прыклад: МаёКантактнаеІмя" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Запомніць пароль" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Порт" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Адмысловае" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Ваша кантактнае імя для конта AIM" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Ваш пароль да конта AIM" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Конт" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Пароль" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сервер" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Порт" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Дадаць" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "_Ужыць" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s на %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "%s-конт" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Новы конт" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Ід_энтыфікатар конта" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Прыклад: імя_карыстальніка" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Ваш ідэнтыфікатар карыстальніка да конта GroupWise" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Ваш пароль да конта GroupWise" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ-ід_энтыфікатар" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Прыклад: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Знаказбор" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Ваш ідэнтыфікатар да конта ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Ваш пароль да конта ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Сетка" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Знаказбор" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Дадаць..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Выдаліць" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Уверх" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Уніз" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Серверы" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Большасць IRC-сервераў не патрабуе пароляў, таму калі вы не ўпэўнены, проста " +"пакіньце графу пароля пустой." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Мянушка" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Развітальнае паведамленне" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Сапраўднае імя" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Імя карыстальніка" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "IRC-сетка" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Ваша мянушка ў IRC-сетцы" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Ваш ідэнтыфікатар Google" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Прыклад: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Ваш пароль да конта Google" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Прыклад: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "І_гнараваць памылкі SSL-сертыфіката" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "_Прыярытэт" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "_Рэсурс" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Абавязковае шыфраванне (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Засланіць настройкі сервера ўласнымі" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "_Выкарыстоўваць стары SSL-пратакол" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Ваш ідэнтыфікатар Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Ваш пароль да конта Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Мянушка" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Прозвішча" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "Ім_я" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Апублікаванае імя" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Jabber-ід_энтыфікатар" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_Электронны паштовы адрас" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Прыклад: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Ваш ідэнтыфікатар Windows Live" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Ваш пароль да конта Windows Live" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Аўтаматычна" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Нічога" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Імя _карыстальніка" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Прыклад: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Выкарыстоўваць гэты конт для званкоў на _хатнія і мабільныя тэлефоны" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Опцыі праходу праз NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Опцыі проксі-сервера" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Разнастайныя опцыі" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-сервер" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Аўтаматычны пошук STUN-сервера" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Пошук сувязі" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Опцыі падтрымкі сувязі" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Механізм" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Прамежак часу (у секундах)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Імя для ідэнтыфікацыі карыстальніка" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Транспарт" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Вольная маршрутызацыя" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ігнараваць памылкі TLS-пратакола" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Мясцовы IP-адрас" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Ваш ідэнтыфікатар да конта SIP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Ваш пароль да конта SIP" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Пароль:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-ід_энтыфікатар:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "І_гнараваць запрашэнні на канферэнцыі і ў пакоі чату" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Настройкі мясцовасці для спіса пакояў:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Знаказбор:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Порт:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Ваш ідэнтыфікатар да конта Yahoo!" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Ваш пароль да конта Yahoo!" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Не ўдалося пераўтварыць выяву" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ваша сістэма не падтрымлівае ні адзін з магчымых фарматаў выяў" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Не ўдалося захаваць выяву ў файле" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Выбар аватары" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Зрабіць здымак..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Без выявы" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Выявы" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Усе файлы" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Выбраць..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Выбраць" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Поўнае імя" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Тэлефонны нумар" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Электронны паштовы адрас" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Сеціўная пляцоўка" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Дзень нараджэння" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Быў ля камп'ютара:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Сервер:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Назва камп'ютара:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Паведамленне пры адсутнасці:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "працоўны" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "дамашні" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "мабільны" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "голасам" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "асноўны" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "для пошты" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "для пасылак" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Новая сетка" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Выберыце IRC-сетку" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_Ануляваць змены ў спісе сетак" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Выбраць" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "новы сервер" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Пароль не знойдзены" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Пароль да конта камунікатара %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Пароль да пакоя \"%s\" для конта %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Новы конт %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d секунда таму" +msgstr[1] "%d секунды таму" +msgstr[2] "%d секунд таму" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d хвіліна таму" +msgstr[1] "%d хвіліны таму" +msgstr[2] "%d хвілін таму" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d гадзіна таму" +msgstr[1] "%d гадзіны таму" +msgstr[2] "%d гадзін таму" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d дзень таму" +msgstr[1] "%d дні таму" +msgstr[2] "%d дзён таму" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d тыдзень таму" +msgstr[1] "%d тыдні таму" +msgstr[2] "%d тыдняў таму" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d месяц таму" +msgstr[1] "%d месяцы таму" +msgstr[2] "%d месяцаў таму" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "у будучыні" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Злучыцеся з сеткай, каб змагчы рэдагаваць асабістыя звесткі." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Гэтыя звесткі будуць даступныя для іншых карыстальнікаў чат-сеткі." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Ідэнтыфікатар" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Псеўданім" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Асабістыя падрабязнасці" + +#: ../tp-account-widgets/tpaw-utils.c:122 +msgid "People Nearby" +msgstr "Людзі навокал" + +#: ../tp-account-widgets/tpaw-utils.c:127 +msgid "Yahoo! Japan" +msgstr "Yahoo! Японія" + +#: ../tp-account-widgets/tpaw-utils.c:165 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Remember Password" +#~ msgstr "Запомніць пароль" + +#~ msgid "Username:" +#~ msgstr "Імя карыстальніка:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Ваша імя карыстальніка ў сетцы Facebook" + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don't have one." +#~ msgstr "" +#~ "Гэта ваша імя карыстальніка, а не звычайны конт Facebook.\n" +#~ "Напрыклад, калі вы маеце конт facebook.com/badger, упішыце " +#~ "badger.\n" +#~ "Каб выбраць сабе імя, наведайце гэту старонку." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Ваш пароль да конта Facebook" + +#~ msgid "Select..." +#~ msgstr "Выбраць..." + +#~ msgid "Facebook Chat" +#~ msgstr "Facebook Chat" diff --git a/telepathy-account-widgets/po/be@latin.po b/telepathy-account-widgets/po/be@latin.po new file mode 100644 index 0000000..0b311fc --- /dev/null +++ b/telepathy-account-widgets/po/be@latin.po @@ -0,0 +1,871 @@ +# Biełaruski pierakład tp-account-widgets. +# This file is distributed under the same license as the tp-account-widgets package. +# Ihar Hrachyshka (c) 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2009-03-04 14:46+0200\n" +"Last-Translator: Ihar Hrachyshka \n" +"Language-Team: i18n@mova.org \n" +"Language: be@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Belarusian latin\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Zmoŭčany kataloh, ź jakoha treba vybirać avatary" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Apošni kataloh, ź jakoha minuły raz byŭ vybrany avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Dziejnaja lakalnaść" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armianskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Bałtyjskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Kielckaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centralna-Eŭrapiejskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Kitajskaje sproščanaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Kitajskaje tradycyjnaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Charvackaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kirylica" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kirylica (Rasieja)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kirylica (Ukraina)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Hruzinskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Hreckaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Habrejskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Habrejskaje (vizualnaje)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindzi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Iślandzkaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Karejskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nardyčnaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persydzkaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumynskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Paŭdniova-Eŭrapiejskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tajskaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Tureckaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unikod" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Zachodniaje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vijetnamskaje" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "_Parol:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "_Nazva kontu:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Server:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +#, fuzzy +msgid "Advanced" +msgstr "Asablivaje" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "Parol:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "_ID uvachodu:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "_UIN ICQ:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Sietka" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Kadavańnie:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_Vydali" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Mianuška:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "Parol:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Paviedamleńnie vychadu:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Sapraŭdnaje imia:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Nazva _karystalnika:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "_Ihnaruj pamyłki ŭ sertyfikatach SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "_Resurs:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Patrebnaje šyfravańnie (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#, fuzzy +msgid "Override server settings" +msgstr "Padmianiaj nałady servera" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Užyj _stary SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Mianuška:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Proźvišča:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Imia:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_Apublikavanaja nazva:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ID _Jabbera:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "Zachodniaje" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "Nazva _karystalnika:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Server STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +#, fuzzy +msgid "Discover Binding" +msgstr "Ahladaj STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Niaŭdałaja aŭtaryzacyja" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Parol:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "ID _Yahoo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "_Ihnaruj zaprašeńni na kanferencyi dy ŭ pakoi" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Lakalnaść śpisu pakojaŭ:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "Kadavańnie:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Vybiery" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Vybiery" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Poŭnaja nazva fajłu:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Sajt:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "Dzień narodzinaŭ:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "_Proźvišča:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "_Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Spałučany" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "Zapišy paviedamleńnie" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "Sietka" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Nałady" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Novaja sietka" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +#, fuzzy +msgid "Choose an IRC network" +msgstr "Stvary novuju sietku IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Vybiery" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "novy server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Novy kont %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identyfikatar:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Alias:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Detali kantaktu" diff --git a/telepathy-account-widgets/po/bg.po b/telepathy-account-widgets/po/bg.po new file mode 100644 index 0000000..bd084a5 --- /dev/null +++ b/telepathy-account-widgets/po/bg.po @@ -0,0 +1,833 @@ +# Bulgarian translation of tp-account-widgets po-file. +# Copyright (C) 2004, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# Copyright (C) 2010 Damyan Ivanov +# Copyright (C) 2011 Krasimir Chonov +# This file is distributed under the same license as the tp-account-widgets package. +# Yasen Pramatarov , 2004. +# Alexander Shopov , 2007, 2008, 2009, 2010, 2011, 2012. +# Yavor Doganov , 2009. +# Damyan Ivanov , 2010, 2011. +# Krasimir Chonov , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-10-02 05:36+0300\n" +"Last-Translator: Alexander Shopov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Стандартна папка, в която да се търсят изображения за аватари" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Последната папка, от която е взето изображение за аватар." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "текущ локал" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "арабски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "арменски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "балтийски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "келтски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "централноевропейски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "китайски, опростен" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "китайски, традиционен" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "хърватски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "кирилица" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "кирилица, руска" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "кирилица, украинска" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "грузински" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "гръцки" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "гуджарати" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "гурмуки" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "иврит" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "иврит, визуален" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "хинди" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "исландски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "японски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "корейски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "скандинавски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "персийски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "румънски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "южноевропейски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "тайски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "турски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Уникод" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "западен" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "виетнамски" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "П_арола" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Псевдоним" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Пример: МоетоИме" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Запомняне" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Порт" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Сървър" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Допълнителни" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Какво е името ви в мрежата на AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Каква е паролата ви за AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Запомняне" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_Идентификатор" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Пример: потребителско_име" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Какъв е идентификаторът ви в GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Каква е паролата ви в GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "И_дентификатор за ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Пример: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Кодиране" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Какъв е идентификаторът ви за ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Каква е паролата ви за ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Мрежа" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Кодиране" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Добавяне…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Изтриване" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Нагоре" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Надолу" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Сървъри" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Повечето IRC сървъри нямат нужда от парола, така че ако не сте сигурни, не " +"въвеждайте парола." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Псевдоним" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Парола" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Съобщение при напускане" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Истинско име" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Потребителско име" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Коя мрежа за IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Какво е името ви в мрежата за IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Какво е името ви във Фейсбук?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Това е потребителското ви име, а не това, с което обикновено влизате във " +"Facebook.\n" +"Ако страницата http://www.facebook.com/Ivancho е ваша, въведете " +"Ivancho.\n" +"Ако нямате такова име във Фейсбук, създайте си чрез тази страница." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Каква е паролата ви във Фейсбук?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Какъв е идентификаторът ви в Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Пример: потребител@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Каква е паролата ви в Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Пример: потребител@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_Пренебрегване на грешките в сертификата за SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "Пр_иоритет" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "_Ресурс" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Задължително шифрриране (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Използване на собствените настройки" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Използване на _стар SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Какъв е идентификаторът ви за Джабър?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Какъв е желаният от вас идентификатор за Джабър?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Каква е паролата ви за Джабър?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Каква е желаната от вас парола за Джабър?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Псевдо_ним" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Фамилно име" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Лично име" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Име за п_убликуване" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Ид_ентификатор за Джабър" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Адрес на _е-поща" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Пример: потребител@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Какъв е идентификаторът ви Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Каква е паролата ви за Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Автоматично" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Заявка за регистриране" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Настройки" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Без" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Потребителско _име" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Пример: потребител@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" +"Използване на тази регистрация за прове_ждане на разговори с наземни и " +"мобилни мрежи" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Настройки за преминаването през NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Сървър-посредник" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Допълнителни настройки" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Сървър за STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Автоматично откриване на сървъра за STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Откриване на свързването" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сървър" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Настройки на поддържането на връзката" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Механизъм" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Интервал [сек.]" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Име за идентификация" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Транспорт" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Свободна маршрутизация" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Игнориране на TLS грешки" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Порт" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Локален адрес по IP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Какво е потребителското ви име за SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Каква е паролата ви за SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "П_арола:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "И_дентификатор на Yahoo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" +"_Да не се обръща внимание на поканите за конферентни разговори и стаи за " +"разговори" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Локал на списъка със стаи:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Кодиране:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Порт:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Какъв е идентификаторът ви в Yahoo?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Каква е паролата ви в Yahoo?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Избор…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Избор" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Пълно име" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Телефонен номер" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Адрес на е-поща" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Уебсайт" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Рожден ден" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Последно видян:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Сървър:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Свързан от:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Съобщение при напускане:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "работен" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "домашен" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "мобилен" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "гласови" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "предпочитан" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "пощенски" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "за доставка" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Нова мрежа" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Избор на мрежа за IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Изчистване на _списъка с мрежи" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Избор" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "нов сървър" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "Паролата не е открита" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Парола за %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Парола за стая за разговор „%s“ на регистрацията %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Нова регистрация в %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "преди %d секунда" +msgstr[1] "преди %d секунди" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "преди %d минута" +msgstr[1] "преди %d минути" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "преди %d час" +msgstr[1] "преди %d часа" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "преди %d ден" +msgstr[1] "преди %d дни" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "преди %d седмица" +msgstr[1] "преди %d седмици" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "преди %d месец" +msgstr[1] "преди %d месеца" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "в бъдеще" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "Влезте в мрежата, за да редактирате личните си данни." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "Идентификатор" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "Псевдоним" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "Лични данни" diff --git a/telepathy-account-widgets/po/bn.po b/telepathy-account-widgets/po/bn.po new file mode 100644 index 0000000..7b11c31 --- /dev/null +++ b/telepathy-account-widgets/po/bn.po @@ -0,0 +1,894 @@ +# Bengali translation for tp-account-widgets +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Runa Bhattacharjee , 2008, 2009. +# Saad M Niamatullah , 2009 +# Sadia Afroz , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: bn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2010-03-28 10:27+0600\n" +"Last-Translator: Sadia Afroz \n" +"Language-Team: Bengali \n" +"Language: bn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" +"ব্যবহারকারীর অবতার চিহ্নিতকারী ছবি নির্ধারণের জন্য যে পূর্বনির্ধারিত ডিরেক্টরি " +"ব্যবহার করা হবে" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "সর্বশেষ অবতারের জন্য ব্যবহৃত ছবিটি যে ডিরেক্টরি থেকে নির্বাচন করা হয়েছে।" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "বর্তমান লোক্যাল" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "আরবি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "আর্মেনীয়" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "বাল্টিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "সেলটিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "মধ্য ইউরোপিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "চাইনিজ সরলীকৃত" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "চাইনিজ সনাতন" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ক্রোয়েশিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "সিরিলিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "সিরিলিক/রাশিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "সিরিলিক/ইউক্রেনীয়" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "জর্জীয়" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "গ্রিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "গুজরাটি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "গুরুমুখী" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "হিব্রু" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "হিব্রু ভিস্যুয়াল" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "হিন্দি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "আইসল্যান্ডীয়" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "জাপানী" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "কোরিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "নর্ডিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ফার্সি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "রোমানীয়" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "দক্ষিণ ইউরোপিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "থাই" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "তুর্কি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "ইউনিকোড" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "পশ্চিমা" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ভিয়েতনামী" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "পাসওয়ার্ড: (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "পর্দায় ব্যবহৃত নাম: (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "উদাহরণ: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "পোর্ট: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "সার্ভার: (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "উন্নত" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "আপনার AIM পর্দায় নাম কি?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "আপনার AIM পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "পাসওয়ার্ড:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "লগ-ইন ID: (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "উদাহরণ: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "আপনার GroupWise ব্যবহারকারী ID কি?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "আপনার GroupWise পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ UIN: (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "উদাহরণ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "অক্ষর সমষ্টি:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "আপনার ICQ UIN কি?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "আপনার ICQ পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "নেটওয়ার্ক" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "অক্ষর সমষ্টি:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +#, fuzzy +msgid "Add…" +msgstr "যোগ করুন… (_A)" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "অপসারণ (_R)" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "সার্ভার" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "ডাকনাম:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "পাসওয়ার্ড:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "প্রস্থানকালে প্রদর্শিত বার্তা:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "আসল নাম:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "ব্যবহারকারীর নাম:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "আপনার AIM পর্দায় নাম কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "আপনার Facebook ব্যবহারকারী নাম কি?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"এটা আপনার ব্যবহারকারী নাম, সাধারণ Facebook লগ-ইন নয়।\n" +"যদি আপনি facebook.com/ব্যাজারহন, ব্যাজারদিন।\n" +"যদি আপনার Facebook ব্যবহারকারী নাম না থাকে তবে নির্বাচন করার জন্য এই পৃষ্ঠাটি ব্যবহার করুন।" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "আপনার Facebook পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "আপনার Google ID কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "উদাহরণ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "আপনার Google পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "উদাহরণ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "SSL সার্টিফিকেট সংক্রান্ত ত্রুটি উপেক্ষা করা হবে (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "রিসোর্স: (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "এনক্রিপশন আবশ্যক (TLS/SSL) (_E)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "সার্ভারের সেটিংসমূহ উপেক্ষা করা হবে" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "পুরোনো SSL ব্যবহার করা হবে (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "আপনার Jabber ID কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "আপনার কাঙ্খিত Jabber ID কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "আপনার Jabber পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "আপনার কাঙ্খিত Jabber পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "ডাকনাম:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "পদবি: (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "নাম: (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "প্রকাশিত নাম: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "Jabber ID: (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "ইমেইল ঠিকানা:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "উদাহরণ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "আপনার Windows Live ID কি?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "আপনার Windows Live পাসওয়ার্ড কি?" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "স্বয়ংক্রিয়" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "অপশন" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "কোনটি না" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "ব্যবহারকারীর নাম: (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "উদাহরণ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ট্রাভের্সাল অপশন" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "প্রক্সি অপশন" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "বিবিধ অপশন" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN সার্ভার:" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "স্বয়ংক্রিয়ভাবে STUN সার্ভার অনুসন্ধান করা হবে" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "বাইন্ডিং অনুসন্ধান করা হবে" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "সার্ভার" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "অপশন সক্রিয় রাখা হবে" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "পদ্ধতি:" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "বিরতি (সেকেন্ড)" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "প্রমাণীকরণের ব্যবহারকারী নাম:" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "ট্রান্সপোর্ট:" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "শিথিল রাউটিং" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "পোর্ট" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "আপনার SIP লগ-ইন ID কি?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "আপনার SIP অ্যাকাউন্ট পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "পাসওয়ার্ড: (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! ID: (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "অধিবেশন ও আড্ডার আসরের আমন্ত্রণ উপেক্ষা করা হবে (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "রুম তালিকার লোক্যাল: (_R)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "অক্ষর সমষ্টি:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "পোর্ট: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "আপনার Yahoo! ID কি?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "আপনার Yahoo! পাসওয়ার্ড কি?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "নির্বাচন করুন" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "নির্বাচন করুন" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "পুরো নাম:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#, fuzzy +msgid "E-mail address" +msgstr "ইমেইল ঠিকানা:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "ওয়েবসাইট:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "জন্মদিন:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "পদবি: (_L)" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "সার্ভার: " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "সংযুক্ত" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "প্রস্থানকালে প্রদর্শিত বার্তা:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "নেটওয়ার্ক" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "পছন্দসমূহ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "নতুন নেটওয়ার্ক" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "নির্বাচন করুন" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "নতুন সার্ভার" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "শব্দসমষ্টি খুঁজে পাওয়া যায়নি" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "নতুন %s অ্যাকাউন্ট" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d সেকেন্ড আগে" +msgstr[1] "%d সেকেন্ড আগে" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d মিনিট আগে" +msgstr[1] "%d মিনিট আগে" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ঘন্টা আগে" +msgstr[1] "%d ঘন্টা আগে" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d দিন আগে" +msgstr[1] "%d দিন আগে" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d সপ্তাহ আগে" +msgstr[1] "%d সপ্তাহ আগে" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d মাস আগে" +msgstr[1] "%d মাস আগে" + +# spelling mistake, but cannot find right character on keyboard +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ভবিষ্যতে" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "আইডেন্টিফায়ার:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "উপনাম:" + +# Translated by sadia +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "প্রযুক্তিগত বিবরণ" diff --git a/telepathy-account-widgets/po/bn_IN.po b/telepathy-account-widgets/po/bn_IN.po new file mode 100644 index 0000000..1f8dd37 --- /dev/null +++ b/telepathy-account-widgets/po/bn_IN.po @@ -0,0 +1,871 @@ +# translation of bn_IN.po to Bengali INDIA +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Runa Bhattacharjee , 2008, 2009. +msgid "" +msgstr "" +"Project-Id-Version: bn_IN\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2009-09-16 14:44+0530\n" +"Last-Translator: Runa Bhattacharjee \n" +"Language-Team: Bengali INDIA \n" +"Language: bn_IN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "ব্যবহারকারীর অবতার চিহ্নকারী ছবি নির্ধারণের জন্য ব্যবহৃত ডিফল্ট ডিরেক্টরি" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "সর্বশেষ অবতারের জন্য ব্যবহৃথ ছবিটি যে ডিরেক্টরি থেকে নির্বাচন করা হয়েছে।" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "বর্তমান লোকেইল" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "আরবি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "আর্মেনিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "বল্টিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "সেল্টিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "মধ্য ইউরোপিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "সরলীকৃত চীনা" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "পারম্পরিক চীনা" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ক্রোয়েশিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "সিরিলিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "সিরিলিক/রুশি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "সিরিলিক/ইউক্রেনিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "জর্জিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "গ্রিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "গুজরাতি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "গুরুমুখি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "হিব্রু" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "হিব্রু ভিশুয়াল" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "হিন্দি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "আইসল্যান্ডিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "জাপানি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "কোরিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "নর্ডিক" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ফার্সি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "রোমেনিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "দক্ষিণ ইউরোপিয়ান" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "থাই" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "তুর্কি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode (ইউনিকোড)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Western (পশ্চিমি" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ভিয়েতনামিস" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "পাসওয়ার্ড: (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "পর্দায় ব্যবহৃত নাম: (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +#, fuzzy +msgid "Example: MyScreenName" +msgstr "উদাহরণস্বরূপ: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "পোর্ট: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "সার্ভার: (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "উন্নত বিকল্প" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "আপনার AIM অ্যাকাউন্টের ব্যবহারকারীর-নাম কী?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "আপনার AIM পাসওয়ার্ডটি কী?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "পাসওয়ার্ড:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "লগ-ইন ID: (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +#, fuzzy +msgid "Example: username" +msgstr "উদাহরণস্বরূপ: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "আপনার GroupWise ব্যবহারকারীর ID কী?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "আপনার GroupWise পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +#, fuzzy +msgid "Example: 123456789" +msgstr "উদাহরণস্বরূপ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "আপনার ICQ UIN কী?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "নেটওয়ার্ক" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "ক্যারসেট:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "মুছে ফেলুন (_R)" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "সার্ভার" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "উপনাম (Nickname):" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "পাসওয়ার্ড:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "প্রস্থানকালে প্রদর্শিত বার্তা:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "নাম:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "ব্যবহারকারীর নাম: (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "আপনার AIM অ্যাকাউন্টের ব্যবহারকারীর-নাম কী?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +#, fuzzy +msgid "What is your Facebook username?" +msgstr "আপনার Windows Live ব্যবহারকারীর নাম কী?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#, fuzzy +msgid "What is your Facebook password?" +msgstr "আপনার Yahoo! পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "আপনার Google ID কী?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +#, fuzzy +msgid "Example: user@gmail.com" +msgstr "উদাহরণস্বরূপ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "আপনার Google পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +#, fuzzy +msgid "Example: user@jabber.org" +msgstr "উদাহরণস্বরূপ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "SSL সার্টিফিকেট সংক্রান্ত সমস্যা উপেক্ষা করা হবে (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "সামগ্রী: (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "এনক্রিপশন আবশ্যক (TLS/SSL) (_E)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "সার্ভারের বৈশিষ্ট্য উপেক্ষা করা হবে" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "পুরোনো SSL ব্যবহার করা হবে (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "আপনার Jabber ID কী?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "আপনার পছন্দসই Jabber ID কী?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "আপনার Jabber পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "আপনার পছন্দসই Jabber পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "উপনাম (Nickname):" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "পদবি: (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "নাম: (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "প্রকাশিত নাম: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_Jabber ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +#, fuzzy +msgid "Example: user@hotmail.com" +msgstr "উদাহরণ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +#, fuzzy +msgid "What is your Windows Live ID?" +msgstr "আপনার Windows Live পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "আপনার Windows Live পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "Western (পশ্চিমি" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "ব্যবহারকারীর নাম: (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +#, fuzzy +msgid "Example: user@my.sip.server" +msgstr "উদাহরণস্বরূপ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN সার্ভার:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +#, fuzzy +msgid "Discover Binding" +msgstr "STUN অনুসন্ধান করা হবে" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "সার্ভার" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "অনুমোদন ব্যর্থ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "পোর্ট" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "আপনার SIP লগ-ইন ID কী?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "আপনার SIP অ্যাকাউন্টের পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "পাসওয়ার্ড: (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "Yahoo I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "বৈঠক ও চ্যাট-রুম থেকে প্রাপ্ত আমন্ত্রণগুলি উপেক্ষা করা হবে (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "রুম তালিকার লোকেইল: (_R)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "ক্যারসেট:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "পোর্ট: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "আপনার Yahoo! ID কী?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "আপনার Yahoo! পাসওয়ার্ড কী?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "নির্বাচন করুন" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "নির্বাচন করুন" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "সম্পূর্ণ নাম:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "ওয়েব-সাইট:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "জন্মদিন:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "পদবি: (_L)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "সার্ভার: (_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "সংযুক্ত" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "প্রস্থানকালে প্রদর্শিত বার্তা:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "নেটওয়ার্ক" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "পছন্দ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "নতুন নেটওয়ার্ক" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "নির্বাচন করুন" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "নতুন সার্ভার" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "নতুন %s অ্যাকাউন্ট" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d সেকেন্ড পূর্বে" +msgstr[1] "%d সেকেন্ড পূর্বে" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d মিনিট পূর্বে" +msgstr[1] "%d মিনিট পূর্বে" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ঘন্টা পূর্বে" +msgstr[1] "%d ঘন্টা পূর্বে" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d দিন পূর্বে" +msgstr[1] "%d দিন পূর্বে" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d সপ্তাহ পূর্বে" +msgstr[1] "%d সপ্তাহ পূর্বে" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d মাস পূর্বে" +msgstr[1] "%d মাস পূর্বে" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ভবিষ্যতে" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "সনাক্তচিহ্ন:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "উপনাম:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "" diff --git a/telepathy-account-widgets/po/br.po b/telepathy-account-widgets/po/br.po new file mode 100644 index 0000000..78fbbc8 --- /dev/null +++ b/telepathy-account-widgets/po/br.po @@ -0,0 +1,878 @@ +# Breton translation for tp-account-widgets +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the tp-account-widgets package. +# Denis , 2009. +# Jérémy AR FLOC'H , 2010. +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2010-03-11 20:00+0100\n" +"Last-Translator: Jérémy AR FLOC'H \n" +"Language-Team: Breton \n" +"Language: br\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Launchpad-Export-Date: 2010-03-11 18:12+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Kavlec'h dre ziouer e-lec'h dibab ur skeudennig" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Kavlec'h diwezhañ e-lec'h ez eus bet dibabet ur skeudennig." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Yezh a-vremañ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenianeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Balteg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltiek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Kreiz Europa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Sinaek Aesaet" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Sinaek Hengounel" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroateg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kirillek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kirillek/Rusek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kirillek/UkraÏnek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Jorjianeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Gresianeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebraeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebraeg hewel" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japaneg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Norzhek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Perseg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romaneg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Su Europa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turkeg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Kornôg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnameg" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "_Ger-tremen :" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "A_nv ar skramm :" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +#, fuzzy +msgid "Example: MyScreenName" +msgstr "Skouer : MaAnvSkramm" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Porzh :" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Dafariad :" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Araokaet" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Petra eo ho anv skramm AIM ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Petra eo ho ker-tremen AIM ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "Ger-tremen :" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Hennader (ID) :" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +#, fuzzy +msgid "Example: username" +msgstr "Skouer : anvarveriad" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Petra eo ho hennader arveriad GroupWise (ID) ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Petra eo ho ker-tremen GroupWise ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "Hennader _ICQ (ID) :" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +#, fuzzy +msgid "Example: 123456789" +msgstr "Skouer : 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Spletad arouezennoù :" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Petra eo ho UIN ICQ ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Petra eo ho ker-tremen ICQ ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rouedad" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Spletad arouezennoù :" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_Dilemel" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Dafariaded" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Lesanv :" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "Ger-tremen :" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Kuitaat ar gemennadenn :" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Anv wir :" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Anv an arveriad :" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "Petra eo ho anv skramm AIM ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +#, fuzzy +msgid "What is your Facebook username?" +msgstr "Petra eo ho anv-arveriad Windows Live ?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#, fuzzy +msgid "What is your Facebook password?" +msgstr "Petra eo ho ker-tremen Yahoo! ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Petra eo ho hennader Google (ID) ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +#, fuzzy +msgid "Example: user@gmail.com" +msgstr "Skouer : arveriad@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Petra eo ho ker-tremen Google ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +#, fuzzy +msgid "Example: user@jabber.org" +msgstr "Skouer : arveriad@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "Leuskel a-gostez fazioù an testenioù SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "L_oaz :" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Enrinegañ rekis (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Tremen a ra dreist arventennoù an dafariad" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Arverañ ar SS_L kozh" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Petra eo ho hennader Jabber (ID) ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Peseurt hennader (ID) Jabber a fell deoc'h ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Petra eo ho ker-tremen Jabber ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Peseurt ger-tremen Jabber a fell deoc'h ?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Lesanv :" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Anv-fami_lh :" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "Anv-b_ihan :" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Anv em_bannet :" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "Hennader Jabber (ID) :" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "Post_el :" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +#, fuzzy +msgid "Example: user@hotmail.com" +msgstr "Skouer : arveriad@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +#, fuzzy +msgid "What is your Windows Live ID?" +msgstr "petra eo ho ker-tremen Windows Live ?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "petra eo ho ker-tremen Windows Live ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +#, fuzzy +msgid "Auto" +msgstr "Diw_ar-benn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "Kornôg" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Dibarzhioù" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +#, fuzzy +msgid "None" +msgstr "ket" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "Anv an ar_veriad :" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +#, fuzzy +msgid "Example: user@my.sip.server" +msgstr "Skouer : arveriad@ma.dafariad.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Dibarzhioù ar proksi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Dafariad STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +#, fuzzy +msgid "Discover Binding" +msgstr "Dizoleiñ STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Dafariad" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "C'hwitet eo an dilesadur" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Porzh STUN :" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Porzh" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Petra eo ho hennader (ID) kennaskañ SIP ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Petra eo ho ker-tremen kont SIP ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Ger-tremen :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "Henna_der (ID) Yahoo :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "_Dic'houzout pedadennoù d'emvodoù pe da salioù flapañ" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Bonegañ (yezh) roll ar _salioù :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "Spletad arouezennoù :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Porzh :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Petra eo ho hennader (ID) Yahoo! ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Petra eo ho ker-tremen Yahoo! ?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Diuzañ" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Diuzañ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Anv a-bezh :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#, fuzzy +msgid "E-mail address" +msgstr "Post_el :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Lec'hienn :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "Deiz-ha-bloaz :" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "Anv-fami_lh :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Dafariad :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Kennasket" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "Enrollañ ar gemennadenn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "Rouedad" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Gwellvezioù" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Rouedad nevez" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Diuzañ" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "dafariad nevez" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Kont nevez %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d eilenn zo" +msgstr[1] "%d eilenn zo" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d munutenn zo" +msgstr[1] "%d munutenn zo" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d eur zo" +msgstr[1] "%d eur zo" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d deiz zo" +msgstr[1] "%d deiz zo" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d sizhun zo" +msgstr[1] "%d sizhun zo" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d miz zo" +msgstr[1] "%d miz zo" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "en dazont" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Hennader (ID) :" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Alias :" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Munudoù an darempred" diff --git a/telepathy-account-widgets/po/bs.po b/telepathy-account-widgets/po/bs.po new file mode 100644 index 0000000..50d5211 --- /dev/null +++ b/telepathy-account-widgets/po/bs.po @@ -0,0 +1,918 @@ +# Bosnian translation for bosnianuniversetranslation +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the bosnianuniversetranslation package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: bosnianuniversetranslation\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-27 00:02+0000\n" +"PO-Revision-Date: 2015-02-05 00:12+0000\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Launchpad-Export-Date: 2015-02-05 07:07+0000\n" +"X-Generator: Launchpad (build 17331)\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Podrazumijevani direktorij za izbor avatar slike" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Zadnji direktorij iz koga je izabrana slika za avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Trenutne lokalne postavke" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arapski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Jermenski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltički" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Srednjeevropski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Kineski pojednostavljeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Kineski tradicionalni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Hrvatski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Ćirilica" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Ćirilica/Ruski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Ćirilica/Ukrajinski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gruzijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grčki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujaratski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebrejski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebrejski vizuelni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Indijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japanski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korejski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Perzijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumunski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Južnoevropski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tajlandski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Zapadni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vijetnamski" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Lozinka" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Ime _na ekranu" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Primjer: MojeIme" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Zapamti lozinku" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Napredno" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Koje je vaše AIM ime?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Koja je Vaša AIM šifra?" + +#: ../tp-account-widgets/tpaw-account-widget.c:661 +msgid "Account" +msgstr "Korisnički nalog" + +#: ../tp-account-widgets/tpaw-account-widget.c:662 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Lozinka" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:748 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:805 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1395 +msgid "Username:" +msgstr "Korisničko ime:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1722 +msgid "A_dd" +msgstr "D_odaj" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_pply" +msgstr "P_rimijeni" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will bje something +#. * liki: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2166 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s na %2$s" + +#. To translators: The parameter is the protocol nami. The resulting +#. * string will bje something liki: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2192 +#, c-format +msgid "%s Account" +msgstr "%s Nalog" + +#: ../tp-account-widgets/tpaw-account-widget.c:2196 +msgid "New account" +msgstr "Novi nalog" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_Korisničko ime" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Primjer: ime korisnika" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Koji je vaš GroupWise Korisnički ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Koja je vaša GroupWise šifra?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Primjer: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Kodni r_aspored" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Koji je Vaš ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Koja je vaša ICQ šifra?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Mreža" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Skup znakova" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Dodaj…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Ukloni" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Gore" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Dolje" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serveri" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Većina IRC servera ne zahtijeva lozinku, zato ako niste sigurni, nemojte " +"unositi lozinku." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Nadimak" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Poruka za kraj" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Pravo ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Korisničko ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Koja IRC mreža?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Koji je vaš IRC nadimak?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Koje je vaše Facebook korisničko ime?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to makije it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Ovo je vaše korisničko ime, ne vaše ime Facebook prijave.\n" +"Ako si facebook.com/badger, unesite badger\n" +"Koristi ovu stranicu da " +"izabereš Facebook korisničko ime, ako ga već nemaš." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Koja je Vaša Facebook šifra?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Koji je vaš Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Primjer: korisnik@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Koja je vaša Google šifra?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Primjer: korisnik@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignoriši greške SSL certifikata" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_tet" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Res_urs" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Zaht_ijeva se šifrovanje(TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Premosti opcije servera" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Koristi stari SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Koji je vaš Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Koja je vaša Jabber šifra?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Na_dimak" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Prezime" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Ime" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Ime za _objavu" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Adresa _elektronske pošte" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Primjer: korisnik@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Koji je vaš Windows Live ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Koja je vaša Windows Live šifra?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatski" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registruj" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcije" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nijedna" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Korisničko Ime" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Primjer: korisnik@moj.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Koristi ovaj nalog za poziv _fiksnih i mobilnih telefona" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT opcije grananja" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy opcije" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Razne Opcije" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN Server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Automatski pronađi STUN server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Otkrij Vezivanje" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Održavaj u životu opcije" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mehanizam" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (sekundi)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Korisničko ime potvrđivanja identiteta" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Slobodno usmjeravanje" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Zanemari TLS greške" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokalna IP adresa" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Koji je vaš SIP ID prijave?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Koja je šifra vašeg SIP naloga?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Lozinka:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Zanemar_i pozivnice za pričaonice i konferencije" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Lokalna lista sobe:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Kodni r_aspored:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Koji je vaš Yahoo! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Koja je vaša Yahoo! šifra?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:666 +msgid "Couldn't convert image" +msgstr "Nije moguće konvertovati sliku" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:582 +msgid "None of the accepted image formats are supported on your system" +msgstr "Vaš sistem ne podržava nijedan od prihvaćenih formata slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:942 +msgid "Couldn't save picture to file" +msgstr "Ne mogu snimiti sliku u datoteku" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1064 +msgid "Select Your Avatar Image" +msgstr "Izaberite sliku za svog Avatara" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1073 +msgid "Take a picture..." +msgstr "Snimite sliku..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1086 +msgid "No Image" +msgstr "Bez slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1145 +msgid "Images" +msgstr "Slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1149 +msgid "All Files" +msgstr "Sve datoteke" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Izaberite..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Izaberi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Puno ime" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Broj telefona" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-mail adresa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Web stranica" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Rođendan" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time sinci the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Zadnje viđeno:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Povezano sa:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Poruka u odsutnosti:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "radi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "kući" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobilni" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "glasovni" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferiran" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "poštanski" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "pošiljka" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nova mreža" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Odaberite IRC mrežu" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Ponovo postavi _mrežnu listu" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Izaberi" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "novi server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Lozinka nije pronađena" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Šifra IM naloga za %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Šifra za pričaonicu „%s“ na nalogu %s (%s)" + +#. Create account +#. To translator: %s is the nami of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Novi %s nalog" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "prije %d sekundu" +msgstr[1] "prije %d sekunde" +msgstr[2] "prije %d sekundi" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "prije %d minutu" +msgstr[1] "prije %d minute" +msgstr[2] "prije %d minuta" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "prije %d sata" +msgstr[1] "prije %d sata" +msgstr[2] "prije %d sati" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "prije %d dan" +msgstr[1] "prije %d dana" +msgstr[2] "prije %d dana" + +# translations. +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Prije %d sedmicu" +msgstr[1] "prije %d sedmice" +msgstr[2] "prije %d sedmica" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "prije %d mjesec" +msgstr[1] "prije %d mjeseca" +msgstr[2] "prije %d mjeseci" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "u budućnosti" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Uspostavite vezu da uredite vaše lične podatke." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Ovi detalji će biti dijeljeni sa ostalim korisnicima u ovoj pričaonici." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikator" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Pseudonim" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Lični podaci" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Ljudi u blizini" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" diff --git a/telepathy-account-widgets/po/ca.po b/telepathy-account-widgets/po/ca.po new file mode 100644 index 0000000..2b22b2d --- /dev/null +++ b/telepathy-account-widgets/po/ca.po @@ -0,0 +1,919 @@ +# Catalan translation for tp-account-widgets +# Copyright © 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is distributed under the same licence as the gossip package. +# Jordi Mallach , 2003, 2004, 2005, 2006, 2007. +# Gil Forcada , 2008, 2009, 2010, 2011, 2012, 2013. +# Jordi Serratosa , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-12 16:39+0000\n" +"PO-Revision-Date: 2013-09-14 01:12+0200\n" +"Last-Translator: Gil Forcada \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "El directori predeterminat des d'on seleccionar una imatge d'avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "L'últim directori des d'on es va seleccionar una imatge d'avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Localització actual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Àrab" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Bàltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Cèltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europeu central" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Xinès simplificat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Xinès tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Ciríl·lic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Ciríl·lic/Rus" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Ciríl·lic/Ucraïnès" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgià" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grec" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreu visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandès" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonès" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreà" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nòrdic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romanès" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sud europeu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandès" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Con_trasenya" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nom públic" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemple: ElMeuNomPúblic" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Recorda la contrasenya" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avançat" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Quin és el vostre nom públic de l'AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Quina és la vostra contrasenya de l'AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Recorda la contrasenya?" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "Compte" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Contrasenya" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +msgid "Username:" +msgstr "Nom d'usuari:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "A_fegeix" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "A_plica" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s a %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "Compte de %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "Compte nou" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D d'entrada" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemple: nomusuari" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Quin és el vostre identificador d'usuari del GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Quina és la vostra contrasenya del GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN de l'ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemple: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Joc de caràcters" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Quin és el vostre UIN de l'ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Quina és la vostra contrasenya de l'ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Xarxa" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Joc de caràcters" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Afegeix…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Suprimeix" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Amunt" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Avall" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidors" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"La majoria de servidors d'IRC no necessiten contrasenya, si no n'esteu segur " +"no introduïu cap contrasenya." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Sobrenom" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Missatge de desconnexió" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nom real" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nom d'usuari" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Quina xarxa d'IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Quin és el vostre sobrenom a l'IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Quin és el vostre nom d'usuari del Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"És el vostre nom d'usuari i no l'usuari d'entrada normal del Facebook.\n" +"Si teniu l'adreça facebook.com/pep, heu d'utilitzar pep.\n" +"Utilitzeu aquesta pàgina " +"per seleccionar un nom d'usuari del Facebook si no en teniu." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Quina és la vostra contrasenya del Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Quin és el vostre identificador del Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemple: usuari@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Quina és la vostra contrasenya del Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemple: usuari@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignora els errors del certificat SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "Pri_oritat" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "Rec_urs" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Es requereix encriptació (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Sobreescriu els paràmetres del servidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Utilitza l'SS_L antic" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Quin és el vostre identificador del Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your Jabber password?" +msgstr "Quina és la vostra contrasenya del Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Sobrenom" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "Co_gnoms" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Nom" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nom _públic" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID de _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_Adreça electrònica" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemple: usuari@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Quin és el vostre identificador del Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Quina és la vostra contrasenya del Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automàtic" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registre" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcions" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Cap" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "N_om d'usuari" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemple: usuari@el.meu.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Utilitza aquest compte per fer trucades a _fixes i a mòbils" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opcions de creuament de NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opcions del servidor intermediari" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opcions diverses" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descobreix automàticament el servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descobreix la vinculació" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opcions del manteniment de la connexió oberta" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (segons)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nom d'usuari per l'autenticació" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Encaminament flexible" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignora els errors de la TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Adreça IP local" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Quin és el vostre identificador d'entrada de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Quina és la vostra contrasenya del compte de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Con_trasenya:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D del Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignora les invitacions de conferència i de sala de xat" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Localització de la llista de la sala:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Joc de caràcters:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Quin és el vostre identificador del Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Quina és la vostra contrasenya del Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:580 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:665 +msgid "Couldn't convert image" +msgstr "No s'ha pogut convertir la imatge" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +msgid "None of the accepted image formats are supported on your system" +msgstr "El vostre sistema no sap gestionar cap dels formats d'imatge acceptats" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:941 +msgid "Couldn't save picture to file" +msgstr "No s'ha pogut desar la imatge en un fitxer" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1063 +msgid "Select Your Avatar Image" +msgstr "Seleccioneu la vostra imatge d'avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1072 +msgid "Take a picture..." +msgstr "Fes una foto..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1085 +msgid "No Image" +msgstr "Cap imatge" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1144 +msgid "Images" +msgstr "Imatges" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1148 +msgid "All Files" +msgstr "Tots els fitxers" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Seleccioneu..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Selecciona" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nom complet" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Número de telèfon" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Adreça electrònica" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Lloc web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Aniversari" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Vist per últim cop:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Connectat des de:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Missatge d'absència:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "feina" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "casa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mòbil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "veu" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferit" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "codi postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "parcel·la" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Xarxa nova" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Seleccioneu una xarxa d'IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Reinicia la llista de _xarxes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Selecciona" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "servidor nou" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:188 +msgid "Password not found" +msgstr "No s'ha trobat la contrasenya" + +#: ../tp-account-widgets/tpaw-keyring.c:583 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Contrasenya pel compte de missatgeria instantània %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:620 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Contrasenya per la sala de xat «%s» del compte %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Compte de %s nou" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "fa %d segon" +msgstr[1] "fa %d segons" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "fa %d minut" +msgstr[1] "fa %d minuts" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "fa %d hora" +msgstr[1] "fa %d hores" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "fa %d dia" +msgstr[1] "fa %d dies" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "fa %d setmana" +msgstr[1] "fa %d setmanes" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "fa %d mes" +msgstr[1] "fa %d mesos" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "en el futur" + +#: ../tp-account-widgets/tpaw-user-info.c:432 +msgid "Go online to edit your personal information." +msgstr "Us heu de connectar per editar la informació personal." + +#: ../tp-account-widgets/tpaw-user-info.c:516 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Aquestes dades es compartiran amb altres usuaris d'aquesta xarxa de xats." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:525 +msgid "Identifier" +msgstr "Identificador" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:533 +msgid "Alias" +msgstr "Àlies" + +#: ../tp-account-widgets/tpaw-user-info.c:551 +msgid "Personal Details" +msgstr "Dades personals" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Gent propera" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! del Japó" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Xat del Facebook" diff --git a/telepathy-account-widgets/po/ca@valencia.po b/telepathy-account-widgets/po/ca@valencia.po new file mode 100644 index 0000000..f6081cf --- /dev/null +++ b/telepathy-account-widgets/po/ca@valencia.po @@ -0,0 +1,918 @@ +# Catalan translation for tp-account-widgets +# Copyright © 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is distributed under the same licence as the gossip package. +# Jordi Mallach , 2003, 2004, 2005, 2006, 2007. +# Gil Forcada , 2008, 2009, 2010, 2011, 2012, 2013. +# Jordi Serratosa , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-13 22:25+0200\n" +"PO-Revision-Date: 2013-09-14 01:12+0200\n" +"Last-Translator: Gil Forcada \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "El directori predeterminat des d'on seleccionar una imatge d'avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "L'últim directori des d'on es va seleccionar una imatge d'avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Localització actual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Àrab" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Bàltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Cèltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europeu central" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Xinés simplificat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Xinés tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Ciríl·lic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Ciríl·lic/Rus" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Ciríl·lic/Ucraïnés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgià" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grec" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreu visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreà" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nòrdic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romanés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sud europeu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Con_trasenya" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nom públic" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemple: ElMeuNomPúblic" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Recorda la contrasenya" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avançat" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Quin és el vostre nom públic de l'AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Quina és la vostra contrasenya de l'AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Recorda la contrasenya?" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "Compte" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Contrasenya" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +msgid "Username:" +msgstr "Nom d'usuari:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "A_fig" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "A_plica" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s a %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "Compte de %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "Compte nou" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D d'entrada" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemple: nomusuari" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Quin és el vostre identificador d'usuari del GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Quina és la vostra contrasenya del GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN de l'ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemple: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Joc de caràcters" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Quin és el vostre UIN de l'ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Quina és la vostra contrasenya de l'ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Xarxa" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Joc de caràcters" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Afig…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Suprimeix" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Amunt" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Avall" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidors" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"La majoria de servidors d'IRC no necessiten contrasenya, si no n'esteu segur " +"no introduïu cap contrasenya." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Sobrenom" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Missatge de desconnexió" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nom real" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nom d'usuari" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Quina xarxa d'IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Quin és el vostre sobrenom a l'IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Quin és el vostre nom d'usuari del Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"És el vostre nom d'usuari i no l'usuari d'entrada normal del Facebook.\n" +"Si teniu l'adreça facebook.com/pep, heu d'utilitzar pep.\n" +"Utilitzeu esta pàgina per " +"seleccionar un nom d'usuari del Facebook si no en teniu." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Quina és la vostra contrasenya del Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Quin és el vostre identificador del Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemple: usuari@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Quina és la vostra contrasenya del Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemple: usuari@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignora els errors del certificat SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "Pri_oritat" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "Rec_urs" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Es requereix encriptació (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Sobreescriu els paràmetres del servidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Utilitza l'SS_L antic" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Quin és el vostre identificador del Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your Jabber password?" +msgstr "Quina és la vostra contrasenya del Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Sobrenom" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "Co_gnoms" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Nom" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nom _públic" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID de _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_Adreça electrònica" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemple: usuari@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Quin és el vostre identificador del Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Quina és la vostra contrasenya del Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automàtic" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registre" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcions" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Cap" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "N_om d'usuari" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemple: usuari@el.meu.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Utilitza este compte per fer trucades a _fixes i a mòbils" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opcions de creuament de NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opcions del servidor intermediari" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opcions diverses" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descobreix automàticament el servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descobreix la vinculació" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opcions del manteniment de la connexió oberta" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (segons)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nom d'usuari per l'autenticació" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Encaminament flexible" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignora els errors de la TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Adreça IP local" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Quin és el vostre identificador d'entrada de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Quina és la vostra contrasenya del compte de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Con_trasenya:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D del Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignora les invitacions de conferència i de sala de xat" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Localització de la llista de la sala:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Joc de caràcters:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Quin és el vostre identificador del Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Quina és la vostra contrasenya del Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:580 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:665 +msgid "Couldn't convert image" +msgstr "No s'ha pogut convertir la imatge" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +msgid "None of the accepted image formats are supported on your system" +msgstr "El vostre sistema no sap gestionar cap dels formats d'imatge acceptats" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:941 +msgid "Couldn't save picture to file" +msgstr "No s'ha pogut guardar la imatge en un fitxer" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1063 +msgid "Select Your Avatar Image" +msgstr "Seleccioneu la vostra imatge d'avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1072 +msgid "Take a picture..." +msgstr "Fes una foto..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1085 +msgid "No Image" +msgstr "Cap imatge" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1144 +msgid "Images" +msgstr "Imatges" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1148 +msgid "All Files" +msgstr "Tots els fitxers" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Seleccioneu..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Selecciona" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nom complet" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Número de telèfon" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Adreça electrònica" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Lloc web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Aniversari" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Vist per últim cop:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Connectat des de:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Missatge d'absència:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "faena" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "casa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mòbil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "veu" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferit" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "codi postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "parcel·la" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Xarxa nova" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Seleccioneu una xarxa d'IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Reinicia la llista de _xarxes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Selecciona" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "servidor nou" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:188 +msgid "Password not found" +msgstr "No s'ha trobat la contrasenya" + +#: ../tp-account-widgets/tpaw-keyring.c:583 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Contrasenya pel compte de missatgeria instantània %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:620 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Contrasenya per la sala de xat «%s» del compte %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Compte de %s nou" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "fa %d segon" +msgstr[1] "fa %d segons" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "fa %d minut" +msgstr[1] "fa %d minuts" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "fa %d hora" +msgstr[1] "fa %d hores" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "fa %d dia" +msgstr[1] "fa %d dies" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "fa %d setmana" +msgstr[1] "fa %d setmanes" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "fa %d mes" +msgstr[1] "fa %d mesos" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "en el futur" + +#: ../tp-account-widgets/tpaw-user-info.c:432 +msgid "Go online to edit your personal information." +msgstr "Vos heu de connectar per editar la informació personal." + +#: ../tp-account-widgets/tpaw-user-info.c:516 +msgid "These details will be shared with other users on this chat network." +msgstr "Estes dades es compartiran amb altres usuaris d'esta xarxa de xats." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:525 +msgid "Identifier" +msgstr "Identificador" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:533 +msgid "Alias" +msgstr "Àlies" + +#: ../tp-account-widgets/tpaw-user-info.c:551 +msgid "Personal Details" +msgstr "Dades personals" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Gent propera" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! del Japó" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Xat del Facebook" diff --git a/telepathy-account-widgets/po/crh.po b/telepathy-account-widgets/po/crh.po new file mode 100644 index 0000000..1811932 --- /dev/null +++ b/telepathy-account-widgets/po/crh.po @@ -0,0 +1,829 @@ +# QIRIMTATARCA tp-account-widgets +# This file is distributed under the same license as the tp-account-widgets package. +# Copyright (C) 2003-2009 The Free Software Foundation, Inc. +# Reşat SABIQ , 2009, 2010, 2011, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-04-07 19:46-0500\n" +"Last-Translator: Reşat SABIQ \n" +"Language-Team: QIRIMTATARCA (Qırım Türkçesi) \n" +"Language: crh\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: UTF-8\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Bir avatar suretini saylamaq içün ög-belgilengen cilbent" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "İçinden bir avatar suretiniñ saylanğan olğanı soñki cilbent." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Ağımdaki Mahal" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arapça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Ermenice" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltıq" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltik" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Orta Avropa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Çince, Basitleştirilgen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Çince, Ananeviy" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Hırvatça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kiril" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kiril/Rusça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kiril/Ukraince" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gürcice" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Yunanca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Güceratice" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmuki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "İbraniyce" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "İbraniyce, Körsel" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindce" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "İslandiyaca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Yaponca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korece" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Skandinav" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Farsça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumınca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Cenübiy Avropa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tayca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Türkçe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unikod" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Ğarbiy" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamca" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Sır-söz" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Ekran İsmi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Misal: Ekranİsmim" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Parolni hatırla" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Liman" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Sunucı" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "İleriletilgen" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "AIM ekran ismiñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "AIM paroliñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Parolni Hatırla" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "İçeri İmzalanuv _Kimligi" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Misal: qullanıcı adı" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "GroupWise Qullanıcı Kimligiñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "GroupWise paroliñiz nedir?" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN (Emsalsiz Kimlik Numarası)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Misal: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Remiz kümesi" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ICQ Evrensel İnternet Nomerañız (EİN; UIN) nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ paroliñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Şebeke" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Remiz kümesi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Ekle…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Çetleştir" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Yuqarı" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Aşağı" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Sunucılar" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"IRC sunucılarınıñ ekseriyeti içün bir parolge ihtiyac yoq, ondan dolayı, " +"emin degil iseñiz, bir parol kirsetmeñiz." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Lağap" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Parol:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Terk mesajı" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Kerçek isim" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Qullanıcı adı" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Qaysı IRC şebekesi?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "IRC lağabıñız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Facebook qullanıcı adıñız nedir?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Bu siziñ qullanıcı adıñızdır, normal Facebook içeri-imzalanmañız degil.\n" +"Eger facebook.com/milliyhaq iseñiz, milliyhaq kirsetiñiz.\n" +"Facebook qullanıcı adıñız yoq ise, birini saylamaq içün bu sahifeni qullanıñız." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Facebook paroliñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Google kimligiñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Misal: qullanici@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Google paroliñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Misal: qullanici@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL şehadetnamesi hatalarını _ihmal et" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "_Evveliyet" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "_Qaynaq" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Şifreleme ş_arttır (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Sunucı ayarlarınınıñ üstünden ayda" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Eski SSL q_ullan" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Jabber kimligiñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Arzu etkeniñiz Jabber kimligi nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Jabber paroliñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Arzu etkeniñiz Jabber paroli nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Lağap" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Soyadı" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Ad" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Münteşir İsim" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber Kimligi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_E-poçta adresi" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Misal: qullanici@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Windows Live kimligiñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Windows Live paroliñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Avto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Yoq" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Qullanıcı adı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Misal: qullanici@sip.sunucım" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "_Sabit hatlarnı ve cep telefonlarını aramaq içün bu hesapnı qullan" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Şebeke Adresi Çevirme (ŞAÇ; NAT) Çaprazlayış İhtiyariyatı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proksi İhtiyariyatı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Müteferriq İhtiyariyat" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN Sunucısı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN sunucısını öz-özünden keşfet" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Bağlamnı Keşfet" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Sunucı" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Canlı-Tut İhtiyariyatı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mehanizm" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Aralıq (saniyeler)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Sahihlenim qullanıcı adı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Naqliye" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Kevşek Marşrutlama" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS Hatalarını İhmal Et" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Liman" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Yerli İP Adresi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "SIP içeri imzalanuv kimligiñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "SIP hesabı paroliñiz nedir?" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pa_rol:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! _Kimligi:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Toplaşuv ve suhbet odası davetlerini _ihmal et" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Oda Listesi mahali:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Remiz kümesi:" + +# tüklü +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Liman:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Yahoo! kimligiñiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Yahoo! paroliñiz nedir?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Sayla..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Sayla" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Tam isim" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Telefon numarası" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "E-poçta adresi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Ağ-saytı" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Doğum künü" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Soñki körüşme:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Sunucı:" + +# tüklü +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Şuradan bağlanğan:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Ketken mesajı:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "iş" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "ev" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "davuş" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "tercih etilgen" + +# tüklü +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "poçta" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "paket" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Yañı Şebeke" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Bir IRC şebekesini saylañız" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Şebeke Listesini _Sıfırla" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Sayla" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "yañı sunucı" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "Parol tapılmadı" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) içün Aniy Mesajlaşma hesabı paroli" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "%2$s (%3$s) hesabı üzerindeki suhbet odası '%1$s' içün parol" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Yañı %s hesabı" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d saniye evel" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d daqqa evel" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d saat evel" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d kün evel" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d hafta evel" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ay evel" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "kelecekte" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "Şahsiy malümatıñıznı tahrir etmek içün devre-içi barıñız." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "Kimlikleyici" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "Tahallüs" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "Şahsiy Tafsilât" diff --git a/telepathy-account-widgets/po/cs.po b/telepathy-account-widgets/po/cs.po new file mode 100644 index 0000000..5b36246 --- /dev/null +++ b/telepathy-account-widgets/po/cs.po @@ -0,0 +1,918 @@ +# Czech translation of empathy. +# Copyright (C) 2003, 2004, 2008, 2009, 2010 the author(s) of telepathy-account-widgets. +# This file is distributed under the same license as the telepathy-account-widgets package. +# +# Marek Černocký , 2013, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: telepathy-account-widgets\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-07 00:07+0200\n" +"Last-Translator: Marek Černocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Výchozí složka pro výběr obrázku avataru" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Poslední složka, ze kterého byl vybrán obrázek avataru." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Aktuální národní prostředí" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "arabské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "arménské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "baltské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "keltské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "středoevropské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "čínské – zjednodušené" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "čínské – tradiční" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "chorvatské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "azbuka" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "azbuka – ruská" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "azbuka – ukrajinská" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "gruzínské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "řecké" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "gudžarátské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "gurmuchské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "hebrejské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "hebrejské – vizuální" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "hindské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "islandské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "japonské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "korejské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "skandinávské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "perské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "rumunské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "jihoevropské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "thajské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "turecké" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "západní" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "vietnamské" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Heslo" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Zobrazené jmé_no" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Například: MojeZobrazovanéJméno" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Zapamatovat heslo" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Pokročilé" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Jaké je vaše zobrazované jméno v AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Jaké je vaše heslo k AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Účet" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Heslo" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Uživatelské jméno:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Při_dat" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Použít" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s na %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Účet služby %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nový účet" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Přihlašovací I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Například: uzivatelskejmeno" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Jaké je vaše uživatelské GroupWise ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Jaké je vaše heslo ke GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "Čí_slo ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Například: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Zn_aková sada" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Jaké je váš UIN pro ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Jaké je vaše heslo k ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Síť" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Znaková sada" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Přidat…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Odstranit" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Nahoru" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Dolů" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servery" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Většina serverů IRC heslo nepotřebuje, takže pokud si nejste jisti, žádné " +"heslo nezadávejte." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Přezdívka" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Rozloučení" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Skutečné jméno" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Uživatelské jméno" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Kterou síť IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Jaká je vaše přezdívka v IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Jaké je vaše uživatelské jméno pro Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Toto je vaše uživatelské jméno, ne váš email pro přihlášení k Facebooku.\n" +"Pokud jste na Facebooku jako facebook.com/tonda, zadejte tonda.\n" +"Použijte tento odkaz pro " +"výběr uživatelského jména, pokud žádné ještě nemáte." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Jaké je vaše heslo k Facebooku?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Jaké je vaše Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Například: uzivatel@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Jaké je vaše heslo pro Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Například: uzivatel@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnorovat chyby certifikátu SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_ta" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Z_droj" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Požadováno ši_frování (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Přepsat nastavení serveru" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Použít staré SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Jaké je vaše Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Jaké je vaše heslo ke službě Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Přezdív_ka" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Příjmení" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Jméno" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Z_veřejněné jméno" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID _Jabberu" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_mailová adresa" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Například: uzivatel@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Jaké je ID pro Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Jaké je vaše heslo k Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automaticky" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Zaregistrovat" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Volby" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Žádný" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Uživatelské jméno" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Například: uzivatel@muj.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Používat tento účet pro volání na pevné _linky a mobilní telefony" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Volby NAT průchodů" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Nastavení proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Růžné volby" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Server STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Automaticky najít server STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Vyhledat vázání" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Volby (udržovat spojení)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanismus" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (v sekundách)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Uživatelské jméno pro ověření" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Přenos" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Volné směrování" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Nedbat chyb TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Místní adresa IP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Jaké je vaše přihlašovací ID pro SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Jaké je heslo k vašemu účtu SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Heslo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorovat pozvání do konferencí a diskuzních místností" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Ná_rodní prostředí seznamu místností:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Zn_aková sada:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Jaké je vaše Yahoo! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Jaké je vaše heslo k Yahoo?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Nelze konvertovat obrázek" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Váš systém neobsahuje žádný z podporovaných formátů obrázku" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Nelze uložit obrázek do souboru" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Vyberte si obrázek avataru" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Vyfotografovat…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Žádný obrázek" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Obrázky" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Všechny soubory" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Vybrat…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Vybrat" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Celé jméno" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefonní číslo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-mailová adresa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Webové stránky" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Narozeniny" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Naposledy spatřen:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Připojen z:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Zpráva v nepřítomnosti:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "pracovní" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "domů" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobilní" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "hlasový" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "upřednostňovaný" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "poštovní" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "doručovací" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nová síť" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Výběr sítě IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Vymazat sez_nam sítí" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Vybrat" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nový server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Heslo nenalezeno" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Heslo účtu rychlé komunikace pro %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Heslo pro diskuzní místnost „%s“ u účtu %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nový účet %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "před %d sekundou" +msgstr[1] "před %d sekundami" +msgstr[2] "před %d sekundami" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "před minutou" +msgstr[1] "před %d minutami" +msgstr[2] "před %d minutami" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "před hodinou" +msgstr[1] "před %d hodinami" +msgstr[2] "před %d hodinami" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "včera" +msgstr[1] "před %d dny" +msgstr[2] "před %d dny" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "před týdnem" +msgstr[1] "před %d týdny" +msgstr[2] "před %d týdny" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "před měsícem" +msgstr[1] "před %d měsíci" +msgstr[2] "před %d měsíci" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "v budoucnosti" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Připojte se, abyste mohli upravovat své osobní údaje." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Tyto údaje budou sdíleny s ostatními uživateli na této diskuzní síti." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikátor" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Přezdívka" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Osobní údaje" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Lidé v okolí" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + diff --git a/telepathy-account-widgets/po/cy.po b/telepathy-account-widgets/po/cy.po new file mode 100644 index 0000000..21bb7c9 --- /dev/null +++ b/telepathy-account-widgets/po/cy.po @@ -0,0 +1,875 @@ +# Gossip yn Gymraeg. +# This file is distributed under the same license as the gossip package. +# Dafydd Harries , 2003 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: gossip\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2004-07-05 16:41+0100\n" +"Last-Translator: Dafydd Harries \n" +"Language-Team: Cymraeg \n" +"Language: cy\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +#, fuzzy +msgid "Persian" +msgstr "Fersiwn:" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +#, fuzzy +msgid "Western" +msgstr "_Cofrestri..." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +#, fuzzy +msgid "Vietnamese" +msgstr "Enw _defnyddiwr:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "_Cyfrinair:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +#, fuzzy +msgid "Remember password" +msgstr "Cofio'r Cyfrinair?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Porth:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Gweinydd:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +#, fuzzy +msgid "What is your AIM screen name?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +#, fuzzy +msgid "What is your AIM password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "Cofio'r Cyfrinair?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +#, fuzzy +msgid "What is your GroupWise User ID?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +#, fuzzy +msgid "What is your GroupWise password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +#, fuzzy +msgid "What is your ICQ UIN?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +#, fuzzy +msgid "What is your ICQ password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_Tynnu" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "Gweinydd:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Llysenw:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "_Cyfrinair:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Negeseuon _Cyflwr" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Enw _defnyddiwr:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Enw _defnyddiwr:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +#, fuzzy +msgid "What is your Facebook username?" +msgstr "Beth yw eich enw?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#, fuzzy +msgid "What is your Facebook password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +#, fuzzy +msgid "What is your Google ID?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +#, fuzzy +msgid "What is your Google password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "Blaenoriaeth:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "_Adnodd:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#, fuzzy +msgid "Use old SS_L" +msgstr "Defnyddio SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +#, fuzzy +msgid "What is your Jabber ID?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +#, fuzzy +msgid "What is your desired Jabber ID?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +#, fuzzy +msgid "What is your Jabber password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Llysenw:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Enw:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "Enw:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Enw:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ID Jabber:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +#, fuzzy +msgid "What is your Windows Live ID?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +#, fuzzy +msgid "What is your Windows Live password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "_Cofrestri..." + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +#, fuzzy +msgid "Options" +msgstr "Disgrifiad" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Defnyddiwr:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Gweinydd:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +#, fuzzy +msgid "Server" +msgstr "Gweinydd:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +#, fuzzy +msgid "Port" +msgstr "_Porth:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +#, fuzzy +msgid "What is your SIP login ID?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +#, fuzzy +msgid "What is your SIP account password?" +msgstr "Rhowch eich cyfrinair os gwelwch yn dda:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +#, fuzzy +msgid "Pass_word:" +msgstr "_Cyfrinair:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +#, fuzzy +msgid "_Port:" +msgstr "_Porth:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +#, fuzzy +msgid "What is your Yahoo! ID?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +#, fuzzy +msgid "What is your Yahoo! password?" +msgstr "Beth yw eich enw?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Dewis" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Dewis" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Enw:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Safle gwe:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "_Blaenoriaeth:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Gweinydd:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Wedi Cysylltu" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "Neges _Newydd..." + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "_Hoffterau" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +#, fuzzy +msgid "Choose an IRC network" +msgstr "Dewiswch Weinydd" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Dewis" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, fuzzy, c-format +msgid "New %s account" +msgstr "Cyfrif newydd" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, fuzzy, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "munudau" +msgstr[1] "munudau" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Manylion Personol" diff --git a/telepathy-account-widgets/po/da.po b/telepathy-account-widgets/po/da.po new file mode 100644 index 0000000..b4d115f --- /dev/null +++ b/telepathy-account-widgets/po/da.po @@ -0,0 +1,944 @@ +# Danish translation of tp-account-widgets. +# Copyright (C) 2003-2016 Free Software Foundation, Inc. +# Ole Laursen , 2003, 04, 06. +# David Nielsen , 2002, 06. +# M.P. Rommedahl , 2008. +# Kenneth Nielsen , 2009-2013. +# Ask Hjorth Larsen , 2010, 2013, 2016. +# +# Konventioner: +# +# avatar -> profilbillede +# chat -> chat sb., -ten, -s (RO) +# instant messaging client -> samtaleklient +# instant message -> besked (IKKE kvikbesked) +# join -> deltag (om gruppesamtaler) +# join -> tilslut (ved IRC-rum) +# link (n) -> (i forbindelse med kontakter) sammenkædning +# link (v) -> (i forbindelse med kontakter) sammenkæde +# online/offline kan bruges som importord. I mange tilfælde er dog mest naturligt at oversætte online/offline til at nogen logger på eller af. +# +# IM: +# Der er blevet indført to strenge som indeholder forkortelsen "IM", der er diskussion om disse strenge på gnome-i18n listen og jeg tror de vil forsvinde igen. Indtil videre har jeg ladet det stå, idet der jo virkelig ikke er nogen meningsfyldt måde man kan oversætte forkortelser på +# +# Ordlistekontrol version 1 +msgid "" +msgstr "" +"Project-Id-Version: Empathy\n" +"Report-Msgid-Bugs-To: " +"http://bugzilla.gnome.org/enter_bug.cgi?product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-02-03 21:05+0000\n" +"PO-Revision-Date: 2016-10-09 21:59+0200\n" +"Last-Translator: Ask Hjorth Larsen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Danish\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Standardmappe at vælge profilbillede fra" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Den seneste mappe som et profilbillede blev valgt fra." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Nuværende placering" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centraleuropæisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Kinesisk, simplificeret" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Kinesisk, traditionelt" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kyrillisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kyrillisk/Russisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kyrillisk/Ukrainsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Græsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebraisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebraisk, visuelt" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumænsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sydeuropæisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Tyrkisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Vestligt" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamesisk" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Adgangskode" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Kalde_navn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Eksempel: MitNavn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Husk adgangskode" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avanceret" + +# AIM er amerikansk, vi må hellere bruge begrebet screen name +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Hvad er dit screen name til AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Hvad er din AIM-adgangskode?" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Adgangskode" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Tilføj" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "_Anvend" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s på %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "%s-konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Ny konto" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Logind-i_d" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Eksempel: brugernavn" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Hvad er din bruger-id til GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Hvad er din adgangskode til GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ-_UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Eksempel: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Tegnsæt" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Hvad er din UIN til ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Hvad er din adgangskode til ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Netværk" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Tegnsæt" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Tilføj …" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Fjern" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Op" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Ned" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servere" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"De fleste IRC-servere kræver ikke en adgangskode, så hvis du ikke er sikker, " +"så lad være med at skrive en." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Kaldenavn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Afslutningsbesked" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Rigtigt navn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Brugernavn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Hvilket IRC-netværk?" + +# AIM er amerikansk, vi må hellere bruge begrebet screen name, +# til IRC går jeg ud fra at vi bare kalder det skærmnavn +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Hvad er dit kaldenavn til IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Hvad er dit Google-id?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Eksempel: bruger@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Hvad er din Google-adgangskode?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Eksempel: bruger@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignorér SSL-certifikatfejl" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "Pri_oritet" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "Resso_urce" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Kryptering påkrævet (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Tilsidesæt serverindstillinger" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "Brug gammel SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Hvad er dit Jabber-id?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Hvad er din Jabber-adgangskode?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Kaldenavn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Efternavn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Fornavn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Udgivet navn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber-id" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_mail-adresse" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Eksempel: bruger@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Hvad er dit Windows Live-id?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Hvad er din Windows Live-adgangskode?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ingen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Brugernavn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Eksempel: bruger@min.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Brug denne konto til at ringe til _fastnetslinjer og mobiltelefoner" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Indstillinger for NAT-gennemløb" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Indstillinger for mellemvært" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Diverse indstillinger" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Find STUN-serveren automatisk" + +# ??? +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Find binding" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Indstillinger for opretholdelse af forbindelse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mekanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (sekunder)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Brugernavn til godkendelse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Løs routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorer TLS-fejl" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokal IP-adresse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Hvad er din logind-id til SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Hvad er adgangskoden til din SIP-konto?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Adgangskode:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-i_d:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignorér konference- og chatrumsinvitationer" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Rumliste-placering:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Tegnsæt:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Hvad er dit Yahoo!-id?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Hvad er din Yahoo!-adgangskode?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Kunne ikke konvertere billede" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ingen af de accepterede billedformater understøttes af dit system" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Kunne ikke gemme billede til fil" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Vælg dit brugerbillede" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Tag et billede …" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Intet billede" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Billeder" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Alle filer" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Vælg …" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Vælg" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Fulde navn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefonnummer" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-mail-adresse" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Webside" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Fødselsdag" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Sidst set:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Tilsluttet fra:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Fraværsbesked:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "arbejde" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "hjemme" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "taleopkald" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "foretrukne" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "post" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "pakke" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nyt netværk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Vælg et IRC-netværk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Nulstil _netværksliste" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Vælg" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ny server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Adgangskode ikke fundet" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "IM-konto-adgangskode for %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Adgangskode til chatrummet \"%s\" på konto %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Ny %s-konto" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d sekund siden" +msgstr[1] "%d sekunder siden" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minut siden" +msgstr[1] "%d minutter siden" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d time siden" +msgstr[1] "%d timer siden" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dag siden" +msgstr[1] "%d dage siden" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d uge siden" +msgstr[1] "%d uger siden" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d måned siden" +msgstr[1] "%d måneder siden" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "i fremtiden" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Gå på nettet for at redigere din personlige information." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Disse detaljer vil blive delt med andre brugere på dette chatnetværk." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikator" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Personlige detaljer" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Folk i nærheden" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Username:" +#~ msgstr "Brugernavn:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Hvad er dit brugernavn på Facebook?" + +#~ # badger -> giraf for at undgå æøå i URL +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose a " +#~ "Facebook username if you don’t have one." +#~ msgstr "" +#~ "Dette er dit brugernavn, ikke dit normale logind-navn til Facebook.\n" +#~ "Hvis du er facebook.com/giraf, så skriv giraf.\n" +#~ "Brug denne side til at " +#~ "vælge et Facebook-brugernavn, hvis du ikke allerede har et." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Hvad er din adgangskode til Facebook?" + +#~ msgid "Facebook Chat" +#~ msgstr "Facebook-chat" + +#~ msgid "Remember Password" +#~ msgstr "Husk adgangskode" + +#~ msgid "Select..." +#~ msgstr "Vælg …" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Hvad er dit ønskede Jabber-id?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Hvilken adgangskode vil du bruge til Jabber?" + diff --git a/telepathy-account-widgets/po/de.po b/telepathy-account-widgets/po/de.po new file mode 100644 index 0000000..a788f73 --- /dev/null +++ b/telepathy-account-widgets/po/de.po @@ -0,0 +1,938 @@ +# German translation of tp-account-widgets. +# Copyright (C) 2003-2005, 2007 Free Software Foundation, Inc. +# +# Hendrik Richter , 2003. +# Frank Arnold , 2005. +# Andre Klapper , 2007, 2008. +# Jochen Skulj , 2008, 2009. +# Michael Kanis , 2009. +# Mario Blättermann , 2008-2012, 2016. +# Mario Klug , 2010. +# Christian Kirbach , 2009, 2010, 2011. +# Wolfgang Stöggl , 2011, 2012. +# Paul Seyfert , 2011. +# Hendrik Knackstedt , 2012. +# Tobias Endrigkeit , 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-07 19:34+0200\n" +"Last-Translator: Mario Blättermann \n" +"Language-Team: Deutsch \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.9\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Vorgabeordner zum Auswählen eines Benutzerbildes" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Der letzte Ordner, aus welchem ein Benutzerbild gewählt wurde." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Aktuelle Locale-Einstellung" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Mitteleuropäisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Vereinfachtes Chinesisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Traditionelles Chinesisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kyrillisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kyrillisch/Russisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kyrillisch/Ukrainisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Griechisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebräisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Visuelles Hebräisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Isländisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japanisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreanisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumänisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Südeuropäisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Türkisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Westlich" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamesisch" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Pass_wort" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Anzeige_name" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Beispiel: MeinName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Passwort merken" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Fortgeschritten" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Wie lautet Ihr AIM-Benutzername?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Wie lautet Ihr AIM-Passwort?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Benutzerkonto" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Passwort" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Benutzername:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Hinzu_fügen" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "An_wenden" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s auf %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s-Konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Neues Konto" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Anmelde-_Kennung" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Beispiel: Benutzername" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Wie lautet Ihr GroupWise-Benutzername?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Wie lautet Ihr GroupWise-Passwort?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ-_UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Beispiel: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Zeichensatz" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Wie lautet Ihre ICQ-UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Wie lautet Ihr ICQ-Passwort?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Netzwerk" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Zeichensatz" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Hinzufügen …" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Entfernen" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Nach oben" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Nach unten" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Die meisten IRC-Server verlangen kein Passwort. Falls Sie nicht sicher sind, " +"geben Sie kein Passwort ein." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Spitzname" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Verlassen-Nachricht" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Echter Name" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Benutzername" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Welches IRC-Netzwerk?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Wie lautet Ihr Spitzname im IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Wie lautet Ihr Facebook-Benutzername?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Dies ist Ihr Benutzername, nicht Ihr gewöhnlicher Facebook-Anmeldename.\n" +"Falls Sie facebook.com/dachs sind, geben Sie dachs ein.\n" +"Wählen Sie auf dieser Seite einen Facebook-Benutzernamen, falls Sie noch keinen besitzen." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Wie lautet Ihr Facebook-Passwort?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Wie lautet Ihre Google-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Beispiel: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Wie lautet Ihr Passwort bei Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Beispiel: benutzer@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "SSL-Zertifikatfehler _ignorieren" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_tät" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Resso_urce" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Verschlüsselung erforderlich (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Server-Einstellungen überschreiben" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Alte SS_L-Verschlüsselung verwenden" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Wie lautet Ihre Jabber-Kennung?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Wie lautet Ihr Jabber-Passwort?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Spitzname" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Nachname" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Vorname" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Veröffentlichter Name" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber-Kennung" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_Mail-Adresse" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Beispiel: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Wie lautet Ihre Windows Live-Kennung?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Wie lautet Ihr Windows Live-Passwort?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatisch" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registrieren" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Einstellungen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Kein" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Benutzername" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Beispiel: benutzer@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" +"Dieses Konto für a_lle Anrufe ins Festnetz und zu Mobilfunkanschlüssen " +"verwenden" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Einstellungen zu NAT-Traversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy-Einstellungen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Verschiedene Einstellungen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-Server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Den STUN-Server automatisch suchen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Bindung suchen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Einstellungen zu Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanismus" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervall (Sekunden)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Benutzername zur Legitimierung" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +# Ist vermutlich aus der Netzwerktechnik aus dem Bereich MPLS. Eine deutsche Übersetzung der Fachbegriffe ist nach meinem Wissen oft nicht vorhanden. Eventuell Original-Meldung übernehmen? +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Freies Routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS-Fehler ignorieren" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokale IP-Adresse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Wie lautet Ihre SIP-Anmeldekennung?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Wie lautet Ihr SIP-Passwort?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pass_wort:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Konferenz- und Chatraumeinladungen i_gnorieren" + +# CHECK +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Standorteinstellungen für _Raumliste:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Zeichensatz:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "P_ort:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Wie lautet Ihre Yahoo!-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Wie lautet Ihr Yahoo!-Passwort?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Das Bild konnte nicht konvertiert werden" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Keines der akzeptierten Bildformate ist auf Ihrem System unterstützt" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Das Bild konnte nicht als Datei gespeichert werden" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Wählen Sie Ihr Avatar-Bild" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Ein Bild aufnehmen …" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Kein Bild" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Bilder" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Alle Dateien" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Auswählen …" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Auswählen" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Vollständiger Name" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefonnummer" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-Mail-Adresse" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Webseite" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Geburtstag" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Zuletzt gesehen:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Verbunden von:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Abwesenheitsnachricht:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "Arbeit" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "Privat" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "Mobiltelefon" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "Sprachanruf" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "bevorzugt" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postalisch" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "Paket" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Neues Netzwerk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Wählen Sie ein IRC-Netzwerk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_Netzwerkliste zurücksetzen" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Auswählen" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "neuer Server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Passwort nicht gefunden" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "IM-Konto-Passwort für %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Passwort für Chatraum »%s« von Konto %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Neues %s-Konto" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Vor %d Sekunde" +msgstr[1] "Vor %d Sekunden" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Vor %d Minute" +msgstr[1] "Vor %d Minuten" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Vor %d Stunde" +msgstr[1] "Vor %d Stunden" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Vor %d Tag" +msgstr[1] "Vor %d Tagen" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Vor %d Woche" +msgstr[1] "Vor %d Wochen" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Vor %d Monat" +msgstr[1] "Vor %d Monaten" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "in der Zukunft" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Gehen Sie online, um Ihre persönlichen Informationen zu bearbeiten." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Diese Informationen werden mit anderen Benutzern in diesem Chat-Netzwerk " +"geteilt." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Bezeichner" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Persönliche Angaben" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Personen in Ihrer Nähe" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Unterhaltung" + +#~ msgid "Remember Password" +#~ msgstr "Passwort merken" + +#~ msgid "Select..." +#~ msgstr "Auswählen …" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Wie lautet Ihre gewünschte Jabber-Kennung?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Wie lautet Ihr gewünschtes Jabber-Passwort?" diff --git a/telepathy-account-widgets/po/dz.po b/telepathy-account-widgets/po/dz.po new file mode 100644 index 0000000..1ba6a80 --- /dev/null +++ b/telepathy-account-widgets/po/dz.po @@ -0,0 +1,861 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: gossip.HEAD.pot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2007-06-14 16:43+0530\n" +"Last-Translator: Dawa pemo \n" +"Language-Team: Dzongkha \n" +"Language: dz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Poedit-Language: Dzongkha\n" +"X-Poedit-Country: BHUTAN\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "ལས་ ཨེ་ཝ་ཊར་གཟུགས་བརྙན་ཅིག་སེལ་འཐུ་འབད་ནིའི་དོན་ལས་ སྔོན་སྒྲིག་སྣོད་ཐོ་" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "ལས་གདམ་ཁ་རྐྱབས་ཡོད་མི་ ཨེ་ཝ་ཊར་གཟུགས་བརྙན་ཅིག་གི་ མཇུག་གི་སྣོད་ཐོ།" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +#, fuzzy +msgid "Persian" +msgstr "ཐོན་རིམ་:" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +#, fuzzy +msgid "Western" +msgstr "ཐོ་འགོད་(_e)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +#, fuzzy +msgid "Vietnamese" +msgstr "བསྐྱར་མིང་བཏགས་" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "ཆོག་ཡིག་:(_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +#, fuzzy +msgid "Remember password" +msgstr "ཆོག་ཡིག་སེམས་ཁར་བཞག?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "འདྲེན་ལམ་:(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "སར་བར་:(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "ཆོག་ཡིག་སེམས་ཁར་བཞག?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "ནང་བསྐྱོད་ཨའི་ཌི་:(_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "རྩ་བསྐྲད་གཏང་(_R)" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "སར་བར་:(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "སྐྱོན་མིང་:(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "ཆོག་ཡིག་:(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "འཕྲིན་དོན་སྤང།(_Q)" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "བསྐྱར་མིང་བཏགས་" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "བསྐྱར་མིང་བཏགས་" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#, fuzzy +msgid "What is your Facebook password?" +msgstr "ཁྱོད་ཀྱི་རྩིས་ཐོའི་ཆོག་ཡིག་བསྒྱུར་བཅོས་འབད་ནི་འཐུས་ཤོར་འབྱུང་ཡོདཔ།" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "ཐོན་ཁུངས་:(_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#, fuzzy +msgid "Use old SS_L" +msgstr "གསང་བཟོ་ལག་ལེན་འཐབ་ (ཨེསི་ཨེསི་ཨེལ་) (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "སྐྱོན་མིང་:(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "མིང་:(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "མིང་གངམ་(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "མིང་གངམ་(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ཇེབ་བར།" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "ཐོ་འགོད་(_e)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +#, fuzzy +msgid "Options" +msgstr "གདམ་ཁ་ཚུ་" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "བསྐྱར་མིང་བཏགས་" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "སར་བར་:(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +#, fuzzy +msgid "Server" +msgstr "སར་བར་:(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "བདེན་བཤད་འཐུས་ཤོར་འབྱུང་ཡོདཔ།" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +#, fuzzy +msgid "Port" +msgstr "འདྲེན་ལམ་:(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +#, fuzzy +msgid "What is your SIP account password?" +msgstr "ཁྱོད་རའི་ %s རྩིས་ཐོ་ཆོག་ཡིག་ཐོ་བཀོད་འབད་གནང་" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "ཆོག་ཡིག་:(_w)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "འདྲེན་ལམ་:(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "སེལ་འཐུ་འབད་" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "སེལ་འཐུ་འབད་" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "མིང་གངམ་(_F)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "ཝེབ་ས་ཁོངས་:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "སྐྱེ་བའི་ཞིནམ་:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "སར་བར་:(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "མཐུད་ཡོདཔ་" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "%d འཕྲིན་དོན་གསརཔ་ཚུ་" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "དགའ་གདམ་ཚུ་" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "སེལ་འཐུ་འབད་" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, fuzzy, c-format +msgid "New %s account" +msgstr "རྩིས་ཐོ་གསརཔ་" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "མིང་གཞན་:(_s)" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "རང་དོན་རྒྱས་བཤད་ཚུ་" diff --git a/telepathy-account-widgets/po/el.po b/telepathy-account-widgets/po/el.po new file mode 100644 index 0000000..bda8991 --- /dev/null +++ b/telepathy-account-widgets/po/el.po @@ -0,0 +1,932 @@ +# translation of tp-account-widgets.HEAD.po to Greek +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# Dimitris Glezos , 2006. +# Christos Trochalakis , 2006. +# Marios Zindilis , 2009. +# Jennie Petoumenou , 2009, 2010. +# Russell Kyaw , 2010. +# Michael Kotsarinis , 2011. +# Simos Xenitellis , 2010, 2011. +# George Stefanakis , 2011. +# Dimitris Spingos (Δημήτρης Σπίγγος) , 2012, 2013. +# Efstathios Iosifidis , 2013. +msgid "" +msgstr "" +"Project-Id-Version: empathy.HEAD\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-03-03 15:37+0000\n" +"PO-Revision-Date: 2017-04-08 19:39+0300\n" +"Last-Translator: Tom Tryfonidis \n" +"Language-Team: team@gnome.gr\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.11\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Προεπιλεγμένος κατάλογος για την επιλογή μιας προσωπικής εικόνας" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Ο τελευταίος κατάλογος από τον οποίο επιλέχθηκε προσωπική εικόνα." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Τρέχουσα τοπική ρύθμιση" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Αραβικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Αρμενικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Βαλτικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Κελτικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Κεντρικής Ευρώπης" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Κινέζικα, απλοποιημένα" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Κινέζικα, παραδοσιακά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Κροατικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Κυριλλικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Κυριλλικά/Ρωσικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Κυριλλικά/Ουκρανικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Γεωργιανά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Ελληνικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Γκουτζαράτι" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Γκουρμούχι" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Εβραϊκά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Εβραϊκά οπτικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Ινδικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Ισλανδικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Ιαπωνικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Κορεατικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Βόρειων χωρών" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Περσικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Ρουμανικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Νότιας Ευρώπης" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Ταϊλανδέζικα" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Τουρκικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Δυτικά" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Βιετναμέζικα" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Κ_ωδικός πρόσβασης" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Ό_νομα χρήστη" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Παράδειγμα: ΤοΨευδώνυμοΜου" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Απομνημόνευση κωδικού πρόσβασης" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Θύρα" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "Διακομι_στής" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Για προχωρημένους" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Ποιο είναι το όνομα χρήστη σας στο AIM;" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας στο AIM;" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Λογαριασμός" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Κωδικός πρόσβασης" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Διακομιστής" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Θύρα" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Προσθήκη" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "Ε_φαρμογή" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s στο %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "Λογαριασμός %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Νέος λογαριασμός" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Ταυτότητα ει_σόδου" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Παράδειγμα: όνομα χρήστη" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Ποια είναι η ταυτότητα χρήστη σας για το GroupWise;" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας για το GroupWise;" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Παράδειγμα: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Σύνολο χ_αρακτήρων" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Ποιο είναι το UIN σας στο ICQ;" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας στο ICQ;" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Δίκτυο" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Σύνολο χαρακτήρων" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Προσθήκη…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Αφαίρεση" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Πάνω" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Κάτω" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Διακομιστές" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Οι περισσότεροι διακομιστές IRC δε χρειάζονται κωδικό πρόσβασης, οπότε αν " +"δεν είστε βέβαιοι, μην εισάγετε κωδικό πρόσβασης." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Ψευδώνυμο" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Μήνυμα εξόδου" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Πραγματικό όνομα" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Όνομα χρήστη" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Ποιο δίκτυο IRC;" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Ποιο είναι το ψευδώνυμό σας στο IRC;" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Ποια είναι η ταυτότητά σας στο Google;" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Παράδειγμα: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας στο Google;" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Παράδειγμα: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "Α_γνόηση σφαλμάτων πιστοποιητικών SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "_Προτεραιότητα" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "_Πόρος" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Απαιτείται _κρυπτογράφηση (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Παράκαμψη ρυθμίσεων διακομιστή" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "Χρήση παλιού SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Ποια είναι η ταυτότητά σας στο Jabber;" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας στο Jabber;" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Ψευ_δώνυμο" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "Ε_πώνυμο" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "Ό_νομα" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Δημοσιευμένο ό_νομα" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Ταυτότητα _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Διεύθυνση ηλ. ταχυδρο_μείου" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Παράδειγμα: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Ποια είναι η ταυτότητά σας στο Windows Live;" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας στο Windows Live;" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Αυτόματο" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Καταχώρηση" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Επιλογές" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Κανένα" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Όν_ομα χρήστη" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Παράδειγμα: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Χρήση αυτού του λογαριασμού για κλήση _τηλεφώνων και κινητών τηλεφώνων" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Επιλογές NAT Traversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Επιλογές διαμεσολαβητή" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Λοιπές επιλογές" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Διακομιστής STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Αυτόματη ανακάλυψη διακομιστή STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Ανακάλυψη σύνδεσης" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Επιλογές Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Μηχανισμός" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Διάστημα (σε δευτερόλεπτα)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Όνομα χρήστη για πιστοποίηση" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Μεταφορά" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Χαλαρή δρομολόγηση" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Παράβλεψη σφαλμάτων TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Τοπική διεύθυνση IP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Ποια είναι η ταυτότητα εισόδου σας για το SIP;" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας για το λογαριασμό SIP;" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Κ_ωδικός πρόσβασης:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! _Ταυτότητα:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Α_γνόηση προσκλήσεων σε δωμάτια συζήτησης ή διασκέψεις" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Τοπική λίστα _δωματίων:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Σύνολο χ_αρακτήρων:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Θύρα:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Ποια είναι η ταυτότητά σας στο Yahoo!;" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Ποιος είναι ο κωδικός πρόσβασής σας στο Yahoo!;" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Δεν ήταν δυνατή η μετατροπή της εικόνας" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" +"Το σύστημά σας δεν υποστηρίζει κανέναν από τους επιτρεπτούς τύπους εικόνων." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Αδυναμία αποθήκευσης εικόνας σε αρχείο" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Επιλέξτε την προσωπική σας εικόνα" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Λήψη φωτογραφίας…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Χωρίς εικόνα" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Εικόνες" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Όλα τα αρχεία" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Επιλογή…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Επιλογή" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Πλήρες όνομα" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Αριθμός τηλεφώνου" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Διεύθυνση ηλ. ταχυδρομείου" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Ιστότοπος" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Γενέθλια" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Τελευταία εμφάνιση:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Διακομιστής:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Συνδέθηκε από:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Μήνυμα κατά την απουσία:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "εργασία" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "οικία" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "κινητό τηλέφωνο" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "φωνητικό" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "προτιμώμενο" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "Ταχ. κώδικας" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "δέμα" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Νέα σύνδεση δικτύου" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Επιλέξτε ένα δίκτυο IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Επαναφορά λίστας _δικτύων" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Επιλογή" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "νέος διακομιστής" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Δε βρέθηκε ο κωδικός πρόσβασης" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Κωδικός πρόσβασης λογαριασμού άμεσων μηνυμάτων για %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Κωδικός πρόσβασης για το δωμάτιο συζήτησης '%s' στο λογαριασμό %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Νέος λογαριασμός %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d δευτερόλεπτο πριν" +msgstr[1] "%d δευτερόλεπτα πριν" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d λεπτό πριν" +msgstr[1] "%d λεπτά πριν" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ώρα πριν" +msgstr[1] "%d ώρες πριν" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ημέρα πριν" +msgstr[1] "%d ημέρες πριν" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d εβδομάδα πριν" +msgstr[1] "%d εβδομάδες πριν" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d μήνα πριν" +msgstr[1] "%d μήνες πριν" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "στο μέλλον" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Συνδεθείτε για να εισάγετε τις προσωπικές σας πληροφορίες." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Αυτές οι λεπτομέρειες θα είναι κοινόχρηστες με άλλους χρήστες σε αυτό το " +"δίκτυο." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Αναγνωριστικό" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Ψευδώνυμο" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Προσωπικές λεπτομέρειες" + +#: ../tp-account-widgets/tpaw-utils.c:122 +msgid "People Nearby" +msgstr "Γειτονικά άτομα" + +#: ../tp-account-widgets/tpaw-utils.c:127 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:165 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Username:" +#~ msgstr "Όνομα χρήστη:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Ποιο είναι το όνομα χρήστη σας στο Facebook;" + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don't have one." +#~ msgstr "" +#~ "Αυτό είναι το όνομα χρήστη σας, όχι η κανονική σύνδεση σας στο Facebook.\n" +#~ "Εάν είστε στο facebook.com/kanenas, εισάγετε kanenas.\n" +#~ "Χρησιμοποιήστε αυτή τη " +#~ "σελίδα για να επιλέξετε ένα όνομα χρήστη στο Facebook, εάν δεν έχετε " +#~ "ήδη." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Ποιος είναι ο κωδικός πρόσβασής σας στο Facebook;" + +#~ msgid "Select..." +#~ msgstr "Επιλογή..." + +#~ msgid "Facebook Chat" +#~ msgstr "Συνομιλία Facebook" + +#~ msgid "Remember Password" +#~ msgstr "Απομνημόνευση συνθηματικού" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Ποιο είναι το επιθυμητό αναγνωριστικό Jabber;" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Ποιος είναι ο επιθυμητός κωδικός πρόσβασης για το Jabber;" diff --git a/telepathy-account-widgets/po/en@shaw.po b/telepathy-account-widgets/po/en@shaw.po new file mode 100644 index 0000000..bf806d2 --- /dev/null +++ b/telepathy-account-widgets/po/en@shaw.po @@ -0,0 +1,902 @@ +# Shavian translation for tp-account-widgets. +# Copyright (C) 2009 The Gnome Foundation. +# Thomas Thurman , 2009. +msgid "" +msgstr "" +"Project-Id-Version: metacity\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2010-05-12 18:35 -0400\n" +"Last-Translator: Thomas Thurman \n" +"Language-Team: Shavian \n" +"Language: en@shaw\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n!=1;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "𐑛𐑦𐑓𐑷𐑤𐑑 𐑛𐑲𐑮𐑧𐑒𐑑𐑼𐑦 𐑑 𐑕𐑩𐑤𐑧𐑒𐑑 𐑩𐑯 𐑨𐑝𐑩𐑑𐑸 𐑦𐑥𐑦𐑡 𐑓𐑮𐑪𐑥" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "𐑞 𐑤𐑭𐑕𐑑 𐑛𐑲𐑮𐑧𐑒𐑑𐑼𐑦 𐑞𐑨𐑑 𐑩𐑯 𐑨𐑝𐑩𐑑𐑸 𐑦𐑥𐑦𐑡 𐑢𐑪𐑟 𐑗𐑴𐑟𐑩𐑯 𐑓𐑮𐑪𐑥." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "𐑒𐑳𐑮𐑩𐑯𐑑 𐑤𐑴𐑒𐑨𐑤" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "𐑨𐑮𐑩𐑚𐑦𐑒" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "𐑸𐑥𐑰𐑯𐑰𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "𐑚𐑪𐑤𐑑𐑦𐑒" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "𐑕𐑧𐑤𐑑𐑦𐑒" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "𐑕𐑧𐑯𐑑𐑮𐑩𐑤 𐑘𐑫𐑼𐑩𐑐𐑰𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "𐑗𐑲𐑯𐑰𐑟 𐑕𐑦𐑥𐑐𐑤𐑩𐑓𐑲𐑛" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "𐑗𐑲𐑯𐑰𐑟 𐑑𐑮𐑩𐑛𐑦𐑖𐑩𐑯𐑩𐑤" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "𐑒𐑮𐑴𐑱𐑖𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "𐑕𐑻𐑦𐑤𐑦𐑒" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "𐑕𐑻𐑦𐑤𐑦𐑒/𐑮𐑳𐑖𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "𐑕𐑻𐑦𐑤𐑦𐑒/𐑘𐑵𐑒𐑮𐑱𐑯𐑰𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "𐑡𐑪𐑮𐑡𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "𐑜𐑮𐑰𐑒" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +#, fuzzy +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +#, fuzzy +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "𐑣𐑰𐑚𐑮𐑵" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "𐑣𐑰𐑚𐑮𐑵 𐑝𐑦𐑠𐑩𐑢𐑩𐑤" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "𐑣𐑦𐑯𐑛𐑰" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "𐑲𐑕𐑤𐑨𐑯𐑛𐑦𐑒" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "𐑡𐑨𐑐𐑩𐑯𐑰𐑟" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "𐑒𐑪𐑮𐑰𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "𐑯𐑪𐑮𐑛𐑦𐑒" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "𐑐𐑻𐑠𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "𐑮𐑴𐑥𐑱𐑯𐑰𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "𐑕𐑬𐑔 𐑘𐑫𐑼𐑩𐑐𐑰𐑩𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "𐑑𐑲" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "𐑑𐑻𐑒𐑦𐑖" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "·𐑿𐑯𐑦𐑒𐑴𐑛" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "𐑢𐑧𐑕𐑑𐑼𐑯" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "𐑝𐑰𐑧𐑑𐑯𐑭𐑥𐑰𐑕" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "𐑐𐑭𐑕_𐑢𐑻𐑛:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "𐑕𐑒𐑮𐑰𐑯 _𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +#, fuzzy +msgid "Example: MyScreenName" +msgstr "<𐑚𐑰>𐑦𐑜𐑟𐑭𐑥𐑐𐑩𐑤: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_𐑐𐑹𐑑:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_𐑕𐑻𐑝𐑼:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "𐑩𐑛𐑝𐑭𐑯𐑕𐑑" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑱𐑥 𐑕𐑒𐑮𐑰𐑯 𐑯𐑱𐑥?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑱𐑥 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "𐑐𐑭𐑕𐑢𐑼𐑛:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "𐑤𐑪𐑜𐑦𐑯 I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +#, fuzzy +msgid "Example: username" +msgstr "<𐑚𐑰>𐑦𐑜𐑟𐑭𐑥𐑐𐑩𐑤: 𐑿𐑟𐑼𐑯𐑱𐑥" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +#, fuzzy +msgid "What is your GroupWise User ID?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 GroupWise 𐑿𐑟𐑼 𐑦𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +#, fuzzy +msgid "What is your GroupWise password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 GroupWise 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +#, fuzzy +msgid "Example: 123456789" +msgstr "<𐑚𐑰>𐑦𐑜𐑟𐑭𐑥𐑐𐑩𐑤: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "𐑒𐑨𐑮𐑩𐑒𐑑𐑼 𐑕𐑧𐑑:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +#, fuzzy +msgid "What is your ICQ UIN?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +#, fuzzy +msgid "What is your ICQ password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ICQ 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "𐑯𐑧𐑑𐑢𐑻𐑒" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "𐑒𐑨𐑮𐑩𐑒𐑑𐑼 𐑕𐑧𐑑:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +#, fuzzy +msgid "Add…" +msgstr "_Add…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_𐑮𐑦𐑥𐑵𐑝" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "𐑕𐑻𐑝𐑼𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "𐑯𐑦𐑒𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "𐑐𐑭𐑕𐑢𐑼𐑛:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "𐑒𐑢𐑦𐑑 𐑥𐑧𐑕𐑦𐑡:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "𐑮𐑾𐑤 𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "𐑿𐑟𐑼𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑱𐑥 𐑕𐑒𐑮𐑰𐑯 𐑯𐑱𐑥?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +#, fuzzy +msgid "What is your Facebook username?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 Facebook 𐑿𐑟𐑼𐑯𐑱𐑥?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +#, fuzzy +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"𐑞𐑦𐑕 𐑦𐑟 𐑿𐑼 𐑿𐑟𐑼𐑯𐑱𐑥, 𐑯𐑪𐑑 𐑿𐑼 𐑯𐑹𐑥𐑩𐑤 Facebook 𐑤𐑪𐑜𐑦𐑯.\n" +"𐑦𐑓 𐑿 𐑸 facebook.𐑒𐑪𐑥/<𐑚𐑰>𐑚𐑨𐑡𐑼, 𐑧𐑯𐑑𐑼 <𐑚𐑰>𐑚𐑨𐑡𐑼.\n" +"𐑿𐑟 <𐑩 href=\"·𐑣·𐑑·𐑑·𐑐://·𐑢·𐑢·𐑢.facebook.𐑒𐑪𐑥/𐑿𐑟𐑼𐑯𐑱𐑥/\">𐑞𐑦𐑕 𐑐𐑱𐑡 𐑑 𐑗𐑵𐑟 𐑩 " +"Facebook 𐑿𐑟𐑼𐑯𐑱𐑥 𐑦𐑓 𐑿 𐑛𐑴𐑯𐑑 𐑣𐑨𐑝 𐑢𐑳𐑯." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#, fuzzy +msgid "What is your Facebook password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 Facebook 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +#, fuzzy +msgid "What is your Google ID?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 Google 𐑦𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +#, fuzzy +msgid "Example: user@gmail.com" +msgstr "<𐑚𐑰>𐑦𐑜𐑟𐑭𐑥𐑐𐑩𐑤: 𐑿𐑟𐑼@gmail.𐑒𐑪𐑥" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +#, fuzzy +msgid "What is your Google password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 Google 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +#, fuzzy +msgid "Example: user@jabber.org" +msgstr "<𐑚𐑰>𐑦𐑜𐑟𐑭𐑥𐑐𐑩𐑤: 𐑿𐑟𐑼@·𐑡𐑨𐑚𐑼.𐑹𐑜" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "_𐑦𐑜𐑯𐑹 SSL 𐑕𐑩𐑑𐑦𐑓𐑦𐑒𐑩𐑑 𐑻𐑼𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Reso_urce:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Encryption 𐑮𐑦𐑒𐑢𐑲𐑼𐑛 (TLS/·𐑕·𐑕·𐑤)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "𐑴𐑝𐑼𐑮𐑲𐑛 𐑕𐑻𐑝𐑼 𐑕𐑧𐑑𐑦𐑙𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "𐑿𐑟 𐑴𐑤𐑛 SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑡𐑨𐑚𐑼 ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 𐑛𐑦𐑟𐑲𐑼𐑛 ·𐑡𐑨𐑚𐑼 ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑡𐑨𐑚𐑼 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 𐑛𐑦𐑟𐑲𐑼𐑛 ·𐑡𐑨𐑚𐑼 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "𐑯𐑦𐑒𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_𐑤𐑭𐑕𐑑 𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_𐑓𐑻𐑕𐑑 𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_𐑐𐑳𐑚𐑤𐑦𐑖𐑑 𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_·𐑡𐑨𐑚𐑼 ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "𐑧-𐑥𐑱𐑤 𐑩𐑛𐑮𐑧𐑕:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +#, fuzzy +msgid "Example: user@hotmail.com" +msgstr "<𐑚𐑰>𐑦𐑜𐑟𐑭𐑥𐑐𐑩𐑤: 𐑿𐑟𐑼@hotmail.𐑒𐑪𐑥" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +#, fuzzy +msgid "What is your Windows Live ID?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 𐑢𐑦𐑯𐑛𐑴𐑟 𐑤𐑦𐑝 𐑦𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑢𐑦𐑯𐑛𐑴𐑟 ·𐑤𐑦𐑝 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +#, fuzzy +msgid "Auto" +msgstr "𐑷𐑑𐑴" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +#, fuzzy +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +#, fuzzy +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +#, fuzzy +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "𐑮𐑧𐑡𐑦𐑕𐑑𐑼" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +#, fuzzy +msgid "Options" +msgstr "𐑪𐑐𐑖𐑩𐑯𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +#, fuzzy +msgid "None" +msgstr "𐑯𐑳𐑯" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_𐑿𐑟𐑼𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +#, fuzzy +msgid "Example: user@my.sip.server" +msgstr "<𐑚𐑰>𐑦𐑜𐑟𐑭𐑥𐑐𐑩𐑤: 𐑿𐑟𐑼@𐑥𐑲.𐑕𐑦𐑐.𐑕𐑻𐑝𐑼" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +#, fuzzy +msgid "NAT Traversal Options" +msgstr "𐑯𐑨𐑑 Traversal 𐑪𐑐𐑖𐑩𐑯𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +#, fuzzy +msgid "Proxy Options" +msgstr "𐑐𐑮𐑪𐑒𐑕𐑦 𐑪𐑐𐑖𐑩𐑯𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +#, fuzzy +msgid "Miscellaneous Options" +msgstr "𐑥𐑦𐑕𐑩𐑤𐑱𐑯𐑰𐑩𐑕 𐑪𐑐𐑖𐑩𐑯𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "·𐑕𐑑𐑩𐑯 𐑕𐑻𐑝𐑼:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +#, fuzzy +msgid "Discover the STUN server automatically" +msgstr "𐑛𐑦𐑕𐑒𐑳𐑝𐑼 𐑞 𐑕𐑑𐑩𐑯 𐑕𐑻𐑝𐑼 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +#, fuzzy +msgid "Discover Binding" +msgstr "𐑛𐑦𐑕𐑒𐑳𐑝𐑼 𐑚𐑲𐑯𐑛𐑦𐑙" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "𐑕𐑻𐑝𐑼" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +#, fuzzy +msgid "Keep-Alive Options" +msgstr "𐑒𐑰𐑐-𐑩𐑤𐑲𐑝 𐑪𐑐𐑖𐑩𐑯𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "𐑥𐑧𐑒𐑩𐑯𐑦𐑟𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +#, fuzzy +msgid "Interval (seconds)" +msgstr "𐑦𐑯𐑑𐑼𐑝𐑩𐑤 (𐑕𐑧𐑒𐑩𐑯𐑛𐑟)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "𐑷𐑔𐑧𐑯𐑑𐑦𐑒𐑱𐑖𐑩𐑯 𐑿𐑟𐑼𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "𐑑𐑮𐑩𐑯𐑕𐑐𐑹𐑑:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +#, fuzzy +msgid "Loose Routing" +msgstr "𐑤𐑵𐑕 𐑮𐑵𐑑𐑦𐑙" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "𐑐𐑹𐑑" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑕𐑦𐑐 𐑤𐑪𐑜𐑦𐑯 ID?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑕𐑦𐑐 𐑩𐑒𐑬𐑯𐑑 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "𐑐𐑭𐑕_𐑢𐑻𐑛:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "𐑘𐑭𐑣𐑵! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignore 𐑒𐑭𐑯𐑓𐑻𐑩𐑯𐑕 𐑯 𐑗𐑨𐑑 𐑮𐑵𐑥 𐑦𐑯𐑝𐑦𐑑𐑱𐑖𐑩𐑯𐑟" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_𐑮𐑵𐑥 𐑤𐑦𐑕𐑑 𐑤𐑴𐑒𐑨𐑤:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "𐑒𐑨𐑮𐑩𐑒𐑑𐑼 𐑕𐑧𐑑:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_𐑐𐑹𐑑:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑘𐑭𐑣𐑵! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "𐑢𐑪𐑑 𐑦𐑟 𐑿𐑼 ·𐑘𐑭𐑣𐑵! 𐑐𐑭𐑕𐑢𐑼𐑛?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "𐑕𐑩𐑤𐑧𐑒𐑑" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "𐑕𐑩𐑤𐑧𐑒𐑑" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "𐑓𐑫𐑤 𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#, fuzzy +msgid "E-mail address" +msgstr "𐑧-𐑥𐑱𐑤 𐑩𐑛𐑮𐑧𐑕:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "𐑢𐑧𐑚𐑕𐑲𐑑:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "𐑚𐑻𐑔𐑛𐑱:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "_𐑤𐑭𐑕𐑑 𐑯𐑱𐑥:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "𐑕𐑻𐑝𐑼:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "𐑒𐑢𐑦𐑑 𐑥𐑧𐑕𐑦𐑡:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "𐑯𐑧𐑑𐑢𐑻𐑒" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "𐑯𐑿 𐑯𐑧𐑑𐑢𐑻𐑒" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "𐑕𐑩𐑤𐑧𐑒𐑑" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "𐑯𐑿 𐑕𐑻𐑝𐑼" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "𐑓𐑮𐑱𐑟 𐑯𐑪𐑑 𐑓𐑬𐑯𐑛" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "𐑯𐑿 %s 𐑩𐑒𐑬𐑯𐑑" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d 𐑕𐑧𐑒𐑩𐑯𐑛 𐑩𐑜𐑴" +msgstr[1] "%d 𐑕𐑧𐑒𐑩𐑯𐑛𐑟 𐑩𐑜𐑴" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 𐑥𐑦𐑯𐑩𐑑 𐑩𐑜𐑴" +msgstr[1] "%d 𐑥𐑦𐑯𐑩𐑑𐑕 𐑩𐑜𐑴" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 𐑬𐑼 𐑩𐑜𐑴" +msgstr[1] "%d 𐑬𐑼𐑟 𐑩𐑜𐑴" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 𐑛𐑱 𐑩𐑜𐑴" +msgstr[1] "%d 𐑛𐑱𐑟 𐑩𐑜𐑴" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d 𐑢𐑰𐑒 𐑩𐑜𐑴" +msgstr[1] "%d 𐑢𐑰𐑒𐑕 𐑩𐑜𐑴" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d 𐑥𐑳𐑯𐑔 𐑩𐑜𐑴" +msgstr[1] "%d 𐑥𐑳𐑯𐑔𐑕 𐑩𐑜𐑴" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "𐑦𐑯 𐑞 𐑓𐑿𐑗𐑼" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "𐑲𐑛𐑧𐑯𐑑𐑦𐑓𐑲𐑼:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "𐑱𐑤𐑰𐑩𐑕:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "𐑑𐑧𐑒𐑯𐑦𐑒𐑩𐑤 𐑛𐑰𐑑𐑱𐑤𐑟" diff --git a/telepathy-account-widgets/po/en_CA.po b/telepathy-account-widgets/po/en_CA.po new file mode 100644 index 0000000..d85d972 --- /dev/null +++ b/telepathy-account-widgets/po/en_CA.po @@ -0,0 +1,856 @@ +# Canadian English translations for tp-account-widgets package. +# Copyright (C) 2012 tp-account-widgets'S COPYRIGHT HOLDER +# This file is distributed under the same licence as the tp-account-widgets package. +# Adam Weinberger , 2004, 2005. +# Tiffany Antopolski , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: Empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-02-08 19:16-0500\n" +"Last-Translator: Tiffany Antopolski \n" +"Language-Team: Canadian English\n" +"Language: en_CA\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-DamnedLies-Scope: partial\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Default directory to select an avatar image from" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "The last directory that an avatar image was chosen from." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Current Locale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Central European" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinese Simplified" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinese Traditional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croatian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cyrillic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cyrillic/Russian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cyrillic/Ukrainian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Greek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebrew" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebrew Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Icelandic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japanese" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korean" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romanian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "South European" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turkish" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Western" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamese" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Pass_word:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "Screen _Name:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Example: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Remember password" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Server:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Advanced" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "What is your AIM screen name?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "What is your AIM password?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Remember Password" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Login I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Example: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "What is your GroupWise User ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "What is your GroupWise password?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Example: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Ch_aracter set:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "What is your ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "What is your ICQ password?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Network" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Character set:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Add…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Remove" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +#, fuzzy +msgid "Down" +msgstr "Domain" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servers" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Nickname:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Password" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Quit message:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Real name:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Username:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Which IRC network?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "What is your IRC nickname?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "What is your Facebook username?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "What is your Facebook password?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "What is your Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Example: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "What is your Google password?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Example: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnore SSL certificate errors" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "Priori_ty:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Reso_urce:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Encr_yption required (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Override server settings" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Use old SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "What is your Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "What is your desired Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "What is your Jabber password?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "What is your desired Jabber password?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Nic_kname:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Last Name:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_First Name:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_Published Name:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_Jabber ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "E-_mail address:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Example: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "What is your Windows Live ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "What is your Windows Live password?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "None" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Username:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Example: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Use this account to call _landlines and mobile phones" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT Traversal Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Miscellaneous Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN Server:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Discover the STUN server automatically" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Discover Binding" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-Alive Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Mechanism:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (seconds)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Authentication username:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Transport:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Loose Routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignore TLS Errors" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +#, fuzzy +msgid "Local IP Address" +msgstr "E-mail address" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "What is your SIP login ID?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "What is your SIP account password?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pass_word:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnore conference and chat room invitations" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Room List locale:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Ch_aracter set:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "What is your Yahoo! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "What is your Yahoo! password?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Select" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Select" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Full name" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Phone number" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "E-mail address" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Website" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Birthday" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Last seen:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Connected from:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Away message:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "work" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "home" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "mobile" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "voice" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "preferred" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "parcel" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "New Network" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Choose an IRC network" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Reset _Networks List" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Select" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "new server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Phrase not found" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "New %s account" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d second ago" +msgstr[1] "%d seconds ago" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minute ago" +msgstr[1] "%d minutes ago" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d hour ago" +msgstr[1] "%d hours ago" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d day ago" +msgstr[1] "%d days ago" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d week ago" +msgstr[1] "%d weeks ago" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d month ago" +msgstr[1] "%d months ago" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "in the future" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "Go online to edit your personal information." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identifier:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Alias:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Personal Details" diff --git a/telepathy-account-widgets/po/en_GB.po b/telepathy-account-widgets/po/en_GB.po new file mode 100644 index 0000000..679db4c --- /dev/null +++ b/telepathy-account-widgets/po/en_GB.po @@ -0,0 +1,920 @@ +# British English translation of tp-account-widgets +# Copyright (C) 2006 tp-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same licence as the tp-account-widgets package. +# David Lodge , 2007, 2009. +# Bruce Cowan , 2009, 2010, 2011, 2012, 2013. +# Philip Withnall , 2009, 2010. +# Chris Leonard , 2012. +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-06 14:17+0000\n" +"PO-Revision-Date: 2016-09-18 13:47+0200\n" +"Last-Translator: David King \n" +"Language-Team: British English \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Default directory to select an avatar image from" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "The last directory that an avatar image was chosen from." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Current Locale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Central European" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinese Simplified" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinese Traditional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croatian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cyrillic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cyrillic/Russian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cyrillic/Ukrainian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Greek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebrew" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebrew Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Icelandic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japanese" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korean" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romanian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "South European" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turkish" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Western" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamese" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Pass_word" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Screen _Name" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Example: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Remember password" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Advanced" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "What is your AIM screen name?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "What is your AIM password?" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "Account" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Password" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +msgid "Username:" +msgstr "Username:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "A_dd" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "A_pply" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s on %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "%s Account" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "New account" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Login I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Example: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "What is your GroupWise User ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "What is your GroupWise password?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Example: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Ch_aracter set" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "What is your ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "What is your ICQ password?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Network" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Character set" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Add…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Remove" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Up" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Down" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servers" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Nickname" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Quit message" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Real name" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Username" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Which IRC network?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "What is your IRC nickname?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "What is your Facebook username?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "What is your Facebook password?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "What is your Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Example: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "What is your Google password?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Example: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnore SSL certificate errors" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_ty" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Reso_urce" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Encr_yption required (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Override server settings" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Use old SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "What is your Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "What is your Jabber password?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Nic_kname" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Last Name" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_First Name" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Published Name" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_mail address" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Example: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "What is your Windows Live ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "What is your Windows Live password?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "None" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Username" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Example: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Use this account to call _landlines and mobile phones" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT Traversal Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Miscellaneous Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN Server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Discover the STUN server automatically" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Discover Binding" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-Alive Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanism" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (seconds)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Authentication username" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Loose Routeing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignore TLS Errors" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Local IP Address" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "What is your SIP login ID?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "What is your SIP account password?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pass_word:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnore conference and chat room invitations" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Room List locale:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Ch_aracter set:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "What is your Yahoo! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "What is your Yahoo! password?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:666 +msgid "Couldn't convert image" +msgstr "Couldn't convert image" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:582 +msgid "None of the accepted image formats are supported on your system" +msgstr "None of the accepted image formats are supported on your system" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:942 +msgid "Couldn't save picture to file" +msgstr "Couldn't save picture to file" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1064 +msgid "Select Your Avatar Image" +msgstr "Select Your Avatar Image" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1073 +msgid "Take a picture..." +msgstr "Take a picture..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1086 +msgid "No Image" +msgstr "No Image" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1145 +msgid "Images" +msgstr "Images" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1149 +msgid "All Files" +msgstr "All Files" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Select…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Select" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Full Name" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Phone Number" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-mail Address" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Website" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Birthday" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Last Seen:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Connected From:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Away Message:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "work" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "home" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobile" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voice" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferred" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "parcel" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "New Network" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Choose an IRC network" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Reset _Networks List" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Select" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "new server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Password not found" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "IM account password for %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Password for chatroom '%s' on account %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "New %s account" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d second ago" +msgstr[1] "%d seconds ago" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minute ago" +msgstr[1] "%d minutes ago" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d hour ago" +msgstr[1] "%d hours ago" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d day ago" +msgstr[1] "%d days ago" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d week ago" +msgstr[1] "%d weeks ago" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d month ago" +msgstr[1] "%d months ago" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "in the future" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Go online to edit your personal information." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "These details will be shared with other users on this chat network." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifier" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Personal Details" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "People Nearby" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "Remember Password" +#~ msgstr "Remember Password" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "What is your desired Jabber ID?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "What is your desired Jabber password?" diff --git a/telepathy-account-widgets/po/eo.po b/telepathy-account-widgets/po/eo.po new file mode 100644 index 0000000..6ec6639 --- /dev/null +++ b/telepathy-account-widgets/po/eo.po @@ -0,0 +1,860 @@ +# Esperanto translation for tp-account-widgets. +# Copyright (C) 2004-2012 Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# +# Brient HESS , 2004. +# Aisano, Eliovir, ISHII Eiju, Javier Lancha, Kvantumo, Lucas LARSON, Michael MORONI, Petr Adam DOHNÁLEK, Robert BOGENSCHNEIDER, Serge LEBLANC, Shane D, Yamiharu. +# Neil ROBERTS < >, 2011. +# Kristjan SCHMIDT , 2010, 2011, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-03-11 11:26+0100\n" +"Last-Translator: Kristjan SCHMIDT \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Launchpad-Export-Date: 2012-03-10 23:48+0000\n" +"X-Generator: Launchpad (build 14914)\n" +"X-DamnedLies-Scope: partial\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Defaŭlta dosierujo por elekto de uzantobildo" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "La lasta dosierujo el kie estis elektita uzantobildon." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Aktuala lokaĵaro" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Araba" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armena" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Balta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Kelta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Mezeŭrope" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Ĉina simpligite" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Ĉina tradicie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirila" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirila/Rusa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirila/Ukraina" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Kartvela" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Greka" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Guĝarata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebrea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Vidhebrea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islanda" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japana" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Norda" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumana" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sudeŭropa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Taja" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turka" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unikodo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Okcidenta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vjetnama" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Pas_vorto:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "Ekran_nomo:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Ekzemplo: MiaNomo" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Memori pasvorton" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Pordo:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Servilo:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Altnivele" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Kio estas via AIM-nomo?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Kio estas via AIM-pasvorto?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Memori la pasvorton" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Ensalut-I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Ekzemplo: uzantonomo" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Kio estas via uzantidentigilo ĉe GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Kio estas via pasvorto ĉe GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "_UIN ĉe ICQ:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Ekzemplo: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Sign_a agordo:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Kio estas via UIN ĉe ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Kio estas via ICQ-pasvorto?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Reto" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Signa agordo:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Aldoni…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Forigi" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serviloj" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Plej multaj el la serviloj de IRC ne bezonas pasvorton, do se vi ne certas, " +"ne enmetu pasvorton." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Kromnomo:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Pasvorto" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Ĉeso-mesaĝo:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Reala nomo:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Uzantonomo:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Kiu IRC-reto?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Kio estas via kromnomon ĉe IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Kio estas via uzantonomo ĉe Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Ĉi tio estas via uzantonomo, ne via kutima ensaluto ĉe Facebook.\n" +"Se vi nomiĝas facebook.com/zizelo, enmetu zizelo.\n" +"Uzu ĉi tiu paĝo por " +"elekti uzantonomon ĉe Facebook se vi ne jam havas." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Kio estas via pasvorto ĉe Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Kio estas via identigilo ĉe Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Ekzemplo: uzanto@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Kio estas via pasvorto ĉe Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Ekzemplo: uzanto@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnori erarojn de atestiloj de SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "Priori_tato:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Ris_urco:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Ĉ_ifrado nepras (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Superskribi agordojn de la servilo" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Uzi malnovan SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Kio estas via identigilo ĉe Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Kiun identigilon vi deziras ĉe Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Kio estas via pasvorto ĉe Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Kiun pasvorton vi deziras ĉe Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "_Kromnomo:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Familia nomo:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Persona nomo:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_Montrata nomo:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_Jabber-ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "Ret_poŝtadreso:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Ekzemplo: uzanto@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Kio estas via identigilo ĉe Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Kio estas via pasvorto ĉe Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Aŭtomate" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registro" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Agordoj" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Neniu" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Uzantonomo:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Ekzemplo: uzanto@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Uzi ĉi tiun konton por voki _fiskajn kaj poŝajn telefonojn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Agordoj por transiro de NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Prokuril-agordoj" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Diversaj agordoj" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN-servilo:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Eltrovi la servilon de STUN aŭtomate" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Eltrovi bindaĵon" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servilo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Agordoj de vivodaŭrigo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Mekanismo:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalo (sekundoj)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Aŭtentig-uzantonomo:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Transporto:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Malstrikta enkursigo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignori erarojn de TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Pordo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +#, fuzzy +msgid "Local IP Address" +msgstr "Retpoŝtadreso" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Kio estas via ensalut-identigilo de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Kio estas via pasvorto por via konto de SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pas_vorto:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnori konferencajn kaj babilejajn invitojn" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Lokaĵaro por la ĉambrolisto:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Sign_a agordo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Pordo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Kio estas via identigilo ĉe Yahoo! ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Kio estas via pasvorto ĉe Yahoo! ?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Elekti" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Elekti" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Tuta nomo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Telefonnumero" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Retpoŝtadreso" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Retejo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Naskiĝtago" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Lasta vido:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Servilo:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Konektite de:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Foresto-mesaĝo:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "laboro" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "hejmo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "poŝtelefono" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "voĉo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "preferate" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "parcelo" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nova reto" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Elekti IRC-reton" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Redefaŭltigi la liston" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Elekti" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nova servilo" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Frazo ne trovita" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Nova %s konto" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Antaŭ %d sekundo" +msgstr[1] "Antaŭ %d sekundoj" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Antaŭ %d minuto" +msgstr[1] "Antaŭ %d minutoj" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Antaŭ %d horo" +msgstr[1] "Antaŭ %d horoj" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Antaŭ %d tago" +msgstr[1] "Antaŭ %d tagoj" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Antaŭ %d semajno" +msgstr[1] "Antaŭ %d semajnoj" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Antaŭ %d monato" +msgstr[1] "Antaŭ %d monatoj" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "en la estonteco" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identigilo:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Kromnomo:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Personaj detaloj" diff --git a/telepathy-account-widgets/po/es.po b/telepathy-account-widgets/po/es.po new file mode 100644 index 0000000..2e848ce --- /dev/null +++ b/telepathy-account-widgets/po/es.po @@ -0,0 +1,947 @@ +# translation of tp-account-widgets.master.po to Español +# Copyright (C) 2003 Free Software Foundation +# This file is distributed under the same license as the Gossip package. +# Jorge González , 2007, 2008, 2009, 2010, 2011. +# Daniel Mustieles , 2010, 2011, 2012, 2013, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-12-20 17:01+0100\n" +"Last-Translator: Daniel Mustieles \n" +"Language-Team: es \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 2.91.6\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Carpeta predeterminada para seleccionar un avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Última carpeta de la que se eligió un avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Configuración regional actual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Árabe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenio" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Báltico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centroeuropeo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chino simplificado" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chino tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirílico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirílico/Ruso" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirílico/Ucraniano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgiano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Griego" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreo visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindú" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nórdico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europa del sur" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turco" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Contra_seña" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nombre en pantalla" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Ejemplo: MiNombreEnPantalla" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Recordar contraseña" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Puerto" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avanzadas" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "¿Cuál es su nombre en pantalla para AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "¿Cuál es su contraseña de AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Cuenta" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Contraseña" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Puerto" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Nombre de usuario:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Aña_dir" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "A_plicar" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s en %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Cuenta de %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Cuenta nueva" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_ID de inicio de sesión" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Ejemplo: usuario" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "¿Cuál es su ID de usuario para GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "¿Cuál es su contraseña de GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Ejemplo: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "C_onjunto de caracteres" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "¿Cuál es su UIN de ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "¿Cuál es su contraseña de ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Red" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Conjunto de caracteres" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Añadir…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Quitar" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Subir" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Abajo" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidores" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +#| msgid "" +#| "Most IRC servers don't need a password, so if you're not sure, don't " +#| "enter a password." +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"La mayoría de los servidores IRC no necesitan una contraseña, por lo que si " +"no está seguro, no introduzca una contraseña." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Apodo" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Mensaje de salida" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nombre real" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nombre de usuario" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "¿Qué red de IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "¿Cuál es su apodo del IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "¿Cuál es su usuario de Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +#| msgid "" +#| "This is your username, not your normal Facebook login.\n" +#| "If you are facebook.com/badger, enter badger.\n" +#| "Use this page to choose " +#| "a Facebook username if you don't have one." +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Este es su nombre de usuario, no su inicio de sesión normal en Facebook.\n" +"Si es facebook.com/usuario, introduzca usuario.\n" +"Use esta página para " +"elegir un nombre de usuario en Facebook si no tiene uno." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "¿Cuál es su contraseña de Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "¿Cuál es su ID de Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Ejemplo: usuario@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "¿Cuál es su contraseña de Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Ejemplo: usuario@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignorar los errores de certificados SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pri_oridad" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Re_curso" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Requiere ci_frado (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Sobrescribir los ajustes del servidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Usar SS_L antiguo" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "¿Cuál es su ID de Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "¿Cuál es su contraseña de Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Apo_do" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "Ape_llido" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Nombre" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nombre p_ublicado" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Dirección de correo-_e" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Ejemplo: usuario@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "¿Cuál es su ID de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "¿Cuál es su contraseña de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registrador" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opciones" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ninguno" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Nombre de _usuario" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Ejemplo: usuario@mi.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Usar esta cuenta para llamar a te_léfonos fijos y móviles" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opciones de NAT transversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opciones del proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opciones de miscelánea" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descubrir el servidor STUN automáticamente" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descubrir vinculación" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opciones de «keepalive»" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanismo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalo (segundos)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nombre de usuario para la autenticación" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transporte" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Enrutado impreciso" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorar errores TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Dirección IP local" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "¿Cuál es su ID de inicio de sesión SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "¿Cuál es la contraseña de su cuenta SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Contra_seña:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D de Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignorar invitaciones a conferencias y salas de chat" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Configuración de la lista de _salas:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "C_onjunto de caracteres:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Puerto:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "¿Cuál es su ID de Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "¿Cuál es su contraseña de Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +#| msgid "Couldn't convert image" +msgid "Couldn’t convert image" +msgstr "No se pudo convertir la imagen" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" +"No se ha encontrado den su sistema ninguno de los formatos de imagen " +"soportados" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +#| msgid "Couldn't save picture to file" +msgid "Couldn’t save picture to file" +msgstr "No se pudo guardar la imagen en un archivo" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Seleccione la imagen de su avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +#| msgid "Take a picture..." +msgid "Take a picture…" +msgstr "Hacer una foto…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Sin imagen" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Imagenes" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Todos los archivos" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#| msgctxt "verb displayed on a button to select an IRC network" +#| msgid "Select" +msgid "Select…" +msgstr "Seleccionar…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Seleccionar" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nombre completo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Numero de teléfono" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Dirección de correo-e" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Página web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Cumpleaños" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Última actividad:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Conectado desde:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Mensaje de ausencia:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "trabajo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "personal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "móvil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voz" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferido" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "grupo" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Red nueva" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Elegir una red IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Rei_niciar lista de redes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Seleccionar" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "servidor nuevo" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "No se encontró la contraseña" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Contraseña de la cuenta IM para %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +#| msgid "Password for chatroom '%s' on account %s (%s)" +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Contraseña para la sala de chat «%s» en la cuenta %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Cuenta de %s nueva" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "hace %d segundo" +msgstr[1] "hace %d segundos" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "hace %d minuto" +msgstr[1] "hace %d minutos" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "hace %d hora" +msgstr[1] "hace %d horas" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "hace %d día" +msgstr[1] "hace %d días" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "hace %d semana" +msgstr[1] "hace %d semanas" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "hace %d mes" +msgstr[1] "hace %d meses" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "en el futuro" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Conéctese para editar su información personal." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Estos detalles se compartirán con otros usuarios de esta red de chat." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificador" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Apodo" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Detalles personales" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Gente cerca" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japón" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Chat de Facebook" + +#~ msgid "Select..." +#~ msgstr "Seleccionar…" + +#~ msgid "Remember Password" +#~ msgstr "Recordar contraseña" + +#~ msgid "L_og in" +#~ msgstr "Iniciar _sesión" + +#~ msgid "This account already exists on the server" +#~ msgstr "Esta cuenta ya existe en el servidor" + +#~ msgid "Create a new account on the server" +#~ msgstr "Crear una cuenta nueva en el servidor" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "¿Cuál es el ID de usuario que quiere para Jabber?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "¿Cuál es la contraseña que quiere para Jabber?" diff --git a/telepathy-account-widgets/po/et.po b/telepathy-account-widgets/po/et.po new file mode 100644 index 0000000..cd98f19 --- /dev/null +++ b/telepathy-account-widgets/po/et.po @@ -0,0 +1,826 @@ +# tp-account-widgets'i eesti keele tõlge. +# Estonian translation of tp-account-widgets. +# +# Copyright (C) 2005–2011 Free Software Foundation, Inc. +# +# Ivar Smolin , 2005–2011. +# Mattias Põldaru , 2009, 2010, 2011, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy MASTER\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-12 21:57+0300\n" +"Last-Translator: Mattias Põldaru \n" +"Language-Team: Estonian <>\n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Poedit-Language: Estonian\n" +"X-Poedit-Country: ESTONIA\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Vaikimisi kataloog, millest valida avatari pilti" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Kataloog, kust viimati valiti avatari pilt." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Praegune lokaat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Araabia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeenia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Balti" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keldi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Kesk-Euroopa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Hiina lihtsustatud" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Hiina traditsiooniline" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroaatia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kirillitsa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kirillitsa/Vene" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kirillitsa/Ukraina" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gruusia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Kreeka" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmuki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Heebrea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Heebrea visuaalne" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Jaapani" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Põhjamaade" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Pärsia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumeenia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Lõuna-Euroopa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Türgi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Lääne" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnami" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Parool" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Ekraani_nimi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Näide: MinuEkraaniNimi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Parooli peetakse meeles" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Laiendatud" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Mis on sinu AIM-i ekraaninimi?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Mis on sinu AIM-i parool?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Parooli peetakse meeles" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Sisselogimise I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Näide: kasutajanimi" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Mis on sinu GroupWise kasutaja ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Mis on sinu GroupWise parool?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Näide: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Kooditabel" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Mis on sinu ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Mis on sinu ICQ parool?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Võrk" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Kooditabel" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Lisa…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Eemalda" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Üles" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Alla" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serverid" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Enamik IRC servereid ei vaja parooli. Kui sa pole kindel, ära sisesta " +"parooli." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Hüüdnimi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Parool" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Lahkumise teade" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Pärisnimi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Kasutajanimi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Milline IRC võrk?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Mis on sinu IRC ekraaninimi?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Mis on sinu Facebooki kasutajanimi?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"See on sinu kasutajanimi, mitte tavaline Facebooki sisselogimise nimi.\n" +"Kui sinu leht on facebook.com/hüüdnimi, sisesta hüüdnimi.\n" +"Kui sul veel ei ole Facebooki kasutajanime, saad selle luua siin lehel." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Mis on sinu Facebooki parool?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Mis on sinu Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Näide: kasutaja@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Mis on sinu Google parool?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Näide: kasutaja@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL-sertifikaadi vigu _eiratakse" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "_Tähtsus" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "_Vahend" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Krüpteeringu nõudmine (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Serveri sätete eiramine" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Kasutatakse _vana SSL-i" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Mis on sinu Jabberi ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Mis on sinu poolt eelistatav Jabberi ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Mis on sinu Jabberi parool?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Mis on sinu poolt eelistatav Jabberi parool?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Hüüdnimi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Perekonnanimi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Eesnimi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Avaldatud nimi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabberi ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_Meiliaadress" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Näide: kasutaja@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Mis on sinu Windows Live ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Mis on sinu Windows Live parool?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automaatne" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Valikud" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Puudub" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Kasutajanimi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Näide: kasutaja@minu.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Seda kontot kasutatakse _fiksvõrku ja mobiiltelefonidele helistamiseks" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT-traversal valikud" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proksi valikud" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Muud valikud" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN-serveri automaatne tuvastus" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Seonduse avastamine" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Ühenduse elushoidmise valikud" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mehhanism" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervall (sekundites)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Autentimise kasutajanimi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Vaba marsruutimine" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS vigasid eiratakse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Kohalik IP-aadress" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Mis on sinu SIP-i sisselogimise ID?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Mis on sinu SIP-konto parool?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Parool:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Konverentside ja jututubade kutseid _eiratakse" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Tubade nimekirja lokaat:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Kooditabel:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Mis on sinu Yahoo! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Mis on sinu Yahoo! parool?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Vali..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Vali" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Täisnimi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Telefoninumber" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Meiliaadress" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Veebileht" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Sünnipäev" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Viimati nähti:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Ühendusviis:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Eemalolekuteade:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "töö" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "kodu" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "mobiil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "häälega" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "eelistatud" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "postipakk" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "kullerpakk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Uus võrk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Vali IRC võrk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Lähtesta _võrkude nimekiri" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Vali" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "uus server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "Parooli ei leitud" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s suhtluskonto parool (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Jututoa '%s' parool kontol %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Uus %s konto" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d sekund tagasi" +msgstr[1] "%d sekundit tagasi" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minut tagasi" +msgstr[1] "%d minutit tagasi" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d tund tagasi" +msgstr[1] "%d tundi tagasi" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d päev tagasi" +msgstr[1] "%d päeva tagasi" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d nädal tagasi" +msgstr[1] "%d nädalat tagasi" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d kuu tagasi" +msgstr[1] "%d kuud tagasi" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "tulevikus" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "Oma isiklike andmete muutmiseks mine veebilehele." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "Identifitseerija" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "Isiklikud andmed" diff --git a/telepathy-account-widgets/po/eu.po b/telepathy-account-widgets/po/eu.po new file mode 100644 index 0000000..afca747 --- /dev/null +++ b/telepathy-account-widgets/po/eu.po @@ -0,0 +1,935 @@ +# Basque translation for telepathy-account-widgets +# Copyright (C) 2003 THE gossip'S COPYRIGHT HOLDER +# This file is distributed under the same license as the gossip package. +# +# Mikel Olasagasti , 2003. +# Mikel Olasagasti , 2013. +# Iñaki Larrañaga Murgoitio , 2003, 2004, 2006, 2007, 2008, 2009, 2010. +# Iñaki Larrañaga Murgoitio , 2011, 2012, 2013, 2017. +msgid "" +msgstr "" +"Project-Id-Version: eu\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-02-03 21:05+0000\n" +"PO-Revision-Date: 2017-02-13 20:24+0100\n" +"Last-Translator: Iñaki Larrañaga Murgoitio \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Direktorio lehenetsia avatar baten irudia hautatzeko" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Azken direktorioa, Avatar baten irudia aukeratu dena." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Uneko lokala" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeniera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltikokoa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Zeltiarra" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europako Erdialdekoa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Txinatar soildua" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Txinatar tradizionala" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroaziera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Zirilikoa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Zirilikoa/Errusiarra" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Zirilikoa/Ukrainarra" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grekoa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujaratiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebrear bisuala" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japoniera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordikoa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Errumaniera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europako Hegoaldekoa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thailandiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turkiera" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Mendebaldekoa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamera" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Pasahitza" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Pantaila-_izena" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Adibidea: NirePantailaIzena" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Gogoratu pasahitza" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Ataka" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Zerbitzaria" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Aurreratua" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Zein da zure AIM pantaila-izena?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Zein da zure AIM pasahitza?" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Kontua" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Pasahitza" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Zerbitzaria" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Ataka" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Gehitu" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "_Aplikatu" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s %2$s(e)n" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "%s kontua" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Kontu berria" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Saioaren _IDa" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Adibidea: erabiltzaile-izena" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Zein da zure GroupWise erabiltzailearen IDa?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Zein da zure GroupWise pasahitza?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Adibidea: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Karaktere-jokoa" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Zein da zure ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Zein da zure ICQ pasahitza?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Sarea" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Karaktere-jokoa" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Gehitu..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Kendu" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Gora" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Behera" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Zerbitzariak" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +#| msgid "" +#| "Most IRC servers don't need a password, so if you're not sure, don't " +#| "enter a password." +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"IRC zerbitzari gehienek ez dute pasahitzik eskatzen. Ziur ez bazaude, ez " +"sartu pasahitzik." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Goitizena" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Irteerako mezua" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Benetako izena" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Erabiltzaile-izena" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Zer IRC sare?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Zein da zure IRCko goitizena?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Zein da zure Google-ko IDa?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Adibidea: erabiltzailea@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Zein da zure Google-ko pasahitza?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Adibidea: erabiltzailea@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "_Ez ikusi egin SSL ziurtagirien erroreei" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "_Lehentasuna" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "_Baliabidea" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Enkriptatzea behar da (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Gainidatzi zerbitzariaren ezarpenak" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "Erabili SS_L zaharra" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Zein da zure Jabber IDa?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Zein da zure Jabber pasahitza?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Goitizena" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Abizenak" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Izena" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "A_rgitaratutako izena" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber IDa" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_Helbide elektronikoa" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Adibidea: erabiltzailea@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Zein da zure Windows Live IDa?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Zein da zure Windows Live pasahitza?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatikoa" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Erregistratu" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Aukerak" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Bat ere ez" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Erabiltzaile-izena" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Adibidea: erabiltzailea@nire.sip.zerbitzaria" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Erabili kontu hau telefono _finko eta mugikorretara deitzeko" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT zeiharbidearen aukerak" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy-aren aukerak" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Hainbat aukera" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN zerbitzaria" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Aurkitu STUN zerbitzaria automatikoki" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Aurkitu lotura" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Konexio iraunkorren aukerak" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mekanismoa" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Bitartea (seg.)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Autentifikazioaren erabiltzaile-izena" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Garraioa" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Bideraketa ez zehatza" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ez ikusi egin TLS erroreei" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "IP helbide lokala" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Zein da zure SIP saio-hasierako IDa?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Zein da zure SIP kontuaren pasahitza?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Pasahitza:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! _IDa:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ez ikusi egin konferentzi eta berriketa-gelen gonbiteei" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Gelen zerrenda lokala:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Karaktere-jokoa:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Ataka:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Zein da zure Yahoo! IDa?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Zein da zure Yahoo! pasahitza?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +#| msgid "Couldn't convert image" +msgid "Couldn’t convert image" +msgstr "Ezin izan da irudia bihurtu" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" +"Onartutako irudi-formatuetatik bat berak ere ez du euskarririk sisteman" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +#| msgid "Couldn't save picture to file" +msgid "Couldn’t save picture to file" +msgstr "Ezin izan da irudia fitxategian gorde" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Hautatu zure avatar irudia" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +#| msgid "Take a picture..." +msgid "Take a picture…" +msgstr "Hartu argazkia…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Irudirik ez" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Irudiak" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Fitxategi guztiak" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#| msgctxt "verb displayed on a button to select an IRC network" +#| msgid "Select" +msgid "Select…" +msgstr "Hautatu…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Hautatu" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Izen-abizenak" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefono-zenbakia" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Helbide elektronikoa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Webgunea" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Urtebetetzea" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Ikusi zen azken aldia:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Zerbitzaria:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Hemendik konektatuta:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Kanpoan nagoeneko mezua:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "lana" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "etxea" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mugikorra" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "ahotsa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "hobetsia" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "posta" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "taldea" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Sare berria" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Aukeratu IRC sarea" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Berrezarri _sareen zerrenda" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Hautatu" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "zerbitzari berria" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Ez da pasahitza aurkitu" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "BM-ko '%s' kontuaren pasahitza (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +#| msgid "Password for chatroom '%s' on account %s (%s)" +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "“%s“ berriketa-gelako “%s“ kontuaren pasahitza (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "%s kontu berria" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Duela segundo %d" +msgstr[1] "Duela %d segundo" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Duela minutu %d" +msgstr[1] "Duela %d minutu" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Duela ordu %d" +msgstr[1] "Duela %d ordu" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Duela egun %d" +msgstr[1] "Duela %d egun" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Duela aste %d" +msgstr[1] "Duela %d aste" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Duela hilabete %d" +msgstr[1] "Duela %d hilabete" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "etorkizunean" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Jar zaitez linean zure informazio pertsonala editatzeko." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Xehetasun hauek berriketa honen sareko beste erabiltzaileekin partekatuko " +"dira." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikatzailea" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Aliasa" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Xehetasun pertsonalak" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Inguruko pertsonak" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japonia" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Remember Password" +#~ msgstr "Gogoratu pasahitza" + +#~ msgid "Username:" +#~ msgstr "Erabiltzaile-izena:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Zein da zure Facebook erabiltzaile-izena?" + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don't have one." +#~ msgstr "" +#~ "Hau zure erabiltzaile-izena da, ez da Facebook-eko zure saio-hasiera.\n" +#~ "Zu bazara facebook.com/sugegorribeltza, sartu sugegorribeltza.\n" +#~ "Erabili orrialde hau " +#~ "Facebook-eko erabiltzaile bat aukeratzeko aurrez ez badaukazu bat." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Zein da zure Facebook pasahitza?" + +#~ msgid "Select..." +#~ msgstr "Hautatu..." + +#~ msgid "Facebook Chat" +#~ msgstr "Facebook Chat" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Zein da zure Jabber ID gogokoa?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Zein da zure Jabber pasahitz gogokoa?" diff --git a/telepathy-account-widgets/po/fa.po b/telepathy-account-widgets/po/fa.po new file mode 100644 index 0000000..ee30182 --- /dev/null +++ b/telepathy-account-widgets/po/fa.po @@ -0,0 +1,917 @@ +# Persian translation of tp-account-widgets +# Copyright (C) 2010-2011 Iranian Free Software Users Group (IFSUG.org)translation team. +# This file is distributed under the same license as the tp-account-widgets package. +# Mahyar Moghimi , 2010. +# Arash Mousavi , 2011, 2012, 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy 2.28.1.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-01-06 14:17+0000\n" +"PO-Revision-Date: 2015-09-13 23:41+0430\n" +"Last-Translator: Arash Mousavi \n" +"Language-Team: Persian\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 1.8.4\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "شاخه‌ی پیش‌فرض برای انتخاب تصویر آواتار از آن" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "آخرین شاخه‌ای که یک آواتار از آن انتخاب شده بود." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "محلی جاری" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "عربی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ارمنی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "بالتیک" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "سلتیک" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "اروپای مرکزی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "چینی ساده شده" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "چینی قدیمی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "کرواسیایی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "سیریلیک" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "سیریلیک/روسی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "سیریلیک/اوکراینی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "گرجی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "یونانی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "گجراتی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "گورماخی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "عبری" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "عبری تصویری" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "هندی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ایسلندی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ژاپنی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "کره‌ای" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "شمال اروپا" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "فارسی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "رومانیای" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "جنوب اروپا" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "تایلندی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ترکی" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "یونیکد" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "وسترن (غربی)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ویتنامی" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_گذرواژه" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "نام _روی صفحه نمایش" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "مثال: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "به خاطر سپردن گذرواژه" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_درگاه" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_کارگزار" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "پیشرفته" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "نام روی صفحه‌ی شما در AIM چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "گذرواژه‌ی AIM شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "حساب" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "گذرواژه" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "کارگزار" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "درگاه" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +msgid "Username:" +msgstr "نام‌کاربری:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "ا_ضافه کردن:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "_اعمال" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s بر روی %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "حساب %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "حساب جدید" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "شناسه‌ی _ورود" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "مثال: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "نام کاربری GroupWise شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "گذرواژه‌ی GroupWise شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "مثال: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "تنظیم ‫_نویسه‌گان‬" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "نام کاربری (UIN) شما در ICQ چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "گذرواژه‌ی ICQ شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "شبکه" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "‫نویسه‌گان‬" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "افزودن..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "حذف" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "بالا" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "پایین" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "کارگزارها" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a password." +msgstr "" +"بیشتر کارگزارهای IRC احتیاجی به گذرواژه ندارند، بنابراین چناچه مطمئن نیستید، هیچ " +"گذرواژه‌ای وارد نکنید." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "نام مستعار" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "پیغام ترک" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "نام واقعی" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "نام‌کاربری" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "کدام شبکه IRC؟" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "نام مستعار شما در IRC چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "نام کاربری فیس‌بوک شما چیست؟" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a Facebook " +"username if you don't have one." +msgstr "" +"این نام کاربری شماست، و نه ورود به سیستم فیس‌بوک معمول شما.\n" +"اگر شما facebook.com/badger هستید، badger را وارد کنید.\n" +"اگر نام کاربری فیس‌بوک ندارید به این " +"آدرس بروید تا یکی بسازید." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "گذرواژه‌ی فیس‌بوک شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "شناسه‌ی کاربری گوگل شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "مثال: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "گذرواژه‌ی گوگل شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "مثال: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "از خطاهای گواهینامه SSL _چشم‌پوشی شود" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "ا_لویت" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_منبع" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_رمزنگاری مورد نیاز بود (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "لغو کردن تنظیمات کارگزار" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "استفاده ا_ز SSL قدیمی" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "شناسه‌ی کاربری گوگل شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "گذرواژه‌ی Jabber شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "نام _مستعار" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_نام خانوادگی" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_نام" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_نام منتشره" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_شناسه‌ی Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "نشانی _پست‌الکترونیکی" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "مثال: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "شناسه‌ی کاربری ویندوز لایو شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "گذرواژه‌ی ویندوز لایو شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "خودکار" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "هیچ‌کدام" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "نام _کاربری" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "مثال: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "از این حساب برای تماس‌های _خطوط زمینی و تلفن‌های همراه استفاده کن" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "گزینه‌های پیمایش NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "گزینه‌های پیشکار" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "گزینه‌های متفرقه" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "کارگزار STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "کارگزار STUN، خودکار پیدا شود" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "پیدا کردن مقیدسازی" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "گزینه‌های زنده‌ماندن" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "سازوکار" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "بازه‌ی زمانی (بر حسب ثانیه)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "نام کاربری برای تأیید هویت" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "انتقال" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "مسیریابی سست" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "نادیده گرفتن خطاهای TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "آدرس IP محلی" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "شناسه‌ی ورود SIP شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "گذرواژه‌ی حساب SIP شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_گذرواژه:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "_شناسه‌ی یاهو!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "از _دعوت‌نامه‌های کنفرانس و اتاق گپ چشم پوشی شوند" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "کدبومی _فهرست اتاق:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "تنظیم ‫_نویسه‌گان‬:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_درگاه:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "شناسه‌ی کاربری یاهو! شما چیست؟" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "گذرواژه‌ی یاهو! شما چیست؟" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:666 +msgid "Couldn't convert image" +msgstr "امکان تبدیل تصویر نبود" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:582 +msgid "None of the accepted image formats are supported on your system" +msgstr "هیچکدام از قالب‌های تصویر پذیرفته شده در سیستم شما پشتیبانی نمی‌شوند" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:942 +msgid "Couldn't save picture to file" +msgstr "امکان ذخیره تصویر در پرونده نبود" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1064 +msgid "Select Your Avatar Image" +msgstr "تصویر آواتار خود را انتخاب کنید" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1073 +msgid "Take a picture..." +msgstr "یک عکس بگیرید..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1086 +msgid "No Image" +msgstr "بدون عکس" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1145 +msgid "Images" +msgstr "تصاویر" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1149 +msgid "All Files" +msgstr "تمام پرونده‌ها" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "انتخاب..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_انتخاب" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "نام کامل" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "شماره تلفن" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "نشانی پست‌الکترونیکی" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "پایگاه‌وب" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "روز تولد" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "آخرین حضور:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "کارگزار:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "متصل شد از:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "پیغام ترک:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "کار" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "خانه" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "تلفن همراه" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "صوتی" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "ترجیح داده شده" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "کد پستی" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "بسته" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "شبکه جدید" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "یک شبکه IRC انتخاب کنید" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "تنظیم دوباره فهرست _شبکه‌ها" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "انتخاب" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "کارگزار جدید" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "گذرواژه یافت نشد" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "گذوراژه برای حساب %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "گذرواژه بری اتاق گپ «%s» بر روی حساب %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "حساب جدید %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%Id ثانیه قبل" +msgstr[1] "%Id ثانیه قبل" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%Id دقیقه قبل" +msgstr[1] "%Id دقیقه قبل" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%Id ساعت قبل" +msgstr[1] "%Id ساعت قبل" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%Id روز قبل" +msgstr[1] "%Id روز قبل" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%Id هفته قبل" +msgstr[1] "%Id هفته قبل" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%Id ماه قبل" +msgstr[1] "%Id ماه قبل" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "در آینده" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "برای ویرایش اطلاعات شخصی برخط شوید." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "این جزئیات با دیگر کاربران در این شبکه‌ی گپ به اشتراک گذاشته می‌شوند." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "شناسه" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "نام مستعار" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "جزئیات شخصی" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "مردم اطراف" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "یاهو! ژاپن" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "گوگل تاک" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "گپ فیس‌بوک" + +#~ msgid "Remember Password" +#~ msgstr "به خاطر سپردن گذرواژه" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "شناسه‌ی کاربری Jabber مورد نظر شما چیست؟" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "گذرواژه‌ی Jabber مورد نظر شما چیست؟" diff --git a/telepathy-account-widgets/po/fi.po b/telepathy-account-widgets/po/fi.po new file mode 100644 index 0000000..afd0e98 --- /dev/null +++ b/telepathy-account-widgets/po/fi.po @@ -0,0 +1,942 @@ +# This file is distributed under the same license as the tp-account-widgets package. +# Copyright (C) 2006-2009 Free Software Foundation Inc. +# Copyright (C) 2006 Samuli Seppänen and Henna Nykänen. +# Jussi Aalto https://launchpad.net/~jtaalto +# Timo Jyrinki https://launchpad.net/~timo-jyrinki +# Tommi Saira https://launchpad.net/~tommisaira +# Gnome 2012-03 Finnish translation sprint participants: +# Niklas Laxström +# Timo Jyrinki +# Ilkka Tuohela , 2006-2009. +# Samuli Seppänen & Henna Nykänen , 2006. +# Tommi Vainikainen , 2009. +# Ville-Pekka Vainio , 2010. +# Jiri Grönroos , 2012, 2013, 2014, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-03-03 15:37+0000\n" +"PO-Revision-Date: 2017-03-05 12:47+0200\n" +"Last-Translator: Jiri Grönroos \n" +"Language-Team: suomi \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2012-03-05 15:05:34+0000\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Oletushakemisto, josta avatar-kuvat haetaan" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Viimeisin hakemisto, josta avatar-kuva oli valittu." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Nykyinen maa-asetusto" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "arabia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "armenia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "baltti" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "keltti" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "keskieurooppalainen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "kiina, yksinkertaistettu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "kiina, perinteinen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "kroatia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "kyrillinen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "kyrillinen, Venäjä" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "kyrillinen, Ukraina" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "georgia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "kreikka" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "heprea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "heprea, visuaalinen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "islanti" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "japani" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "korea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "pohjoismainen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "farsi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "romania" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "etelä-eurooppa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "turkki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "länsimaalainen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "vietnam" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "S_alasana" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Näyttö_nimi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Esimerkki: Nimimerkkini" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Muista salasana" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Portti" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "Pal_velin" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Lisäasetukset" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Mikä on AIM-näyttönimesi?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Mikä on AIM-salasanasi?" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Tili" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Salasana" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Palvelin" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Portti" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Lisää" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "_Toteuta" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s palvelussa %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "Tili (%s)" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Uusi tili" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_Käyttäjätunnus" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Esimerkki: käyttäjänimi" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Mikä on GroupWise-käyttäjätunnuksesi?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Mikä on GroupWise-salasanasi?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Esimerkki: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Merkistökoodaus" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Mikä on ICQ UIN -tunnuksesi?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Mikä on ICQ-salasanasi?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Verkko" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Merkistökoodaus" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Lisää..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Poista" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Ylös" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Alas" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Palvelimet" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +#| msgid "" +#| "Most IRC servers don't need a password, so if you're not sure, don't " +#| "enter a password." +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Useimmat IRC-palvelimet eivät tarvitse salasanaa, joten jos et ole varma, " +"älä syötä salasanaa." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Nimimerkki" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Lopetusviesti" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Oikea nimi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Käyttäjänimi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Mikä IRC-verkko?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Mikä on IRC-nimimerkkisi?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Mikä on Google-tunnuksesi?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Esimerkki: nimi@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Mikä on Google-salasanasi?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Esimerkki: nimi@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "_Älä huomioi SSL-varmenteiden virheitä" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "_Prioriteetti" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "Res_urssi" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Salaus vaa_ditaan (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Ohita palvelimen asetukset" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "Käytä vanhaa SS_L-porttia" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Mikä on Jabber-tunnuksesi?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Mikä on Jabber-salasanasi?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Ni_mimerkki" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Sukunimi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Etunimi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Julkaistu nimi" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber-tunniste" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Sähköposti_osoite" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Esimerkki: tunnus@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Mikä on Windows Live -tunnuksesi?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Mikä on Windows Live -salasanasi?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automaattinen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Rekisteröi" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Valinnat" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ei mitään" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Käyttäjänimi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Esimerkki: käyttäjä@sip-palvelimen.osoite" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Kä_ytä tätä tiliä lanka- ja matkapuhelinverkon puheluihin" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT-läpäisyn (NAT-T) asetukset" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Välipalvelinvalinnat" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Muut valinnat" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-palvelin" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Havaitse STUN-palvelin automaattisesti" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Löydä Sidonta" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Käynnissä pitävät valinnat" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mekanismi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Aikaväli (sekunneissa)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Tunnistautumisen käyttäjänimi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Siirto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Löyhä reititys" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Sivuuta TLS-virheet" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Paikallinen IP-osoite" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Mikä on SIP-tilisi käyttäjätunnus?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Mikä on SIP-tilisi salasana?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "S_alasana:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-_tunnus:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Älä huomioi konferenssi- ja keskusteluhuonekutsuja" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Huoneluettelon maa-asetusto:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Merkkikartta:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Portti:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Mikä on Yahoo! -tunnuksesi?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Mikä on Yahoo! -salasanasi?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +#| msgid "Couldn't convert image" +msgid "Couldn’t convert image" +msgstr "Kuvaa ei voitu muuntaa" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Mikään hyväksytyistä kuvamuodoista ei ole tuettu järjestelmässäsi" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +#| msgid "Couldn't save picture to file" +msgid "Couldn’t save picture to file" +msgstr "Kuvan tallennus tiedostoon ei onnistunut" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Valitse avatar-kuvasi" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +#| msgid "Take a picture..." +msgid "Take a picture…" +msgstr "Ota kuva…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Ei kuvaa" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Kuvat" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Kaikki tiedostot" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#| msgctxt "verb displayed on a button to select an IRC network" +#| msgid "Select" +msgid "Select…" +msgstr "Valitse…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Valitse" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Koko nimi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Puhelinnumero" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Sähköpostiosoite" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "WWW-sivusto" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Syntymäpäivä" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Viimeksi nähty:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Palvelin:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Yhdisti kohteesta:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Poissaoloviesti:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "työ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "koti" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "matkapuhelin" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "ääni" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "ensisijainen" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postiosoite" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +#, fuzzy +msgid "parcel" +msgstr "Ulkoasu" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Uusi verkko" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Valitse IRC-verkko" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_Nollaa verkkoluettelo" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Valitse" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "uusi palvelin" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Salasanaa ei löydy" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Pikaviestintilin %s salasana (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +#| msgid "Password for chatroom '%s' on account %s (%s)" +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Kanavan “%s” salasana tilille %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Uusi %s-tili" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d sekunti sitten" +msgstr[1] "%d sekuntia sitten" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minuutti sitten" +msgstr[1] "%d minuuttia sitten" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d tunti sitten" +msgstr[1] "%d tuntia sitten" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d päivä sitten" +msgstr[1] "%d päivää sitten" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d viikko sitten" +msgstr[1] "%d viikkoa sitten" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d kuukausi sitten" +msgstr[1] "%d kuukautta sitten" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "tulevaisuudessa" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Yhdistä verkkoon muokataksesi henkilökohtaisia tietojasi." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Nämä tiedot jaetaan muiden käyttäjien kanssa tässä keskusteluverkossa." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Tunniste" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Nimimerkki" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Henkilökohtaiset tiedot" + +#: ../tp-account-widgets/tpaw-utils.c:122 +msgid "People Nearby" +msgstr "Ihmiset lähettyvillä" + +#: ../tp-account-widgets/tpaw-utils.c:127 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:165 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Username:" +#~ msgstr "Käyttäjätunnus:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Mikä on Facebook-käyttäjänimesi?" + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don't have one." +#~ msgstr "" +#~ "Kyseessä on käyttäjänimi, ei normaalisti Facebook-kirjautumiseen " +#~ "käytettävä sähköpostiosoite.\n" +#~ "Jos käyttäjänimesi on esimerkiksi facebook.com/tunnus, kirjoita " +#~ "tunnus.\n" +#~ "Jos et ole vielä luonut Facebook-käyttäjänimeä, voit luoda sellaisen tällä sivulla." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Mikä on Facebook-salasanasi?" + +#~ msgid "Select..." +#~ msgstr "Valitse..." + +#~ msgid "Facebook Chat" +#~ msgstr "Facebook-keskustelu" + +#~ msgid "Remember Password" +#~ msgstr "Muista salasana" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Mikä on haluamasi Jabber-tunnus?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Mikä on haluamasi Jabber-salasana?" diff --git a/telepathy-account-widgets/po/fr.po b/telepathy-account-widgets/po/fr.po new file mode 100644 index 0000000..855719e --- /dev/null +++ b/telepathy-account-widgets/po/fr.po @@ -0,0 +1,947 @@ +# French translation of tp-account-widgets. +# Copyright (C) 2003-2012 The Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# +# Frédéric Brin , 2003. +# Lionel Henry , 2003. +# Laurent Richard , 2004. +# Christophe Merlet , 2004. +# Audrey Simons , 2004. +# Quentin Delance , 2006. +# Claude Paroz , 2007-2011. +# Jonathan Ernst , 2007. +# Damien Durand , 2007. +# Robert-André Mauchin , 2007-2008. +# Frederic Peters , 2007-2008, 2012. +# Laurent Bigonville , 2007. +# Stéphane Raimbault , 2007. +# Christophe Benz , 2007-2009. +# Yannick Tailliez , 2008. +# Laurent Coudeur , 2009. +# Emmanuel Sunyer , 2009. +# Bruno Brouard , 2010-2012. +# Pablo Martin-Gomez , 2009-2010. +# Alexandre Daubois , 2011 +# +msgid "" +msgstr "" +"Project-Id-Version: empathy HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-22 10:25+0200\n" +"Last-Translator: Charles Monzat \n" +"Language-Team: GNOME French Team \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.8.9\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Répertoire par défaut où choisir un avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Dernier répertoire où un avatar a été choisi." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Locale actuelle" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Arménien" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Balte" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtique" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Européen central" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinois simplifié" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinois traditionnel" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croate" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cyrillique" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cyrillique/Russe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cyrillique/Ukrainien" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Géorgien" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grec" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarâtî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhī" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hébreu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hébreu visuel" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandais" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonais" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coréen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordique" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Perse" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Roumain" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Européen méridional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thaï" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamien" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Mot de passe" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nom à l'écran" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemple : MonNomEcran" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Se souvenir du mot de passe" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Serveur" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avancé" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Quel est votre nom à l'écran AIM ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Quel est votre mot de passe AIM ?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Compte" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Mot de passe" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Serveur" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s :" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Nom d'utilisateur :" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Aj_outer" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "A_ppliquer" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s sur %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Compte %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nouveau compte" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_dentifiant de connexion" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemple : nom_utilisateur" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Quel est votre identifiant utilisateur GroupWise ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Quel est votre mot de passe GroupWise ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemple : 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Jeu de c_aractères" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Quel est votre UIN ICQ ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Quel est votre mot de passe ICQ ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Réseau" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Jeu de caractères" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Ajouter…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Supprimer" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "En haut" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "En bas" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serveurs" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"La plupart des serveurs IRC ne nécessitent pas de mot de passe. Si vous " +"n'êtes pas sûr, n'en saisissez pas." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Pseudonyme" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Message de départ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nom réel" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Quel réseau IRC ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Quel est votre pseudonyme IRC ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Quel est votre nom d'utilisateur Facebook ?" + +#  'blaireau' has been judged an offensive name in French +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"C'est votre nom d'utilisateur, pas votre identifiant Facebook.\n" +"Si vous êtes facebook.com/castor, saisissez castor.\n" +"Utilisez cette page pour " +"choisir un nom d'utilisateur Facebook si vous n'en avez pas." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Quel est votre mot de passe Facebook ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Quel est votre identifiant Google ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemple : utilisateur@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Quel est votre mot de passe Google ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemple : nom@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignorer les erreurs de certificat SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pri_orité" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Resso_urce" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Chiffr_ement requis (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Outrepasser les paramètres du serveur" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Utiliser l'ancien SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Quel est votre identifiant Jabber ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Quel est votre mot de passe Jabber ?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "P_seudonyme" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Nom" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Prénom" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nom p_ublié" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Identifiant Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "A_dresse électronique" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemple : nom@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Quel est votre identifiant Windows Live ?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Quel est votre mot de passe Windows Live ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Enregistrer" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Aucun" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Nom d'utilisateur" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemple : nom@mon.serveur.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" +"Utiliser ce compte pour appeler des _lignes fixes ou des téléphones mobiles" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Options de parcours NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Options de serveur mandataire" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Options diverses" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Serveur STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Découvrir automatiquement le serveur STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Découvrir la liaison" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Options de connexions persistantes" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mécanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalle (secondes)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nom d'utilisateur pour l'authentification" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +# Je ne trouve pas de traduction donc j'ai laissé en anglais et mis le terme approximatif entre parenthèses +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Loose Routing (routage non strict)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorer les erreurs TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Adresse IP locale" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Quel est votre identifiant de connexion SIP ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Quel est votre mot de passe de compte SIP ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Mot de passe :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_dentifiant Yahoo! :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" +"_Ignorer les invitations à des conférences ou à des salons de discussion" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Codage de la liste des _salons :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Jeu de c_aractères :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Quel est votre identifiant Yahoo! ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Quel est votre mot de passe Yahoo! ?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Impossible de convertir l'image" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Aucun format d'image accepté n'est pris en charge par votre système" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Impossible d'enregistrer l'image dans le fichier" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Sélectionnez votre image d'avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Prendre une photo…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Aucune image" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Images" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Tous les fichiers" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Sélectionner…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Sélectionner" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nom complet" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Numéro de téléphone" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Adresse électronique" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Site Web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Anniversaire" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Dernière consultation :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Serveur :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Connecté de :" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Message d'absence :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "travail" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "maison" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobile" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voix" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "préféré" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "paquet" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nouveau réseau" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Choisir un réseau IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Réi_nitialiser la liste des réseaux" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Sélectionner" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nouveau serveur" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Mot de passe introuvable" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Mot de passe du compte de messagerie instantanée pour %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Mot de passe pour le salon de discussion « %s » sur le compte %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nouveau compte %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "il y a %d seconde" +msgstr[1] "il y a %d secondes" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "il y a %d minute" +msgstr[1] "il y a %d minutes" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "il y a %d heure" +msgstr[1] "il y a %d heures" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "il y a %d jour" +msgstr[1] "il y a %d jours" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "il y a %d semaine" +msgstr[1] "il y a %d semaines" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "il y a %d mois" +msgstr[1] "il y a %d mois" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "dans le futur" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Mettez-vous en ligne pour modifier vos informations personnelles." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Ces détails seront partagés avec les autres utilisateurs de ce réseau de " +"discussion." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifiant" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Détails personnels" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Voisins" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japon" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Discussion instantanée Facebook" + +#~ msgid "Remember Password" +#~ msgstr "Se souvenir du mot de passe" + +#~ msgid "Select..." +#~ msgstr "Sélectionner..." + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Que souhaitez-vous comme identifiant Jabber ?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Que souhaitez-vous comme mot de passe Jabber ?" diff --git a/telepathy-account-widgets/po/fur.po b/telepathy-account-widgets/po/fur.po new file mode 100644 index 0000000..a006647 --- /dev/null +++ b/telepathy-account-widgets/po/fur.po @@ -0,0 +1,915 @@ +# Friulian translation for telepathy-account-widgets. +# Copyright (C) 2016 telepathy-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same license as the telepathy-account-widgets package. +# Fabio Tomat , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: telepathy-account-widgets master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-03-03 15:37+0000\n" +"PO-Revision-Date: 2017-03-09 15:44+0100\n" +"Last-Translator: Fabio Tomat \n" +"Language-Team: Friulian \n" +"Language: fur\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.12\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Cartele predefinide di dulà selezionâ une imagjin" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "L'ultime cartele dulà che une imagjin avatar e je stade sielte." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Configurazion regjonâl atuâl" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arap" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "European centrâl" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Cinês semplificât" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Cinês tradizionâl" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Cravuat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirilic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirilic/Rus" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirilic/Ucrain" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gjeorgjian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grêc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Ebreu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Ebreu visuâl" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Gjaponês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Corean" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "European dal sud" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Ocidentâl" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamite" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Pass_word" + +# as in pidgin +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nominatîf public" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Esempli: GnoNominatîf" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Visâsi password" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Puarte" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidôr" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avanzadis" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Cuâl isal il tô nominatîf public di AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Cuale ise la tô password di AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Account" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Password" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidôr" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Puarte" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Zonte" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "A_pliche" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s su %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "Account %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Gnûf account" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D acès" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Esempli: nonutent" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Cuâl isal il to ID utent di GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Cuale ise la tô password di GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Esempli: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Codifiche c_aratars" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Cuâl isal il to UIN di ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Cuale ise la tô password di ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rêt" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Codifiche caratars" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Zonte..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Gjave" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Sù" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Jù" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidôrs" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"La plui part dai servidôrs IRC no àn bisugne di une password, se no si è " +"sigûrs, no stait a inserî nissune password." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Sorenon" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Messaç di jessude" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Non reâl" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Non utent" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Cuale rêt IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Cuâl isal il sorenon IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Cuâl isal il to ID di Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Esempli: utent@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Cuale ise la tô password di Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Esempli: utent@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnore erôrs di certificâts SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "Priori_tât" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "_Risorse" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Domande di cifradure (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Passâ parsore a lis impostazions dal servidôr" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "Dopre il vecjo SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Cuâl isal il to ID di Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Cuale ise la tô password di Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "So_renon" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Cognon" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Non" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Non _visibil" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "I_D Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "direzion e-_mail" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Esempli: utent@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Cuâl isal il to ID di Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Cuale ise la tô password di Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatic" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Regjistradôr" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opzions" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nissun" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Non utent" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Esempli: utent@gno.servidôr.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "_Dopre chest account pes clamadis a telefons fis e celulârs" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opzions di traviersament NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opzions proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Varis opzions" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidôr STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Scuvierç i servidôrs STUN in automatic" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Scuvierç i vincui" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opzions Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanisim" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (seconts)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Non utent di autenticazion" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Traspuart" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Instradament libar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorâ erôrs TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Direzion IP locâl" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Cuâl isal il to ID di acès SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Cuale ise la tô password dal account SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pass_word:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignorâ invîts par conferencis e stanziis di conversazion" + +# dallo spagnolo +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Configurazion de liste des _stanziis:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Codific_he caratars:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Puarte:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Cuâl isal il to ID di Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Cuale ise la tô password di Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Impussibil convertî la imagjin" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Nissun dai formâts imagjin acetâts al è supuartât dal sisteme" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Impussibil salvâ la imagjin su file" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Selezione imagjin avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Scate foto..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Nissune imagjin" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Imagjins" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Ducj i file" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Selezione..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Selezione" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Non complet" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Numar di telefon" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "direzion e-mail" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Sît web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Complean" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Ultime ativitât:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidôr:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Conetût di:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Messaç di assence:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "vore" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "cjase" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "celulâr" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "vôs" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferît" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postâl" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "pac" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Gnove rêt" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Sielç une rêt IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Ripristi_ne liste rêts" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Selezione" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "gnûf servidôr" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Password no cjatade" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Password dal account pai messaçs istantanis par %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Password pe stanzie \"%s\" sul account %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Gnûf account %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d secont indaûr" +msgstr[1] "%d seconts indaûr" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minût indaûr" +msgstr[1] "%d minûts indaûr" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ore indaûr" +msgstr[1] "%d oris indaûr" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d zornade indaûr" +msgstr[1] "%d dîs indaûr" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d setemane indaûr" +msgstr[1] "%d setemanis indaûr" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d mês indaûr" +msgstr[1] "%d mês indaûr" + +# tal doman +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "tal avignî" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Va in linie par modificâ lis tôs informazions personâi." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Chescj detais a vegnaran condividûts cun altris utents su cheste rêt di " +"conversazion." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificadôr" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Detais personâi" + +#: ../tp-account-widgets/tpaw-utils.c:122 +msgid "People Nearby" +msgstr "Personis tai contors" + +#: ../tp-account-widgets/tpaw-utils.c:127 +msgid "Yahoo! Japan" +msgstr "Yahoo! Gjapon" + +#: ../tp-account-widgets/tpaw-utils.c:165 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Username:" +#~ msgstr "Non utent:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Cuâl isal il to non utent di Facebook?" + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don’t have one." +#~ msgstr "" +#~ "Chest al è il to non utent, no il to normâl acès di Facebook.\n" +#~ "Se tu sês facebook.com/badger, scrîf badger.\n" +#~ "Dopre cheste pagjine " +#~ "par sielzi un non utent Facebook se no tu 'nd âs un." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Cuale ise la tô password di Facebook?" + +#~ msgid "Facebook Chat" +#~ msgstr "Chat di Facebook" + +#~ msgid "Select..." +#~ msgstr "Selezione..." diff --git a/telepathy-account-widgets/po/ga.po b/telepathy-account-widgets/po/ga.po new file mode 100644 index 0000000..c41556c --- /dev/null +++ b/telepathy-account-widgets/po/ga.po @@ -0,0 +1,924 @@ +# Irish translations for telepathy-account-widgets package. +# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# This file is distributed under the same license as the telepathy-account-widgets package. +# Seán de Búrca , 2009-2013. +# +msgid "" +msgstr "" +"Project-Id-Version: telepathy-account-widgets.master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-06 12:32-0600\n" +"PO-Revision-Date: 2013-09-06 12:44-0600\n" +"Last-Translator: Seán de Búrca \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " +"4;\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Logchaighdeán Reatha" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Airméanach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Ceilteach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Lár-Eorpach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Síneach Simplithe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Síneach Traidisiúnta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Crótach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Coireallach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Coireallach/Rúiseach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Coireallach/Úcránach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Seoirseach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Gréagach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gúisearátach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmúcaíoch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Eabhrach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Eabhrach Infheicthe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hiondúch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Íoslannach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Seapánach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Cóiréach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Peirseach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rómánach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Deisceart na hEorpa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Téallanach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turcach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Iartharach" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vítneamach" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Focal Faire" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Ai_nm Taispeána" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Sampla: MAinmTaispeana" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Meabhraigh an focal faire" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "Frea_stalaí" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Casta" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Cád é d'ainm taispeána AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Cád é d'fhocal faire AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Meabhraigh an Focal Faire" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "Cuntas" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Focal faire" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Freastalaí" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +msgid "Username:" +msgstr "Ainm úsáideora:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "Cuir _Leis" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "Cuir i _bhFeidhm" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s ar %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "Cuntas %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "Cuntas nua" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "C_A Logála Isteach" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Sampla: ainmusaideora" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Cad é do CA Úsáideora GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Cad é d'fhocal faire GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Sampla: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "T_acar carachtar" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Cad é do UIN ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Cad é d'fhocal faire ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Líonra" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Tacar carachtar" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Cuir Leis…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Bain" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Suas" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Síos" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Freastalaithe" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Ní gá focal faire don chuid is mó de fhreastalaithe IRC, mar sin mura bhfuil " +"tú cinnte, ná iontráil focal faire." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Leasainm" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Teachtaireacht scortha" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Fíorainm" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Ainm úsáideora" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Cén líonra IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Cad é do CA Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Sampla: usaideoir@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Cad é d'fhocal faire Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "Déan _neamhaird ar earráidí teastais SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "_Tosaíocht" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "Ac_mhainn" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Criptiú de dhíth (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Sáraigh socruithe freastalaí" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Úsáid sean-SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Leasainm" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Sloinne" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Ainm" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Ainm _Foilsithe" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "CA _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Seoladh _ríomhphoist" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Uath" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "Iartharach" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Roghanna" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Neamhní" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Ainm Úsáideora" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Roghanna Seachfhreastalaí" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Roghanna Éagsúla" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Freastalaí STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Cliant IM Empathy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Port STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +#, fuzzy +msgid "Local IP Address" +msgstr "Seoladh _ríomhphoist:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Focal faire:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "C_A Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "Déan _neamhaird ar chuirí comhdhála agus seomra comhrá" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Lo_gchaighdeán an Liosta Seomraí:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "Tacar carachtar:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:543 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:628 +msgid "Couldn't convert image" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:544 +msgid "None of the accepted image formats are supported on your system" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:904 +msgid "Couldn't save picture to file" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1026 +msgid "Select Your Avatar Image" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1035 +msgid "Take a picture..." +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1048 +msgid "No Image" +msgstr "Gan Íomhá" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1107 +msgid "Images" +msgstr "Íomhánna" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1111 +msgid "All Files" +msgstr "Gach Comhad" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Roghnaigh..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Roghnaigh" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Ainm Iomlán" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Uimhir Theileafóin" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Seoladh Ríomhphoist" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Suíomh Gréasáin" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Lá Breithe" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Last Seen:" +msgstr "_Sloinne:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Freastalaí:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +#, fuzzy +msgid "Away Message:" +msgstr "Teachtaireacht scortha:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "obair" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "baile" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "fón póca" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +#, fuzzy +msgid "preferred" +msgstr "Sainroghanna" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Líonra Nua" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "freastalaí nua" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "Focal faire gan aimsiú" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Cuntas %s nua" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:423 +msgid "Go online to edit your personal information." +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:507 +msgid "These details will be shared with other users on this chat network." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:516 +msgid "Identifier" +msgstr "Aitheantóir" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:524 +msgid "Alias" +msgstr "Ailias" + +#: ../tp-account-widgets/tpaw-user-info.c:541 +msgid "Personal Details" +msgstr "Mionsonraí Pearsanta" + +#: ../tp-account-widgets/tpaw-utils.c:115 +msgid "People Nearby" +msgstr "Daoine in Aice Láithreach" + +#: ../tp-account-widgets/tpaw-utils.c:120 +#, fuzzy +msgid "Yahoo! Japan" +msgstr "C_A Yahoo!:" + +#: ../tp-account-widgets/tpaw-utils.c:156 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:157 +msgid "Facebook Chat" +msgstr "" diff --git a/telepathy-account-widgets/po/gl.po b/telepathy-account-widgets/po/gl.po new file mode 100644 index 0000000..7bc2a22 --- /dev/null +++ b/telepathy-account-widgets/po/gl.po @@ -0,0 +1,959 @@ +# translation of tp-account-widgets to Galego +# This file is distributed under the same license as the tp-account-widgets package. +# Copyright (C) 2010 Fran Diéguez. +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en http://www.trasno.net +# Mancomún - Centro de Referencia e Servizos de Software Libre , 2009. +# Antón Méixome , 2009. +# Antón Méixome , 2010. +# Fran Diéguez , 2009, 2010, 2011, 2012. +# Leandro Regueiro , 2012. +# Fran Dieguez , 2012, 2013, 2016. +msgid "" +msgstr "" +"Project-Id-Version: empathy-master-po-gl-57278_.merged\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-10-11 15:49+0200\n" +"PO-Revision-Date: 2016-10-11 15:49+0200\n" +"Last-Translator: Fran Dieguez \n" +"Language-Team: Galician\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +# rever +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Cartafol predeterminado para seleccionar un avatar" + +# rever +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Último cartafol do que escolleu unha imaxe de avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Configuración rexional actual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Árabe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenio" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Báltico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centroeuropeo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinés simplificado" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinés tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirílico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirílico/Ruso" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirílico/Ucraíno" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Xeorxiano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grego" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Guxarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreo visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Xaponés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nórdico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romanés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sureuropeo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turco" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Con_trasinal" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nome en pantalla" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemplo: MeuNomeEnPantalla" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Lembrar contrasinal" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Porto" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avanzadas" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Cal é o seu nome en patalla para AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Cal e o seu contrasinal para AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Conta" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Contrasinal" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Porto" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Nome de usuario:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Enga_dir" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Aplicar" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s en %2$s" + +# rever +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Conta %s" + +# rever +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Conta nova" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D de sesión" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemplo: usuario" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Cal é o seu ID de usuario en GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Cal é o seu contrasinal en GroupWise?" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemplo: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Codificación de c_aracteres" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Cal é o seu UIN para ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Cal é o seu contrasinal pra ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rede" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Codificación de caracteres" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Engadir…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Retirar" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Arriba" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Abaixo" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidores" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"A maioría dos servidores IRC non precisan contrasinal, polo que se non está " +"seguro non escriba un contrasinal." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Alcume" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Mensaxe de saída" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nome real" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nome de usuario" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Que rede IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Cal é o seu alcume de IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Cal é o seu nome de usuario para Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Este é o seu nome de usuario do sistema, non o seu nome de usuario de " +"Facebook.\n" +"Se vostede é facebook.com/marca, insira marca.\n" +"Use esta páxina para " +"seleccionar o nome de usuario de Facebook se non ten ningún." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Cal é o seu contrasinal para Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Cal é o seu ID de Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemplo: usuario@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Cal é o seu contrasinal de Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemplo: user@jabber.org" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnorar os erros de certificados SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pri_oridade" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Rec_urso" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Require c_ifrado (TLS/SSL)" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Sobrescribir os axustes do servidor" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Usar SS_L antigo" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Cal é o seu identificador de Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Cal é o seu contrasinal de Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Alcume" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Apelidos" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Nome" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nome _publicado" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID de _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Enderezo de correo _electrónico" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemplo: usuario@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Cal é o seu ID de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Cal é o seu contrasinal de Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Rexistrador" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcións" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ningún" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Nome de _usuario" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemplo: usuario@meu.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Usar esta conta para chamar a te_léfonos fixos e móbiles" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opcións de NAT transversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opcións do proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opcións varias" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descubrir o servidor STUN automaticamente" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descubrir ligazón" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opcións de «Keep-Alive»" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanismo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalo (segundos)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nome de usuario para a autenticación" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transporte" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Enrutado impreciso" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorar erros TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Enderezo IP local" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Cal é o seu ID de inicio de sesión SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Cal é o contrasinal da súa conta SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Con_trasinal:" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D de Yahoo:" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorar convites a conferencias e salas de conversas" + +# rever +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Configuración da lista de _salas:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Codificación de c_aracteres:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Porto:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Cal é o seu ID para Yahoo?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Cal é o seu contrasinal de Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Non foi posíbel converter a imaxe" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ningún dos formatos aceptados de imaxe é compatíbel co seu sistema" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Non foi posíbel gardar a imaxe a un ficheiro" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Seleccione a súa imaxe de avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Tomar unha foto…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Sen imaxe" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Imaxes" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Todos os ficheiros" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Seleccionar…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Seleccionar" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nome completo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Número de teléfono" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Enderezo de correo electrónico" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Sitio web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Aniversario" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Última actividade:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Conectado desde:" + +# rever +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Mensaxe de ausencia:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "traballo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "persoal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "móbil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voz" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "prefirido" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "grupo" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Rede nova" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Seleccione unha rede IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Rei_niciar a lista de redes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Seleccionar" + +# rever +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "servidor novo" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Contrasinal non atopado" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Contrasinal da conta de mensaxaría para %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Contrasinal para a sala de conversa «%s» na conta %s (%s)" + +# rever +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Conta nova de %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "hai %d segundo" +msgstr[1] "hai %d segundos" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "hai %d minuto" +msgstr[1] "hai %d minutos" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "hai %d hora" +msgstr[1] "hai %d horas" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "hai %d día" +msgstr[1] "hai %d días" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "hai %d semana" +msgstr[1] "hai %d semanas" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "hai %d mes" +msgstr[1] "hai %d meses" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "no futuro" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Conéctese para editar a súa información persoal" + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Esta información compartirase con outros usuarios nesta rede de chat." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificador" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +# rever +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Detalles persoais" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Xente cerca" + +# rever +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Xapón" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Chat de Facebook" + +#~ msgid "Remember Password" +#~ msgstr "Lembrar o contrasinal" + +#~ msgid "Select..." +#~ msgstr "Seleccionar…" + +#~ msgid "L_og in" +#~ msgstr "Iniciar _sesión" + +#~ msgid "This account already exists on the server" +#~ msgstr "Esta conta xa existe no servidor" + +#~ msgid "Create a new account on the server" +#~ msgstr "Crear unha nova conta no servidor" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Cal é o ID de usuario que quere para Jabber?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Cal é o contrasinal que desexa para Jabber?" diff --git a/telepathy-account-widgets/po/gu.po b/telepathy-account-widgets/po/gu.po new file mode 100644 index 0000000..b0bf3e3 --- /dev/null +++ b/telepathy-account-widgets/po/gu.po @@ -0,0 +1,822 @@ +# translation of gu.po to Gujarati +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sweta Kothari , 2008, 2009, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: gu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-25 11:19+0530\n" +"Last-Translator: \n" +"Language-Team: American English \n" +"Language: gu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "અવતાર ચિત્રને પસંદ કરવા માટે મૂળભૂત ડિરેક્ટરી" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "છેલ્લી ડિરેક્ટરી કે જે અવતાર ચિત્ર પસંદ થયેલ હતુ." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "હાલનું લોકેલ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "અરેબીક" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "અર્મેનિઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "બાલ્ટીક" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "સેલ્ટિક" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "કેન્દ્રિય યુરોપિઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "સરળીકૃત ચિની" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "પારંપારિક ચિની" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ક્રોએટિઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "સેરિલીક" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "સેરિલીક/રશિઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "સેરિલીક/યુક્રેનિઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "જોર્જિયન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ગ્રીક" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ગુજરાતી" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ગુરમુખી" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "હેબ્રુ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "હેબ્રુ દ્રષ્ટિ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "હિન્દી" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "આયલેંડિક" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "જાપાનીઝ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "કોરીઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "નોરડીક" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "પર્સીઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "રોમાનિઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "દક્ષિણ યુરોપિઅન" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "થાઇ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "તુર્કિશ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "યુનીકોડ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "પશ્ચિમી" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "વિયેતનામી" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "પાસવર્ડ (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "સ્ક્રીન નામ (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ઉદાહરણ: મારુ સ્ક્રીન નામ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "પાસવર્ડ યાદ રાખો" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "પોર્ટ (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "સર્વર (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "ઉન્નત થયેલ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "તમારુ AIM સ્ક્રીન નામ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "તમારો AIM પાસવર્ડ શુ છે?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "પાસવર્ડ યાદ રાખો" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "પ્રવેશ ID (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ઉદાહરણ: વપરાશકર્તાનામ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "તમારો જૂથ પ્રમાણે વપરાશકર્તા ID શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "તમારો જૂથ પ્રમાણે પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQUIN (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ઉદાહરણ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "અક્ષર સુયોજન (_a)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "તમારો ICQ UIN શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "તમારો ICQ પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "નેટવર્ક" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "અક્ષર સુયોજન" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "ઉમેરો..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "દૂર કરો" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ઉપર" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "નીચે" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "સર્વરો" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"મોટેભાગે IRC સર્વરોને પાસવર્ડની જરૂર નથી, જો તમે ચોક્કસ ન હોય તો, પાસવર્ડને દાખલ કરો " +"નહિં." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "ઉપનામ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "પાસવર્ડ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "સંદેશો છોડી દો" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "સાચુ નામ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "વપરાશકર્તાનામ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "ક્યુ IRC નેટવર્ક છે?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "તમારુ IRC ઉપનામ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "તમારુ Facebook વપરાશકર્તાનામ શું છે?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"આ તમારું વપરાશકર્તાનામ છે, તમારું સામાન્ય Facebook પ્રવેશ નથી.\n" +"જો તમે facebook.com/badger હોય તો, badger દાખલ કરો.\n" +"Facebook વપરાશકર્તાનામને પસંદ કરવા માટે આ પાનાંને વાપરો જો તમારી પાસે એક ન હોય તો." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "તમારો Facebook પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "તમારુ Google ID શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ઉદાહરણ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "તમારો Google પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ઉદાહરણ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL પ્રમાણપત્ર ભૂલો અવગણો (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "પ્રાધાન્ય (_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "સ્ત્રોત (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "એન્ક્રિપ્શન જરૂરી છ (TLS/SSL) (_y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "સર્વર સુયોજનાઓ પર ફરીથી લખો" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "જૂનું SSL વાપરો (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "તમારો Jabber ID શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "તમારો ઇચ્છિત Jabber ID શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "તમારો Jabber પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "તમારો ઇચ્છિત Jabber પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "ઉપનામ (_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "છેલ્લુ નામ (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "પ્રથમ નામ (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "પ્રકાશિત થયેલ નામ (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "જેબર ID (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ઇમેલ સરનામું (_m)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ઉદાહરણ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "તમારુ Windows Live IDર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "તમારો Windows Live પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "સ્વયં" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "રજીસ્ટર" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "વિકલ્પો" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "કઇ નહિં" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "વપરાશકર્તાનું નામ (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ઉદાહરણ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "લેન્ડલાઇન અને મોબાઇલ ફોન પર કોલ કરવા માટે આ ખાતાને વાપરો (_l)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ટ્રાવર્સલ વિકલ્પો" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "પ્રોક્સી વિકલ્પો" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "વિવિધ જાતનાં વિકલ્પો" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN સર્વર" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "આપમેળે STUN સર્વરને શોધો" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "શોધ બંધન" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "સર્વર" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "વિકલ્પોને જીવતા રાખો" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "પદ્દતિ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "અંતરાલ (સેકંડો)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "સત્તાધિકરણ વપરાશકર્તાનામ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "પરિવહન" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "છૂટું રાઉટીંગ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS ભૂલો અવગણો" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "પોર્ટ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "સ્થાનિક IP સરનામું" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "તમારો SIP પ્રવેશ ID શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "તમારો SIP ખાતા પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "પાસવર્ડ (_w):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! ID (_D):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "વાર્તાલાપ અને વાતચીતરુમ આમંત્રણોને અવગણો (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "રુમ યાદી લોકેલ (_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "અક્ષર સુયોજન (_a):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "પોર્ટ (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "તમારુ Yahoo! ID શું છે?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "તમારો Yahoo! પાસવર્ડ શું છે?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "પસંદ કરો..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "પસંદ કરો (_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "સંપૂર્ણ નામ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "ફોન નંબર" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ઇમેલ સરનામું" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "વેબસાઇટ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "જન્મદિવસ" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "છેલ્લે જોવાયેલું:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "સર્વર:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "માંથી જોડાયેલ:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "દૂર સંદેશ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "કાર્ય" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "ઘર" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "મોબાઇલ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "અવાજ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "પસંદીદા" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "પોસ્ટલ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "પાર્સલ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "નવુ નેટવર્ક" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC નેટવર્કને પસંદ કરો" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "નેટવર્ક યાદીને પુન:સુયોજિત કરો (_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "પસંદ કરો" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "નવુ સર્વર" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "પાસવર્ડ મળ્યો નથી" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) માટે IM ખાતા પાસવર્ડ" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "ખાતા %s (%s) પર વાર્તાલાપ રુમ '%s' માટે પાસવર્ડ" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "નવુ %s ખાતુ" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d સેકંડ અગાઉ" +msgstr[1] "%d સેકંડો અગાઉ" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d મિનિટ અગાઉ" +msgstr[1] "%d મિનિટો અગાઉ" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d કલાક અગાઉ" +msgstr[1] "%d કલાકો અગાઉ" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d દિવસ અગાઉ" +msgstr[1] "%d દિવસો અગાઉ" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d અઠવાડિયા અગાઉ" +msgstr[1] "%d અઠવાડિયાઓ અગાઉ" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d મહિના અગાઉ" +msgstr[1] "%d મહિનાઓ અગાઉ" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ભવિષ્યમાં" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "તમારી વ્યક્તિગત જાણકારીમાં ફેરફાર કરવા માટે ઓનલાઇન થાઓ." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "ઓળખકર્તા" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "ઉપનામ" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "વ્યક્તિગત વિગતો" diff --git a/telepathy-account-widgets/po/he.po b/telepathy-account-widgets/po/he.po new file mode 100644 index 0000000..6b7bca3 --- /dev/null +++ b/telepathy-account-widgets/po/he.po @@ -0,0 +1,917 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# Yosef Or Boczko , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-02-03 17:18+0200\n" +"PO-Revision-Date: 2014-02-03 17:27+0200\n" +"Last-Translator: Yosef Or Boczko \n" +"Language-Team: עברית <>\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Hebrew\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Default directory to select an avatar image from" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "The last directory that an avatar image was chosen from." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "מיקום ושפה נוכחיים" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "ערבית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ארמנית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "בלטית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "קלטית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "מרכז אירופאי" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "סינית מפושטת" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "סינית מסורתית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "קרואטית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "קירילית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "קירילית/רוסית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "קירילית/אוקראינית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "גאורגית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "יוונית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "גוג׳ראטית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "גורמוחית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "עברית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "עברית ויזואלית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "הינדית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "איסלנדית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "יפנית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "קוריאנית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "נורדית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "פרסית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "רומנית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "דרום אירופאית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "תאילנדית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "טורקית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "יוניקוד" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "מערבית" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "וייטנאמית" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_ססמה" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "שם ת_צוגה" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "דוגמה: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "שמירת הססמה" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_פתחה" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_שרת" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "מתקדם" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "שם התצוגה שלך אצל AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "מהי הססמה שלך אצל AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:661 +msgid "Account" +msgstr "חשבון" + +#: ../tp-account-widgets/tpaw-account-widget.c:662 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "ססמה" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "שרת" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "פתחה" + +#: ../tp-account-widgets/tpaw-account-widget.c:748 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:805 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1395 +msgid "Username:" +msgstr "שם משתמש:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1722 +msgid "A_dd" +msgstr "הו_ספה" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_pply" +msgstr "ה_חלה" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2159 +#, c-format +msgid "%1$s on %2$s" +msgstr "‏%1$s על גבי %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2185 +#, c-format +msgid "%s Account" +msgstr "חשבון %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2189 +msgid "New account" +msgstr "חשבון חדש" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "מזהה _כניסה" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "דוגמה: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "מזהה משתמש ה־GroupWise שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "ססמת ה־GroupWise שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "מספר מ_נוי ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "דוגמה: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_ערכת תווים" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "מספר מנוי ה־ICQ שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ססמת ה־ICQ שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "רשת" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "ערכת תווים" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "הוספה…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "הסרה" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "למעלה" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "למטה" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "שרתים" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "רוב שרתי ה־IRC אינם דורשים ססמה, לכן במידה של ספק, אין להזין ססמה." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "כינוי" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "הודעת יציאה" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "שם אמתי" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "שם משתמש" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "איזו רשת IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "מהו הכינוי שלך ב־IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "מהו שם המשתמש שלך בפייסבוק?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"זהו שם המשתמש שלך, לא פרטי החיבור הרגילים שלך לפייסבוק.\n" +"אם הנך facebook.com/badger, יש להזין badger.\n" +"יש להשתמש בעמוד זה כדי " +"לבחור שם משתמש בפייסבוק אם עוד אין לך אחד כזה." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "מהי ססמת חשבון הפייסבוק שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "מהו מזהה משתמש שלך ב־Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "דוגמה: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "מהי ססמת ה־Google שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "דוגמה: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "ה_תעלמות משגיאות בתעודות SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "עדי_פות" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "מ_שאב" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_נדרשת הצפנה (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "מעקף הגדרת השרת" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "שימוש ב־SS_L ישן" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "מהו מזהה משתמש ה־Jabber שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "מהי ססמת ה־Jabber שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_כינוי" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "שם מ_שפחה" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "שם _פרטי" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "שם _ציבורי" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "מ_זהה Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "כתובת _דוא״ל" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "דוגמה: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "מהו שם המשתמש שלך ב־Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "מהי ססמתך ב־Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "אוטומטי" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "הרשמה" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "אפשרויות" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ללא" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ש_ם משתמש" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "דוגמה: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "יש להשתמש בחשבון זה על מנת להתקשר לטלפונים ניי_חים וניידים" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "אפשרויות מעקף NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "אפשרויות מתווך" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "אפשרויות אחרות" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "שרת STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "גילוי שרת ה־STUN אוטומטית" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "גילוי קישור" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "אפשרויות Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "מנגנון" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "תדירות (שניות)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "אימות שם משתמש" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "תעבורה" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Loose Routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "התעלמות משגיאות TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "כתובת IP מקומית" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "מהו מזהה ההתחברות של חשבון ה־SIP שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "מהי ססמת חשבון ה־SIP שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "ססמ_ה:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "מז_הה Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "ה_תעלמות מהזמנות לשיחות ועידה ולחדרי שיחה" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "שפת רשימת ה_חדרים:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_ערכת תווים:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_פתחה:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "מהו המזהה בחשבון ה־Yahoo! שלך?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "מהי ססמת חשבון ה־Yahoo! שלך?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:666 +msgid "Couldn't convert image" +msgstr "לא ניתן להמיר את התמונה" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:582 +msgid "None of the accepted image formats are supported on your system" +msgstr "אף לא אחת מתבניות התמונות שנבחרו נתמכת" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:942 +msgid "Couldn't save picture to file" +msgstr "לא ניתן לשמור את התמונה לקובץ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1064 +msgid "Select Your Avatar Image" +msgstr "בחירת תמונה אישית שלך" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1073 +msgid "Take a picture..." +msgstr "לקחת תמונה..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1086 +msgid "No Image" +msgstr "אין תמונה" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1145 +msgid "Images" +msgstr "תמונות" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1149 +msgid "All Files" +msgstr "כל הקבצים" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "בחירה..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_בחירה" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "שם מלא" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "מספר טלפון" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "כתובת דוא״ל" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "אתר אינטרנט" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "יום הולדת" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "פעילות אחרונה:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "שרת:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "חיבור דרך:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "הודעת התרחקות:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "עבודה" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "בית" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "סלולרי" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "קול" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "מועדף" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "מיקוד" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "כתובת למשלוחים" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "רשת חדשה" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "בחירת רשת IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_איפוס רשימת הרשתות" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "בחירה" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "שרת חדש" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "הססמה לא נמצאה" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "ססמת חשבון המסרים המידיים עבור %s‏ (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "הססמה עבור החדר '%s' דרך החשבון %s ‏(%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "חשבון %s חדש" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "לפני שנייה" +msgstr[1] "לפני %d שניות" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "לפני דקה" +msgstr[1] "לפני %d דקות" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "לפני שעה" +msgstr[1] "לפני %d שעות" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "לפני יום" +msgstr[1] "לפני %d ימים" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "לפני שבוע" +msgstr[1] "לפני %d שבועות" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "לפני חודש" +msgstr[1] "לפני %d חודשים" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "בעתיד" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "עליך להתחבר כדי לערוך את הפרטים האישיים שלך." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "הפרטים ישותפו עם משתמשים נוספים ברשת צ׳אט זו." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "מזהה" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "כינוי" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "פרטים אישיים" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "אנשים בקרבת מקום" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "Remember Password" +#~ msgstr "שמירת הססמה" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "מהי כתובת ה־Jabber המועדפת עליך?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "מהי ססמת ה־Jabber המועדפת עליך?" diff --git a/telepathy-account-widgets/po/hi.po b/telepathy-account-widgets/po/hi.po new file mode 100644 index 0000000..69597c4 --- /dev/null +++ b/telepathy-account-widgets/po/hi.po @@ -0,0 +1,826 @@ +# translation of tp-account-widgets.master.hi.po to Hindi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Rajesh Ranjan , 2008, 2009, 2011. +# Rajesh Ranjan , 2009. +# chandankumar(ciypro) , 2012. +# rajesh , 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: empathy.master.hi\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-21 12:35+0530\n" +"Last-Translator: raj \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 1.5\n" +"X-DamnedLies-Scope: partial\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "कोई अवतार छवि इससे चुनने के लिए तयशुदा निर्देशिका" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "अंतिम निर्देशिका जिससे अवतार छवि चुना गया." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "वर्तमान लोकेल" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "अरबी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "आर्मेनियाई" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "बाल्टिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "सेल्टिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "मध्य यूरोपीय" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "चीनी (सरल)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "चीनी पारम्परिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "क्रोएशियाई" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "साइरिलिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "साइरिलिक/रूसी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "साइरिलिक/यूक्रेनी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ज्यॉर्जियाई" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ग्रीक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "गुजराती" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "गुरूमुखी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "हिब्रू" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "हिब्रू दृश्य" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "हिन्दी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "आइसलैंडिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "जापानी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "कोरियाई" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "नोर्डिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "फारसी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "रोमानियाई" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "दक्षिण यूरोपीय" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "थाई" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "तुर्की" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "यूनिकोड" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "पश्चिमी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "विएतनामी" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "कूटशब्द (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "स्क्रीननाम (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "उदाहरण: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "कूटशब्द याद करें" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "पोर्ट (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "सर्वर (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "उन्नत" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "आपका AIM स्क्रीन नाम क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "आपका AIM कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "कूटशब्द याद करें" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "लॉगिन I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "उदाहरण: उपयोक्तानाम" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "आपका GroupWise उपयोक्ता आईडी क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "आपका GroupWise कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "उदाहरण: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "वर्ण समूह (_a):" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "आपका ICQ UIN क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "आपका ICQ कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "नेटवर्क" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "वर्ण समूह" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "जोड़ें…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "हटाएं" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ऊपर" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "नीचे" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "सर्वर" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"अधिकांश लिए IRC सर्वर के लिए कूटशब्द की आवश्यकता नहीं है, इसलिए यदि आप सुनिश्चित नहीं " +"हैं, कोई कूटशब्द दर्ज न करें." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "उपनाम" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "कूटशब्द" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "संदेश छोड़ें" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "वास्तविक नाम" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "उपयोक्ता नाम" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "कौन सा IRC संजाल?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "आपका IRC उपनाम क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "आपका Facebook उपयोक्तानाम क्या है?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"यह आपका उपयोगकर्ता नाम, आपका साधारण फेसबुक लॉगिन नहीं है.\n" +"यदि आप facebook.com/बैजर है, दर्ज करें बैजर.\n" +"इस पृष्ठ का प्रयोग करें " +"Facebook उपयोगकर्ता नाम चुनने के लिए यदि आपके पास नहीं है." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "आपका Facebook कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "आपका Google आईडी क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "उदाहरण: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "आपका Google कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "उदाहरण: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL प्रमाणपत्र त्रुटि अनदेखा करें (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "प्राथमिकता (_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "संसाधन (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "गोपन जरूरी (_y) (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "सर्वर जमावट अधिरोहित करें" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "पुराना SS_L प्रयोग करें" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "आपका Jabber आईडी क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "आपका वांछित Jabber आईडी क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "आपका Jabber कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "आपका वांछित Jabber कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "उपनाम (_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "अंतिम नाम (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "पहला नाम (_F):" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "प्रकाशित नाम (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "जैबर ID (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ई-मेल पता (_m)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "उदाहरण: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "आपका Windows Live आईडी क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "आपका Windows Live कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "स्वतः" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "यूडीपी" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "टीसीपी" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "टीएलएस" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "पंजीकृत करें" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "विकल्प" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "कुछ नहीं" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "उपयोक्ता नाम (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "उदाहरण: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "लैंडलाइनों और मोबाइल फोन पर कॉल करने के लिए इस खाते का उपयोग करें (_l)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT Traversal विकल्प" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "प्रॉक्सी विकल्प" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "विविध विकल्प" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN सर्वर" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN सर्वर का स्वतः पता चलता है" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "बाइंडिंग खोजें" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "सर्वर" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-Alive विकल्प" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "यांत्रिकी" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "अंतराल (सेकेंड में)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "सत्यापन उपयोक्तानाम" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "ट्रांसपोर्ट" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ढीला रॉटिंग" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS त्रुटियाँ को नज़रअंदाज़ करें" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "पोर्ट" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "स्थानीय आईपी पता" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "आपका सिप लॉगिन आईडी क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "आपका SIP खाता कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "कूटशब्द (_w):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "सम्मेलन व गपशप कक्ष आमंत्रण अनदेखा करें (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "कक्ष सूची लोकेल (_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Ch_aracter set:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "पोर्ट (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "आपका Yahoo! आईडी क्या है?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "आपकाYahoo! कूटशब्द क्या है?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "चुनें..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "चुनें (_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "पूरा नाम" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "फोन नम्बर" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ई-मेल पता" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "वेबसाइट" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "जन्मदिन" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "अंतिम बार देखा गया:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "सर्वरः" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "इससे कनेक्टेड:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "दूर संदेश:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "कार्य" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "घर" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "मोबाइल" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "आवाज़" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "वरीयता" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "पोस्टल" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "पार्सल" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "नया नेटवर्क" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "चुनें IRC संजाल" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "संजाल सूची रीसेट करें (_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "चुनें" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "नया सर्वर" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "कूटशब्द नहीं मिला" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "IM खाता कूटशब्द %s के लिए (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "chatroom '%s' के लिए कूटशब्द खाता %s पर (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "नया %s खाता" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d सेकेंड पहले" +msgstr[1] "%d सेकेंड पहले" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d मिनट पहले" +msgstr[1] "%d मिनट पहले" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d घंटा पहले" +msgstr[1] "%d घंटा पहले" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d दिन पहले" +msgstr[1] "%d दिन पहले" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d सप्ताह पहले" +msgstr[1] "%d सप्ताह पहले" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d महीने पहले" +msgstr[1] "%d महीने पहले" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "भविष्य में" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "अपनी व्यक्तिगत जानकारी को संपादित करने के लिए ऑनलाइन जाएँ." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "पहचानकर्ता" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "उपनाम" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "निजी विवरण" diff --git a/telepathy-account-widgets/po/hr.po b/telepathy-account-widgets/po/hr.po new file mode 100644 index 0000000..a652b58 --- /dev/null +++ b/telepathy-account-widgets/po/hr.po @@ -0,0 +1,856 @@ +# Translation of tp-account-widgets to Croatian +# Copyright (C) Senko Rasic +# This file is distributed under the same license as the tp-account-widgets package. +msgid "" +msgstr "" +"Project-Id-Version: empathy.HEAD.hr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2007-08-25 20:40+CET\n" +"Last-Translator: Senko Rasic \n" +"Language-Team: Croatian\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +#, fuzzy +msgid "Persian" +msgstr "Verzija:" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +#, fuzzy +msgid "Vietnamese" +msgstr "Promijeni ime" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Lozinka:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Poslužitelj:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Korisničko ime:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_Makni" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "_Poslužitelj:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "_Nadimak:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "Lozinka:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Osobna poruka…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Promijeni ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Promijeni ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Resurs:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#, fuzzy +msgid "Use old SS_L" +msgstr "Koristi enkripciju (SS_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "_Nadimak:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Ime:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +#, fuzzy +msgid "Options" +msgstr "Opcije" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "Promijeni ime" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "_Poslužitelj:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +#, fuzzy +msgid "Server" +msgstr "_Poslužitelj:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +#, fuzzy +msgid "Port" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Lozinka:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Odaberite" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Odaberite" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Puno ime:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Web stranica:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "Rođendan:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "_Poslužitelj:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Spojen" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "Nova poruka" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Postavke" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Odaberite" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, fuzzy, c-format +msgid "New %s account" +msgstr "Novi kontakt" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identifikator:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Alias:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Detalji kontakta" diff --git a/telepathy-account-widgets/po/hu.po b/telepathy-account-widgets/po/hu.po new file mode 100644 index 0000000..53ed7d6 --- /dev/null +++ b/telepathy-account-widgets/po/hu.po @@ -0,0 +1,926 @@ +# Hungarian translation of telepathy-account-widgets +# This file is distributed under the same license as the tp-account-widgets package. +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, Free Software Foundation, Inc. +# +# Gabor Kelemen , 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013. +# Balázs Meskó , 2011. +# Bence Lukács , 2012. +# Péter Bojtos , 2013. +msgid "" +msgstr "" +"Project-Id-Version: telepathy-account-widgets master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-09 13:49+0200\n" +"Last-Translator: Meskó Balázs \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.9\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Alapértelmezett könyvtár avatar kép kiválasztásához" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Az utolsó könyvtár, amelyből egy avatar kép kiválasztásra került." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Jelenlegi területi beállítás" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arab" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Örmény" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Balti" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Kelta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Közép-európai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Egyszerűsített kínai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Hagyományos kínai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Horvát" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirill" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirill/orosz" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirill/ukrán" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Grúz" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Görög" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gudzsarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Héber" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Héber (vizuális)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Izlandi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japán" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Északi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Perzsa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Román" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Dél-európai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Török" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Nyugati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnami" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Jelszó" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Megjelenő _név:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Például: Sajátnevem" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Jelszó megjegyzése" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Kiszolgáló" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Speciális" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Mi az Ön AIM neve?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Mi az Ön AIM jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Fiók" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Jelszó" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Kiszolgáló" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Felhasználónév:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Hozzá_adás" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Alkalmazás" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s ezen: %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s fiók" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Új fiók" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Bejelentkezési a_zonosító" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Például: felhasználónév" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Mi az Ön GroupWise felhasználói azonosítója?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Mi az Ön GroupWise jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Például: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Karakterkészlet" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Mi az Ön ICQ UIN-ja?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Mi az Ön ICQ jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Hálózat" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Karakterkészlet" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Hozzáadás…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Eltávolítás" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Fel" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Le" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Kiszolgálók" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"A legtöbb IRC-kiszolgáló nem kér jelszót, ha bizonytalan, akkor ne írjon be " +"jelszót." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Becenév" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Kilépési üzenet" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Valódi név" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Felhasználónév" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Melyik IRC-hálózat?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Mi az Ön IRC beceneve?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Mi az Ön Facebook felhasználóneve?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Ez az Ön felhasználóneve, nem a normál Facebook bejelentkezési neve.\n" +"Ha az Ön adatlapja a facebook.com/badger, akkor a badger-t " +"adja meg.\n" +"Ha még nincs Facebook felhasználóneve, ezen az oldalon választhat." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Mi az Ön Facebook jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Mi az Ön Google azonosítója?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Például: felhasznalo@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Mi az Ön Google jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Például: felhasznalo@jabber.hu" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "SSL-tanúsítvány_hibák figyelmen kívül hagyása" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "_Prioritás" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Erőforrás" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Titkosítás szükséges (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Kiszolgáló beállításainak felülbírálása" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Régi SS_L használata" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Mi az Ön Jabber azonosítója?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Mi az Ön Jabber jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Be_cenév" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Vezetéknév" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Utónév" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Közzétett név" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber azonosító" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_E-mail cím" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Például: felhasznalo@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Mi az Ön Windows Live azonosítója?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Mi az Ön Windows Live jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Regisztrálás" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Beállítások" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nincs" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Felhasználónév" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Például: felhasznalo@sajat.sip.kiszolgalo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Ezen fiók használata _vezetékes és mobil telefonok hívására" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT-bejárás beállításai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy beállításai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Egyéb beállítások" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN kiszolgáló" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "A STUN-kiszolgáló automatikus feltérképezése" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Kapcsolat feltérképezése" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Kapcsolatfenntartás beállításai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanizmus" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Időköz (másodperc)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Hitelesítési felhasználónév" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Szállítás" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Laza útválasztás" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS-hibák figyelmen kívül hagyása" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Helyi IP-cím" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Mi az Ön SIP felhasználói azonosítója?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Mi az Ön SIP fiókjának jelszava?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Jelszó:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! a_zonosító:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Konferencia- és csevegőszoba-meghívások _figyelmen kívül hagyása" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Sz_obalista területi beállítása:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Karakterkészlet:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Mi az Ön Yahoo! azonosítója?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Mi az Ön Yahoo! jelszava?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "A kép nem alakítható át" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Az elfogadott képformátumok egyikét sem támogatja a rendszere" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "A kép nem menthető fájlba" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Válassza ki az avatarját" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Kép készítése…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Nincs kép" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Képek" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Minden fájl" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Válasszon…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Válasszon" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Teljes név" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefonszám" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-mail cím" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Weboldal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Születésnap" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Utoljára látszott:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Kiszolgáló:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Kapcsolódva innen:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Távol üzenet:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "munkahelyi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "otthoni" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "hang" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "előnyben részesített" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postai " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "postafiók" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Új hálózat" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Válasszon IRC-hálózatot" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_Hálózatok listájának visszaállítása" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Kijelölés" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "új kiszolgáló" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "A jelszó nem található" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Azonnaliüzenő fiók jelszava ehhez: %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "„%s” csevegőszoba jelszava ezen fiókhoz: %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Új %s fiók" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d másodperce" +msgstr[1] "%d másodperce" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d perce" +msgstr[1] "%d perce" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d órája" +msgstr[1] "%d órája" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d napja" +msgstr[1] "%d napja" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d hete" +msgstr[1] "%d hete" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d hónapja" +msgstr[1] "%d hónapja" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "a jövőben" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Személyes információnak szerkesztése online." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Ezek az adatok a csevegőhálózat többi felhasználójával lesznek megosztva." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Azonosító" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Álnév" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Személyes adatok" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Közeli emberek" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook csevegés" + +#~ msgid "Remember Password" +#~ msgstr "Jelszó megjegyzése" + +#~ msgid "Select..." +#~ msgstr "Válasszon…" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Adja meg a kívánt Jabber azonosítót" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Adja meg a kívánt Jabber jelszót" diff --git a/telepathy-account-widgets/po/id.po b/telepathy-account-widgets/po/id.po new file mode 100644 index 0000000..bb214aa --- /dev/null +++ b/telepathy-account-widgets/po/id.po @@ -0,0 +1,911 @@ +# translation of tp-account-widgets to Bahasa Indonesia +# Copyright (C) 2013 THE tp-account-widgets'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# +# +# Taufiq Wirahman , 2010. +# Dirgita , 2011, 2014. +# Andika Triwidada , 2011, 2012, 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: telepathy-account-widgets master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-08 17:50+0700\n" +"Last-Translator: Andika Triwidada \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.8\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Direktori bawaan untuk memilih gambar avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Direktori terakhir tempat gambar avatar dipilih darinya." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Lokal Saat Ini" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arab" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltik" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Seltik" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Eropa Tengah" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Cina Sederhana" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Cina Tradisional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroasia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Sirilik" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Sirilik/Rusia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Sirilik/Ukraina" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Yunani" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Ibrani" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Ibrani Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Jepang" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordik" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumania" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Eropa Selatan" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Barat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnam" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Sandi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nama Layar" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Contoh: NamaLayarSaya" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Ingat sandi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Porta" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Tingkat Lanjut" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Apa nama layar AIM Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Apa sandi AIM Anda?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Akun" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Sandi" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Porta" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Nama pengguna:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Tam_bah" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "Tera_pkan" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s pada %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Akun %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Akun baru" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D Masuk" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Contoh: namapengguna" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Apa ID Pengguna GroupWise Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Apa sandi GroupWise Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Contoh: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Set k_arakter" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Apa UIN ICQ Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Apa sandi ICQ Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Jaringan" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Set karakter" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Tambah…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Buang" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Naik" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Turun" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Kebanyakan server IRC tak memerlukan sandi, maka jika Anda tak yakin, jangan " +"masukkan sandi." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Panggilan" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Pesan keluar" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nama asli" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nama pengguna" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Jaringan IRC yang mana?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Apa nama panggilan IRC Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Apakah nama pengguna Facebook Anda?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Ini adalah nama pengguna Anda, bukan akun masuk Facebook Anda secara " +"normal.\n" +"Jika Anda facebook.com/badger, masukkan badger.\n" +"Gunakan halaman ini untuk " +"memilih nama pengguna Facebook jika Anda belum memiliki." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Apakah sandi Facebook Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Apa ID Google Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Contoh: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Apa sandi Google Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Contoh: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "Abaikan _galat pada sertifikat SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_tas" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "S_umber daya" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Enkripsi diperlukan (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Timpa pengaturan server" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Gunakan SS_L lama" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Apa ID Jabber Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Apa sandi Jabber Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Nama pan_ggilan" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "Nama Be_lakang" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "Nama _Depan" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nama _Publik" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Ala_mat surel" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Contoh: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Apakah ID Windows Live Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Apa sandi Windows Live Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Otomatis" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Pilihan" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Tak ada" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Nama pengg_una" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Contoh: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Gunakan akun ini untuk memanggi_l telepon tetap dan seluler" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Pilihan Traversal NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Pilihan Proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Pilihan Lain-lain" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Server STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Temukan server STUN secara otomatis" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Temukan Ikatan" + +# keep alive = jaga tetap hidup +# barangkali ada yang lebih pendek? +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Pilihan Jaga-Tetap-Hidup" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mekanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (detik)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nama pengguna otentikasi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Routing Santai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Abaikan Galat TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Alamat IP Lokal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Apa ID masuk SIP Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Apa sandi akun SIP Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Sandi:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Aba_ikan undangan konferensi dan ruang mengobrol" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Daftar _Ruang lokal:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Set k_arakter:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Porta:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Apakah ID Yahoo! Anda?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Apa sandi Yahoo! Anda?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Tak bisa mengonversi citra" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Tak satupun dari format citra yang diterima didukung pada sistem Anda" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Tak bisa menyimpan gambar ke berkas" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Pilih Citra Avatar Anda" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Ambil gambar…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Tak Ada Citra" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Citra" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Semua Berkas" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Pilih…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Pilih" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nama Lengkap" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Nomor Telepon" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Alamat Surel" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Situs web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Tanggal lahir" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Terakhir Terlihat:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Tersambung Dari:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Pesan Pergi:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "kantor" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "rumah" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "seluler" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "suara" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferensi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "pos" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "parsel" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Jaringan Baru" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Pilih jaringan IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Reset Daftar Jaringa_n" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Pilih" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "server baru" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Sandi tak ditemukan" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Sandi akun IM bagi %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Sandi bagi ruang obrolan '%s' pada akun %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Akun %s baru" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d detik yang lalu" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d menit yang lalu" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d jam yang lalu " + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d hari yang lalu" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d minggu yang lalu" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d bulan yang lalu" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "di masa mendatang" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Pergilah daring untuk menyunting informasi pribadi Anda." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Rincian ini akan dibagi pakai dengan pengguna lain dalam jaringan obrolan " +"ini." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifair" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Rincian Pribadi" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Orang Di Sekitar" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Jepang" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" diff --git a/telepathy-account-widgets/po/is.po b/telepathy-account-widgets/po/is.po new file mode 100644 index 0000000..9465420 --- /dev/null +++ b/telepathy-account-widgets/po/is.po @@ -0,0 +1,920 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sveinn í Felli , 2015, 2017. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-02-03 21:05+0000\n" +"PO-Revision-Date: 2017-03-03 15:36+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic \n" +"Language: is\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Sjálfgefin mappa til að velja auðkennismynd úr" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Síðasta mappa sem auðkennismynd var valin úr." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Núverandi staðfærsla" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabísk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltnesk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltnesk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Mið-evrópsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Einfölduð kínversk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Hefðbundin kínversk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Króatísk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kýrílísk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Rússnesk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kyrilísk/Úkranísk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgísk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grísk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gújaratí" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gúrmúkí" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebresk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebresk myndræn" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindí" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Íslensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japönsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Kóresk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Norræn" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persnesk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rúmensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Suður-evrópsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tælensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Tyrknensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode (UTF-8)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Vestræn" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Víetnömsk" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Lykil_orð" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Birtingar_nafn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Dæmi: MittNafn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Muna lykilorð" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Gátt" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "Þ_jónn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Nánar" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Hvað er AIM-birtingarnafnið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Hvað er AIM-lykilorðið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Aðgangur" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Lykilorð" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Þjónn" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Gátt" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Bæta við" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "Vir_kja" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s á %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "%s aðgangur" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Nýr aðgangur" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_nnskráningarauðkenni" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Dæmi: notandanafn" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Hvað er GroupWise-notandaauðkennið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Hvað er GroupWise-lykilorðið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Dæmi: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "St_afatafla" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Hvað er ICQ UIN auðkennið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Hvað er ICQ-lykilorðið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Netkerfi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Stafatafla" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Bæta við" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Fjarlægja" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Upp" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Niður" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Þjónar" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +#| msgid "" +#| "Most IRC servers don't need a password, so if you're not sure, don't " +#| "enter a password." +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Flestir IRC-þjónar krefjast ekki lykilorðs, þannig að ef þú ert ekki viss " +"skaltu sleppa lykilorðinu." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Gælunafn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Skilaboð þegar hætt er" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Raunverulegt nafn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Notandanafn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Hvaða IRC-netkerfi?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Hvað er IRC-gælunafnið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Hvað er Google-notandaauðkennið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Dæmi: notandi@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Hvað er Google-lykilorðið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Dæmi: notandi@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "_Hunsa villur vegna SSL-skilríkja" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "_Forgangur" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "Tilfan_g" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Dulritunar krafist (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Taka fram yfir stillingar þjóns" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "Nota gamla SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Hvað er Jabber-notandaauðkennið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Hvað er Jabber-lykilorðið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Gæ_lunafn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Eftirnafn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Skírnarnafn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Birtingarnafn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Listi yfir Jabber auðkenni" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Tölvu_póstfang" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Dæmi: notandi@netþjónn.is" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Hvað er Windows Live notandaauðkennið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Hvað er Windows Live lykilorðið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Sjálfvirkt" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Skrá þig" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Valkostir" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ekkert" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Notan_danafn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Dæmi: notandi@sip.þjónn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Nota þessa tengingu til að hringja í _landlínur og farsíma" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Valkostir fyrir NAT-þverun (NAT Traversal)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Valkostir milliþjóns (proxy)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Ýmsir valkostir" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-þjónn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Finna STUN-þjóninn sjálfvirkt" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Finna bindingar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Valkostir fyrir Halda-á-lífi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Tækni" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Millibil (sekúndur)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Notandanafn auðkenningar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Flutningsleið" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Lausleg beining" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Hunsa TLS-villur" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "IP-vistfang á þessari tölvu" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Hvað er SIP-notandaauðkennið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Hvað er lykilorð SIP-aðgangsins þíns?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Lykilorð:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Hunsa boð um ráðstefnur og spjallsvæði" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Staðfæ_rsla spjallsvæðis:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "St_afatafla:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Gátt:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Hvað er Yahoo! notandaauðkennið þitt?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Hvað er Yahoo! lykilorðið þitt?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +#| msgid "Couldn't convert image" +msgid "Couldn’t convert image" +msgstr "Gat ekki umbreytt mynd" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ekkert af samþykktu myndasniðunum er stutt á kerfinu þínu" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +#| msgid "Couldn't save picture to file" +msgid "Couldn’t save picture to file" +msgstr "Gat ekki vistað mynd í skrá" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Veldu auðkennismyndina þína (avatar)" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +#| msgid "Take a picture..." +msgid "Take a picture…" +msgstr "Taka mynd..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Engin mynd" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Myndir" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Allar skrár" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#| msgctxt "verb displayed on a button to select an IRC network" +#| msgid "Select" +msgid "Select…" +msgstr "Velja…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Velja" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Fullt nafn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Símanúmer" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Tölvupóstfang" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Vefsvæði" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Fæðingardagur" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Sást síðast:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Þjónn:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Tengdist frá:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Fjarveruskilaboð:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "vinna" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "heima" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "farsími" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "talskilaboð" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "umbeðið" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "póstur" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "bögglapóstur" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nýtt netkerfi" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Veldu IRC-netkerfi" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Endurstilla lista yfir _netkerfi" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Velja" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nýr þjónn" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Lykilorð fannst ekki" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Lykilorð IM-aðgangsins fyrir %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +#| msgid "Password for chatroom '%s' on account %s (%s)" +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Lykilorð fyrir spjallrýmið '%s' á aðgangnum %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nýr %s aðgangur" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "fyrir %d sekúndu síðan" +msgstr[1] "fyrir %d sekúndum síðan" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "fyrir %d mínútu síðan" +msgstr[1] "fyrir %d mínútum síðan" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "fyrir %d klukkustund síðan" +msgstr[1] "fyrir %d klukkustundum síðan" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "fyrir %d degi" +msgstr[1] "fyrir %d dögum" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "fyrir %d viku" +msgstr[1] "fyrir %d vikum" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "fyrir %d mánuði" +msgstr[1] "fyrir %d mánuðum" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "í framtíðinni" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Farðu á netið til að breyta persónulegum upplýsingum þínum." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Þessum upplýsingum verður deilt með öðrum notendum á þessu spjallneti." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Auðkenni" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Samnefni" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Persónuupplýsingar" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Fólk sem er nálægt" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Username:" +#~ msgstr "Notandanafn:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Hvað er Facebook-notandanafnið þitt?" + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don't have one." +#~ msgstr "" +#~ "Þetta er notandanafnið þitt, nekki venjulega innskráningarnafnið á " +#~ "Facebook.\n" +#~ "Ef þú ert með facebook.com/kremhaus, settu þá inn kremhaus.\n" +#~ "Notaðu þessa síðu til " +#~ "að velja Facebook-notandanafn ef þú ert ekki með slíkt." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Hvað er Facebook-lykilorðið þitt?" + +#~ msgid "Select..." +#~ msgstr "Velja..." + +#~ msgid "Facebook Chat" +#~ msgstr "Facebook spjall" diff --git a/telepathy-account-widgets/po/it.po b/telepathy-account-widgets/po/it.po new file mode 100644 index 0000000..61057ea --- /dev/null +++ b/telepathy-account-widgets/po/it.po @@ -0,0 +1,931 @@ +# Italian translation for tp-account-widgets +# Copyright (C) 2003-2010, 2011, 2012, 2013, 2016 The Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# Fabio Bonelli , 2003 +# Michele Baldessari , 2003 +# Luca Ferretti , 2011. +# Milo Casagrande , 2007-2010, 2011, 2012, 2013, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: tp-account-widgets\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-07 08:35+0200\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Poedit 1.8.9\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Directory predefinita da cui selezionare un'immagine" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "L'ultima directory da cui è stata scelta un'immagine." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Localizzazione corrente" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeno" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europeo centrale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Cinese semplificato" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Cinese tradizionale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croato" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirillico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirillico/Russo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirillico/Ucraino" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgiano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Greco" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Ebraico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Ebraico visuale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandese" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Giapponese" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persiano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumeno" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sud europeo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandese" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turco" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidentale" + +# (ndt) suggerimento +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Pass_word" + +# (ndt) come in pidgin ;) +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nominativo pubblico" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Esempio: IlMioNominativo" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Ricordare la password" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Porta:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +# (ndt) messo al femminile, è presente dove ci sono le 'impostazioni' +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avanzate" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Qual è il nominativo pubblico AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Qual è la password di AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Account" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Password" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Porta" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Nome utente:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "A_ggiungi" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "A_pplica" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s su %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Account %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nuovo account" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D accesso" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Esempio: nomeutente" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Qual è l'identificativo GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Qual è la password di GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Esempio: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Co_difica caratteri" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Qual è il numero ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Qual è la password di ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rete" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Codifica caratteri" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Aggiungi..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Rimuovi" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Su" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Giù" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"La maggior parte dei server IRC non necessita di una password. Se in dubbio, " +"non inserirne alcuna." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Soprannome" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Messaggio di uscita" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nome reale" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nome utente" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Quale rete IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Qual è il soprannome IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Qual è il nome utente di Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Il proprio nome utente, non quello usato per eseguire l'accesso a Facebook.\n" +"Se il proprio nome utente è facebook.com/mario, inserire mario.\n" +"Se non si dispone di un nome utente, utilizzare questa pagina per sceglierne uno." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Qual è la password di Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Qual è l'identificativo di Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Esempio: utente@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Qual è la password di Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Esempio: utente@jabber.org" + +# (ndt) opzione +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignorare errori certificati SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pri_orità" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Risorsa" + +# (ndt) opzione +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Richi_esta cifratura (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Scavalcare impostazioni server" + +# (ndt) opzione +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "_Usare vecchio SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Qual è l'identificativo di Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Qual è la password di Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "So_prannome" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "C_ognome" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Nome" + +# (ndt) dovrebbe essere il nome visualizzato con l'account +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nome _visibile" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "I_D Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Indirizzo _email" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Esempio: utente@hotmail.it" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Qual è l'identificativo di Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Qual è la password di Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatico" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opzioni" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nessuno" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Nome utente" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Esempio: utente@il.server.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "_Usare questo account per chiamate a telefoni fissi e cellulari" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opzioni attraversamento NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opzioni proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opzioni varie" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Server STUN" + +# (ndt) opzione +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Rilevare automaticamente il server STUN" + +# (ndt) è un po' oscura e anche sbagliata la capitaliazzazione essendo opzione. Si riferisce ai binding sul NAT +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Rilevare le associazioni" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opzioni Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Meccanismo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervallo (secondi)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nome utente di autenticazione" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Trasporto" + +# (ndt) Routing libero mi suona troppo da sagra... +# usare "slegato" non so se chi ci capisce qualche cosa possa cogliere... +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Routing \"loose\"" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorare errori TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Indirizzo IP locale" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Qual è l'identificativo di accesso SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Qual è la password dell'account SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pass_word:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D Yahoo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorare inviti per conferenze e stanze di conversazione" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Locale elenco stanze:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Co_difica caratteri:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Porta:" + +# (ndt) metto Yahoo!? +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Qual è l'identificativo Yahoo?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Qual è la password di Yahoo?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Impossibile convertire l'immagine" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Nessuno dei formati di immagine accettati è supportato dal sistema" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Impossibile salvare l'immagine su file" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Seleziona immagine" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Scatta foto…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Nessuna immagine" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Immagini" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Tutti i file" + +# +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Seleziona…" + +# (ndt) nome di una colonna +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Seleziona" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nome completo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Numero di telefono" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Indirizzo email" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Sito web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Compleanno" + +# (ndt) o "Ultimo avvistamento" :-) +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Ultima attività:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Connessione da:" + +# (ndt) usato lo stesso di xchat-gnome +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Messaggio di assenza:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "lavoro" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "casa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "cellulare" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voce" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferito" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postale" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "parcel" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nuova rete" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Scegliere una rete IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Ripristina ele_nco reti" + +# +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Seleziona" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nuovo server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Password non trovata" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Password account messaggistica per %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Password per la stanza «%s» sull'account %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nuovo account %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d secondo fa" +msgstr[1] "%d secondi fa" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minuto fa" +msgstr[1] "%d minuti fa" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ora fa" +msgstr[1] "%d ore fa" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d giorno fa" +msgstr[1] "%d giorni fa" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d settimana fa" +msgstr[1] "%d settimane fa" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d mese fa" +msgstr[1] "%d mesi fa" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "nel futuro" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Andare in rete per modificare le informazioni personali." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Questi dettagli verranno condivisi con gli altri utenti su questa rete." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificatore" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Pseudonimo" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Dettagli personali" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Persone nelle vicinanze" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Giappone" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Chat di Facebook" diff --git a/telepathy-account-widgets/po/ja.po b/telepathy-account-widgets/po/ja.po new file mode 100644 index 0000000..f88dcdd --- /dev/null +++ b/telepathy-account-widgets/po/ja.po @@ -0,0 +1,944 @@ +# tp-account-widgets ja.po. +# Copyright (C) 2007-2012 tp-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# Takeshi AIHANA , 2007-2009. +# Kentaro Kazuhama , 2009. +# GLSJPN_Etsuko , 2009. +# (Contributed to Moblin by Intel GLS) +# Takayuki KUSANO , 2010. +# Kiyotaka NISHIBORI , 2010. +# Mako N , 2012. +# Jiro Matsuzawa , 2012. +# Noriko Mizumoto , 2012. +# +# GLOSSARIES: +# call 通話、呼び出し、呼び出す +# choose 選ぶ +# select 指定する +# contact 相手先 +# contact list 相手先の一覧 +# metacontact メタ相手先 +# chat チャット +# conversation 会話 +# chat room 談話室 +# room 談話室 +# text 文字 +# audio 音声 +# video ビデオ、映像 +# identifier 識別子 +# status 在席状況 +# People Nearby (訳さない) +# geolocation 位置情報 +# location 場所 +# top up (クレジットを)補充する +# nick: ニックネーム +# nickname: ニックネーム +# log(s) in: サインイン +# log(s) out: サインアウト +# +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-16 21:02+0000\n" +"PO-Revision-Date: 2013-09-22 19:38+0000\n" +"Last-Translator: Jiro Matsuzawa \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "アバターの画像が格納されたデフォルトのフォルダー" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "最後にアバターを選択した時に使用したフォルダーです。" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "現在のロケール" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "アラビア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "アルメニア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "バルト語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "ケルト語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "中欧" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "簡体字中国語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "繁体字中国語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "クロアチア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "キリル文字" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "キリル文字/ロシア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "キリル文字/ウクライナ語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "グルジア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ギリシア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "グジャラート語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "グルムキー文字" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ヘブライ語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ヘブライ語 (象形)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ヒンディー語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "アイスランド語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "日本語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "韓国語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "北欧" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ペルシア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "ルーマニア語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "南欧" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "タイ語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "トルコ語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "西欧" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ベトナム語" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "パスワード(_W)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "スクリーン名(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "例: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "パスワードを記憶する" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "ポート番号(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "サーバー(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "詳細" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "AIM のスクリーンネームを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "AIM のパスワードを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "パスワードを記憶する" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "アカウント" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "パスワード" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "サーバー" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "ポート番号" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +msgid "Username:" +msgstr "ユーザー名:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "追加(_D)" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "適用(_P)" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%2$s 上の %1$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "%s のアカウント" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "新しいアカウント" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "ログインID (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "例: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "GroupWise の User ID を入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "GroupWise のパスワードを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ UIN (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "例: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "文字エンコーディング(_A)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ICQ UIN を入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ のパスワードを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ネットワーク" + +# 元の語によらず、「文字エンコーディング」と訳す(ヘルプの対応する項も参照)。 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "文字エンコーディング" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "追加…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "削除" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "上へ" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "下へ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "サーバー" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "Most IRC servers don't need a password, so if you're not sure, don't enter a password." +msgstr "たいていの IRC サーバーでは、パスワードは不要です。わからなければ、パスワードを入力しないでください。" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "ニックネーム" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "終了時のメッセージ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "氏名" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ユーザー名" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "どの IRC ネットワークですか?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "IRC のニックネームは何ですか?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "あなたの Facebook のユーザー名は何ですか?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a Facebook username if you don't have one." +msgstr "" +"これはあなたのユーザー名です。Facebook にログインする時に入力するものではありません。\n" +"もしあなたが facebook.com/badger ならば、badger と入力してください。\n" +"まだ持っていないのであれば、このページを使って Facebook のユーザー名を選択してください。" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "あなたの Facebook のパスワードは何ですか?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Google ID を入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "例: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Google のパスワードを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "例: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL の証明書に関連するエラーは無視(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "優先度(_T)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "リソース(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "TLS/SSL での暗号化が必要(_Y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "サーバーの設定を上書き" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "古い SSL を使う(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Jabber ID を入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your Jabber password?" +msgstr "Jabber パスワードを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "ニックネーム(_K)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "姓(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "名(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "公開する名前(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Jabber ID(_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "メールアドレス(_M)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "例: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Windows Live ID を入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Windows Live のパスワードを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "自動" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "なし" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ユーザー名(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "例: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "このアカウントを固定電話・携帯電話に使う(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT 超えオプション" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "プロキシのオプション" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "その他のオプション" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN サーバー" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN サーバーを自動的に探索する" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "バインディングの探索" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-Alive オプション" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "メカニズム" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "間隔 (秒)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "認証用ユーザー名" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "トランスポート" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "緩いルーティング" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS エラーを無視する" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "ローカルの IP アドレス" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "SIP のログイン ID を入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "SIP アカウントのパスワードを入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "パスワード(_W):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! の ID(_D):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "会議と談話室への招待を無視(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "談話室の一覧がある場所(_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "文字集合(_A):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "ポート番号(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Yahoo! ID を入力してください" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Yahoo! のパスワードを入力してください" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:580 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:665 +msgid "Couldn't convert image" +msgstr "画像を変換できませんでした" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +msgid "None of the accepted image formats are supported on your system" +msgstr "受け入れた画像形式はこのシステムではどれもサポートしていません" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:941 +msgid "Couldn't save picture to file" +msgstr "画像をファイルに保存できませんでした" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1063 +msgid "Select Your Avatar Image" +msgstr "アバター画像を選択してください" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1072 +msgid "Take a picture..." +msgstr "写真を撮る..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1085 +msgid "No Image" +msgstr "画像はありません" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1144 +msgid "Images" +msgstr "画像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1148 +msgid "All Files" +msgstr "すべてのファイル" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "選択..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "選択(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "氏名" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "電話番号" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-メールアドレス" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "ウェブサイト" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "誕生日" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "最後のオンライン:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "サーバー:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "接続元:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "離席時のメッセージ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "仕事" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "自宅" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "モバイル" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "音声" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "設定" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "郵便の宛先" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "区画" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "新しいネットワーク" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC ネットワークを選択" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "ネットワークの一覧をリセット(_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "選択" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "新しいサーバー" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:188 +msgid "Password not found" +msgstr "パスワードが見つかりません" + +#: ../tp-account-widgets/tpaw-keyring.c:583 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "IM アカウント %s (%s) のパスワード" + +#: ../tp-account-widgets/tpaw-keyring.c:620 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "談話室 '%s' のパスワード (アカウント %s (%s))" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "新しい %s さんのアカウント" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d 秒前" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 分前" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 時間前" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 日前" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d 週間前" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ヶ月前" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "未来に" + +#: ../tp-account-widgets/tpaw-user-info.c:423 +msgid "Go online to edit your personal information." +msgstr "個人情報を編集するには、オンラインにしてください。" + +#: ../tp-account-widgets/tpaw-user-info.c:507 +msgid "These details will be shared with other users on this chat network." +msgstr "この情報はこのチャットネットワーク上の他のユーザーと共有されます。" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:516 +msgid "Identifier" +msgstr "識別子" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:524 +msgid "Alias" +msgstr "別名" + +#: ../tp-account-widgets/tpaw-user-info.c:542 +msgid "Personal Details" +msgstr "個人情報" + +#: ../tp-account-widgets/tpaw-utils.c:115 +msgid "People Nearby" +msgstr "People Nearby" + +#: ../tp-account-widgets/tpaw-utils.c:120 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:156 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:157 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "希望する Jabber ID を入力してください" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "希望する Jabber パスワードを入力してください" diff --git a/telepathy-account-widgets/po/kk.po b/telepathy-account-widgets/po/kk.po new file mode 100644 index 0000000..6a63dc2 --- /dev/null +++ b/telepathy-account-widgets/po/kk.po @@ -0,0 +1,904 @@ +# Kazakh translation of tp-account-widgets. +# Copyright (C) 2010 HZ +# This file is distributed under the same license as the brasero package. +# Baurzhan Muftakhidinov , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-15 20:22+0500\n" +"Last-Translator: Baurzhan Muftakhidinov \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.9\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Ағымдағы локаль" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Араб" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Армян" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Балтық" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Келттік" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Орта Еуропалық" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Қытайша жеңілдеткен" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Қытайша дәстүрлі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Хорватиялық" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Кирилл жазуы" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Кирил/Ресей" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Кирил/Украина" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Грузин" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Грек" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Гуджарати" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Гурмукхи" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Иврит" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Визуалды иврит" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Хинди" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Исланд" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Жапон" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Корей" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Скандинавтік" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Парсы" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Румын" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Оңтүстік Еуропалық" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Тай" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Түрік" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Юникод" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Батыс" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Вьетнам" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Пар_оль" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Парольді еске сақтау" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Порт" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "С_ервер" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Кеңейтілген" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Тіркелгі" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Пароль" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сервер" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Порт" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Пайдаланушы:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Қ_осу" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "І_ске асыру" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s тіркелгісі" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Жаңа тіркелгі" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Мысалы: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Желі" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Қосу…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Өшіру" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Жоғары" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Төмен" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Серверлер" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Бүркеншік аты" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Пайдаланушы аты" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Авто" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Опциялар" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ешнәрсе" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Па_йдаланушы аты" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Прокси опциялары" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN сервері" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Көлік" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Па_роль:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! адресі:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Порт:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Суретті түсіру…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Суретсіз" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Суреттер" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Барлық файлдар" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Таңдау…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "Таң_дау" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Толық аты" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Телефон нөмірі" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Эл. пошта адресі" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Веб сайты" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Туған күні" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Соңғы көрінген:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Сервер:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Қайдан байланысқан:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Кетіп қалған хабарламасы:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "жұмыс" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "үй" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "мобильді" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "дыбыс" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "таңдамалы" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Жаңа желі" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC желісін таңдаңыз" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Таңдау" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "жаңа сервер" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Пароль табылмады" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Жаңа %s тіркелгісі" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d секунд бұрын" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d минут бұрын" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d сағат бұрын" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d күн бұрын" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d апта бұрын" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ай бұрын" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "болашақта" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Анықтағыш" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Балама аты" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Жеке деректер" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "Select..." +#~ msgstr "Таңдау..." + +#, fuzzy +#~ msgid "Remember Password" +#~ msgstr "Пароль:" diff --git a/telepathy-account-widgets/po/km.po b/telepathy-account-widgets/po/km.po new file mode 100644 index 0000000..8c42d26 --- /dev/null +++ b/telepathy-account-widgets/po/km.po @@ -0,0 +1,819 @@ +# translation of po_tp-account-widgets-km.po to Khmer +# Khmer translation for tp-account-widgets +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the tp-account-widgets package. +# FIRST AUTHOR , 2010. +# Khoem Sokhem , 2012. +msgid "" +msgstr "" +"Project-Id-Version: po_empathy-km\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-04-03 03:24+0000\n" +"Last-Translator: Khoem Sokhem \n" +"Language-Team: Khmer \n" +"Language: km\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Launchpad (build 15890)\n" +"X-Launchpad-Export-Date: 2012-09-03 19:20+0000\n" +"X-Language: km-KH\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "ថត​លំនាំដើម​ត្រូវ​ជ្រើស​​រូបភាព​រូប​​សម្គាល់​ពី" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "ថត​ចុងក្រោយ​ដែល​ជា​រូបភាព​រូប​សម្គាល់​ត្រូវ​បាន​ជ្រើស​ពី ។" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "ទីតាំង​បច្ចុប្បន្ន" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "អារ៉ាប់" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "អារមេនី" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "បាល់ទិក" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "សែលតិក" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "អឺរ៉ុប​កណ្ដាល" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ចិន​សម័យ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "ចិន​បុរាណ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ក្រូអាត" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ស៊ីរីលីក" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ស៊ីរីលីក​/​រុស្ស៊ី" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ស៊ីរីលីក/អ៊ុយក្រែន" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ហ្សកហ្ស៊ី" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ក្រិក" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ហ្កុយ៉ារាទី" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "គួរ​មុកឃី" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ហេប្រូ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ហេប្រូ​ដែល​អាច​មើល​ឃើញ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ហិណ្ឌូ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "អ៊ីស្លង់" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ជប៉ុន" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "កូរ៉េ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "ន័រឌីច" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ពឺស៊ាន" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "រូម៉ានី" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "អឺរ៉ុប​ខាងត្បូង" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "ថៃ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ទួរគី" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "យូនីកូដ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "ភាគ​ខាង​លិច" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "វៀតណាម" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "ពាក្យ​សម្ងាត់" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "ឈ្មោះ​អេក្រង់" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ឧទាហរណ៍ ៖ MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "ចងចាំ​ពាក្យ​សម្ងាត់" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "ច្រក" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "ម៉ាស៊ីន​បម្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "កម្រិត​ខ្ពស់" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "តើ​ឈ្មោះ​អេក្រង់​ AIM របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "តើ​ពាក្យ​សម្ងាត់​ AIM របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "ចងចាំ​ពាក្យ​សម្ងាត់" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "លេខ​សម្គាល់​ចូល" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ឧទាហរណ៍ ៖ ឈ្មោះ​អ្នក​ប្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "តើ​លេខ​សម្គាល់​អ្នក​ប្រើ GroupWise របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "តើ​ពាក្យ​សម្ងាត់ GroupWise របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ឧទាហរណ៍ ៖ 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "សំណុំ​តួអក្សរ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "តើ ICQ UIN របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "តើ​ពាក្យ​សម្ងាត់ ICQ របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "បណ្ដាញ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "សំណុំតួអក្សរ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "បន្ថែម…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "យកចេញ" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ឡើង​លើ" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "ចុះក្រោម" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "ម៉ាស៊ីន​បម្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"ម៉ាស៊ីន​បម្រើ IRC ភាគ​ច្រើន​មិន​ត្រូវ​ការ​ពាក្យ​សម្ងាត់​ឡើយ ដូច្នេះ​ប្រសិនបើ​អ្នក​មិន​ប្រាកដ​ទេ​នោះ កុំ​បញ្ចូល​ពាក្យ​" +"សម្ងាត់​ ។" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "សម្មតិនាម" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "ពាក្យ​សម្ងាត់" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "បិទ​សារ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "ឈ្មោះ​ពិត" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ឈ្មោះ​អ្នក​ប្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "តើ​បណ្ដាញ IRC ណា ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "តើ​​សម្មតិនាម IRC របស់​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "តើ​ឈ្មោះ​អ្នក​ប្រើ​ Facebook របស់​អ្នក​គឺ​អ្វី ?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"នេះ​ជា​ឈ្មោះ​អ្នក​ប្រើ​របស់​អ្នក មិន​មែន​ចូល​ Facebook ធម្មតា​របស់​អ្នក​ទេ ។\n" +"ប្រសិនបើ​​អ្នក​ជា​ facebook.com/badger, បញ្ចូល badger ។\n" +"ប្រើ ទំព័រ​នេះ ដើម្បី​ជ្រើស​ឈ្មោះ​អ្នក​" +"ប្រើ​ Facebook ​ប្រសិនបើ​អ្នក​​មិន​ទាន់​មាន​ទេ​នោះ ។" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "តើ​ពាក្យ​សម្ងាត់ Facebook របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "តើ​លេខ​សម្គាល់​ហ្គូហ្គល​របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ឧទាហរណ៍ ៖ user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "តើ​ពាក្យ​សម្ងាត់​ហ្គូហ្គល​​របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ឧទាហរណ៍ ៖ user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "មិន​អើ​ពើ​កំហុស​វិញ្ញាបនបត្រ SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "អាទិភាព" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "ធនធាន" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "បាន​ទាមទារ​ការ​អ៊ិនគ្រីប (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "បដិសេធ​ការ​កំណត់​ម៉ាស៊ីន​បម្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "ប្រើ SS_L ចាស់" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "តើ​លេខ​សម្គាល់​ Jabber របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "តើ​លេខ​សម្គាល់ Jabber ដែល​អ្នក​​ចង់​បាន​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "តើ​លេខ​សម្គាល់​ Jabber របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "តើ​ពាក្យ​សម្ងាត់ Jabber ដែល​អ្នក​ចង់​បាន​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "សម្មតិនាម" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "នាម​ត្រកូល" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "នាម​ខ្លួន" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "ឈ្មោះ​បាន​ផ្សាយ" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "លេខ​សម្គាល់ Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "អាសយដ្ឋាន​អ៊ីមែល" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ឧទាហរណ៍ ៖ user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "តើ​លេខ​សម្គាល់​​បន្ត​ផ្ទាល់​វីនដូ​​របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "តើ​ពាក្យ​សម្ងាត់​​បន្ត​ផ្ទាល់​វីនដូ​របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "ស្វ័យ​ប្រវត្តិ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "ចុះឈ្មោះ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ជម្រើស" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "គ្មាន" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ឈ្មោះ​អ្នក​ប្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ឧទាហរណ៍ ៖ user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "ប្រើ​គណនី​នេះ​ ដើម្បី​ហៅ​ទូរស័ព្ទ​​ចល័ត និង​ទូរស័ព្ទ​​លើ​តុ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "ជម្រើស​សម្រាប់​ឆ្លងកាត់ NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ជម្រើស​ប្រូកស៊ី" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "ជម្រើស​ផ្សេងៗ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "ម៉ាស៊ីន​បម្រើ STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "រក​ឃើញ​ម៉ាស៊ីន​បម្រើ STUN ដោយ​ស្វ័យ​ប្រវត្តិ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "រក​ឃើញ​ការ​ចង" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "ម៉ាស៊ីន​បម្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "ជម្រើស​ក្នុង​ការ​រក្សាទុក" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "យន្តការ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "ចន្លោះ​ពេល (វិនាទី)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "ការ​ផ្ទៀងផ្ទាត់​ឈ្មោះ​អ្នកប្រើ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "បញ្ជូន" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Loose Routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "កំហុស​ក្នុង​ការ​មិន​អើពើ TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "ច្រក" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "អាសយដ្ឋាន IP មូលដ្ឋាន" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "តើ​លេខ​សម្គាល់​ចូល SIP របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "តើ​ពាក្យ​សម្ងាត់​គណនី​ SIP របស់​អ្នក​គឺ​ជា​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "ពាក្យ​សម្ងាត់ ៖" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "លេខ​សម្គាល់​យ៉ាហ៊ូ ៖" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "មិន​អើ​ពើ​សន្និសីទ និង​ការ​អញ្ជើញ​បន្ទប់​ជជែក" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "រាយ​បញ្ជី​ទីតាំង​បន្ទប់ ៖" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "សំណុំ​តួអក្សរ ៖" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "ច្រក ៖" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "តើ​លេខ​សម្គាល់​យ៉ាហ៊ូ​របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "តើ​លេខ​សម្គាល់​យ៉ាហ៊ូ​របស់​អ្នក​គឺ​អ្វី ?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "ជ្រើស." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "ជ្រើស" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "ឈ្មោះ​ពេញ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "លេខ​ទូរស័ព្ទ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "អាសយដ្ឋាន​អ៊ីមែល" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "តំបន់​បណ្ដាញ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "ថ្ងៃកំណើត" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "បាន​ចុងក្រោយ ៖" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "ម៉ាស៊ីនបម្រើ ៖" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "បាន​ទាក់ទង​ពី ៖" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "សារ​ចាកឆ្ងាយ ៖" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "ការងារ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "ផ្ទះ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "ចល័ត" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "សំឡេង" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "ដែល​ចូលចិត្ត​ជាង" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "ប្រៃសណីយ៍" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "កញ្ចប់​ប្រៃសណីយ៍" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "បណ្ដាញ​ថ្មី" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "ជ្រើស​បណ្ដាញ IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "កំណត់​បញ្ជី​បណ្ដាញ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "ជ្រើស" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ម៉ាស៊ីន​បម្រើ​ថ្មី" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "ពាក្យ​សម្ងាត់" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "ពាក្យ​សម្ងាត់​គណនី IM សម្រាប់ %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "ពាក្យ​សម្ងាត់​សម្រាប់​បន្ទប់​ជជែក '%s' នៅ​លើ​គណនី %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "គណនី %s ថ្មី" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d វិនាទី​ក​ន្លង​ទៅ" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d នាទីកន្លង​ទៅ" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ម៉ោង​កន្លង​ទៅ" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ថ្ងៃ​កន្លង​ទៅ" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d សប្ដាហ៍​កន្លង​ទៅ" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ខែ​កន្លង​ទៅ" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "នៅ​អនាគត" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "លើ​បណ្ដាញ ដើម្បី​កែសម្រួល​ព័ត៌មាន​ផ្ទាល់ខ្លួន​របស់​អ្នក ។" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "សញ្ញា​សម្គាល់" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "ឈ្មោះ​ក្លែងក្លាយ" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "សេចក្ដី​លម្អិត​ផ្ទាល់​ខ្លួន" diff --git a/telepathy-account-widgets/po/kn.po b/telepathy-account-widgets/po/kn.po new file mode 100644 index 0000000..e1d4924 --- /dev/null +++ b/telepathy-account-widgets/po/kn.po @@ -0,0 +1,822 @@ +# translation of tp-account-widgets.master.kn.po to Kannada +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Shankar Prasad , 2008, 2009, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: empathy.master.kn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-25 23:02+0530\n" +"Last-Translator: Shankar Prasad \n" +"Language-Team: Kannada \n" +"Language: kn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "ಒಂದು ಅವತಾರದ ಚಿತ್ರಗಳನ್ನು ಆರಿಸಿಕೊಳ್ಳಬೇಕಿರುವ ಡೀಫಾಲ್ಟ್ ಕಡತಕೋಶ" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "ಕೊನೆಯ ಬಾರಿಗೆ ಅವತಾರ ಚಿತ್ರಗಳನ್ನು ಆರಿಸಲಾದ ಕಡತಕೋಶ." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "ಈಗಿನ ಲೊಕ್ಯಾಲ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "ಅರೇಬಿಕ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ಅರ್ಮೇನಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "ಬಾಲ್ಟಿಕ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "ಸೆಲ್ಟಿಕ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "ಸೆಂಟ್ರಲ್ ಯುರೋಪಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ಚೈನೀಸ್ ಸಿಂಪ್ಲಿಫೈಡ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "ಚೈನೀಸ್ ಟ್ರೆಡೀಶನಲ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ಕ್ರೊಯೇಶಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ಸಿರಿಲಿಕ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ಸಿರಿಲಿಕ್/ರಶಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ಸಿರಿಲಿಕ್/ಉಕ್ರೇನಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ಜಾರ್ಜಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ಗ್ರೀಕ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ಗುಜರಾತಿ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ಗುರುಮುಖಿ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ಹೀಬ್ರೂ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ಹೀಬ್ರೂ ವೀಶುವಲ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ಹಿಂದಿ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ಐಸ್‍ಲ್ಯಾಂಡಿಕ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ಜಾಪನೀಸ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "ಕೊರಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "ನಾರ್ಡಿಕ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ಪರ್ಶಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "ರೊಮೇನಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "ಸೌತ್ ಯುರೋಪಿಯನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "ಥಾಯ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ಟರ್ಕಿಶ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "ಯೂನಿಕೋಡ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "ವೆಸ್ಟರ್ನ್" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ವಿಯಟ್ನಾಮೀಸ್" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "ಗುಪ್ತಪದ (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "ತೆರೆಯ ಹೆಸರು (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ಉದಾಹರಣೆಗೆ: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "ಗುಪ್ತಪದವನ್ನು ನೆನಪಿಟ್ಟುಕೊ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "ಸಂಪರ್ಕಸ್ಥಾನ (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "ಪೂರೈಕೆಗಣಕ (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "ಸುಧಾರಿತ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "ನಿಮ್ಮ AIM ತೆರೆಯ ಹೆಸರೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "ನಿಮ್ಮ AIM ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "ಗುಪ್ತಪದವನ್ನು ನೆನಪಿಟ್ಟುಕೊ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "ಲಾಗಿನ್ I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ಉದಾಹರಣೆಗೆ: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "ನಿಮ್ಮ GroupWise ಬಳಕೆದಾರ ID ಏನು?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "ನಿಮ್ಮ GroupWise ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ಉದಾಹರಣೆಗೆ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "ಕ್ಯಾರ್‌ಕ್ಟರ್ ಸೆಟ್ (_a)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ನಿಮ್ಮ ICQ UIN ಏನು?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ಜಾಲಬಂಧ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "ಕ್ಯಾರ್‌ಕ್ಟರ್ ಸೆಟ್" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "ಸೇರಿಸು…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "ತೆಗೆದು ಹಾಕು" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ಚಾಲಿತ" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "ಸ್ಥಗಿತ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "ಪೂರೈಕೆಗಣಕಗಳು" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"ಹೆಚ್ಚಿನ IRC ಪೂರೈಕೆಗಣಕಗಳಿಗೆ ಗುಪ್ತಪದದ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ, ನಿಮಗೆ ಖಾತ್ರಿ ಇರದೆ ಇದ್ದಲ್ಲಿ, " +"ಗುಪ್ತಪದವನ್ನು ದಾಖಲಿಸಬೇಡಿ." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "ಅಡ್ಡಹೆಸರು" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "ಗುಪ್ತಪದ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "ಸಂದೇಶವನ್ನು ಬಿಟ್ಟುಬಿಡು" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "ನಿಜವಾದ ಹೆಸರು" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ಬಳಕೆದಾರಹೆಸರು" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "ಯಾವ IRC ಜಾಲಬಂಧ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "ನಿಮ್ಮ IRC ಹೆಸರೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "ನಿಮ್ಮ Facebook ಬಳಕೆದಾರ ಹೆಸರೇನು?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"ಇದು ನಿಮ್ಮ ಬಳಕೆದಾರ ಪದವೆ ಹೊರತು ನಿಮ್ಮ Facebook ಲಾಗಿನ್ ಅಲ್ಲ.\n" +"ನೀವು facebook.com/badger ಆಗಿದ್ದಲ್ಲಿ, badger ಅನ್ನು ದಾಖಲಿಸಿ.\n" +"ನೀವು ಒಂದು Facebook ಬಳಕೆದಾರ ಪದವನ್ನು ಹೊಂದಿರದೇ ಇದ್ದಲ್ಲಿ ಈ ಪುಟವನ್ನು ಬಳಸಿ." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "ನಿಮ್ಮ Facebook ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "ನಿಮ್ಮ Google ID ಏನು?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ಉದಾಹರಣೆ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "ನಿಮ್ಮ Google ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ಉದಾಹರಣೆಗೆ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL ಪ್ರಮಾಣಪತ್ರ ದೋಷಗಳನ್ನು ಕಡೆಗಣಿಸು (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "ಆದ್ಯತೆ (_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "ಸಂಪನ್ಮೂಲ (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "ಗೂಢಲಿಪೀಕರಣದ ಅಗತ್ಯವಿದೆ (TLS/SSL) (_y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "ಪೂರೈಕೆಗಣಕದ ಸಂಯೋಜನೆಗಳನ್ನು ಅತಿಕ್ರಮಿಸು" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "ಹಳೆಯ SS_L ಅನ್ನು ಬಳಸು" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "ನಿಮ್ಮ Jabber ID ಏನು?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "ನೀವು ಬಯಸುವ Jabber ID ಏನು?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "ನಿಮ್ಮ Jabber ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "ನೀವು ಬಯಸುವ Jabber ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "ಅಡ್ಡಹೆಸರು (_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "ಕೊನೆಯ ಹೆಸರು (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "ಮೊದಲ ಹೆಸರು (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "ಪ್ರಕಟಿಸಲಾದ ಹೆಸರು (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ಜಬ್ಬಾರ್ ಐಡಿ (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ವಿ-ಅಂಚೆ ವಿಳಾಸ (_m)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ಉದಾಹರಣೆಗೆ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "ನಿಮ್ಮ Windows Live ID ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "ನಿಮ್ಮ Windows Live ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "ಸ್ವಯಂಚಾಲಿತ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "ನೋಂದಾಯಿಸು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ಆಯ್ಕೆಗಳು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ಯಾವುದೂ ಇಲ್ಲ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ಬಳಕೆದಾರ ಹೆಸರು (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ಉದಾಹರಣೆಗೆ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "ಲ್ಯಾಂಡ್‌ಲೈನ್‌ಗಳು ಮತ್ತು ಮೊಬೈಲು ಫೋನುಗಳಿಗೆ ಕರೆ ಮಾಡಲು ಈ ಖಾತೆಯನ್ನು ಬಳಸು (_l)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ಟ್ರಾವರ್ಸಲ್ ಆಯ್ಕೆಗಳು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ಪ್ರಾಕ್ಸಿ ಆಯ್ಕೆಗಳು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "ಇತರೆ ಆಯ್ಕೆಗಳು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN ಪೂರೈಕೆಗಣಕ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ STUN ಪೂರೈಕೆಗಣಕವನ್ನು ಪತ್ತೆ ಮಾಡು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "ಬೈಂಡಿಂಗ್ ಅನ್ನು ಪತ್ತೆ ಮಾಡು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "ಪೂರೈಕೆಗಣಕ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "ಜೀವಂತವಾಗಿರಿಸುವ ಆಯ್ಕೆಗಳು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "ರಚನಾವ್ಯವಸ್ಥೆ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "ಕಾಲಾವಧಿ (ಸೆಕೆಂಡುಗಳು)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "ದೃಢೀಕರಣ ಬಳಕೆದಾರಹೆಸರು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "ವರ್ಗಾವಣೆ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ಸಡಿಲ ರೌಟಿಂಗ್" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS ದೋಷಗಳನ್ನು ಕಡೆಗಣಿಸು" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "ಸಂಪರ್ಕಸ್ಥಾನ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "ಸ್ಥಳೀಯ ಐಪಿ ವಿಳಾಸ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "ನಿಮ್ಮ SIP ಪ್ರವೇಶ ID ಏನು?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "ನಿಮ್ಮ SIP ಖಾತೆ ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "ಗುಪ್ತಪದ (_w):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "ಕಾನ್ಫರೆನ್ಸ್ ಹಾಗು ಹರಟೆ‌ ರೂಮ್ ಆಹ್ವಾನಗಳನ್ನು ಕಡೆಗಣಿಸು (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "ರೂಮ್‌ಗಳ ಪಟ್ಟಿ ಲೊಕ್ಯಾಲ್ (_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "ಕ್ಯಾರ್‌ಕ್ಟರ್ ಸೆಟ್ (_a):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "ಸಂಪರ್ಕಸ್ಥಾನ (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "ನಿಮ್ಮ Yahoo! ID ಏನು?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "ನಿಮ್ಮ Yahoo! ಗುಪ್ತಪದವೇನು?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "ಆರಿಸು..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "ಆರಿಸು (_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "ಸಂಪೂರ್ಣ ಹೆಸರು" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "ದೂರವಾಣಿಯ ಸಂಖ್ಯೆ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ವಿ-ಅಂಚೆ ವಿಳಾಸ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "ಜಾಲತಾಣ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "ಹುಟ್ಟಿದ ದಿನ" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "ಕೊನೆ ಬಾರಿಗೆ ಕಾಣಿಸಿಕೊಂಡಿದ್ದು:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "ಪೂರೈಕೆಗಣಕ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "ಇದರಿಂದ ಸಂಪರ್ಕಿತಗೊಂಡಿದೆ:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "ಇಲ್ಲಿಲ್ಲ ಎನ್ನುವ ಸಂದೇಶ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "ಕೆಲಸ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "ಮನೆ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "ಮೊಬೈಲ್" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "ಧ್ವನಿ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "ಐಚ್ಛಿಕ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "ಪೋಸ್ಟಲ್" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "ಪಾರ್ಸೆಲ್" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "ಹೊಸ ಜಾಲಬಂಧ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "ಒಂದು IRC ಜಾಲವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "ಜಾಲಬಂಧಗಳ ಪಟ್ಟಿಯನ್ನು ಮರಳಿ ಹೊಂದಿಸು (_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "ಆರಿಸು" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ಹೊಸ ಪೂರೈಕೆಗಣಕ" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "ಗುಪ್ತಪದವು ಕಂಡುಬಂದಿಲ್ಲ" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) ಗಾಗಿನ IM ಗುಪ್ತಪದ" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "'%s' ಹರಟೆ‌ರೂಮ್‌ಗಾಗಿನ %s ಖಾತೆಯ ಗುಪ್ತಪದ (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "ಹೊಸ %s ಖಾತೆ" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d ಸೆಕೆಂಡಿನ ಹಿಂದೆ" +msgstr[1] "%d ಸೆಕೆಂಡಿನ ಹಿಂದೆ" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d ನಿಮಿಷದ ಹಿಂದೆ" +msgstr[1] "%d ನಿಮಿಷದ ಹಿಂದೆ" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ಗಂಟೆಯ ಹಿಂದೆ" +msgstr[1] "%d ಗಂಟೆಯ ಹಿಂದೆ" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ದಿನದ ಹಿಂದೆ" +msgstr[1] "%d ದಿನದ ಹಿಂದೆ" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d ವಾರದ ಹಿಂದೆ" +msgstr[1] "%d ವಾರದ ಹಿಂದೆ" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ತಿಂಗಳ ಹಿಂದೆ" +msgstr[1] "%d ತಿಂಗಳ ಹಿಂದೆ" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ಭವಿಷ್ಟದಲ್ಲಿ" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಸಂಪಾದಿಸಲು ಆನ್‌ಲೈನಿಗೆ ತೆರಳಿ." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "ಗುರುತು" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "ಆಲಿಯಾಸ್" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "ವೈಯಕ್ತಿಕ ವಿವರಗಳು" diff --git a/telepathy-account-widgets/po/ko.po b/telepathy-account-widgets/po/ko.po new file mode 100644 index 0000000..3120e80 --- /dev/null +++ b/telepathy-account-widgets/po/ko.po @@ -0,0 +1,908 @@ +# tp-account-widgets Korean translation +# This file is distributed under the same license as the tp-account-widgets package. +# +# Seong-ho Cho , 2012. +# Changwoo Ryu , 2008-2013, 2017. +# +# 새로 번역하시는 분은 아래 "translator-credits"에 추가하세요. +# +# 참고: +# - 이 프로그램의 이름인 "tp-account-widgets"는 "엠퍼시"라고 음역 +# - 관련 용어 통일 +# - IM, instance messenger -> 메신저 +# - SMS -> 단문 문자 +# - audio -> 음성, Video -> 영상 +# - away -> 자리 비움 +# - busy -> 다른 용무 중 +# - chat room -> 대화방 +# - chat window -> 대화 표시창 (대화창 dialog와 구분) +# - connection manager -> "연결 관리" (관리자라고 쓰지 말 것) +# - join -> 입장하다 ("join a chat room") +# - member -> 구성원 +# - offline -> 연결 중지, 연결 중지 상태, 연결 끊기다 +# - top up -> 잔액 충전 +# - 기타 고유 명사 음역 +# - Adium -> 에이디엄 (OS X용 메신저) +# - Facebook -> 페이스북 +# - Google -> 구글 +# - Google Talk -> 구글 토크 +# - Jabber -> 재버 +# - Yahoo! -> 야후! +# - Webkit -> 웹키트 +# - Windows Live -> 윈도우 라이브 +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-03-03 15:37+0000\n" +"PO-Revision-Date: 2017-03-04 16:21+0900\n" +"Last-Translator: Changwoo Ryu \n" +"Language-Team: GNOME Korea \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "아바타 이미지를 선택할 기본 디렉터리" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "최근에 아바타 이미지를 선택한 디렉터리." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "현재 로캘" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "아랍어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "아르메니아어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "발트어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "켈트어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "중부 유럽 언어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "중국어 간체" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "중국어 번체" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "크로아티아어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "키릴 문자" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "키릴 문자/러시아어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "키릴 문자/우크라니아어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "그루지야어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "그리스어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "구자라트" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "구르무키" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "히브리어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "히브리어 비주얼" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "힌디어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "아이슬랜드어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "일본어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "한국어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "노르웨이어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "페르시아어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "루마니아어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "남부 유럽 언어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "타이어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "터키어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "유니코드" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "서양 언어" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "베트남어" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "암호(_W)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "대화명(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "예: 내대화명" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "암호 저장" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "포트(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "서버(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "고급" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "AIM 아이디가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "AIM 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "계정" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "암호" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "서버" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "포트" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "추가(_D)" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "적용(_P)" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s, %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "%s 계정" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "새 계정" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "로그인 아이디(_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "예: 사용자이름" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "그룹와이즈 사용자 아이디가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "그룹와이즈 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ 사용자 번호(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "예: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "문자 인코딩(_A)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ICQ 사용자 번호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "네트워크" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "문자 인코딩" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "추가…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "제거" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "위" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "아래" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "서버" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"대부분 IRC 서버는 암호가 필요 없습니다. 그러므로 잘 모르겠으면 암호를 입력하" +"지 마십시오." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "대화명" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "나갈 때 메시지" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "실제 이름" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "사용자 이름" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "어느 IRC 네트워크입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "IRC 대화명이 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "구글 아이디가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "예: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "구글 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "예: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "SSL 인증서 오류 무시(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "우선 순위(_T)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "자원(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "암호화 필요(_Y) (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "서버 설정 무시" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "과거 SSL 사용(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "재버 아이디가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "재버 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "대화명(_K)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "성(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "이름(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "공개 이름(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "재버 아이디(_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "전자메일 주소(_M)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "예: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "윈도우 라이브 아이디가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "윈도우 라이브 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "자동" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +# keep alive mechanism, "등록" 따위로 번역하기는 부적절함 +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +# keep alive mechanism, "옵션" 따위로 번역하기는 부적절함 +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "없음" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "사용자 이름(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "예: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "이 계정을 사용해 유선 전화나 휴대 전화로 통화(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT 통과 옵션" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "프록시 옵션" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "기타 옵션" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN 서버" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "자동으로 STUN 서버 검색" + +# NAT traversal 관련 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "바인딩 검색" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "연결 유지 옵션" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "방식" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "간격(초 단위)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "인증 사용자 이름" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "전송 방법" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "느슨한 라우팅" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS 오류 무시" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "로컬 IP 주소" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "SIP 로그인 아이디가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "SIP 계정 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "암호(_W):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "야후! 아이디(_D):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "회의 및 대화방 초대 무시(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "방 목록 로캘(_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "문자 인코딩(_A):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "포트(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "야후! 아이디가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "야후! 암호가 무엇입니까?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "이미지를 변환할 수 없습니다" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "시스템에서 이미지 파일 형식을 하나도 지원하지 않습니다" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "사진을 파일로 저장할 수 없습니다" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "아바타 이미지 선택" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "사진 찍기…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "이미지 없음" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "이미지" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "모든 파일" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "선택…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "선택(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "전체 이름" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "전화번호" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "전자메일 주소" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "웹사이트" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "생일" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "최근 본 때:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "서버:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "연결 받은 위치:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "자리 비움 메시지:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "직장" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "집" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "휴대전화" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "음성" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "선호사항" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "우편" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "소포" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "새 네트워크" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC 네트워크 선택" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "네트워크 목록 초기화(_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "선택" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "새 서버" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "암호가 없습니다" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "메신저 계정 암호, 계정 %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "암호, 대화방 “%s”, 계정 %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "새 %s 계정" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d초 전" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d분 전" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d시간 전" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d일 전" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d주 전" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d달 전" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "미래" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "개인 정보를 편집하려면 온라인으로 이동하십시오." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "이 사항은 채팅 네트워크의 다른 사용자와 공유합니다." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "아이디" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "별명" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "개인 상세정보" + +#: ../tp-account-widgets/tpaw-utils.c:122 +msgid "People Nearby" +msgstr "주위 사람" + +#: ../tp-account-widgets/tpaw-utils.c:127 +msgid "Yahoo! Japan" +msgstr "야후! 일본" + +#: ../tp-account-widgets/tpaw-utils.c:165 +msgid "Google Talk" +msgstr "구글 토크" diff --git a/telepathy-account-widgets/po/ku.po b/telepathy-account-widgets/po/ku.po new file mode 100644 index 0000000..03cde1f --- /dev/null +++ b/telepathy-account-widgets/po/ku.po @@ -0,0 +1,871 @@ +# Kurdish translation of tp-account-widgets. +# Copyright (C) 2008 THE tp-account-widgets'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# Erdal Ronahi , 2008. +# , fuzzy +# Erdal , 2010. +msgid "" +msgstr "" +"Project-Id-Version: EMPATHY HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2010-03-26 15:49+0200\n" +"Last-Translator: Erdal \n" +"Language-Team: Kurdish Team http://pckurd.net\n" +"Language: ku\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.5.2\n" +"X-Launchpad-Export-Date: 2010-03-16 23:00+0000\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Ji bo ku wêneya avatarê bê bijartin peldanka jixweber" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Peldanka dawîn ku avatar jê hatibû hilbijartin." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Herêma derbasdar" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Erebî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Ermenî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltîkî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltîk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Ewropayî Navîn" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Çîniya Hêsankirî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Çîniya Kevneşopî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kîrîlî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kîrîlî/Rûsî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kîrîlî/Ûkraynî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gurcî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Yûnanî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gucaratî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmuxî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Îbranî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Îbraniya Dîtbarî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Îzlandî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreyî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordîk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Farsî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romanî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Ewropaya Başûrî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tay" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Tirkî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Rojavayî" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Viyetnamî" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Nasnav" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "Navê dixuye" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Mînak: NavêMinêDixuye" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Pêşkêşker:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Pêşketî" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Navê te li AIMê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Nasnavê te yê AIMê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "Nasnav:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "IDya têketinê:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Mînak: navê bikarhêner" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "IDya te ya bikarhêner a GroupWise çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Nasnavê te yê GroupWiseê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Mînak: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Koma tîpan:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ICQ UIN a we çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "nasnavê we yê ICQ çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Tor" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Koma tîpan:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +#, fuzzy +msgid "Add…" +msgstr "_Kesekê lê zêdeke..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "Rake" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Pêşkêşkar" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Navê kod:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "Nasnav:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Peyama derketinê:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Navê rast:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "_Navê Bikarhêner:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "Navê te li AIMê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Navê te yê bikarhêner a li Windows Live çi ye?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Ev navê te yê bikarhêneriyê ye, ne navê te yê rastî ya têketina facebookê.\n" +"Ger tu li facebook.com/badger, têkeve badger.\n" +"Vê Use malperê bi kar bîne " +"ku navê bikarhêneriyê ya Facebookê hilbijêrî ger ya te tun be." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Nasnava te ya Yahoo!yê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Nasnameya te ya Googleê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Mînak: bikarhêner@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Nasnavê te yê Google çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Mînak: bikarhêner@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "_Çewtiyên sertîfîkayên SSLyê nebîne" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Çav_kanî:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Nasnavkirin pêwist e (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Mîhengên pêşkêşkerê di ser de binivîse" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "SS_La kevin bi kar bîne" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Nasnavê te yê Jabber çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Nasnavê ku ji bo Jabber dixwazî çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Nasnavê te yê Jabber çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Nasnavê ku ji bo Jabber dixwazî .i ye?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Navê kod:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Paşnav:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Navê Yekemîn:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_Navê Dixuye:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_Jabber ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "Navnîşana e-peyamê:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Mînak: bikarhêner@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Nasnavê te yê li Windows Liveê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Nasnavê te yê li Windows Liveê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "_Der barê" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Rojavayî" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Vebijêrk" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Na" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Navê Bikarhêner:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Mînak: bikarhêner@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Vebijêrkên Proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Mîhengên Miscellaneous" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Pêşkêşkera STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Pêşkêşkera STUN jixweber bibîne" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "STUN bibîne" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Pêşkêşker" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Mekanîzma:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Navber (çirke)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Naskirin bi ser neket" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Porta STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "IDya te ya têketina SIP çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Nasnava we ya SIP çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Nasnav" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "Vexwendinên konferans û odeyên pevaxaftinê tune bihesibîne" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Heremiya lîsteya odeyê:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "Koma tîpan:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Nasnameya te ya Yahoo!yê çi ye?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Nasnava te ya Yahoo!yê çi ye?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Hilbijartin" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Hilbijartin" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Navê tam:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#, fuzzy +msgid "E-mail address" +msgstr "Navnîşana e-peyamê:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Sîteya torê:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "Rojbûn:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "_Paşnav:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "_Pêşkêşker:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Girêdayî" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "Peyama derketinê:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "Tor" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Vebijêrk" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Tora Nû" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Hilbijartin" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "pêşkêşkera nû" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Peyv nehat dîtin" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Hesaba nû %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d çirke berê" +msgstr[1] "%d çirke berê" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d xulek berê" +msgstr[1] "%d xulek berê" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d saet berê" +msgstr[1] "%d saet berê" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d roj berê" +msgstr[1] "%d roj berê" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d heftî berê" +msgstr[1] "%d heftî berê" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d meh berê" +msgstr[1] "%d meh berê" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "di pêşerojê de" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Nasker:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Navê ku xuya dibe:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Berfirehiya Teknîk:" diff --git a/telepathy-account-widgets/po/lt.po b/telepathy-account-widgets/po/lt.po new file mode 100644 index 0000000..52da26c --- /dev/null +++ b/telepathy-account-widgets/po/lt.po @@ -0,0 +1,944 @@ +# Translation of tp-account-widgets to Lithuanian +# Copyright © 2004-2012 Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# Justina Klingaitė , 2006. +# Gintautas Miliauskas , 2006. +# Saulius , 2008, 2009. +# Žygimantas Beručka , 2004-2010, 2010, 2011, 2012. +# Algimantas Margevičius , 2011. +# Aurimas Černius , 2013, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-15 21:48+0300\n" +"Last-Translator: Aurimas Černius \n" +"Language-Team: Lietuvių \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Gtranslator 2.91.7\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" +"Numatytasis aplankas, iš kurio pasirinktinas pseudoportreto paveikslėlis" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Aplankas, kuriame praeitą kartą buvo pasirinktas pseudoportretas." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Dabartinė lokalė" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armėnų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centrinės Europos" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Kinų supaprastinta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Kinų tradicinė" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kirilica" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kirilica/rusų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kirilica/ukrainiečių" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gruzinų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Graikų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gudžaratų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebrajų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebrajų vizualioji" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korėjiečių" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Šiaurės Europos" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumunų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Pietų Europos" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tajų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turkų" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unikodas" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Vakarietiškoji" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamiečių" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "S_laptažodis" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Rodomas vardas" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Pavyzdys: ManoRodomasVardas" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Įsiminti slaptažodį" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Prievadas" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Serveris" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Papildomi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Koks jūsų AIM rodomas vardas?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Koks jūsų AIM slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Paskyra" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Slaptažodis" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Serveris" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Prievadas" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Naudotojo vardas:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Pri_dėti" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Pritaikyti" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s tinkle %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s paskyra" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nauja paskyra" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Prisijungimo I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Pavyzdys: naudotojo vardas" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Koks jūsų GroupWise naudotojo ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Koks jūsų GroupWise slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Pavyzdys: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Simbolių koduotė" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Koks jūsų ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Koks jūsų ICQ slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Tinklas" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Simbolių koduotė" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Pridėti…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Pašalinti" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Aukštyn" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Žemyn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serveriai" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +#| msgid "" +#| "Most IRC servers don't need a password, so if you're not sure, don't " +#| "enter a password." +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Daugumai IRC serverių nereikia slaptažodžio, todėl jei nesate tikras, " +"neįveskite slaptažodžio." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Slapyvardis" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Išėjimo žinutė" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Tikrasis vardas" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Naudotojo vardas" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Koks IRC tinklas?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Koks jūsų IRC slapyvardis?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Koks jūsų „Facebook“ naudotojo vardas?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +#| msgid "" +#| "This is your username, not your normal Facebook login.\n" +#| "If you are facebook.com/badger, enter badger.\n" +#| "Use this page to choose " +#| "a Facebook username if you don't have one." +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Tai jūsų naudotojo vardas, o ne jūsų „Facebook“ prisijungimo vardas.\n" +"Jeigu esate facebook.com/barsukas, įveskite barsukas.\n" +"Jeigu neturite „Facebook“ naudotojo vardo, pasirinkite pasinaudodami šiuo puslapiu ." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Koks jūsų „Facebook“ slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Koks jūsų „Google“ ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Pavyzdys: naudotojas@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Koks jūsų „Google“ slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Pavyzdys: naudotojas@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Nepaisyti SSL liudijimo klaidų" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pir_menybė" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Ištekli_us" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Reikalingas šifravimas (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Nepaisyti serverio nustatymų" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Naudoti senąjį SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Koks jūsų Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Koks jūsų Jabber slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Slapy_vardis" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Pavardė" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Vardas" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Prisistatymo vardas" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "El. pašto adresas" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Pavyzdys: naudotojas@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Koks jūsų „Windows Live“ ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Koks jūsų „Windows Live“ slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatiška" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registruoti" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Parametrai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nėra" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Naudotojo vardas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Pavyzdys: naudotojas@mano.sip.serveris" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Naudoti šią paskyrą skambinti į _laidinius ir mobiliuosius telefonus" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT perėjimo parametrai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Įgaliotojo serverio parametrai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Įvairūs parametrai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN serveris" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Aptikti STUN serverį automatiškai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Aptikti susiejimą" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "„Keep-Alive“ parametrai" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanizmas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalas (sekundėmis)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Tapatybės nustatymo naudotojo vardas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transportas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Laisvas maršruto parinkimas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Nepaisyti TLS klaidų" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Vietinis IP adresas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Koks jūsų SIP prisijungimo ID?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Koks jūsų SIP paskyros slaptažodis?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "S_laptažodis:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "„Yahoo!“ I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Nepaisyti konferencijų ir pokalbių kambarių kvietimų" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Kambarių sąrašo lokalė:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Simbolių koduotė:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Prievadas:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Koks jūsų „Yahoo!“ ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Koks jūsų „Yahoo!“ slaptažodis?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +#| msgid "Couldn't convert image" +msgid "Couldn’t convert image" +msgstr "Nepavyko konvertuoti paveikslėlio" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Nė vienas iš priimamų paveikslėlių formatų nepalaikomas jūsų sistemoje" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +#| msgid "Couldn't save picture to file" +msgid "Couldn’t save picture to file" +msgstr "Nepavyko įrašyti paveikslėlio į failą" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Pasirinkite savo atvaizdžio paveikslėlį" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +#| msgid "Take a picture..." +msgid "Take a picture…" +msgstr "Padaryti nuotrauką…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Nėra paveikslėlio" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Paveikslėliai" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Visi failai" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#| msgctxt "verb displayed on a button to select an IRC network" +#| msgid "Select" +msgid "Select…" +msgstr "Pasirinkti…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "Pa_sirinkti" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Pilnas vardas" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefono numeris" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "El. pašto adresas" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Tinklalapis" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Gimtadienis" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Paskutinį kartą matytas:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Serveris:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Prisijungta iš:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Pasitraukimo žinutė:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "darbo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "namų" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobilusis" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "balso" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "pageidaujamas" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "pašto" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "siuntinys" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Naujas tinklas" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Pasirinkite IRC tinklą" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Atstatyti _tinklų sąrašą" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Pasirinkti" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "naujas serveris" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Slaptažodis nerastas" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Pranešimų paskyros %s slaptažodis (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +#| msgid "Password for chatroom '%s' on account %s (%s)" +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Pokalbių kambario „%s“ slaptažodis paskyrai %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nauja %s paskyra" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "prieš %d sekundę" +msgstr[1] "prieš %d sekundes" +msgstr[2] "prieš %d sekundžių" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "prieš %d minutę" +msgstr[1] "prieš %d minutes" +msgstr[2] "prieš %d minučių" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "prieš %d valandą" +msgstr[1] "prieš %d valandas" +msgstr[2] "prieš %d valandų" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "prieš %d dieną" +msgstr[1] "prieš %d dienas" +msgstr[2] "prieš %d dienų" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "prieš %d savaitę" +msgstr[1] "prieš %d savaites" +msgstr[2] "prieš %d savaičių" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "prieš %d mėnesį" +msgstr[1] "prieš %d mėnesius" +msgstr[2] "prieš %d mėnesių" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ateityje" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Prisijunkite prie interneto asmeniniams duomenims taisyti." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Šiais duomenimis bus dalinamasi su kitais naudotojais šiame pokalbių tinkle." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikatorius" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alternatyvusis vardas" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Asmeniniai duomenys" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Žmonės netoliese" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japonija" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "Select..." +#~ msgstr "Pasirinkti..." + +#~ msgid "Remember Password" +#~ msgstr "Įsiminti slaptažodį" diff --git a/telepathy-account-widgets/po/lv.po b/telepathy-account-widgets/po/lv.po new file mode 100644 index 0000000..dc51ac0 --- /dev/null +++ b/telepathy-account-widgets/po/lv.po @@ -0,0 +1,948 @@ +# translation of lv.po to Latvian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Raivis Dejus , 2009. +# Anita Reitere , 2010. +# Peteris Krisjanis , 2010. +# Rudolfs , 2011. +# Rūdofls Mazurs , 2011, 2012. +# Rūdolfs Mazurs , 2009, 2010, 2012, 2013, 2016. +msgid "" +msgstr "" +"Project-Id-Version: lv\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=empathy" +"&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-09 19:21+0200\n" +"Last-Translator: Rūdolfs Mazurs \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :" +" 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Noklusētā mape, no kuras izvēlēties lietotāja attēlu" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Pēdējā mape, no kuras tika ņemts lietotāja attēls." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Pašreizējā lokāle" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arābu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armēņu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Ķeltu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centrāleiropas" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Ķīniešu vienkāršotā" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Ķīniešu tradicionālā" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Horvātu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kirilica" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kirilica / krievu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kirilica / ukraiņu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gruzīnu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grieķu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gudžaratu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmuku" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Ivrits" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Ivrits vizuāls" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandiešu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japāņu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korejiešu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Skandināvu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persiešu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumāņu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Dienvideiropiešu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Taju" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turku" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unikods" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Rietumu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vjetnamiešu" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Paro_le:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Ekrā_na vārds" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Piemērs: MansEkrānaVārds" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Atcerēties paroli" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Ports" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Serveris" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Paplašināti" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Kāds ir jūsu AIM ekrāna vārds?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Kāda ir jūsu AIM parole?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Konts" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Parole" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Serveris" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Ports" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Lietotājvārds:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Pie_vienot" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Pielietot" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s uz %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s konts" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Jauns konts" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Lietotāja I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Piemērs: lietotājvārds" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Kāds ir jūsu GroupWise lietotāja ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Kāda ir jūsu GroupWise parole?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Piemērs: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "R_akstzīmju kopa" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Kāds ir jūsu ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Kāda ir jūsu ICQ parole?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Tīkls" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Rakstzīmju kopa" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Pievienot…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Izņemt" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Augšup" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Lejup" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serveris" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +#| msgid "" +#| "Most IRC servers don't need a password, so if you're not sure, don't " +#| "enter a password." +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Vairums IRC serveru nepieprasa paroli; ja neesat pārliecināts, neievadiet " +"paroli." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Iesauka" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Iziešanas ziņojums" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Īstais vārds" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Lietotājvārds" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Kurš IRC tīkls?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Kāds ir jūsu IRC ekrāna vārds?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Kāds ir jūsu Facebook lietotāja vārds?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +#| msgid "" +#| "This is your username, not your normal Facebook login.\n" +#| "If you are facebook.com/badger, enter badger.\n" +#| "Use this page to choose " +#| "a Facebook username if you don't have one." +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Šeit vajadzīgs lietotāja vārds, nevis e-pasta adrese.\n" +"Ja jūsu konts atrodams facebook.com/saule, ievadiet saule.\n" +"Ja jums nav Facebook lietotāja vārda, varat to izvēlēties šajā lapā." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Kāda ir jūsu Facebook parole?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Kāds ir jūsu Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Piemērs: lietotajs@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Kāda ir jūsu Google parole?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Piemērs: lietotajs@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnorēt SSL sertifikāta kļūdas" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_tāte" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Res_urss" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Ši_frēšana pieprasīta (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Aizstāt servera iestatījumus" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Lietot veco SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Kāds ir jūsu Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Kāda ir jūsu Jabber parole?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Iesau_ka" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Uzvārds" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Vārds" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Publiskotais vārds" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_pasta adrese" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Piemērs: lietotajs@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Kāds ir jūsu Windows Live ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Kāda ir jūsu Windows Live parole?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Reģistrēties" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcijas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nekas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Lietotājvārds" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Piemērs: lietotajs@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Šo kontu izmantot, _lai zvanītu iekšzemes un mobilajiem tālruņiem" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT šķērsošanas opcijas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Starpniekservera opcijas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Dažādas opcijas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN serveris" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Atklāt STUN serveri automātiski" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Atklāt saistīšanu" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-alive opcijas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mehānisms" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervāls (sekundēs)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Autentifikācijas vārds" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transports" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Brīvā maršrutēšana" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorēt TLS kļūdas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokālā IP adrese" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Kāds ir jūsu SIP lietotāja ID?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Kāda ir jūsu SIP konta parole?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Pa_role:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorēt konferenču un tērzēšanas istabu uzaicinājumus" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Istabu saraksta lokāle:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "R_akstzīmju kopa:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Ports:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Kāds ir jūsu Yahoo! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Kāda ir jūsu Yahoo! parole?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +#| msgid "Couldn't convert image" +msgid "Couldn’t convert image" +msgstr "Neizdevās pārveidot attēlu" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Jūsu sistēma neatbalsta nevienu no atbalstītajiem attēla formātiem" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +#| msgid "Couldn't save picture to file" +msgid "Couldn’t save picture to file" +msgstr "Neizdevās saglabāt bildi datnē" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Izvēlieties savu attēlu" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +#| msgid "Take a picture..." +msgid "Take a picture…" +msgstr "Uzņemt bildi…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Nav attēla" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Attēli" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Visas datnes" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#| msgctxt "verb displayed on a button to select an IRC network" +#| msgid "Select" +msgid "Select…" +msgstr "Izvēlēties…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "Izvēlētie_s" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Pilns vārds" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Tālruņa numurs" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-pasta adrese" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Tīmekļa vietne" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Dzimšanas diena" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Pēdējo reizi redzēts:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Serveris:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Savienojies no:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Ziņa, kad projām:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "darbs" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "mājas" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobilais" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "balss" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "vēlamais" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "pasta" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "sainis" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Jauns tīkls" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Izvēlieties IRC tīklu" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Atstatīt _tīklu sarakstu" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Izvēlēties" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "jauns serveris" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Parole nav atrasta" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s TZ parole (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +#| msgid "Password for chatroom '%s' on account %s (%s)" +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Parole tērzēšanas istabai “%s” kontam %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Jauns %s konts" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Pirms %d sekundes" +msgstr[1] "Pirms %d sekundēm" +msgstr[2] "Pirms %d sekundēm" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Pirms %d minūtes" +msgstr[1] "Pirms %d minūtēm" +msgstr[2] "Pirms %d minūtēm" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Pirms %d stundas" +msgstr[1] "Pirms %d stundām" +msgstr[2] "Pirms %d stundām" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Pirms %d dienas" +msgstr[1] "Pirms %d dienām" +msgstr[2] "Pirms %d dienām" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Pirms %d nedēļas" +msgstr[1] "Pirms %d nedēļām" +msgstr[2] "Pirms %d nedēļām" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Pirms %d mēneša" +msgstr[1] "Pirms %d mēnešiem" +msgstr[2] "Pirms %d mēnešiem" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "nākotnē" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Dodieties tiešsaistē, lai rediģētu savu personīgo informāciju." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Šī informācija būs redzama citiem lietotājiem šajā tērzēšanas tīklā." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikators" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Pseidonīms" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Personīgā informācija" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Tuvumā esošie cilvēki" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook tērzēšana" + +#~ msgid "Remember Password" +#~ msgstr "Atcerēties paroli" + +#~ msgid "Select..." +#~ msgstr "Izvēlēties..." + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Kāds ir jūsu vēlamais Jabber ID?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Kāda ir jūsu vēlamā Jabber parole?" diff --git a/telepathy-account-widgets/po/mai.po b/telepathy-account-widgets/po/mai.po new file mode 100644 index 0000000..30dc3fa --- /dev/null +++ b/telepathy-account-widgets/po/mai.po @@ -0,0 +1,843 @@ +# translation of tp-account-widgets.master.po to Maithili +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sangeeta Kumari , 2009. +msgid "" +msgstr "" +"Project-Id-Version: empathy.master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2009-09-11 20:32+0530\n" +"Last-Translator: Sangeeta Kumari \n" +"Language-Team: Maithili \n" +"Language: mai\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "वर्तमान लोकेल" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "अरबी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "आर्मेनियाइ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "बाल्टिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "सेल्टिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "मध्य यूरोपीय" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "चीनी (सरल)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "चीनी पारम्परिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "क्रोएशियाइ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "साइरिलिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "साइरिलिक/रूसी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "साइरिलिक/यूक्रेनी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ज्यॉर्जियाइ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ग्रीक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "गुजराती" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "गुरूमुखी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "हिब्रू" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "हिब्रू दृश्य" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "हिन्दी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "आइसलैंडिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "जापानी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "कोरियाइ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "नोर्डिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "फारसी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "रोमानियाइ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "दक्षिण यूरोपीय" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "थाइ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "तुर्की" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "यूनिकोड" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "पश्चिमी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "विएतनामी" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "कूटशब्द: " + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "नामक अनुसार छाँटू (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "पोर्ट (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "सर्वर (_S):" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "उन्नत" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "कूटशब्द: " + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "नेटवर्क" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "हटाबू (_R)" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "सर्वर" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "उपनामः" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "कूटशब्द: " + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "संदेश" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "प्रयोक्ता नाम (_U):" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "श्रोत" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "उपनामः" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "पश्चिमी" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "प्रयोक्ता नाम (_U):" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "सर्वर" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "सर्वर" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "सत्यापन असफल" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "पोर्ट" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "पोर्ट (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "चुनू" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "चुनू" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "वेब साइट:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "सर्वर (_S):" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "संबंधित" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "संदेश" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "नेटवर्क" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "वरीयतासभ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "नवीन नेटवर्क" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "चुनू" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "उपनाम:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "" diff --git a/telepathy-account-widgets/po/mk.po b/telepathy-account-widgets/po/mk.po new file mode 100644 index 0000000..59fad6e --- /dev/null +++ b/telepathy-account-widgets/po/mk.po @@ -0,0 +1,854 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Jovan Naumovski , 2008. +msgid "" +msgstr "" +"Project-Id-Version: empathy.HEAD.mk\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2011-12-24 16:54+0100\n" +"Last-Translator: Jovan N\n" +"Language-Team: Macedonian \n" +"Language: mk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KAider 0.1\n" +"Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Стандарден директориум од кој ќе се избира слика за аватар" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "последниот директориум од кој се избираше слика за аватар." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Тековно локале" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Арапски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Ерменски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Балтички" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Келтски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Централно Европски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Кинески поедноставен" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Кинески традиционален" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Хрватски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Крилица" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Кирилица/Руски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Кирилица/Украински" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Грузиски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Грчки" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Гуџарат" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Гурмки" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Еврејски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Еврејски визуелно" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Хинди" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Исландски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Јапонски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Корејски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Нордиски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Персиски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Романски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Јужно Европски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Тајландски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Турски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Уникод" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Западно" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Виетнамски" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Лоз_инка:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "_Име за приказ:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Пример: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Запамти ја лозинката" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Порта:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Сервер:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Напредно" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Кое е вашето корисничко име за AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Која е Вашата лозинка за AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Запамти ја лозинката" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "I_D за најава:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Пример: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Кое е Вашето корисничко ID за GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Која е Вашата лозинка за GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Пример: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Множество _знаци:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Кое е Вашето ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Која е Вашата лозинка за ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Мрежа" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Множество знаци:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Додај..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Отстрани" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Сервери" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"За повеќето IRC сервери не треба лозинка, па ако не сте сигурни не " +"внесувајте." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Прекар:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Лозинка" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Порака при напуштање:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Вистинско име:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Корисничко име:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Која IRC мрежа?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Кое е Вашиот прекар за IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Кое е Вашето корисничко име за Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Ова е вашето корисничко име, а не името кое го користите за најава на " +"Facebook.\n" +"Ако тоа ви е на пример facebook.com/badger, внесете badger.\n" +"Користете ја оваа страница " +"за да изберите корисничко име за Facebook, ако веќе немате." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Која Ви е лозинката за Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Кое е Вашето Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Пример: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Која Ви е лозинката за Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Пример: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_Игнорирај ги грешките на SSL сертификатите" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "При_оритет:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Рес_урс:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Потребна е енк_рипција (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Отфрли ги поставувањата на серверот" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Користи стар SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Кое е Вашето Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Кое ID за Jabber го сакате?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Која е Вашата лозинка за Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Која лозинка за Jabber ја посакувате?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "_Прекар:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Презиме:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Име:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_Објавено име:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_Jabber ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "Адреса за е-_пошта:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Пример: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Кое е Вашето Windows Live ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Која е Вашата лозинка за Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Автоматски" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Опции" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ништо" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Корисничко име:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Пример: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Користете ја оваа сметка за повици кон _фиксни и мобилни телефони" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Опции за NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Опции за прокси" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Разни опции" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN сервер:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Откриј го STUN серверот автоматски" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Откриј поврзување" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Опции за зачувување на врската" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Механизам:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Интервал (секунди)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Корисничко име за автентикација:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Транспорт:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Лабаво рутирање" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Игнорирај ги грешките во TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Порта" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +#, fuzzy +msgid "Local IP Address" +msgstr "Адреса за е-пошта" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Кое е Вашето SIP ID за најава?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Која е Вашата лозинка за сметата за SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Лоз_инка:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Игнорирај ги поканите за соби за разговор и конференциски повици" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Локале на листа на _соби:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Множество _знаци:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Порта:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Кое е Вашето „Yahoo!“ ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Која е Вашата лозинка за „Yahoo!“?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Избери" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Избери" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Целосно име" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Телефонски број" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Адреса за е-пошта" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Веб сајт" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Роденден" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Последно виден(а) на:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Сервер:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Поврзан од:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Порака за отсутност:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "работа" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "дома" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "мобилен телефон" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "гласовни услуги" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "преферирано" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "поштенски" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "парцела" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Нова мрежа" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Изберете IRC мрежа" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Ресетирај ја листата на _мрежи" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Избери" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "нов сервер" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Терминот не е пронајден" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Нова сметка за %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Пред %d секунда" +msgstr[1] "Пред %d секунди" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Пред %d минута" +msgstr[1] "Пред %d минути" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Пред %d час" +msgstr[1] "Пред %d часа" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Пред %d ден" +msgstr[1] "Пред %d дена" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Пред %d седмица" +msgstr[1] "Пред %d седмици" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Пред %d месец" +msgstr[1] "Пред %d месеци" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "во иднината" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Ознака:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Алијас:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Листа на контакти" diff --git a/telepathy-account-widgets/po/ml.po b/telepathy-account-widgets/po/ml.po new file mode 100644 index 0000000..a38ffb6 --- /dev/null +++ b/telepathy-account-widgets/po/ml.po @@ -0,0 +1,828 @@ +# Malayalam translation of tp-account-widgets +# Copyright (C) 2008 tp-account-widgets'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# FSF-India , 2003. +# ashik salahudeen , 2008. +# Praveen Arimbrathodiyil , 2008, 2009, 2012. +# Mohammed Sadiq , 2012. +# Ani Peter , 2012. +# Anish A , 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: gossip\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-02-01 11:45+0530\n" +"Last-Translator: Anish A \n" +"Language-Team: Swatantra Malayalam Computing\n" +"Language: ml\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-DamnedLies-Scope: partial\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "അവതാരം ആയി ഉപയോഗിക്കേണ്ട ചിത്രം തെരഞ്ഞെടുക്കാനുപയോഗിക്കേണ്ട ഡിഫോള്‍ട്ട് ഡയറക്റ്ററി" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "ഒരു അവതാരചിത്രം തെരഞ്ഞെടുക്കാനുപയോഗിച്ച അവസാനത്തെ ഡയറക്റ്ററി" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "ഇപ്പോഴത്തെ സ്ഥലം" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "അറബി" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "അര്‍മേനിയന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "ബാള്‍ട്ടിക്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "സെല്‍റ്റിക്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "മധ്യയൂറോപ്പ്യന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ചൈനീസ് (ലളിതമാക്കിയത്)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "ചൈനീസ് (പരമ്പരാഗതമായത്)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ക്രോയേഷ്യന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "സിറിളിക്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "സിറിളിക്/റഷ്യന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "സിറിളിക്/ഉക്രേനിയന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ജോര്‍ജ്ജിയന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ഗ്രീക്ക്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ഗുജറാത്തി" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ഗുര്‍മുഖി" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ഹീബ്രു" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ഹീബ്രു വിഷ്വല്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ഹിന്ദി" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ഐസ്‌ലാന്‍ഡിക്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ജാപ്പനീസ്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "കൊറിയന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "നോര്‍ഡിക്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "പേര്‍ഷ്യന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "റൊമാനിയന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "ദക്ഷിണയൂറോപ്പ്യന്‍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "തായ്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ടര്‍ക്കിഷ്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "യൂണിക്കോഡ്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "പടിഞ്ഞാട്ട്" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "വിയറ്റ്നാമീസ്" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_രഹസ്യവാക്ക്" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "സ്ക്രീനിലെ _പേരു്" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ഉദാഹരണം: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "രഹസ്യവാക്ക് ഓര്‍ത്തു വെക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_പോര്‍ട്ട്" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_സര്‍വര്‍" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "സങ്കീര്‍ണ്ണമായ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "നിങ്ങള്‍ എഐഎമ്മിലുപയോഗിയ്ക്കുന്ന സ്ക്രീന്‍ പേരെന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "നിങ്ങള്‍ എഐഎമ്മിലുപയോഗിയ്ക്കുന്ന അടയാളവാക്കേതാണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "രഹസ്യവാക്ക് ഓര്‍ത്തു വെക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "ലോഗിന്‍ _ഐഡി" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ഉദാഹരണത്തിനു്: ഉപയോക്തൃനാമം" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "നിങ്ങളുടെ ഗ്രൂപ്പ്‌വൈസ് ഉപയോക്തൃ ഐഡി എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "നിങ്ങളുടെ ഗ്രൂപ്പ്‌വൈസ് അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ഐസിക്യു _യുഐഎന്‍" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ഉദാഹരണത്തിനു്: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_അക്ഷരക്കൂട്ടം" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "നിങ്ങളുടെ ഐസിക്ക്യു യുഐഎന്‍ എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "നിങ്ങളുടെ ഐസിക്ക്യു അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ശൃംഖല" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "അക്ഷരക്കൂട്ടം" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "ചേര്‍ക്കുക..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "എടുത്തുകളയുക" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "മുകളിലോട്ട്" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "താഴോട്ട്" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "സര്‍വറുകള്‍" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"മിക്ക ഐആര്‍സി സര്‍വറുകള്‍ക്കും രഹസ്യവാക്കിന്റെ ആവശ്യമില്ല. അതിനാല്‍, ഉറപ്പല്ലെങ്കില്‍ രഹസ്യവാക്ക് " +"ഉപയോഗിയ്ക്കേണ്ടതില്ല." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "വിളിപ്പേരു്" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "രഹസ്യവാക്ക്" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "പുറത്തിറങ്ങുമ്പോള്‍ നല്‍കേണ്ട സന്ദേശം" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "ശരിയായ പേരു്" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ഉപയോക്തൃനാമം" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "ഏതു് ഐആര്‍സി ശൃംഖല?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "നിങ്ങളുടെ IRC ഇരട്ടപേരെന്താണ്?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "നിങ്ങളുടെ ഫേസ്ബുക്ക് ഉപയോക്തൃ നാമം എന്താണു്?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"ഇതു് നിങ്ങളുടെ ഉപയോക്തൃനാമമാണു്, സാധാരണ ഫെയിസ്ബുക്ക് പ്രവേശന നാമമല്ല.\n" +"നിങ്ങള്‍ facebook.com/badger ആണെങ്കില്‍, badger നല്‍കുക.\n" +"നിങ്ങള്‍ക്കൊന്നില്ലെങ്കില്‍, മറ്റൊരു ഫെയിസ്ബുക്ക് ഉപയോക്തൃനാമം തെരഞ്ഞെടുക്കുന്നതിനായി ഈ താള്‍ ഉപയോഗിയ്ക്കുക." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "നിങ്ങളുടെ ഫേസ്ബുക്ക് രഹസ്യവാക്ക് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "നിങ്ങളുടെ ഗൂഗിള്‍ ഐഡി എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ഉദാഹരണം: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "നിങ്ങളുടെ ഗൂഗിള്‍ അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ഉദാഹരണം: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "എസ്എസ്എല്‍ സാക്ഷ്യപത്രങ്ങളിലുള്ള തെറ്റുകളെ _അവഗണിക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "മുന്‍ഗ_ണന" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "_വിഭവം" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_എന്‍ക്രിപ്ഷന്‍ ആവശ്യമാണു് (ടിഎല്‍എസ്/എസ്എസ്എല്‍)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "സര്‍വറുടെ ക്രമീകരണങ്ങളെ മറികടക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "പഴയ _എസ്എസ്എല്‍ ഉപയോഗിക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "നിങ്ങളുടെ ജാബര്‍ ഐഡി എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "നിങ്ങള്‍ എടുക്കാനാഗ്രഹിയ്ക്കുന്ന ജാബര്‍ ഐഡി എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "നിങ്ങളുടെ ജാബര്‍ അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "നിങ്ങള്‍ എടുക്കാനാഗ്രഹിയ്ക്കുന്ന ജാബര്‍ അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "വി_ളിപ്പേര്" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "പേരിന്റെ _അവസാനം" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "പേരിന്റെ തു_ടക്കം" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_പ്രസിദ്ധീകരിച്ച പേരു്" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_ജാബര്‍ ഐഡി" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ഇമെയില്‍ വിലാസം" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ഉദാഹരണത്തിനു്: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "നിങ്ങളുടെ വിന്‍ഡോസ് ലൈവ് ഐഡി എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "നിങ്ങളുടെ വിന്‍ഡോസ് ലൈവ് അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "സ്വതേ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "രജിസ്ടര്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ഐച്ഛികങ്ങള്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ഒന്നുമില്ല" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_ഉപയോക്തൃനാമം" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ഉദാഹരണം: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "ലാന്‍ഡ് ലൈനുകളും മൊബൈല്‍ ഫോണുകളിലേക്കും വിളിയ്ക്കുന്നതിനായി ഈ അക്കൌണ്ട് ഉപയോഗിയ്ക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "എന്‍എറ്റി ട്രാവേഴ്സല്‍ ഏച്ഛികങ്ങള്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "പ്രോക്സി ഐച്ഛികങ്ങള്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "മറ്റു് ഐച്ഛികങ്ങള്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN സര്‍വര്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "എസ്‌ടിയുഎന്‍ സര്‍വറിനെ സ്വയമായി കണ്ടുപിടിയ്ക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "ബൈന്‍ഡിങ് കണ്ടുപിടിയ്ക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "സര്‍വര്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "കീപ്പ്-എലൈവ് ഐച്ഛികങ്ങള്‍" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "സംവിധാനം" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "ഇടവേള (സെക്കന്‍ഡുകളില്‍)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "ആധികാരികത ഉറപ്പാക്കുന്നതിനുള്ള ഉപയോക്തൃനാമം" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "ഗതാഗതം" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ലൂസ് റൌട്ടിങ്" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS പിഴവുകള്‍ അവഗണിക്കുക" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "പോര്‍ട്ട്:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "ലോക്കല്‍ ഐപി വിലാസം" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "നിങ്ങളുടെ സിപ്പ് ലോഗിന്‍ ഐഡി എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "നിങ്ങളുടെ സിപ്പ് അക്കൌണ്ട് അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "അടയാള_വാക്ക്:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "യാഹൂ! _ഐഡി:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "ചാറ്റ് മുറികളിലേക്കും കോണ്‍ഫറന്‍സുകളിലേക്കും ഉള്ള ക്ഷണങ്ങളെ നിരസിക്കുക (_I) " + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_മുറികളുടെ പട്ടികയുടെ ലൊക്കേല്‍:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "അക്ഷരക്കൂട്ടം:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_പോര്‍ട്ട് :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "നിങ്ങളുടെ യാഹൂ ഐഡി എന്താണു്?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "നിങ്ങളുടെ യാഹൂ അടയാളവാക്കു് എന്താണു്?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "തെരഞ്ഞെടുക്കുക..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_തെരഞ്ഞെടുക്കുക" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "മുഴുവന്‍ പേരു്" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "ഫോണ്‍ നമ്പര്‍" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ഇമെയില്‍ വിലാസം" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "വെബ് വിലാസം" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "ജന്മദിനം" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "അവസാനം കണ്ടത്:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "സെര്‍വര്‍:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "എവിടെ നിന്നും കണക്ട് ചെയ്തിരിയ്ക്കുന്നു:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "ദൂരം സന്ദേശം:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "ജോലി" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "വീടു്" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "മൊബൈല്‍" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "ശബ്ദം" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "ഇഷ്ടപ്പെട്ട " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "തപ്പാല്‍" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "പാഴ്സല്‍" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "പുതിയ ശൃംഖല" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "ഒരു ഐആര്‍സി ശൃംഖല തെരഞ്ഞെടുക്കുക" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_നെറ്റ്‌വര്‍ക്ക് പട്ടികകള്‍ വീണ്ടും സജ്ജമാക്കുക" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "തിരഞ്ഞെടുക്കുക" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "പുതിയ സര്‍വര്‍" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "എസ്എസ്എല്‍" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "രഹസ്യവാക്ക് ലഭ്യമല്ല" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) ന്റെ ഐഎം അക്കൌണ്ട് രഹസ്യവാക്ക്" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "'%s' ചാറ്റ് മുറിയ്ക്കുള്ള രഹസ്യവാക്ക്, %s (%s) അക്കൌണ്ടില്‍" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "പുതിയ %s അക്കൗണ്ട് " + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d സെക്കന്റ് മുമ്പു്" +msgstr[1] "%d സെക്കന്റുകള്‍ മുമ്പു്" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d മിനിട്ട് മുമ്പ്" +msgstr[1] "%d മിനിട്ടുകള്‍ മുമ്പ്" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d മണിക്കൂര്‍ മുമ്പു്" +msgstr[1] "%d മണിക്കൂറുകള്‍ മുമ്പു്" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ദിവസം മുമ്പു്" +msgstr[1] "%d ദിവസങ്ങള്‍ മുമ്പു്" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d ആഴ്ച മുമ്പു്" +msgstr[1] "%d ആഴ്ചകള്‍ മുമ്പു്" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d മാസം മുമ്പു്" +msgstr[1] "%d മാസങ്ങള്‍ മുമ്പു്" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ഭാവിയില്‍" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "നിങ്ങളുടെ സ്വകാര്യ വിവരങ്ങള്‍ ചിട്ടപ്പെടുത്തുന്നതിനു് ഓണ്‍ലൈന്‍ ആകുക." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "പേരു്" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "അപരനാമം" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "സ്വകാര്യ വിവരങ്ങള്‍" diff --git a/telepathy-account-widgets/po/mr.po b/telepathy-account-widgets/po/mr.po new file mode 100644 index 0000000..f63f3b1 --- /dev/null +++ b/telepathy-account-widgets/po/mr.po @@ -0,0 +1,822 @@ +# translation of mr.po to Marathi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sandeep Shedmake , 2008, 2009. +# Sandeep Shedmake , 2009, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: mr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-23 10:47+0530\n" +"Last-Translator: Sandeep Shedmake \n" +"Language-Team: Marathi \n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "अवतार प्रतिमा निवडण्याकरीता मुलभूत संचयीका" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "शेवटच्यावेळी अवतार प्रतिमा निवडली ती संचयीका." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "सद्याची लोकेल" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "अरेबिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "आर्मेनिअन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "बाल्टिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "सेल्टिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "मध्य युरोपिअन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "विश्लेषीत चिनी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "पारंपारिक चिनी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "क्रोएशीयन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "सिरीलिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "सायरिलिक/रशियन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "सायरिलिक/युक्रेनियन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "जॉर्जियन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ग्रीक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "गुजराती" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "गुरमुखी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "हिब्रू" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "द्रुश्य हिब्रू" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "हिंदी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "आयलॅंडिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "जपानी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "कोरियन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "नॉर्डिक" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "पर्शियन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "रोमानियन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "दक्षिण युरोपिअन" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "थाई" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "तुर्किश" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "युनिकोड" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "पश्चिमी" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "वियेतनामी" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "पासवर्ड (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "पडद्यावरील नाव (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "उदाहरणार्थ: माझेस्क्रीननाव" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "पासवर्ड लक्षात ठेवा" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "पोर्ट (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "सर्व्हर (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "प्रगत" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "तुमचे AIM स्क्रीन नाव काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "तुमचे AIM पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "पासवर्ड लक्षात ठेवा" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "प्रवेश ID (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "उदाहरणार्थ: वापरकर्तानाव" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "तुमचे GroupWise वापरकर्ता ID काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "तुमचे GroupWise पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ UIN (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "उदाहरणार्थ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "अक्षरसंच (_a)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "तुमचे ICQ UIN काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "तुमचे ICQ पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "नेटवर्क" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "अक्षरसंच" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "समाविष्ट करा…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "काढून टाका" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "वर" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "खाली" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "सर्व्हर्स्" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"बरेच IRC सर्व्हर्सला पासवर्डची आवश्यकता नसते, म्हणून खात्री नसल्यास, पासवर्ड देऊ नका." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "टोपननाव" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "पासवर्ड" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "बाहेर पडण्यासाठीचे संदेश" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "वास्तविक नाव" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "वापरकर्तानाव" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "कोणते IRC नेटवर्क?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "तुमचे IRC टोपणनाव काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "तुमचे Facebook वापरकर्ता नाव काय आहे?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"हे तुमचे वापरकर्तानाव आहे, सामान्य Facebook प्रवेश नाही.\n" +"facebook.com/बॅजर असल्यास, बॅजर द्या.\n" +"नसल्यास, Facebook वापरकर्तानाव नीवडण्यासाठी या पानाचा वापर करा." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "तुमचे Facebook पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "तुमचे Google ID काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "उदाहरणार्थ: वापरकर्ता@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "तुमचे Google पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "उदाहरणार्थ: वापरकर्ता@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL प्रमाण त्रुटी दुर्लक्ष करा (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "प्राधान्य (_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "स्त्रोत (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "एंक्रिप्शन आवश्यक (TLS/SSL) (_y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "सर्व्हर संयोजना खोडून पुन्हा लिहा" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "जुणे SSL वापरा (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "तुमचे जॅबर ID काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "तुमच्या पसंतीचे जॅबर ID काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "तुमचे Jabber पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "तुमचे पसंतीचे जॅबर पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "टोपणनाव (_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "शेवटचे नाव (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "पहिले नाव (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "प्रकाशीत नाव (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "जॅबर ID (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ईमेल पत्ता (_m)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "उदहारणार्थ: वापरकर्ता@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "तुमचे Windows Live ID काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "तुमचे Windows Live पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "स्वयं" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "रेजिस्टर" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "पर्याय" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "काहीही नाही" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "वापरकर्तानाव (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "उदाहरणार्थ: वापरकर्ता@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "लँडलाइन्स् व मोबाइल फोन्सकरीता कॉल करण्यासाठी वापरण्याजोगी खाते (_l)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ट्रॅवर्सल पर्याय" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "प्रॉक्सी पर्याय" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "मिश्र पर्याय" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN सर्व्हर" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN सर्व्हर स्वयं डिस्कवर करा" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "बाईंडिंग डिस्कवर करा" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "सर्व्हर" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "किप-अलाइव्ह पर्याय" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "यंत्रणा" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "मध्यांतर (सेकंद)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "वापरकर्तानावाची ओळख पटवा" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "ट्रांस्पोर्ट" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "लूज राऊटिंग" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS त्रुटींकडे दुर्लक्ष करा" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "पोर्ट" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "स्थानीय IP पत्ता" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "तुमचे SIP प्रवेश ID काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "तुमचे SIP खाते पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "पासवर्ड (_w):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! ID (_D):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "परस्पर संवाद व संवादकक्ष निमंत्रणाकडे दुर्लक्ष करा (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "कक्ष यादी लोकेल (_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "अक्षरसंच (_a):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "पोर्ट (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "तुमचे Yahoo! ID काय आहे?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "तुमचे Yahoo! पासवर्ड काय आहे?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "नीवडा..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "नीवडा (_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "संपूर्ण नाव" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "फोन क्रमांक" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ईमेल पत्ता" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "संकेतस्थळ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "वाढदिवस" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "शेवटच्यावेळी पाहिले:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "सर्व्हर:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "पासून जोडलेले:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "निष्क्रीय संदेश:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "काम" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "घरी" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "मोबाइल" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "आवाज" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "पसंतीचे" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "पत्र" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "पार्सल" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "नवीन नेटवर्क" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC नेटवर्क नीवडा" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "नेटवर्क सूची पूर्वनिर्धारीत करा (_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "नीवडा" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "नवीन सर्व्हर" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "पासवर्ड आढळले नाही" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) करीता IM खाते पासवर्ड" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "खाते %2$s (%3$s) वरील गप्पाक्ष '%1$s' करीता पासवर्ड" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "नवीन %s खाते" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d सेकंद पूर्वी" +msgstr[1] "%d सेकंद पूर्वी" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d मिनीट पूर्वी" +msgstr[1] "%d मिनीट पूर्वी" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d तास पूर्वी" +msgstr[1] "%d तास पूर्वी" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d दिवस पूर्वी" +msgstr[1] "%d दिवस पूर्वी" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d आठवडा पूर्वी" +msgstr[1] "%d आठवड्यांपूर्वी" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d महिन्यापूर्वी" +msgstr[1] "%d महिन्यांपूर्वी" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "भविष्यात" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "वैयक्तिक माहिती संपादित करण्यासाठी ऑनलाइन जा." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "ओळखकर्ता" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "अलायस" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "वैयक्तिक तपशील" diff --git a/telepathy-account-widgets/po/ms.po b/telepathy-account-widgets/po/ms.po new file mode 100644 index 0000000..7ee173a --- /dev/null +++ b/telepathy-account-widgets/po/ms.po @@ -0,0 +1,887 @@ +# GnomeICU Malay Translation +# Copyright (C) 2001-2003 Free Software Foundation, Inc. +# 1. Khairulanuar Abd Majid , 2001, 2002. +# 2. Hasbullah Bin Pit 2002,2003 +msgid "" +msgstr "" +"Project-Id-Version: gnomeicu 0.95.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2010-01-02 10:39+0730\n" +"Last-Translator: Iswandi Basri \n" +"Language-Team: Bahasa Melayu \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arab" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Eropah Tengah " + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croatia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Greek" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Parsi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Barat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnam" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "_Katalaluan:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "Nama:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +#, fuzzy +msgid "Example: MyScreenName" +msgstr "Contoh: sebol@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +#, fuzzy +msgid "Remember password" +msgstr "Ingat katalaluan?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Liang:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Pelayan:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +#, fuzzy +msgid "What is your AIM screen name?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +#, fuzzy +msgid "What is your AIM password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "Ingat katalaluan?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +#, fuzzy +msgid "Example: username" +msgstr "Contoh: sebol@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +#, fuzzy +msgid "What is your GroupWise User ID?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +#, fuzzy +msgid "What is your GroupWise password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +#, fuzzy +msgid "Example: 123456789" +msgstr "Contoh: sebol@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +#, fuzzy +msgid "What is your ICQ UIN?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +#, fuzzy +msgid "What is your ICQ password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rangkaian" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Chat" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_Buang" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "Pelayan:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "_Gelaran:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "_Katalaluan:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Mesej _Status" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Nama _pengguna:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Nama:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +#, fuzzy +msgid "What is your Facebook username?" +msgstr "Apakah nama anda?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#, fuzzy +msgid "What is your Facebook password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +#, fuzzy +msgid "What is your Google ID?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +#, fuzzy +msgid "Example: user@gmail.com" +msgstr "Contoh: sebol@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +#, fuzzy +msgid "What is your Google password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +#, fuzzy +msgid "Example: user@jabber.org" +msgstr "Contoh: sebol@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "_Sumber:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#, fuzzy +msgid "Use old SS_L" +msgstr "Guna peng_enkripsian (SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +#, fuzzy +msgid "What is your Jabber ID?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +#, fuzzy +msgid "What is your desired Jabber ID?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +#, fuzzy +msgid "What is your Jabber password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "_Gelaran:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Nama:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "Nama:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Nama:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ID Jabber:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +#, fuzzy +msgid "Example: user@hotmail.com" +msgstr "Contoh: sebol@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +#, fuzzy +msgid "What is your Windows Live ID?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +#, fuzzy +msgid "What is your Windows Live password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +#, fuzzy +msgid "Auto" +msgstr "_Terima" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "_Daftar..." + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +#, fuzzy +msgid "Options" +msgstr "Sambung" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Tiada" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "Nama:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +#, fuzzy +msgid "Example: user@my.sip.server" +msgstr "Contoh: sebol@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +#, fuzzy +msgid "NAT Traversal Options" +msgstr "Sambung" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +#, fuzzy +msgid "Proxy Options" +msgstr "Sambung" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +#, fuzzy +msgid "Miscellaneous Options" +msgstr "Sambung" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Pelayan:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Pelayan" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +#, fuzzy +msgid "Keep-Alive Options" +msgstr "Sambung" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Mekanisma:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +#, fuzzy +msgid "What is your SIP login ID?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +#, fuzzy +msgid "What is your SIP account password?" +msgstr "Sila masukkan katalaluan anda:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +#, fuzzy +msgid "Pass_word:" +msgstr "_Katalaluan:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "Yahoo I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "Chat" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +#, fuzzy +msgid "_Port:" +msgstr "_Liang:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +#, fuzzy +msgid "What is your Yahoo! ID?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +#, fuzzy +msgid "What is your Yahoo! password?" +msgstr "Apakah nama anda?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Pilih" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Pilih" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Nama penuh:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Tapak Web:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "Nama:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Pelayan:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Sambung" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "Mesej away" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "Rangkaian" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Ke_utamaan" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +#, fuzzy +msgid "Choose an IRC network" +msgstr "Pilih Pelayan" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Pilih" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Akaun %s baru" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Tetapan Akaun" diff --git a/telepathy-account-widgets/po/my.po b/telepathy-account-widgets/po/my.po new file mode 100644 index 0000000..eb4fbce --- /dev/null +++ b/telepathy-account-widgets/po/my.po @@ -0,0 +1,861 @@ +# Burmese Translations of tp-account-widgets +# Copyright (C) 2011 Myanmar L10n Team +# This file is distributed under the same license as the above package. +# ယဉ်မေဦး (Yin May Oo) , 2011. +msgid "" +msgstr "" +"Project-Id-Version: Empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2011-08-08 21:10-0700\n" +"Last-Translator: YinMayOo (ယဉ်မေဦး) \n" +"Language-Team: Burmese \n" +"Language: my\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Burmese\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Country: MYANMAR\n" +"X-Generator: Narro 0.9.4 on http://translate.libreworks.info\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "မျက်နှာစာပုံ ရွေးရန် ပုံမှန်သတ်မှတ်ထားသော တည်နေရာလမ်းကြောင်း" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "နောက်ဆုံးမျက်နှာစာပုံ ရွေးယူခဲ့သော နေရာ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "လက်ရှိ လိုကေး" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "အာရေဗစ်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "အာမေနီယံ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "ဘယ်လ်တစ်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "ဆယ်လ်တစ်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "ဥရောပ အလယ်ပိုင်း" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ရိုးရှင်း တရုတ်စာ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "ရိုးရာ တရုတ်စာ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ခရိုအေးရှန်း" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ခရစ်လစ်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ခရစ်လစ်/ ရုရှား" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ခရစ်လစ်/ ယူကရေးနီးယန်း" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ဂျော်ဂျီယံ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ဂရိ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ဂူဂျာရတီ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ဂူရ်မူခီ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ဟီဗရူး" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ဟီဗရူး Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ဟိန္ဒီ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "အိုင်လန်းဒစ်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ဂျပန်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "ကိုရီးယား" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "နော်ဒစ်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ပါရှန်း" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "ရိုမေနီယံ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "ဥရောပတောင်ပိုင်း" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "ထိုင်း" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "တူရကီ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "ယူနီကုဒ်" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "အနောက်တိုင်း" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ဗီယက်နမ်" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "_W စကားဝှက်" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "_N ရုပ်ပြအမည် -" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ဥပမာ: စခရင်အမည်" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_P ဆက်သွယ်ပေါက် -" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_S ဆာဗာ -" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "အဆင့်မြင့်" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "AIM ရုပ်ပြအမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "AIM စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "စကားဝှက်" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "_D ဝင်ရောက်ရန် အမည် -" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ဥပမာ: သုံးစွဲသူအမည်" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "GroupWise အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "GroupWise စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "_U ICQ အမည်" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ဥပမာ: ၁၂၃၄၅၆၇၈၉" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "_A သင်္ကေတ သတ်မှတ်ချက် -" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ICQ အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ကွန်ယက်" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "သင်္ကေတ အတွဲ - " + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +#, fuzzy +msgid "Add…" +msgstr "_A ပေါင်းထည့်..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_R ဖယ်ပစ်ပါ" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "ဆာဗာ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "သီးသန့်အမည် - " + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "စကားဝှက်" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "နှုတ်ဆက် စကား - " + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "အမည်ရင်း - " + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "သုံးစွဲသူအမည် -" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "သင်၏ IRC ကွန်ယက် ကို ဖော်ပြပါ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "သင်၏ IRC သီးသန့်အမည် ကို ဖော်ပြပါ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Facebook အသုံးပြအမည် သွင်းပါ" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Facebook စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Google အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ဥပမာ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Google စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ဥပမာ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_G SSL အသိအမှတ်ပြုလွှာ ချို့ယွင်းချက်များ မသိချင်ပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "_T ဦးစားပေး" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "_U သယံဇာတ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Y သိမ်းထုတ်ခြင်းစနစ် လိုအပ်သော(TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "ဆာဗာ ဆက်တင်ပေါ်ကို ထပ်သွားပြင်ပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "_L SSL အဟောင်းကို သုံးပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Jabber အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "သုံးလိုသည့် Jabber အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Jabber စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "သုံးလိုသည့် Jabber စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "_K သီးသန့်အမည်" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_L အမည် နောက်ဆုံးစာလုံး" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_F အမည် အစစာလုံး" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_P အများမြင်ရသည့် အမည်" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_J abber အမည် -" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "_M လျှပ်လိပ်စာ - " + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ဥပမာ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Windows Live အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Windows Live စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "အလိုအလျောက်" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "မှတ်ပုံတင်" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ရွေးစရာများ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ဘာမှမရွေး" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_U သုံးစွဲသူအမည် -" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ဥပမာ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT Traversal ရွေးစရာများ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ပရောက်ဆီ ရွေးစရာများ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "ထွေလီကာလီ ရွေးစရာများ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN ဆာဗာ - " + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN ဆာဗာကို အလိုအလျောက် လိုက်ရှာပါ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "တွဲချည်ထားသည်များ လိုက်ရှာပါ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "ဆာဗာ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "အမြဲတမ်း ရွေးစရာများ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "မက္ကင်းနစ် - " + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "အချိန်ပိုင်း (စက္ကန့်)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "ခွင့်ပြုထားသော သုံးစွဲသူအမည်" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "ပို့ဆောင်ရေး -" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "အတည်မရှိလမ်းကြောင်း" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "ဆုံမှတ် (ဆက်သွယ်ပေါက်)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "SIP အကောင့် အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "SIP အကောင့် စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_W စကားဝှက်" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "_D Yahoo! အမည် " + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_G ဆွေးနွေးပွဲ၊ စကားပြောခန်း ဖိတ်ကြားချက်များကို မသိချင်ပါ" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_R အခန်းစာရင်း နေရာ-" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_A သင်္ကေတ သတ်မှတ်ချက် -" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_P ဆက်သွယ်ပေါက် -" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Yahoo! အမည် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Yahoo! စကားဝှက် သွင်းပါ" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "ရွေး" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "ရွေး" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "အမည်ရင်း - " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +#, fuzzy +msgid "Phone number" +msgstr "ဖုံးနံပါတ် - " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#, fuzzy +msgid "E-mail address" +msgstr "လျှပ်လိပ်စာ - " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "ဝဘ်ဆိုက် - " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "မွေးနေ့ - " + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "_L အမည် နောက်ဆုံးစာလုံး" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "ဆာဗာ - " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "ဆက်သွယ်ထား" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "နှုတ်ဆက် စကား - " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "ကွန်ယက်" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "နှစ်သက်ရာများ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "ကွန်ယက် အသစ်" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC ကွန်ယက်တစ်ခု ရွေးပါ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "ရွေး" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ဆာဗာ အသစ်" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "စာဖြတ်စ ရှာမတွေ့ပါ" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "%s အကောင့်အသစ်" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "ပြီးခဲ့တဲ့ %Id စက္ကန့်" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "ပြီးခဲ့တဲ့ %Id မိနစ်" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "ပြီးခဲ့တဲ့ %Id နာရီ" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "ပြီးခဲ့တဲ့ %Id ရက်" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "ပြီးခဲ့တဲ့ %Id သီတင်းပါတ်" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "ပြီးခဲ့တဲ့ %Id လ" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "အနာဂါတ်မှာ" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "အမည်၊လိပ်စာ - " + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "ခေါ်လိုသည့် အမည် - " + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "နည်းပညာဆိုင်ရာ အသေးစိတ်များ" diff --git a/telepathy-account-widgets/po/nb.po b/telepathy-account-widgets/po/nb.po new file mode 100644 index 0000000..2022236 --- /dev/null +++ b/telepathy-account-widgets/po/nb.po @@ -0,0 +1,909 @@ +# Norwegian bokmål translation of tp-account-widgets. +# Copyright © 2003-2005 Free Software Foundation, Inc. +# Kjartan Maraas , 2003-2013. +# Sigurd Gartmann , 2005, 2006. +# Torstein Adolf Winterseth , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: telepathy-accounts-widgets 3.9.x\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-10-15 16:30+0200\n" +"PO-Revision-Date: 2016-10-15 16:31+0200\n" +"Last-Translator: Kjartan Maraas \n" +"Language-Team: Norwegian bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Forvalgt mappe for personbilde" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Den forrige mappen et personbilde ble valgt fra." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Aktivt locale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Sentraleuropeisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Forenklet kinesisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Tradisjonell kinesisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kyrillisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kyrillisk/Russisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kyrillisk/Ukrainsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Gresk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebraisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Visuell hebraisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sør-Europeisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Tyrkisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Vestlig" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamesisk" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Passord" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Skjerm_navn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Eksempel: MittSkjermNavn " + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Husk passord" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Tjener" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avansert" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Hva er ditt skjermnavn for AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "HVa er ditt AIM-passord?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Passord" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Tjener" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Brukernavn:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Le_gg til" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "B_ruk" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s på %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s-konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Ny konto" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Innloggings-I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Eksempel: brukernavn" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Hva er din bruker-ID for GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Hva er ditt passord for GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Eksempel: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Tegn_sett" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Hva er din UIN for ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Hva er ditt passord for ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Nettverk" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Tegnsett" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Legg til …" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Fjern" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Opp" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Ned" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Tjenere" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"De fleste IRC-tjenere krever ikke et passord, så ikke oppgi et passord hvis " +"du ikke er sikker." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Kallenavn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Melding når programmet avsluttes" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Virkelig navn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Brukernavn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Hvilket IRC-nettverk?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Hva er ditt kallenavn på IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Hva er ditt brukernavn for Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Dette er brukernavnet ditt, ikke din vanlige pålogging for Facebook.\n" +"Hvis du er facebook.com/badger, oppgi badger.\n" +"Bruk denne siden for å " +"velge et brukernavn på Facebook hvis du ikke har et." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Hva er ditt passord for Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Hva er din Google-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Eksempel: bruker@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Hva er ditt passord for Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Eksempel: bruker@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnorer feil med SSL-sertifikater" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_tet" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Ress_urs" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Kr_yptering kreves (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Overstyr innstillinger for tjener" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Bruk gammel SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Hva er din Jabber-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Hva er ditt passord for Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Kallenavn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Etternavn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Fornavn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Publisert navn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber-ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_postadresse" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Eksempel: bruker@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Hva er din ID på Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Hva er ditt passord for Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Alternativer" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ingen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Br_ukernavn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Eksempel: bruker@min.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Bruk denne kontoen til å ringe opp fasttelefoner og mobiltelefoner" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Alternativer for NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Alternativer for proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Forskjellige alternativer" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-tjener" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Søk opp STUN-tjener automatisk" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Oppdag binding" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Alternativer for Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mekanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervall (sekunder)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Brukernavn for autentisering" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Løs ruting" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Overse TLS-feil" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokal IP-adresse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Hva er din påloggings-ID for SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Hva er passordet for din SIP-konto?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Passord:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorer invitasjoner til konferanser og praterom" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Locale for _romliste:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Tegn_sett:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Hva er din Yahoo!-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Hva er ditt passord for Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Kunne ikke konvertere bilde" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ingen av de godtatte bildeformatene er støttet på ditt system" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Kunne ikke lagre bilde til fil" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Velg ditt avatarbilde" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Ta et bilde …" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Ingen bilde" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Bilder" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Alle filer" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Velg …" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Velg" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Fullt navn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefonnummer" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-postadresse" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Nettsted" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Fødselsdag" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Sist sett:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Tjener:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Tilkoblet fra:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Bortemelding:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "arbeid" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "hjemme" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "tale" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "foretrukket" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "post" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "pakke" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nytt nettverk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Velg et IRC-nettverk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Nullstill _nettverksliste" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Velg" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ny tjener" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Passordet ble ikke funnet" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Passord for lynmeldingskonto for %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Passord for praterom «%s» på konto %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Ny %s-konto" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d sekund siden" +msgstr[1] "%d sekunder siden" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minutt siden" +msgstr[1] "%d minutter siden" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d time siden" +msgstr[1] "%d timer siden" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dag siden" +msgstr[1] "%d dager siden" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d uke siden" +msgstr[1] "%d uker siden" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d måned siden" +msgstr[1] "%d måneder siden" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "i fremtiden" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Rediger din personlige informasjon på nettet." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Disse detaljene vil bli delt med andre brukere på dette pratenettverket." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikator" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Personlige detaljer" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Folk i nærheten" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" diff --git a/telepathy-account-widgets/po/ne.po b/telepathy-account-widgets/po/ne.po new file mode 100644 index 0000000..73e22d6 --- /dev/null +++ b/telepathy-account-widgets/po/ne.po @@ -0,0 +1,859 @@ +# translation of tp-account-widgets.HEAD.ne.po to Nepali +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Pawan Chitrakar , 2005. +# Jaydeep Bhusal , 2005. +# Mahesh subedi , 2006. +# Shyam Krishna Bal , 2007. +msgid "" +msgstr "" +"Project-Id-Version: empathy.HEAD.ne\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2007-12-17 20:03+0545\n" +"Last-Translator: Shyam Krishna Bal \n" +"Language-Team: Nepali \n" +"Language: ne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n !=1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "यसबाट एउटा अवतार छवि चयन गर्न पूर्वनिर्धारित डाइरेक्टरी" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "एउटा अवतार छवि रोजिएको अन्तिम डाइरेक्टरी ।" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +#, fuzzy +msgid "Persian" +msgstr "संस्करण:" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +#, fuzzy +msgid "Vietnamese" +msgstr "पुन: नामकरण गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "पासवर्ड:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "पोर्ट:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "सर्भर:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +#, fuzzy +msgid "Advanced" +msgstr "उन्नत" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "लगइन आईडी:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "हटाउनुहोस्" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "सर्भर:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "उपनाम:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "पासवर्ड:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "अनुकूल सन्देश" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "पुन: नामकरण गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "पुन: नामकरण गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "संसाधन:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#, fuzzy +msgid "Use old SS_L" +msgstr "गुप्तिकरण (SS_L) प्रयोग गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "उपनाम:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "अन्तिम नाम:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "पहिलो नाम:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "प्रकाशित गरिएको नाम:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ज्याबर आईडी:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +#, fuzzy +msgid "Options" +msgstr "विकल्प" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "पुन: नामकरण गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "सर्भर:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +#, fuzzy +msgid "Server" +msgstr "सर्भर:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +#, fuzzy +msgid "Port" +msgstr "पोर्ट:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "पासवर्ड:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "पोर्ट:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "चयन गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "चयन गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "पूरा नाम:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "वेब साइट:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "जन्मदिन:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "अन्तिम नाम:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "सर्भर:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "जडान गरियो" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "सन्देश बचत गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "प्राथमिकताहरू" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "चयन गर्नुहोस्" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, fuzzy, c-format +msgid "New %s account" +msgstr "नयाँ सम्पर्क" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "पहिचायक:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "उपनाम:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "सम्पर्क विवरण" diff --git a/telepathy-account-widgets/po/nl.po b/telepathy-account-widgets/po/nl.po new file mode 100644 index 0000000..97aea1e --- /dev/null +++ b/telepathy-account-widgets/po/nl.po @@ -0,0 +1,940 @@ +# Dutch translation of tp-account-widgets. +# +# This file is distributed under the same license as the tp-account-widgets package. +# +# This translation is based on the translation for Gossip. +# +# +# contact - contact +# conversation - chat, gesprek +# file transfer - bestandsoverdracht +# popup notification - notificatiebericht (i.c.m. tonen) +# room - groepsgesprek, chat +# roster - contactenlijst +# voice call - spraakoproep +# incoming - binnenkomend, inkomend +# +# Luk Claes , 2005. +# Vincent van Adrighem , 2003. +# Taco Witte , 2003–2004. +# Freek de Kruijf , 2006–2008. +# Reinout van Schouwen , 2007, 2016. +# Wouter Bolsterlee , 2006—2011. +# Hannie Dumoleyn , 2010—2011, 2012. +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-11 22:49+0200\n" +"PO-Revision-Date: 2016-06-25 21:56+0100\n" +"Last-Translator: Justin van Steijn \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2010-09-28 11:24+0000\n" +"X-Generator: Poedit 1.6.10\n" + +# avatar? :s (Wouter Bolsterlee) +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Standaardmap voor het kiezen van gebruikersafbeeldingen" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "De laatst gebruikte map voor gebruikersafbeeldingen." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Huidig taalgebied" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeens" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centraal-Europees" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinees (vereenvoudigd)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinees (traditioneel)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cyrillisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Russisch Cyrillisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Oekraïens Cyrillisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgisch" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grieks" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreeuws" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreeuws (visueel)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "IJslands" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japans" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreaans" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Noord-Europees" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Pers" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Roemeens" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Zuid-Europees" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thais" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turks" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Westers" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamees" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Wachtwoord" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Scherm_naam" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Voorbeeld: Mijn_schermnaam" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Wachtwoord onthouden" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Poort" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Geavanceerd" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Wat is uw AIM-schermnaam?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Wat is uw AIM-wachtwoord?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Account" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Wachtwoord" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Poort" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Gebruikersnaam" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "Toe_voegen" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "Toe_passen" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s op %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s-account" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nieuw account" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Login I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Voorbeeld: gebruikersnaam" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Wat is uw GroupWise-gebruikersnaam?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Wat is uw GroupWise-wachtwoord?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Voorbeeld: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Tekenset" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Wat is uw ICQ-identificatienummer?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Wat is uw ICQ-wachtwoord?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Netwerk" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Tekenset" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Toevoegen…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Verwijderen" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Omhoog" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Omlaag" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servers" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"De meeste IRC-servers hebben geen wachtwoord nodig, dus voer geen wachtwoord " +"in als u niet zeker bent." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Bijnaam" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Bericht bij afsluiten" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Echte naam" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Gebruikersnaam" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Welk IRC-netwerk?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Wat is uw IRC-bijnaam?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Wat is uw Facebook-gebruikersnaam?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Dit is uw gebruikersnaam, niet uw standaard Facebook-login.\n" +"Als u facebook.com/badger bent voert u badger in.\n" +"Gebruik deze pagina om een " +"Facebook-gebruikersnaam te kiezen als u deze nog niet heeft." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Wat is uw Facebook-wachtwoord?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Wat is uw Google-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Voorbeeld: gebruiker@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Wat is uw Google-wachtwoord?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Voorbeeld: gebruiker@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "Ne_geer SSL-certificaat-foutmeldingen" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_teit" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "B_ron" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Encr_yptie vereist (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Serverinstellingen overschrijven" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Oude SS_L gebruiken" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Wat is uw Jabber-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Wat is uw Jabber-wachtwoord?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Bijnaam" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Achternaam" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Voornaam" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Weergegeven naam" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber-ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_mailadres" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Voorbeeld:gebruiker@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Wat is uw Windows Live-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Wat is uw Windows Live-wachtwoord?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registreren" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opties" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Geen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Gebr_uikersnaam" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Voorbeeld: gebruiker@mijn.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" +"Gebruik dit account om te bellen naar _vaste lijnen en mobiele telefoons" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT-traversal opties" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy-opties" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Overige opties" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN-server automatisch opzoeken" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Binding opzoeken" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opties voor het in stand houden van de verbinding" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (seconden)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Authenticatie gebruikersnaam" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Vrije routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS-fouten negeren" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokaal IP-adres" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Wat is uw SIP-aanmeld-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Wat is uw wachtwoord voor uw SIP-account?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Wachtwoord:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Ne_geer conferentie- en chatruimte-uitnodigingen" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Taalinstelling voor lijst van chat_ruimtes:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Tekenset:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Poort:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Wat is uw Yahoo!-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Wat is uw Yahoo!-wachtwoord?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn't convert image" +msgstr "Kon afbeelding niet converteren" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" +"Geen van de aanvaarde afbeeldingsformaten worden door uw systeem ondersteund" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn't save picture to file" +msgstr "Kon afbeelding niet naar bestand opslaan" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Selecteer uw gebruikersafbeelding" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture..." +msgstr "Foto nemen…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Geen afbeelding" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Afbeeldingen" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Alle bestanden" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Selecteren…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Selecteren" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Volledige naam" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefoonnummer" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-mailadres" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Website" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Geboortedatum" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Voor het laatst gezien:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Verbonden via:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Afwezigheidsbericht:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "Werk" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "thuis" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "Mobiel" + +# hmmmm (Wouter Bolsterlee) +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "spraak" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "voorkeur" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "post" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "pakje" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nieuw netwerk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Kies een IRC-netwerk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_Netwerklijst resetten" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Selecteren" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nieuwe server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Wachtwoord niet gevonden" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Wachtwoord voor IM-account %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Wachtwoord voor chatruimte ‘%s’ op account %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nieuw %s-account" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d seconde geleden" +msgstr[1] "%d seconden geleden" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minuut geleden" +msgstr[1] "%d minuten geleden" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d uur geleden" +msgstr[1] "%d uur geleden" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dag geleden" +msgstr[1] "%d dagen geleden" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d week geleden" +msgstr[1] "%d weken geleden" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d maand geleden" +msgstr[1] "%d maanden geleden" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "in de toekomst" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Ga online om uw persoonlijke gegevens te bewerken." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Deze details worden gedeeld met andere gebruikers op dit chatnetwerk." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificatie" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Persoonlijke gegevens" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Mensen in de buurt" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "Remember Password" +#~ msgstr "Wachtwoord onthouden" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Wat is uw gewenste Jabber-ID?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Wat is uw gewenste Jabber-wachtwoord?" diff --git a/telepathy-account-widgets/po/nn.po b/telepathy-account-widgets/po/nn.po new file mode 100644 index 0000000..8ba14cb --- /dev/null +++ b/telepathy-account-widgets/po/nn.po @@ -0,0 +1,847 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Torstein Adolf Winterseth , 2010. +# Martine Rørstad Sand , 2012. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-04-20 16:09+0000\n" +"Last-Translator: Martine Rørstad Sand \n" +"Language-Team: Norsk (nynorsk) \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Førevald mappe for å velja eit" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Siste mappe eit profilbilete vart valt frå." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Gjeldande lokaltilpassing" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Sentraleuropeisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Forenkla kinesisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Tradisjonell kinesisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kyrillisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kyrillisk/russisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kyrillisk/ukrainsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Gresk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebraisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Visuell hebraisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumensk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Søreuropeisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Tyrkisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Vestleg" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamesisk" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "_Passord:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "Kalle_namn:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Døme: MittKallenamn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Hugs passord" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Tenar:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avansert" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Kva er ditt AIM-kallenamn?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Kva er ditt AIM-passord?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Hugs passord" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Innloggings-I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Døme: brukarnamn" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Kva er din GroupWise-brukar-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Kva er ditt GroupWise-passord?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Døme: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Teiknsett:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Kva er din ICQ-UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Kva er ditt ICQ-passord?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Nettverk" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Teiknsett:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Legg til …" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Fjern" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Opp" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Ned" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Tenarar" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Kallenamn:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Passord" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Avsluttingsmelding:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Personnamn:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Brukarnamn:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Kva er ditt brukarnamn på Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Dette er ditt brukarnamn, ikkje ditt vanlege innloggingsnamn på Facebook.\n" +"Om du er facebook.com/grevling, oppgje grevling.\n" +"Bruk denne sida for å " +"velja eit brukarnamn på Facebook om du ikkje har eitt." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Kva er ditt passord på Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Kva er din ID på Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Døme: brukar@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Kva er ditt passord på Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Døme: brukar@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Res_urs:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Overkøyr tenarinnstillingane" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Bruk gammal SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Kva er din ID på Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Kva for ID på Jabber ønskjer du?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Kva er ditt passord på Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Kva for passord på Jabber ønskjer du?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "_Kallenamn:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Etternamn:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Førenamn:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "_Publisert namn:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "_Jabber-ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "E-_postadresse:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Døme: brukar@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Kva er din ID på Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Kva er ditt passord på Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatisk" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ingen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "Br_ukarnamn:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Døme brukar@min.siptenar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Alternativ for NAT-traversering" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Alternativ for mellomtenar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Diverse alternativ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN-tenar:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Oppdag STUN-tenar automatisk" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Oppdag binding" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Tenar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Alternativ for halding i live" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Mekanisme:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervall (sekund)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Brukarnamn for autentisering:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Transport:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Laus ruting" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Oversjå TLS-feil" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +#, fuzzy +msgid "Local IP Address" +msgstr "E-postadresse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Kva er din påloggings-ID for SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Kva er passordet for din SIP-konto?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Passord:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Lokaltilpassing for _romliste" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Kva er din ID på Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Kva er ditt passord på Yahoo!?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Vel …" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Vel" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Fullt namn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Telefonnummer" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "E-postadresse" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Nettstad" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Fødselsdag" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Sist sett:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Tenar:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Tilkopla frå:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "arbeid" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "heime" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "tale" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "føretrekt" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "post" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "pakke" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nytt nettverk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Vel eit IRC-nettverk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Nullstill _nettverksliste" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Vel" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ny tenar" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "Passordet vart ikkje funne" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Ny %s-konto" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d sekund sidan" +msgstr[1] "%d sekund sidan" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minutt sidan" +msgstr[1] "%d minutt sidan" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d time sidan" +msgstr[1] "%d timar sidan" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dag sidan" +msgstr[1] "%d dagar sidan" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d veke sidan" +msgstr[1] "%d veker sidan" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d månad sidan" +msgstr[1] "%d månadar sidan" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "i framtida" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identifikator:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Alias:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Personleg informasjon" diff --git a/telepathy-account-widgets/po/oc.po b/telepathy-account-widgets/po/oc.po new file mode 100644 index 0000000..c425b52 --- /dev/null +++ b/telepathy-account-widgets/po/oc.po @@ -0,0 +1,939 @@ +# Translation of oc.po to Occitan +# Occitan translation of tp-account-widgets. +# Copyright (C) 2003-2007 The Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# Yannig Marchegay (Kokoyaya) , 2006-2008, 2010. +# Cédric Valmary (totenoc.eu) , 2016. +msgid "" +msgstr "" +"Project-Id-Version: oc\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-10 16:38+0000\n" +"PO-Revision-Date: 2016-05-08 18:53+0200\n" +"Last-Translator: Cédric Valmary (totenoc.eu) \n" +"Language-Team: Tot En Òc\n" +"Language: oc\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Repertòri per defaut ont causir un avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Darrièr repertòri ont un avatar es estat causit." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Locala actuala" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armèni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltic" + +# +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europèu central" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinés simplificat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinés tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croat" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirillic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirillic/Rus" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirillic/Ucraïnian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grèc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Ebrieu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Ebrieu visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Indi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Corean" + +# +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordic" + +# +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persan" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romanés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europèu del Sud" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandés" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +# +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidental" + +# +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamés" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Sen_hal" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nom de l'ecran :" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemple : MonNomEcran" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Memorizar lo senhal" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Pòrt" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avançat" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Quin es vòstre escais AIM ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Quin es vòstre senhal AIM ?" + +#: ../tp-account-widgets/tpaw-account-widget.c:661 +msgid "Account" +msgstr "Compte" + +# +#: ../tp-account-widgets/tpaw-account-widget.c:662 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Senhal" + +# +#: ../tp-account-widgets/tpaw-account-widget.c:663 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +# +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Pòrt" + +#: ../tp-account-widgets/tpaw-account-widget.c:748 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:805 +#, c-format +msgid "%s:" +msgstr "%s:" + +# +#: ../tp-account-widgets/tpaw-account-widget.c:1395 +msgid "Username:" +msgstr "Nom d'utilizaire :" + +#: ../tp-account-widgets/tpaw-account-widget.c:1722 +msgid "A_dd" +msgstr "Apon_dre" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_pply" +msgstr "A_plicar" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2168 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s sus %2$s" + +# +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "Compte %s" + +# +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "Compte novèl" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Identificant I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemple : nom_utilizaire" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Quin es vòstre identificant d'utilizaire GroupWise ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Quin es vòstre senhal GroupWise ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemple : 123456789" + +# +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Jòc de c_aractèrs" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Quin es vòstre UIN ICQ ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Quin es vòstre senhal ICQ ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Ret" + +# +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Jòc de caractèrs" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Apondre..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Suprimir" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Naut" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Bas" + +# +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidors" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +# +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Escais" + +# +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Messatge de sortida" + +# +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nom vertadièr" + +# +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nom d'utilizaire" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Quin es vòstre escais IRC ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Quin es vòstre nom d'utilizaire Facebook ?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Quin es vòstre senhal Facebook ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Quin es vòstre identificant Google ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemple : utilizaire@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Quin es vòstre senhal Google ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemple : nom@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnorar las errors de certificat SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_tat" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Resso_rsa" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Chifr_ament requesit (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Otrapassar los paramètres del servidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Utilizar l'ancian SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Quin es vòstre identificant Jabber ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Quin es vòstre senhal Jabber ?" + +# +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Esca_is" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Nom d'ostal" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Pichon nom" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nom _publicat" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Identificant _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Adreça electronica" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemple : nom@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Quin es vòstre identificant Windows Live ?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Quin es vòstre senhal Windows Live ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +# +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "S'enregistrar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcions" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Pas cap" + +# +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Nom d'_utilizaire" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemple : nom@mon.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opcions de percors NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opcions de servidor mandatari" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opcions divèrsas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descobrir automaticament lo servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descobrir la ligason" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opcions de connexions persistentas" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanisme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (segondas)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nom d'utilizaire per l'autentificacion" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transpòrt" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Loose Routing (rotatge non estricte)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Adreça IP locala" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Quin es vòstre identificant de connexion SIP ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Quin es vòstre senhal de compte SIP ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Senhal" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_dentificant Yahoo! :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Locala de la lista de las _salas :" + +# +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Jòc de c_aractèrs :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Pòrt :" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Quin es vòstre identificant Yahoo! ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Quin es vòstre senhal Yahoo! ?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn't convert image" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn't save picture to file" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture..." +msgstr "" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Pas cap d'imatge" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Imatges" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Totes los fichièrs" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Seleccionar..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Seleccionar" + +# +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nom complet" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Numèro de telefòn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Adreça electronica" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Site web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Anniversari" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "" + +# +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Messatge de sortida :" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "trabalh" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "ostal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "votz" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferit" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Ret novèla" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Seleccionar" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "servidor novèl" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Impossible de trobar lo senhal" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +# +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Compte novèl %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "fa %d segonda" +msgstr[1] "fa %d segondas" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "fa %d minuta" +msgstr[1] "fa %d minutas" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "fa %d ora" +msgstr[1] "fa %d oras" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "fa %d jorn" +msgstr[1] "fa %d jorns" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "fa %d setmana" +msgstr[1] "fa %d setmanas" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "fa %d mes" +msgstr[1] "fa %d meses" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "dins l'avenidor" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificant" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Aliàs" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Detalhs personals" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Personas a proximitat" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japon" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +# +#, fuzzy +#~ msgid "Remember Password" +#~ msgstr "Senhal :" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Qué volètz coma identificant Jabber ?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Qué volètz coma senhal Jabber ?" diff --git a/telepathy-account-widgets/po/or.po b/telepathy-account-widgets/po/or.po new file mode 100644 index 0000000..ba818a4 --- /dev/null +++ b/telepathy-account-widgets/po/or.po @@ -0,0 +1,826 @@ +# translation of or.po to Oriya +# Oriya translation of tp-account-widgets. +# Copyright (C) 2009 tp-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# +# Manoj Kumar Giri , 2009, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: or\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-15 12:11+0530\n" +"Last-Translator: Manoj Kumar Giri \n" +"Language-Team: Oriya \n" +"Language: or\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"\n" +"X-Generator: Lokalize 1.5\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "ଅବତାର ଚିତ୍ର ଚୟନ କରିବା ପାଇଁ ପୂର୍ବ ନିର୍ଦ୍ଧାରିତ ଡ଼ିରେକ୍ଟରୀ" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "ଅଭତାର ପ୍ରତିଛବି ଦ୍ୱାରା ବଛାଯାଇଥିବା ଶେଷ ଡିରେକ୍ଟୋରୀ।" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "ପ୍ରଚଳିତ ଲୋକେଲ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "ଆରବୀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ଆର୍ମେନିୟାନ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "ବାଲଟିକ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "କେଳ୍ଟିକ୍" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "କେନ୍ଦ୍ର ୟୁରୋପୀୟ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ଚୀନୀୟ ସରଳ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "ଚୀନୀୟ ପାରମ୍ପରିକ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "କ୍ରୋଏସିଆନ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ସିରୀଲିକ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ସିରିଲିକ/ରୁଷୀୟ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ସିରିଲିକ/ଇଉକ୍ରେନୀୟ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ଜ୍ଯୋର୍ଜିୟାନ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ଗ୍ରୀକ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ଗୁଜୁରାଟୀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ଗୁରୂମୂଖୀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ହିବ୍ରୁ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ହିବ୍ରୁ ଚାକ୍ଷୁଷ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ହିନ୍ଦୀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ଆଇସଲ୍ଯାଣ୍ଡିକ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ଜାପାନୀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "କୋରିଆନ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "ନର୍ଡିକ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ପାର୍ସୀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "ରୋମାନୀୟାନ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "ଦକ୍ଷିଣ ୟୁରୋପୀୟ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "ଥାଈ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ତୁର୍କୀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "ୟୁନିକୋଡ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "ପାଶ୍ଚାତ୍ଯ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ଭିୟେତନାମୀ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "ପ୍ରବେଶ ସଙ୍କେତ (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "ପରଦା ନାମ (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ଉଦାହରଣ: ମୋର ପରଦା ନାମ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "ପ୍ରବେଶ ସଂକେତ ମନେରଖନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "ସଂଯୋଗିକୀ (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "ସର୍ଭର (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "ଉନ୍ନତ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "ଆପଣଙ୍କର AIM ପରଦା ନାମ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "ଆପଣଙ୍କର AIM ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "ପ୍ରବେଶ ସଂକେତ ମନେପକାଅ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "ଲଗଇନ୍ ID (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ଉଦାହରଣ: ଚାଳକ ନାମ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "ଆପଣଙ୍କର GroupWise ଚାଳକ ID କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "ଆପଣଙ୍କର GroupWise ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQUIN (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ଉଦାହରଣ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "ଅକ୍ଷରମାଳା (_a)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ଆପଣଙ୍କର ICQ UIN କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ଆପଣଙ୍କର ICQ ପ୍ରବେଶସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ନେଟୱର୍କ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "ଅକ୍ଷରମାଳା" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "ଯୋଗକରନ୍ତୁ…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "ଅପସାରଣ କରନ୍ତୁ " + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ଉପର" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "ତଳ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "ସେବକ ମାନେ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"ଅଧିକାଂଶ IRC ସର୍ଭରଗୁଡ଼ିକ କୌଣସି ପ୍ରବେଶ ସଂକେତ ଆବଶ୍ୟକ କରିନଥାଏ, ତେଣୁ ଯଦି ଆପଣ ନିଶ୍ଚିତ ନାହାନ୍ତି, " +"ତେବେ ପ୍ରବେଶ ସଂକେତ ଭରଣ କରନ୍ତୁ ନାହିଁ।" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "ଡାକ ନାମ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "ପ୍ରବେଶ ସଙ୍କେତ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "ବିଦାୟ ସନ୍ଦେଶ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "ପ୍ରକୃତ ନାମ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ଚାଳକ ନାମ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "କେଉଁ IRC ନେଟୱାର୍କ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "ଆପଣଙ୍କର IRC ନାମ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "ଆପଣଙ୍କର Facebook ଚାଳକ ନାମ କଣ?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"ଏହା ଆପଣଙ୍କର ଚାଳକ ନାମ, ଆପଣଙ୍କର ସାଧାରଣ Facebook ଲଗଇନ ନୁହଁ।\n" +"ଯଦି ଆପଣ facebook.com/badger, ତେବେ badger ଭରଣ କରନ୍ତୁ।\n" +"Facebook ଚାଳକନାମ ବାଛିବା ପାଇଁ ଏହି " +"ପୃଷ୍ଠାକୁ ବ୍ୟବହାର କରନ୍ତୁ।" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "ଆପଣଙ୍କର Facebook ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "ଆପଣଙ୍କର Google ID କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ଉଦାହରଣ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "ଆପଣଙ୍କର Google ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ଉଦାହରଣ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL ପ୍ରମାଣପତ୍ର ତ୍ରୁଟିଗୁଡ଼ିକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "ଅଗ୍ରାଧିକାର (_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "ସମ୍ବଳ (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "ସଂଗୁପ୍ତକରଣ ଆବଶ୍ୟକ (TLS/SSL) (_y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "ସର୍ଭର ବିନ୍ୟାସକୁ ଦାବିଦେଇ ଯାଆନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "ପୁରୁଣା SSL ଉପଯୋଗ କରନ୍ତୁ (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "ଆପଣଙ୍କର ଜବ୍ବର ID କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "ଆପଣଙ୍କର ଆଶାମୁତାବକ ଜବ୍ବର ID କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "ଆପଣଙ୍କର ଜବ୍ବର ପ୍ରବେଶସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "ଆପଣଙ୍କର ଆଶାମୁତାବକ ଜବ୍ବର ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "ଡାକ ନାମ (_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "ଶେଷ ନାମ (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "ପ୍ରଥମ ନାମ (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "ପ୍ରକାଶିତ ନାମ (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ଜବ୍ବର ID (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ଇ-ମେଲ୍ ଠିକଣା (_m)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ଉଦାହରଣ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "ଆପଣଙ୍କର Windows ଜୀବନ୍ତ ID କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "ଆପଣଙ୍କର Windows ଜୀବନ୍ତ ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "ସ୍ୱୟଂଚାଳିତ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "ପଞ୍ଜୀକରଣ କରନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ବିକଳ୍ପଗୁଡିକ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "କିଛି ନାହିଁ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ଚାଳକ ନାମ (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ଉଦାହରଣ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "ଏହି ଖାତାକୁ ଘୋରୋଇ ଫୋନ ଏବଂ ମୋବାଇଲ ଫୋନ ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ (_l)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ଚକ୍ର ବିକଳ୍ପଗୁଡିକ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ପ୍ରକ୍ସି ବିକଳ୍ପଗୁଡିକ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "ବିବିଧ ବିକଳ୍ପଗୁଡିକ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN ସର୍ଭର" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "ସ୍ୱୟଂଚାଳିତ ଭାବରେ STUN ସର୍ଭରକୁ ଆବିଷ୍କାର କରନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "ବନ୍ଧନକୁ ଆବିଷ୍କାର କରନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "ସେବକ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "ଜୀବନ୍ତ ରଖିବା ବିକଳ୍ପଗୁଡ଼ିକ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "ଯନ୍ତ୍ରକୌଶଳ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "ଅନ୍ତରାଳ ସମୟ (ସେକଣ୍ଡରେ)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "ବୈଧିକରଣ ଚାଳକ ନାମ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "ପରିବହନ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ହାଲୁକା ରାଉଟିଙ୍ଗ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS ତ୍ରୁଟିକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "ସଂଯୋଗିକୀ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "ସ୍ଥାନୀୟ IP ଠିକଣା" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "ଆପଣଙ୍କର SIP ଲଗଇନ ID କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "ଆପଣଙ୍କର SIP ଖାତା ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "ପ୍ରବେଶ ସଙ୍କେତ (_w):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "ସମ୍ମେଳନ ଏବଂ ଚାର୍ଟକକ୍ଷ ଆମନ୍ତ୍ରଣଗୁଡ଼ିକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "କକ୍ଷ ତାଲିକା ଲୋକେଲ (_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "ଅକ୍ଷରମାଳା (_a):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "ସଂଯୋଗିକୀ (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "ଆପଣଙ୍କର Yahoo! ID କଣ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "ଆପଣଙ୍କର Yahoo! ପ୍ରବେଶ ସଂକେତ କଣ?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "ବାଛନ୍ତୁ..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "ବାଛନ୍ତୁ (_S)..." + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "ପୁରା ନାମ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "ଫୋନ କ୍ରମ ସଂଖ୍ୟା" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ଇ-ମେଲ ଠିକଣା" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "ୱେବସାଇଟ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "ଜନ୍ମଦିନ" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "ଅନ୍ତିମ ପରଦା:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "ସର୍ଭର:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "ଏତିରୁ ସଂଯୋଗିତ:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "ବିଦାୟ ସନ୍ଦେଶ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "କାର୍ଯ୍ଯ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "ମୂଳସ୍ଥାନ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "ମୋବାଇଲ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "ସ୍ୱର" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "ପସନ୍ଦ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "ଡାକଘର" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "ପାର୍ସଲ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "ନୁଆ ଜାଲକ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "ଏକ IRC ନେଟୱର୍କ ବାଛନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "ନେଟୱର୍କ ତାଲିକାକୁ ପୁନସ୍ଥାପନ କରନ୍ତୁ ( _N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "ବାଛନ୍ତୁ" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ନୁଆ ସର୍ଭର" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "ପ୍ରବେଶ ସଂକେତ ମିଳିଲା ନାହିଁ" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s ପାଇଁ IM ଖାତା ପ୍ରବେଶ ସଂକେତ (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "ଚାର୍ଟରୁମ '%s' ପାଇଁ ଖାତା %s ରେ ପ୍ରବେଶ ସଂକେତ (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "ନୁଆ %s ଖାତା" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d ସେକଣ୍ଡ ପୂର୍ବରୁ" +msgstr[1] "%d ସେକଣ୍ଡ ପୂର୍ବରୁ" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d ମିନଟ ପୂର୍ବେ" +msgstr[1] "%d ମିନଟ ପୂର୍ବେ" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ଘଣ୍ଟା ପୂର୍ବରୁ" +msgstr[1] "%d ଘଣ୍ଟା ପୂର୍ବରୁ" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ଦିନ ପୂର୍ବେ" +msgstr[1] "%d ଦିନ ପୂର୍ବେ" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d ସପ୍ତାହ ପୂର୍ବେ" +msgstr[1] "%d ସପ୍ତାହ ପୂର୍ବେ" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ମାସ ପୂର୍ବେ" +msgstr[1] "%d ମାସ ପୂର୍ବେ" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ଭବିଷ୍ୟତରେ" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "ଆପଣଙ୍କର ବ୍ୟକ୍ତିଗତ ସୂଚନାକୁ ସମ୍ପାଦନ କରିବା ପାଇଁ ଅନଲାଇନ ଯାଆନ୍ତୁ।" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "ପରିଚାୟକ" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "ଉପନାମ" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "ବ୍ୟକ୍ତିଗତ ବିବରଣୀ" diff --git a/telepathy-account-widgets/po/pa.po b/telepathy-account-widgets/po/pa.po new file mode 100644 index 0000000..8f36e95 --- /dev/null +++ b/telepathy-account-widgets/po/pa.po @@ -0,0 +1,939 @@ +# translation of tp-account-widgets.HEAD.po to Punjabi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Amanpreet Singh Alam , 2009. +# A S Alam , 2009, 2010, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: empathy.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-08-22 13:40+0000\n" +"PO-Revision-Date: 2013-08-25 18:14-0500\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi/Panjabi \n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Punjabi\n" +"X-Poedit-Country: India\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "ਅਵਤਾਰ ਚਿੱਤਰ ਚੁਣਨ ਵਾਸਤੇ ਡਿਫਾਲਟ ਡਾਇਰੈਕਟਰੀ" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "ਆਖਰੀ ਡਾਇਰੈਕਟਰੀ, ਜਿੱਥੇ ਅਵਤਾਰ ਚਿੱਤਰ ਚੁਣਿਆ ਗਿਆ ਸੀ।" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "ਮੌਜੂਦਾ ਲੋਕੇਲ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "ਅਰਬੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ਅਰਮੀਨੀਆਈ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "ਬਲਾਟਿਕ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "ਸੀਲਟਿਕ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "ਕੇਂਦਰੀ ਯੂਰਪ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ਚੀਨੀ ਸਧਾਰਨ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "ਚੀਨੀ ਪੁਰਾਤਨ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ਕਰੋਆਟੀਆਈ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ਸਿਰਲਿਕ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ਸਿਰਲਿਕ/ਰੂਸੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ਸਿਰਲਿਕ/ਯੂਕਰੇਨੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ਜਾਰਜੀਆਈ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ਗਰੀਕ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ਗੁਜਰਾਤੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ਗੁਰਮੁਖੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ਹੈਬਰਿਊ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ਹੈਬਰਿਊ ਦਿੱਖ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ਹਿੰਦੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ਆਈਸਲੈਂਡਿਕ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ਜਾਪਾਨੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "ਕੋਰੀਆਈ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "ਨੋਰਡਿਕ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "ਫਾਰਸੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "ਰੋਮਾਨੀਆਈ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "ਦੱਖਣੀ ਯੂਰਪੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "ਥਾਈ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ਤੁਰਕ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "ਯੂਨੀਕੋਡ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "ਦੱਖਣੀ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ਵੀਅਤਨਾਮੀ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "ਪਾਸਵਰਡ(_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "ਸਕਰੀਨ ਨਾਂ(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ਜਿਵੇਂ: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "ਪੋਰਟ(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "ਸਰਵਰ(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "ਤਕਨੀਕੀ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "ਤੁਹਾਡਾ AIM ਸਕਰੀਨ ਨਾਂ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "ਤੁਹਾਡਾ AIM ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "ਅਕਾਊਂਟ" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "ਪਾਸਵਰਡ" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "ਸਰਵਰ" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "ਪੋਰਟ" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +#| msgid "Username" +msgid "Username:" +msgstr "ਯੂਜ਼ਰ ਨਾਂ:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "ਸ਼ਾਮਲ(_d)" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "ਲਾਗੂ ਕਰੋ(_p)" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%2$s ਉੱਤੇ %1$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +#| msgid "New %s account" +msgid "%s Account" +msgstr "%s ਅਕਾਊਂਟ" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +#| msgid "New %s account" +msgid "New account" +msgstr "ਨਵਾਂ ਅਕਾਊਂਟ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "ਲਾਗਇਨ I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ਜਿਵੇਂ ਕਿ: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "ਤੁਹਾਡਾ ਗਰੁੱਪਵਾਈਜ਼ ਯੂਜ਼ਰ ID ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "ਤੁਹਾਡਾ ਗਰੁੱਪਵਾਈਜ਼ ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ਜਿਵੇਂ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "ਅੱਖਰ ਸੈੱਟ(_a)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ਤੁਹਾਡਾ ICQ UIN ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ਤੁਹਾਡਾ ICQ ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ਨੈੱਟਵਰਕ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "ਅੱਖਰ ਸੈੱਟ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "…ਸ਼ਾਮਲ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "ਹਟਾਓ" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ਉੱਤੇ" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "ਹੇਠਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "ਸਰਵਰ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"ਬਹੁਤੇ IRC ਸਰਵਰਾਂ ਲਈ ਪਾਸਵਰਡ ਨਹੀਂ ਚਾਹੀਦਾ ਹੈ, ਇਸ ਕਰਕੇ ਜੇ ਤੁਹਾਨੂੰ ਪੱਕਾ ਪਤਾ ਨਾ " +"ਹੋਵੇ ਤਾਂ ਪਾਸਵਰਡ " +"ਨਾ ਦਿਉ।" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "ਨਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "ਬੰਦ ਕਰਨ ਸੁਨੇਹਾ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "ਅਸਲੀ ਨਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ਯੂਜ਼ਰ ਨਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "ਕਿਹੜਾ IRC ਨੈੱਟਵਰਕ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "ਤੁਹਾਡਾ IRC ਨਾਂ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "ਤੁਹਾਡਾ ਫੇਸਬੁੱਕ ਯੂਜ਼ਰ ਨਾਂ ਕੀ ਹੈ?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"ਇਹ ਤੁਹਾਡਾ ਯੂਜ਼ਰ ਨਾਂ ਹੈ, ਤੁਹਾਡਾ ਸਧਾਰਨ ਫੇਸਬੁੱਕ ਲਾਗਇਨ ਨਹੀਂ।\n" +"ਜੇ ਤੁਸੀਂ facebook.com/badger ਹੋ ਤਾਂ badger ਦਿਓ।\n" +"ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਫੇਸਬੁੱਕ ਯੂਜ਼ਰ ਨਾਂ ਨਹੀਂ ਹੈ ਤਾਂ ਇਹ ਚੁਣਨ ਵਾਸਤੇ ਇਹ ਪੇਜ਼ ਵਰਤੋਂ।" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "ਤੁਹਾਡਾ ਫੇਸਬੁੱਕ ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "ਤੁਹਾਡਾ ਗੂਗਲ ID ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ਜਿਵੇਂ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "ਤੁਹਾਡਾ ਗੂਗਲ ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ਜਿਵੇਂ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL ਸਰਟੀਫਿਕੇਟ ਗਲਤੀਆਂ ਅਣਡਿੱਠੀਆਂ(_g)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "ਤਰਜੀਹ(_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "ਸਰੋਤ(_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ ਚਾਹੀਦੀ ਹੈ (TLS/SSL)(_y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "ਸਰਵਰ ਸੈਟਿੰਗ ਅਣਡਿੱਠੀ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "ਪੁਰਾਣੀ SS_L ਵਰਤੋਂ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "ਤੁਹਾਡਾ ਜੱਬਰ ID ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your Jabber password?" +msgstr "ਤੁਹਾਡਾ ਜੱਬਰ ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "ਨਾਂ(_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "ਆਖਰੀ ਨਾਂ(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "ਪਹਿਲਾਂ ਨਾਂ(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "ਪਰਕਾਸ਼ਿਤ ਕੀਤਾ ਨਾਂ(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ਜੱਬਰ ID(_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ਈਮੇਲ ਐਡਰੈੱਸ(_m)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ਜਿਵੇਂ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "ਤੁਹਾਡਾ ਵਿੰਡੋਜ਼ ਲਾਈਵ ID ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "ਤੁਹਾਡਾ ਵਿੰਡੋਜ਼ ਲਾਈਵ ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "ਆਟੋ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "ਰਜਿਸਟਰ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ਚੋਣਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ਕੋਈ ਨਹੀਂ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ਯੂਜ਼ਰ ਨਾਂ(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ਜਿਵੇਂ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "ਇਹ ਅਕਾਊਂਟ ਨੂੰ ਲੈਂਡਲਾਈਨ ਅਤੇ ਮੋਬਾਇਲ ਫੋਨ ਉੱਤੇ ਕਾਲ ਕਰਨ ਲਈ ਵਰਤੋਂ(_l)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ਟਰਾਂਸਵਰਸਲ ਚੋਣਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ਪਰਾਕਸੀ ਚੋਣਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "ਫੁਟਕਲ ਚੋਣਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN ਸਰਵਰ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN ਸਰਵਰ ਆਟੋਮੈਟਿਕ ਹੀ ਲੱਭੋ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "ਬਾਈਡਿੰਗ ਖੋਜ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "ਜਾਰੀ ਰੱਖਣ ਚੋਣਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "ਫੰਘ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "ਅੰਤਰਾਲ (ਸਕਿੰਟ)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "ਪਰਮਾਣਕਿਤ ਯੂਜ਼ਰਨਾਂ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "ਟਰਾਂਸਪੋਰਟ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ਹਲਕਾ ਰੂਟਿੰਗ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS ਗਲਤੀਆਂ ਅਣਡਿੱਠੀਆਂ ਕਰੋ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "ਲੋਕਲl IPਐਡਰੈੱਸ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "ਤੁਹਾਡਾ SIP ਲਾਗਇਨ ID ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "ਤੁਹਾਡਾ SIP ਅਕਾਊਂਟ ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "ਪਾਸਵਰਡ(_w):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "ਯਾਹੂ! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "ਕਨਫਰੰਸ ਅਤੇ ਗੱਲਬਾਤ ਰੂਮ ਸੱਦੇ ਅਣਡਿੱਠੇ(_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "ਰੂਮ ਲਿਸਟ ਭਾਸ਼ਾ(_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "ਅੱਖਰ ਸੈੱਟ(_a):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "ਪੋਰਟ(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "ਤੁਹਾਡਾ ਯਾਹੂ! ID ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "ਤੁਹਾਡਾ ਯਾਹੂ! ਪਾਸਵਰਡ ਕੀ ਹੈ?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:539 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:624 +msgid "Couldn't convert image" +msgstr "ਚਿੱਤਰ ਨੂੰ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:540 +msgid "None of the accepted image formats are supported on your system" +msgstr "ਕੋਈ ਵੀ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਚਿੱਤਰ ਫਾਰਮੈਟ ਤੁਹਾਡੇ ਸਿਸਟਮ ਵਲੋਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:900 +msgid "Couldn't save picture to file" +msgstr "ਤਸਵੀਰ ਨੂੰ ਫਾਇਲ ਵਿੱਚ ਸੰਭਾਲਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1024 +msgid "Select Your Avatar Image" +msgstr "ਆਪਣਾ ਅਵਤਾਰ ਲੇਖ ਚੁਣੋ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1032 +msgid "Take a picture..." +msgstr "...ਤਸਵੀਰ ਲਵੋ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1045 +msgid "No Image" +msgstr "ਕੋਈ ਚਿੱਤਰ ਨਹੀਂ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1102 +msgid "Images" +msgstr "ਚਿੱਤਰ" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1106 +msgid "All Files" +msgstr "ਸਭ ਫਾਇਲਾਂ" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "...ਚੁਣੋ" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "ਚੁਣੋ(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +#| msgid "Full name" +msgid "Full Name" +msgstr "ਪੂਰਾ ਨਾਂ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#| msgid "Phone number" +msgid "Phone Number" +msgstr "ਫੋਨ ਨੰਬਰ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#| msgid "E-mail address" +msgid "E-mail Address" +msgstr "ਈਮੇਲ ਐਡਰੈੱਸ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "ਵੈੱਬਸਾਈਟ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "ਜਨਮਦਿਨ" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#| msgid "Last seen:" +msgid "Last Seen:" +msgstr "ਆਖਰੀ ਵਾਰ ਵੇਖਿਆ/ਵੇਖੀ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "ਸਰਵਰ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +#| msgid "Connected from:" +msgid "Connected From:" +msgstr "ਇਸ ਤੋਂ ਕੁਨੈਕਟ ਹੈ:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +#| msgid "Away message:" +msgid "Away Message:" +msgstr "ਦੂਰ ਸੁਨੇਹਾ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "ਕੰਮ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "ਘਰ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "ਮੋਬਾਈਲ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "ਪਸੰਦ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "ਪਸੰਦ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "ਡਾਕ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "ਪਾਰਸਲ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "ਨਵਾਂ ਨੈੱਟਵਰਕ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC ਨੈੱਟਵਰਕ ਚੁਣੋ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "ਨੈੱਟਵਰਕ ਲਿਸਟ ਮੁੜ-ਸੈੱਟ ਕਰੋ(_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "ਚੁਣੋ" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ਨਵਾਂ ਸਰਵਰ" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) ਲਈ IM ਅਕਾਊਂਟ ਪਾਸਵਰਡ" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "ਗੱਲਬਾਤ ਰੂਮ '%s' ਵਿੱਚ %s (%s) ਅਕਾਊਂਟ ਲਈ ਪਾਸਵਰਡ" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "ਨਵਾਂ %s ਅਕਾਊਂਟ" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d ਸਕਿੰਟ ਪਹਿਲਾਂ" +msgstr[1] "%d ਸਕਿੰਟ ਪਹਿਲਾਂ" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d ਮਿੰਟ ਪਹਿਲਾਂ" +msgstr[1] "%d ਮਿੰਟ ਪਹਿਲਾਂ" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ਘੰਟਾ ਪਹਿਲਾਂ" +msgstr[1] "%d ਘੰਟੇ ਪਹਿਲਾਂ" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ਦਿਨ ਪਹਿਲਾਂ" +msgstr[1] "%d ਦਿਨ ਪਹਿਲਾਂ" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d ਹਫ਼ਤਾ ਪਹਿਲਾਂ" +msgstr[1] "%d ਹਫ਼ਤੇ ਪਹਿਲਾਂ" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ਮਹੀਨਾ ਪਹਿਲਾਂ" +msgstr[1] "%d ਮਹੀਨੇ ਪਹਿਲਾਂ" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ਭਵਿੱਖ ਵਿੱਚ" + +#: ../tp-account-widgets/tpaw-user-info.c:423 +msgid "Go online to edit your personal information." +msgstr "ਆਪਣੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਸੋਧਣ ਲਈ ਆਨਲਾਈਨ ਜਾਉ।" + +#: ../tp-account-widgets/tpaw-user-info.c:507 +msgid "These details will be shared with other users on this chat network." +msgstr "ਇਹ ਵੇਰਵੇ ਨੂੰ ਇਹ ਗੱਲਬਾਤ ਨੈੱਟਵਰਕ ਉੱਤੇ ਹੋਰ ਯੂਜ਼ਰ ਨਾਲ ਸਾਂਝਾ ਕੀਤਾ ਜਾਵੇਗਾ।" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:516 +msgid "Identifier" +msgstr "ਪਛਾਣਕਰਤਾ" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:524 +msgid "Alias" +msgstr "ਉਪ-ਨਾਂ" + +#: ../tp-account-widgets/tpaw-user-info.c:541 +msgid "Personal Details" +msgstr "ਨਿੱਜੀ ਵੇਰਵਾ" + +#: ../tp-account-widgets/tpaw-utils.c:115 +msgid "People Nearby" +msgstr "ਨੇੜਲੇ ਲੋਕ" + +#: ../tp-account-widgets/tpaw-utils.c:120 +#| msgid "Yahoo! I_D:" +msgid "Yahoo! Japan" +msgstr "ਯਾਹੂ! ਜਾਪਾਨ" + +#: ../tp-account-widgets/tpaw-utils.c:156 +msgid "Google Talk" +msgstr "ਗੂਗਲ ਟਾਕ" + +#: ../tp-account-widgets/tpaw-utils.c:157 +msgid "Facebook Chat" +msgstr "ਫੇਸਬੁੱਕ ਚੈਟ" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "ਤੁਹਾਡਾ ਚਾਹੀਦਾ ਜੱਬਰ ID ਕੀ ਹੈ?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "ਤੁਹਾਡਾ ਚਾਹੀਦਾ ਜੱਬਰ ਪਾਸਵਰਡ ਕੀ ਹੈ?" diff --git a/telepathy-account-widgets/po/pl.po b/telepathy-account-widgets/po/pl.po new file mode 100644 index 0000000..1afa40a --- /dev/null +++ b/telepathy-account-widgets/po/pl.po @@ -0,0 +1,921 @@ +# Polish translation for telepathy-account-widgets. +# Copyright © 2003-2016 the telepathy-account-widgets authors. +# This file is distributed under the same license as the telepathy-account-widgets package. +# Artur Flinta , 2003. +# Tomasz Dominikowski , 2007-2009. +# Wadim Dziedzic , 2008. +# Piotr Drąg , 2009-2016. +# Asia Słowik , 2011. +# Aviary.pl , 2007-2016. +# +msgid "" +msgstr "" +"Project-Id-Version: telepathy-account-widgets\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-10-06 18:07+0200\n" +"PO-Revision-Date: 2016-10-06 18:08+0200\n" +"Last-Translator: Piotr Drąg \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Domyślny katalog, z którego są wybierane awatary" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Ostatni katalog, z którego był wybierany awatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Bieżące ustawienia językowe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "arabskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ormiańskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "bałtyckie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "celtyckie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "środkowoeuropejskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "chińskie uproszczone" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "chińskie tradycyjne" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "chorwackie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "cyrylica" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "cyrylica/rosyjskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "cyrylica/ukraińskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "gruzińskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "greckie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "gudżarackie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "hebrajskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "hebrajskie wizualne" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "islandzkie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "japońskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "koreańskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "nordyckie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "perskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "rumuńskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "południowoeuropejskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "tajskie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "tureckie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "unikod" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "zachodnie" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "wietnamskie" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Hasło" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nazwa użytkownika" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Przykład: MojaNazwaUżytkownika" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Zapamiętywanie hasła" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Serwer" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Zaawansowane" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Nazwa użytkownika AIM:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Hasło AIM:" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Hasło" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Serwer" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Nazwa użytkownika:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "_Dodaj" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "Za_stosuj" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s na %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Konto serwisu %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nowe konto" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Id_entyfikator logowania" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Przykład: nazwa-użytkownika" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Identyfikator użytkownika GroupWise:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Hasło GroupWise:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Przykład: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Zest_aw znaków" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "UIN ICQ:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Hasło ICQ:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Sieć" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Zestaw znaków" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Dodaj…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Usuń" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "W górę" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "W dół" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serwery" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Większość serwerów IRC nie wymaga hasła, więc w razie niepewności nie należy " +"go podawać." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Pseudonim" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Komunikat podczas zakończenia" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Imię i nazwisko" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nazwa użytkownika" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Sieć IRC:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Pseudonim IRC:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Nazwa użytkownika serwisu Facebook:" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"To jest nazwa użytkownika, a nie login serwisu Facebook.\n" +"Jeśli używane jest facebook.com/badger, należy wpisać badger.\n" +"Należy użyć tej strony, " +"aby wybrać nazwę użytkownika serwisu Facebook, jeśli jeszcze jej nie " +"ustawiono." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Hasło serwisu Facebook:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Identyfikator Google:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Przykład: użytkownik@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Hasło Google:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Przykład: użytkownik@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "Ig_norowanie błędów certyfikatu SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pri_orytet" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Zasób" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Wymagane szyfrowanie (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Zastępuje ustawienia serwera" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Stare szyfrowanie SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Identyfikator Jabbera:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Hasło Jabbera:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Pseu_donim" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "Na_zwisko" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "I_mię" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nazwa _opublikowana" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Identyfikator Ja_bbera" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Adres _e-mail" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Przykład: użytkownik@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Identyfikator Windows Live:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Hasło Windows Live:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatycznie" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Rejestrator" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opcje" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Brak" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Nazwa _użytkownika" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Przykład: użytkownik@mój.serwer.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Użycie tego konta do połączeń na telefony _stacjonarne i komórkowe" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opcje przechodzenia NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opcje pośrednika" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Różne opcje" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Serwer STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Automatyczne wykrywanie serwera STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Wykrywanie dowiązywania" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opcje „Keep-Alive”" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanizm" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Czas między aktualizacjami (w sekundach)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nazwa użytkownika uwierzytelnienia" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Swobodne trasowanie" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorowanie błędów TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokalny adres IP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Identyfikator loginu SIP:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Hasło konta SIP:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Hasło:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Id_entyfikator Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Ig_norowanie zaproszeń konferencyjnych i pokoi rozmów" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Ustawienia językowe listy pokoi:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Zest_aw znaków:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Identyfikator Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Hasło Yahoo!:" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Nie można skonwertować obrazu" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" +"Żaden z akceptowanych formatów obrazu nie jest obsługiwany przez ten system" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Nie można zapisać obrazu do pliku" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Wybór obrazu awatara" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Zrób zdjęcie…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Brak obrazu" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Obrazy" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Wszystkie pliki" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Wybierz…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Wybierz" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Imię i nazwisko" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Numer telefonu" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Adres e-mail" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Strona WWW" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Urodziny" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Ostatnio widziany:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Serwer:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Połączony z:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Wiadomość podczas nieobecności:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "praca" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "dom" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "komórka" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "głosowa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferowane" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "pocztowy" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "paczka" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nowa sieć" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Wybór sieci IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Przywróć listę _sieci" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Wybierz" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nowy serwer" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Nie odnaleziono hasła" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Hasło konta komunikatora dla %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Hasło dla pokoju rozmów „%s” na koncie %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nowe konto serwisu %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d sekundę temu" +msgstr[1] "%d sekundy temu" +msgstr[2] "%d sekund temu" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minutę temu" +msgstr[1] "%d minuty temu" +msgstr[2] "%d minut temu" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d godzinę temu" +msgstr[1] "%d godziny temu" +msgstr[2] "%d godzin temu" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dzień temu" +msgstr[1] "%d dni temu" +msgstr[2] "%d dni temu" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d tydzień temu" +msgstr[1] "%d tygodnie temu" +msgstr[2] "%d tygodni temu" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d miesiąc temu" +msgstr[1] "%d miesiące temu" +msgstr[2] "%d miesięcy emu" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "w przyszłości" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Proszę przejść do trybu online, aby modyfikować informacje osobiste." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Te informacje będą widoczne dla innych użytkowników w tej sieci." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identyfikator" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Informacje osobiste" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Osoby w pobliżu" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japonia" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" diff --git a/telepathy-account-widgets/po/ps.po b/telepathy-account-widgets/po/ps.po new file mode 100644 index 0000000..edf94b7 --- /dev/null +++ b/telepathy-account-widgets/po/ps.po @@ -0,0 +1,854 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2008-11-21 03:19-0800\n" +"Last-Translator: \n" +"Language-Team: Pashto \n" +"Language: ps\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Pashto, Pushto\n" +"X-Poedit-Country: AFGHANISTAN\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "عربي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ارمني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "منځنۍ اروپايي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ساده چيني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "دوديزه چيني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "کروټي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "سېرېلېک" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "جارجي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "يوناني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ګجراتي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ګرموکي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "هېبرو" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "هندي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "اېسلېنډي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "جاپاني" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "کوريايي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "پاړسي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "رومانيايي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "سويلي يورپي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "ټايي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ترکي" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "يونيکوډ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "لويديځ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "وېټنامي" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "تېر_نويې:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "پرده _نوم:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "درشل:_" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "پالنګر:_" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +#, fuzzy +msgid "Advanced" +msgstr "بريونلې" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "تېرنويې:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "ننوت پ_ېژند:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ځال" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "ړنګول_" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "پالنګر" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "ستاېنوم" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "تېرنويې:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "د پرېښودو استوزه:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "ار نوم:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "کارننوم:_" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr ":سرچ_ينه" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "ستاېنوم" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "وروستی نوم:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "لومړی نوم:_" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "جېبر پېژندل:_" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "لويديځ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "کارننوم:_" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "پالنګر" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "پالنګر" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "کرونه پاتې راغله" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "درشل" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "تېر_نويې:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "ياهو پ_ېژند:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "درشل:_" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "ټاکل" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "ټاکل" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "بشپړ نوم:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "ګورت پاڼه:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "زوکړه:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "وروستی نوم:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "پالنګر:_" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "نښلېدلی" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "استوزه ساتل" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "ځال" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "غوراوي" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "نوی ځال" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +#, fuzzy +msgid "Choose an IRC network" +msgstr "ځال جوړول IRC نوی" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "ټاکل" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "نوی پالنګر" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "ګڼون %s نوی" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "اړيکلور سپړاوي" diff --git a/telepathy-account-widgets/po/pt.po b/telepathy-account-widgets/po/pt.po new file mode 100644 index 0000000..2732232 --- /dev/null +++ b/telepathy-account-widgets/po/pt.po @@ -0,0 +1,928 @@ +# tp-account-widgets's Portuguese translation +# Copyright © 2003, 2004 gossip +# Copyright © 2008, 2009, 2010, 2011, 2012, 2013 tp-account-widgets +# This file is distributed under the same license as the tp-account-widgets package. +# +# Duarte Loreto , 2003, 2004, 2008, 2009, 2010, 2011, 2012, 2013. +# Tiago Santos , 2014 - 2016. +# Sérgio Cardeira , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: 3.10\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-10 18:37+0100\n" +"Last-Translator: Tiago Santos \n" +"Language-Team: Português \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Pasta predefinida de onde selecionar uma imagem de avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "A última pasta de onde foi selecionada uma imagem de avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Configuração regional atual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Árabe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Arménio" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Báltico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europeu Central" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinês Simplificado" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinês Tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirílico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirílico/Russo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirílico/Ucraniano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgiano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grego" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreu Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindú" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nórdico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romeno" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europeu do Sul" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turco" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Ocidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Senha" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nome de avatar" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemplo: MeuNomeVisível" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Recordar senha" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Porta" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avançado" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Qual é o seu nome visível AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Qual é a sua senha AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Conta" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Senha" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Porta" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Utilizador:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "A_dicionar" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "A_plicar" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s no %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Conta %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nova conta" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D de sessão" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemplo: utilizador" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Qual é o seu ID de utilizador do GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Qual é a sua senha do GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemplo: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Conjunto de c_aracteres" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Qual é o seu UIN do ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Qual é a sua senha do ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rede" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Conjunto de caracteres" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Adicionar…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Remover" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Acima" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Abaixo" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidores" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"A maioria dos servidores IRC não requer uma senha, pelo que se não tem a " +"certeza, não introduza nenhuma." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Alcunha" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Mensagem de saída" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nome real" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Utilizador" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Que rede de IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Qual é a sua alcunha no IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Qual é o seu utilizador no Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Este é o seu nome de utilizador, não o sua nome de autenticação na sessão " +"Facebook.\n" +"Se for um facebook.com/badger, insira o badger.\n" +"Utilize esta página para " +"selecionar um nome de utilizador Facebook, caso não tenha um." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Qual é a sua senha do Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Qual é o seu ID do Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemplo: utilizador@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Qual é a sua senha do Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemplo: utilizador@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnorar erros de certificado SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pri_oridade" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Rec_urso" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Encriptação requerida (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Ignorar as definições de servidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Utilizar SS_L antigo" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Qual é o seu ID do Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Qual é a sua senha do Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Alcun_ha" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "Ú_ltimo nome" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Primeiro nome" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Nome público" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Endereço de e_mail" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemplo: utilizador@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Qual é o seu ID do Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Qual é a sua senha do Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automático" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registro" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opções" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nenhuma" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Utilizador" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemplo: utilizador@meu.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Utilizar esta conta para telefonar para _linhas fixas e telemóveis" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opções de cruzamento NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opções de proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opções várias" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descobrir automaticamente o servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descobrir ligação" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opções de Manter-ativo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanismo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalo (segundos)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Utilizador para autenticação" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transporte" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Roteamento flexível" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorar erros TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Endereço de IP local" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Qual é o seu ID do SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Qual é a senha da sua conta SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Sen_ha:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorar convites para conferências e salas de diálogo" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Configuração regional da lista de _salas:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Conjunto de c_aracteres:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Porta:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Qual é o seu ID do Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Qual é a sua senha do Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Impossível converter imagem" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Nenhum dos formatos de imagem aceites é suportado pelo seu sistema" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Impossível gravar imagem para o ficheiro" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Seleccione a imagem do seu avatar" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Tirar uma fotografia..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Sem imagem" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Imagens" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Todos os ficheiros" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Selecionar..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Selecionar" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nome completo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Número de telefone" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Endereço de email" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Página web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Data de nascimento" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Última vez visto:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Ligado de:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Mensagem de ausência:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "trabalho" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "casa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "móvel" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voz" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "preferida" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "correspondência" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "encomendas" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nova rede" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Selecione uma rede de IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Reiniciar a lista de _redes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Selecionar" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "novo servidor" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Senha não encontrada" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Senha da conta de MI para %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Senha para a sala de conversação \"%s\" na conta %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nova conta %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d segundo atrás" +msgstr[1] "%d segundos atrás" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minuto atrás" +msgstr[1] "%d minutos atrás" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d hora atrás" +msgstr[1] "%d horas atrás" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dia atrás" +msgstr[1] "%d dias atrás" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d semana atrás" +msgstr[1] "%d semanas atrás" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d mês atrás" +msgstr[1] "%d meses atrás" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "no futuro" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Ir online para editar a sua informação pessoal." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Estes detalhes serão partilhados com outros utilizadores nesta rede de " +"diálogo." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificador" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alcunha" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Detalhes pessoais" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Pessoas próximas" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japão" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Diálogo do Facebook" + +#~ msgid "Select..." +#~ msgstr "Selecionar..." + +#~ msgid "Remember Password" +#~ msgstr "Recordar Senha" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Qual é o seu ID Jabber desejado?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Qual é a sua senha Jabber desejada?" diff --git a/telepathy-account-widgets/po/pt_BR.po b/telepathy-account-widgets/po/pt_BR.po new file mode 100644 index 0000000..fb358a2 --- /dev/null +++ b/telepathy-account-widgets/po/pt_BR.po @@ -0,0 +1,955 @@ +# Brazilian Portuguese translation of tp-account-widgets. +# Copyright (C) 2016 Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# Luiz Guaraldo , 2004. +# André Filipe de Assunção e Brito , 2007. +# Og Maciel , 2007-2009, 2011. +# Djavan Fagundes , 2008, 2010, 2012. +# Leonardo Ferreira Fontenelle , 2008. +# Fábio Nogueira , 2008, 2009, 2012. +# Taylon Silmer , 2009. +# Michel Recondo , 2009. +# Vladimir Melo , 2009. +# Rodrigo L. M. Flores , 2009. +# André Gondim , 2009. +# Henrique P. Machado , 2010. +# Rodrigo Padula de Oliveira , 2011. +# Felipe Borges , 2011. +# Antonio Fernandes C. Neto , 2011, 2012. +# Jonh Wendell , 2009, 2010, 2012. +# Rafael Ferreira , 2013. +# Enrico Nicoletto , 2013, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: Empathy\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-06 16:18-0300\n" +"Last-Translator: Enrico Nicoletto \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.8.7\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Diretório padrão para selecionar uma imagem para seu perfil" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "O último diretório onde uma imagem de exibição foi escolhida." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Localidade atual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Árabe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armênio" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Báltico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celta" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europeu Central" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chinês Simplificado" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chinês Tradicional" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croata" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cirílico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cirílico/Russo" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cirílico/Ucraniano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgiano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grego" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Guzerate" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebraico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebraico Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreano" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nórdico" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Romeno" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europeu do Sul" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandês" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turco" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Ocidental" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamita" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Se_nha" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nome exibido" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemplo: MeuNomeExibido" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Lembrar senha" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Porta" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Servidor" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avançado" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Qual é o seu apelido do AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Qual é a sua senha do AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Conta" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Senha" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Servidor" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Porta" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Nome de usuário:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "A_dicionar" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "A_plicar" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s no %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Conta do %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nova conta" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D de login" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemplo: nome de usuário" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Qual é o seu ID de usuário GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Qual é a sua senha do GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemplo: 123456789" + +# Changed from Og's "conjunto de caracteres because of little room. +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "C_odificação de caracteres" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Qual é o seu UIN do ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Qual é a sua senha do ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rede" + +# Changed from Og's "conjunto de caracteres because of little room. +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Codificação de caracteres" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Adicionar…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Remover" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Para cima" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Para baixo" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servidores" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"A maioria dos servidores de IRC não precisa de uma senha, por isso, se você " +"não tiver certeza, não digite uma senha." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Apelido" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Mensagem de saída" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Nome verdadeiro" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Nome de usuário" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Qual rede IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Qual é o seu apelido do IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Qual é o seu nome de usuário do Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Usar seu nome de usuário, não sua forma comum de acessar o Facebook.\n" +"Se teu nome de usuário é facebook.com/nome, digite o seu nome.\n" +"Caso você não tenha um, acesse esta página para escolher um nome de usuário no Facebook." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Qual é a sua senha do Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Qual é o seu ID do Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemplo: usuario@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Qual é a sua senha do Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Examplo: usuario@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignorar erros de certificado SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Priori_dade" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Rec_urso" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Criptografia r_equerida (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Sobrescrever configurações do servidor" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Usar criptografia SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Qual é o seu ID do Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Qual é a sua senha do Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Apeli_do" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Sobrenome" + +# A mensagem original termina em espaço, mas suas análogas não. +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Primeiro nome" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Nome _publicado" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID do _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Endereço de e-_mail" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemplo: usuario@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Qual é seu ID do Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Qual é a sua senha do Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automático" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Registrar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Opções" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Nenhum" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Nome de usuário" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemplo: usuario@meu.servidor.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Usar essa conta para chamar te_lefones e celulares" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opções transversais de NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opções de proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opções de miscelânea" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Servidor STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descobrir o servidor STUN automaticamente" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descobrir associação" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opções Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mecanismo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervalo (segundos)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Nome de usuário para autenticação" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transporte" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Roteamento frouxo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorar erros TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Endereço IP local" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Qual é o seu ID de conexão do SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Qual é a senha da sua conta SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Se_nha:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D do Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ignorar convites de conferências e bate-papo" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Local da l_ista da sala:" + +# Changed from Og's "conjunto de caracteres because of little room. +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "C_odificação de caracteres:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Porta:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Qual é o seu ID do Yahoo! ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Qual é a sua senha do Yahoo! ?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Não foi possível converter imagem" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Seu sistema não suporta nenhum dos formatos aceitos de imagem" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Não foi possível salvar a foto em arquivo" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Selecione sua imagem de exibição" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Tirar uma foto…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Nenhuma imagem" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Imagens" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Todos os arquivos" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Selecionar…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Selecionar" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Nome completo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Número de telefone" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Endereço de e-mail" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Site da web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Aniversário" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Última atividade:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Servidor:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Conectado a partir de:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Mensagem de ausência:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "trabalho" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "casa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "móvel" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "voz" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "principal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "recado" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "temporário" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nova rede" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Escolha uma rede de IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Reiniciar a lista de _redes" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Selecionar" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "novo servidor" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Senha não encontrada" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "A senha da conta de MI para %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "A senha para a conferência \"%s\" na conta %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nova conta %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d segundo atrás" +msgstr[1] "%d segundos atrás" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minuto atrás" +msgstr[1] "%d minutos atrás" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d hora atrás" +msgstr[1] "%d horas atrás" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dia atrás" +msgstr[1] "%d dias atrás" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d semana atrás" +msgstr[1] "%d semanas atrás" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d mês atrás" +msgstr[1] "%d meses atrás" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "no futuro" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Conecte-se para editar sua informação pessoal." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Estes detalhes serão compartilhados com outros usuários nesta rede de bate-" +"papo." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identificador" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Apelido" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Detalhes pessoais" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Pessoas nas proximidades" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japão" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Bate-papo do Facebook" + +#~ msgid "Remember Password" +#~ msgstr "Lembrar senha" + +#~ msgid "Select..." +#~ msgstr "Selecionar..." + +#~ msgid "L_og in" +#~ msgstr "In_iciar sessão" + +#~ msgid "This account already exists on the server" +#~ msgstr "Esta conta já existe no servidor" + +#~ msgid "Create a new account on the server" +#~ msgstr "Cria uma nova conta no servidor" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Qual é o seu ID do Jabber desejado?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Qual é a sua senha do Jabber desejada?" diff --git a/telepathy-account-widgets/po/ro.po b/telepathy-account-widgets/po/ro.po new file mode 100644 index 0000000..171a5e0 --- /dev/null +++ b/telepathy-account-widgets/po/ro.po @@ -0,0 +1,863 @@ +# BSD Licence +# Alex Szasz 2008 +# Adi Roiban https://adi.roiban.ro, 2009 +# Lucian Adrian Grijincu , 2009, 2010, 2011. +# Daniel Șerbănescu , 2010. +# Simion Ruxandra , 2010. +msgid "" +msgstr "" +"Project-Id-Version: Empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2011-11-26 03:37+0300\n" +"Last-Translator: Lucian Adrian Grijincu \n" +"Language-Team: Romanian Gnome Team \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);;\n" +"X-Generator: Virtaal 0.7.0\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Dosarul implicit din care se alege imaginea avatarului" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Ultimul dosar din care a fost aleasă o imagine pentru avatar." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Configurări regionale curente" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabă" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armeană" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltică" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtă" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Central europeană" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Chineză simplificată" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Chineză tradițională" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Croată" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Chirilică" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Chirilică/Rusă" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Chirilică/Ucraineană" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgiană" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Greacă" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Ebraică" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Ebraică vizuală" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindusă" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandeză" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japoneză" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Coreeană" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordică" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persană" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Română" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sud europeană" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandeză" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turcă" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Occidentală" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnameză" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Paro_lă:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "_Nume afișat:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exemplu: NumeleMeu" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Memorează parola" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Server:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avansat" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Care este numele de utilizator AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Care este parola AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Memorează parola" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "I_D autentificare:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exemplu: numeutilizator" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Care este identificatorul de utilizator GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Care este parola GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exemplu: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Set de c_aractere:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Care este UIN-ul de ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Care este parola ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rețea" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Set de caractere:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Adaugă…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Elimină" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servere" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Multe servere IRC nu necesită o parolă, dacă nu sunteți siguri, nu scrieți " +"nimic." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Pseudonim:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Parolă" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Mesaj de ieșire:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Nume real:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Utilizator:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Care rețea IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Care este pseudonimul IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Care este numele de utilizator Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Acesta este numele de utilizator, nu contul de autentificare Facebook.\n" +"Dacă dețineți pagina facebook.com/badger, introduceți badger.\n" +"Dacă nu aveți un nume de utilizator Facebook, utilizați această pagină pentru a alege unul." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Care este parola Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Care este ID-ul Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exemplu: utilizator@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Care este parola Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exemplu: utilizator@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnoră erorile certificatelor SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "Priori_tate:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Res_ursă:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Cr_iptare necesară (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Folosește configurările locale în locul celor ale serverului" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Folosește SS_L vechi" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Care este ID-ul Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Care este ID-ul Jabber dorit?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Care este parola Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Care este parola Jabber dorită?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Pseu_donim:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Nume de fami_lie:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Prenume:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Nume _publicat:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ID _Jabber:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "Adresă e_mail:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exemplu: utilizator@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Care este ID-ul Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Care este parola Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Auto" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Niciunul" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Utilizator:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exemplu: utilizator@serverul.meu.sip" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Folosiți acest cont să sunați te_lefoane fixe sau telefoane mobile" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opțiuni de traversare a NAT-ului" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opțiuni proxy" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Opțiuni diverse" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Server STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Descoperă serverul STUN automat" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Descoperă asocieri" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opțiuni Keep-Alive (menținere în viață a conexiunii)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Mecanism:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (secunde)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Nume utilizator pentru autentificare:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Transport:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Rutare relaxată" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignoră erorile TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +#, fuzzy +msgid "Local IP Address" +msgstr "Adresă de email" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Care este ID-ul de autentificare SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Care este parola contului SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Paro_lă:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnoră invitații la canale de discuții și conferințe" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Configu_rări regionale listă canale:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Set de c_aractere:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Care este ID-ul Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Care este parola Yahoo!?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Selectează" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Selectează" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Nume întreg" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Număr de telefon:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Adresă de email" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Pagină web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Zi de naștere" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Văzut ultima dată pe:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Conectat din:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Mesaj de ieșire:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "muncă" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "acasă" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "telefon mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "voce" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "preferințe" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "poștal" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "pachet" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Rețea nouă" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Alegeți o rețea IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Resetează _lista rețelelor" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Alege" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "server nou" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Fraza n-a fost găsită" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Cont %s nou" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "o secundă" +msgstr[1] "%d secunde" +msgstr[2] "%d de secunde" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "un minut" +msgstr[1] "%d minute" +msgstr[2] "%d de minute" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "o oră" +msgstr[1] "%d ore" +msgstr[2] "%d de ore" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "o zi" +msgstr[1] "%d zile" +msgstr[2] "%d de zile" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "o săptămână" +msgstr[1] "%d săptămâni" +msgstr[2] "%d de săptămâni" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "o lună" +msgstr[1] "%d luni" +msgstr[2] "%d de luni" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "în viitor" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identificator:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Alias:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Detalii tehnice" diff --git a/telepathy-account-widgets/po/ru.po b/telepathy-account-widgets/po/ru.po new file mode 100644 index 0000000..b7ca8fa --- /dev/null +++ b/telepathy-account-widgets/po/ru.po @@ -0,0 +1,928 @@ +# translation of tp-account-widgets.master.ru.po to Russian +# Russian translation of tp-account-widgets +# Copyright (C) 2003, 2008, 2010 Free Software Foundation, Inc. +# +# +# Grigory Bakunov , 2003, 2005. +# Il'ya Mertsalov , 2008. +# Alexander Saprykin , 2010. +# Yuri Kozlov , 2010, 2012. +# Mikhail Zabaluev , 2011. +# Yuri Myasoedov , 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy trunk\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2017-03-03 15:37+0000\n" +"PO-Revision-Date: 2017-03-17 19:31+0400\n" +"Last-Translator: Yuri Myasoedov \n" +"Language-Team: русский \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Каталог, используемый для выбора изображений аватаров" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Последний каталог, из которого выбирались изображения аватаров." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Текущая локаль" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Арабский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Армянский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Прибалтийский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Кельтский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Центрально-европейский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Китайский упрощённый" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Китайский традиционный" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Хорватский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Кириллица" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Русский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Украинский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Грузинский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Греческий" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Гуджарати" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Гурмукхи" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Иврит" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Иврит Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Хинди" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Исландский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Японский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Корейский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Скандинавский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Персидский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Румынский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Южно Европейский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Тайский" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Турецкий" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Юникод" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Западный" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Вьетнамский" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Пароль" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Имя" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Пример: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Запомнить пароль" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "П_орт" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Дополнительно" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Какое у вас имя пользователя AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Какой у вас пароль AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +msgid "Account" +msgstr "Учётная запись" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Пароль" + +#: ../tp-account-widgets/tpaw-account-widget.c:665 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сервер" + +#: ../tp-account-widgets/tpaw-account-widget.c:666 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Порт" + +#: ../tp-account-widgets/tpaw-account-widget.c:750 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:807 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1600 +msgid "A_dd" +msgstr "_Добавить" + +#: ../tp-account-widgets/tpaw-account-widget.c:1608 +msgid "A_pply" +msgstr "_Применить" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2042 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s в %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2061 +#, c-format +msgid "%s Account" +msgstr "Учётная запись %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2065 +msgid "New account" +msgstr "Создать учётную запись" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_Идентификатор" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Пример: имя_пользователя" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Какой у вас ID пользователя GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Какой у вас пароль GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Пример: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Кодировка" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Какой у вас ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Какой у вас пароль ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Сеть" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Кодировка" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Добавить…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Удалить" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Вверх" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Вниз" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Серверы" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Большинство серверов IRC не требует пароля, если вы не уверены, то не " +"вводите пароль." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Псевдоним" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Сообщение при выходе" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Настоящее имя" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Имя пользователя" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Какая сеть IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Какой у вас псевдоним в IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Google ID?" +msgstr "Какой у вас Google ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:2 +msgid "Example: user@gmail.com" +msgstr "Пример: пользователь@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "What is your Google password?" +msgstr "Какой у вас пароль Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:5 +msgid "Example: user@jabber.org" +msgstr "Пример: пользователь@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "I_gnore SSL certificate errors" +msgstr "_Игнорировать ошибки сертификатов SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Priori_ty" +msgstr "При_оритет" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "Reso_urce" +msgstr "Ре_сурс" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Требуется шифров_ание (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +msgid "Override server settings" +msgstr "Замещать настройки сервера" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Use old SS_L" +msgstr "Использовать старое _шифрование (SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "What is your Jabber ID?" +msgstr "Какой у вас Jabber ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "What is your Jabber password?" +msgstr "Какой у вас пароль Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Псевдоним" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Фамилия" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Имя" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Имя" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "А_дрес эл. почты" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Пример: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Какой у вас Windows Live ID?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Какой у вас пароль Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Автоматический" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#. translators: this string is very specific to SIP's internal; maybe +#. * best to keep the English version. +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Отсутствует" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Имя пользователя" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Пример: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" +"Использовать эту учётную запись для звонков на _обычные и мобильные телефоны" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Параметры NAT Traversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Параметры прокси" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Различные параметры" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Сервер STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Автоматический поиск сервера STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Обнаруживать соединения" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Параметры Keep-Alive" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Механизм" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Интервал (в секундах)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Имя пользователя для аутентификации" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Транспорт" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Свободная маршрутизация" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Игнорировать ошибки TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Локальный IP-адрес" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Какой у вас ID входа для SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Какой у вас пароль учётной записи SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Пароль:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Игнорировать приглашения к беседам и конференциям" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Локаль списка бесед:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Кодировка:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "П_орт:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Какой у вас Yahoo! ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Какой у вас пароль Yahoo! ?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Не удалось преобразовать изображение" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ваша система не поддерживает ни один из разрешённых форматов" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Не удалось сохранить изображение в файл" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Выберите изображение для аватара" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Сделать снимок…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Нет изображения" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Изображения" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Все файлы" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Выбрать…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "В_ыбрать" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Полное имя" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Номер телефона" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Адрес эл. почты" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Веб-сайт:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "День рождения:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Последний раз в сети:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Сервер:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Подключен с:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Сообщение об отсутствии:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "рабочий" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "домашний" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "мобильный" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "голос" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "предпочтительный" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "почтовый" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "посылка" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Новая сеть" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Выберите сеть IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_Сбросить список сетей" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Выбрать" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "новый сервер" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "Шифрование SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Пароль не найден" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Пароль к учётной записи МС для %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Пароль для комнаты «%s» у учётной записи %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Создать учётную запись %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d секунду назад" +msgstr[1] "%d секунды назад" +msgstr[2] "%d секунд назад" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d минуту назад" +msgstr[1] "%d минуты назад" +msgstr[2] "%d минут назад" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d час назад" +msgstr[1] "%d часа назад" +msgstr[2] "%d часов назад" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d день назад" +msgstr[1] "%d дня назад" +msgstr[2] "%d дней назад" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d неделю назад" +msgstr[1] "%d недели назад" +msgstr[2] "%d недель назад" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d месяц назад" +msgstr[1] "%d месяца назад" +msgstr[2] "%d месяцев назад" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "в будущем" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Выйдите в онлайн, чтобы изменить личные данные." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Информация будет доступна другим пользователям этой чат-сети." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Идентификатор" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Псевдоним" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Информация о пользователе" + +#: ../tp-account-widgets/tpaw-utils.c:122 +msgid "People Nearby" +msgstr "Соседи" + +#: ../tp-account-widgets/tpaw-utils.c:127 +msgid "Yahoo! Japan" +msgstr "Yahoo! Япония" + +#: ../tp-account-widgets/tpaw-utils.c:165 +msgid "Google Talk" +msgstr "Google Talk" + +#~ msgid "Remember Password" +#~ msgstr "Запомнить пароль" + +#~ msgid "Username:" +#~ msgstr "Имя пользователя:" + +#~ msgid "What is your Facebook username?" +#~ msgstr "Какое у вас имя пользователя Facebook?" + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don't have one." +#~ msgstr "" +#~ "Это ваше имя пользователя, а не имя для входа в систему Facebook.\n" +#~ "Если ваш адрес facebook.com/badger, введите badger.\n" +#~ "Используйте эту страницу для выбора имени пользователя Facebook, если у вас его ещё нет." + +#~ msgid "What is your Facebook password?" +#~ msgstr "Какой у вас пароль Facebook?" + +#~ msgid "Select..." +#~ msgstr "Выбрать…" + +#~ msgid "Facebook Chat" +#~ msgstr "Чат Facebook" diff --git a/telepathy-account-widgets/po/si.po b/telepathy-account-widgets/po/si.po new file mode 100644 index 0000000..9195fa1 --- /dev/null +++ b/telepathy-account-widgets/po/si.po @@ -0,0 +1,875 @@ +# Sinhala translation for tp-account-widgets. +# Copyright (C) 2009 tp-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# +# Danishka Navin , 2010. +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2010-05-04 23:52+0530\n" +"Last-Translator: Danishka Navin \n" +"Language-Team: Sinhala \n" +"Language: si\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.0\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "මූර්ති පින්තූරයක් තේරීමට පෙරනිමි නාමාවලිය" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "මූර්ති පින්තූරයක් තෝරාගනු ලැබූ අවසන් නාමාවලිය." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "වත්මන් පිහිටුම" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "අරාබි" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ආර්මේනියන්" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "බැල්ටික්" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "කෙල්ටික" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "මධ්‍යම යු‍රෝපානු" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "සරල චීන" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "සාම්ප්‍රදායික චීන" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "ක්‍රොඒෂියානු" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "සිරිලික්" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "සිරිලික්/රුසියානු" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "සිරිලික්/යුක්රේනියානු" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ජෝර්ජියානු" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "ග්‍රීක්" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "ගුජරාටි" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "ගර්මුකි" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "යුදෙව් " + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "දෘශ්‍ය යුදෙව් " + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "හින්දි" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "අයිස්ලන්ත" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ජපන්" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "කොරියන්" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "නෝඩික" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "පර්සියන්" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "රුෙම්නියානු" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "දකුණු යුරෝපීය" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "තායි" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "තුර්කි" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "යුනිකේත" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "බටහිර" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "වියට්නාම" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "මුරපදය: (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "තිර නාමය: (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +#, fuzzy +msgid "Example: MyScreenName" +msgstr "උදාහරණය: මගේ තිර නාමය" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "පේනුව: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "සේවාදායකය: (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "උසස්" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "ඔබගේ AIM තිර නාමය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "ඔබගේ AIM මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "මුරපදය:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Login ID: (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +#, fuzzy +msgid "Example: username" +msgstr "උදාහරණය: පරිශීලක නාමය" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr " ඔබගේ Groupwise පරිශීලක ID එක කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "ඔබගේ Groupwise මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ UIN: (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +#, fuzzy +msgid "Example: 123456789" +msgstr "උදාහරණය: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ඔබගේ ICQ UIN එක කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ඔබගේ ICQ මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "ජාලය" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "අනුලකුණු කුලකය:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "ඉවත් කරන්න (_R)" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "සේවාදායක" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "අන්වර්ත නාමය:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "මුරපදය:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "පණිවිඩයෙන් ඉවත්වන්න:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "සැබෑ නම:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "පරිශීලක නාමය: (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +#, fuzzy +msgid "What is your IRC nickname?" +msgstr "ඔබගේ AIM තිර නාමය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +#, fuzzy +msgid "What is your Facebook username?" +msgstr "ඔබගේ Windows Live පරිශීලක නාමය කුමක්ද?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +#, fuzzy +msgid "What is your Facebook password?" +msgstr "ඔබගේ Yahoo! මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "ඔබගේ Google ID එක කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +#, fuzzy +msgid "Example: user@gmail.com" +msgstr "උදාහරණය: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "ඔබගේ Google මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +#, fuzzy +msgid "Example: user@jabber.org" +msgstr "උදාහරණය: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "SSL සහතික දෝෂ නොතකන්න (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "සම්පත්: (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "සංකේතාංකනය අවශ්‍යයි (TLS/SSL) (_E)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "සේවාදායක සිටුවම් අභිබවා යයි" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "පැරණි SSL භාවිතාකරන්න (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "ඔබගේ Jabber ID එක කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "ඔබගේ අපේක්ෂිත Jabber ID එක කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "ඔබගේ Jabber මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "ඔබගේ අපේක්ෂිත Jabber මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "අන්වර්ත නාමය:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "අවසන් නම: (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "මුල් නම: (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "ප්‍රකාශයට පත් කල නාමය: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "Jabber ID: (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +#, fuzzy +msgid "Example: user@hotmail.com" +msgstr "උදාහරණය: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +#, fuzzy +msgid "What is your Windows Live ID?" +msgstr "ඔබගේ Windows Live මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "ඔබගේ Windows Live මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "ස්වයං" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "ලියාපදිංවි කරන්න" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "අභිරුචි" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "කිසිවක් නැත" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "පරිශීලක නාමය: (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +#, fuzzy +msgid "Example: user@my.sip.server" +msgstr "උදාහරණය: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +#, fuzzy +msgid "NAT Traversal Options" +msgstr "NAT දෘෂ්‍යපථ අභිරුචි" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +#, fuzzy +msgid "Proxy Options" +msgstr "ප්‍රොක්සි අභිරුචි" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +#, fuzzy +msgid "Miscellaneous Options" +msgstr "විවිධ අභිරුචි" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "STUN සේවාදායකය:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN සේවාදායකය ස්වයංව අනාවරණය කරන්න" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "බන්ධනය අනාවරණය කරන්න" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "සේවාදායකය" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +#, fuzzy +msgid "Keep-Alive Options" +msgstr "සජීවීව තබන්න අභිරුචි" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "යාන්ත්‍රණය:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "අන්තරය (තත්පර)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "සහතිකකල පරිශීලක නාමය:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "ප්‍රවාහනය:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "නිදහස් මාර්ගගත කිරීම" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "පේනුව" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "ඔබගේ SIP පිවිසීමේ ID එක කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "ඔබගේ SIP ගිණුම් මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "මුරපදය: (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "Yahoo ID: (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "සම්මන්ත්‍රණ සහ සල්ලාප මණ්ඩප ආරාධනා නොතකන්න (_I)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "කාමර ලැයිස්තු පෙදෙසිය: (_R)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "අනුලකුණු කුලකය:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "පේනුව: (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "ඔබගේ Yahoo! ID එක කුමක්ද?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "ඔබගේ Yahoo! මුරපදය කුමක්ද?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "තෝරන්න" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "තෝරන්න" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "සම්පූර්ණ නම:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "වෙබ් අඩව්ය:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "උපන්දිනය:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "අවසන් නම: (_L)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "සේවාදායකය:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "සම්බන්ධවිය" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "පණිවිඩයෙන් ඉවත්වන්න:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "ජාලය" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "අභිප්‍රේත" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "නව ජාලය " + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "තෝරන්න" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "නව සේවාදායකය" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "නව %s ගිණුම" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "තත්පර %dකට පෙර" +msgstr[1] "තත්පර %dකට පෙර" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "මිනිත්තු %dකට පෙර" +msgstr[1] "මිනිත්තු %dකට පෙර" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d පැයකට පෙර" +msgstr[1] "%d පැය කිහිපයකට පෙර" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "දින %dකට පෙර" +msgstr[1] "දින %dකට පෙර" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "සති %dකට පෙර" +msgstr[1] "සති %dකට පෙර" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "මාස %dකට පෙර" +msgstr[1] "මාස %dකට පෙර" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "අනාගතයේදී" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "හදුන්වනය:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "අපරනාම:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "ප්‍රොක්සි අභිරුචි" diff --git a/telepathy-account-widgets/po/sk.po b/telepathy-account-widgets/po/sk.po new file mode 100644 index 0000000..69d9afa --- /dev/null +++ b/telepathy-account-widgets/po/sk.po @@ -0,0 +1,1080 @@ +# Slovak translation for tp-account-widgets. +# Copyright (C) 2010-2013 Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# Miroslav Biňas , 2010. +# Pavol Klačanský , 2011-2013. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-14 17:36+0200\n" +"Last-Translator: Dušan Kazik \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" +"X-Generator: Poedit 1.8.9\n" + +# gsettings summary +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Predvolený priečinok pre výber obrázku podobizne" + +# gsettings description +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Posledný priečinok, z ktorého bol vybratý obrázok podobizne." + +# PM: podľa dohody v ML treba zmeniť +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Aktuálne miestne nastavenia" + +# prebraté z modulu totem +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Arménske" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Stredoeurópske" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Čínske - zjednodušené" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Čínske - tradičné" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Chorvátske" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cyrilika" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cyrilika/Ruské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cyrilika/Ukrajinské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gruzínske" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grécke" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gudžarátske" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebrejské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebrejské vizuálne" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Kórejské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Škandinávske" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Perzské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumunské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Juhoeurópske" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thajské" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turecké" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Západné" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamské" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Heslo" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Pr_ezývka" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Príklad: MojaPrezvýka" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Zapamätať heslo" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Pokročilé" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Aká je vaša prezývka pre AIM?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Aké je vaše heslo pre AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Účet" + +# hash table +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Heslo" + +# hash table +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +# hash table +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +# PM: požiadaj o komentár prečo je tento reťazec na preklad +# PK: na to sme sa raz uz pytali, len neviem kde je ten report +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +# PM: požiadaj o komentár prečo je tento reťazec na preklad +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Používateľské meno:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "_Pridať" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "P_otvrdiť" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s na sieti %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Účet služby %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nový účet" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Prihlasovací i_dentifikátor" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Príklad: používateľské meno" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Aký je váš používateľský identifikátor pre GroupWise?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Aké je vaše heslo pre GroupWise?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_Identifikačné číslo ICQ" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Príklad: 123456789" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Zn_aková sada" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Aké je vaše identifikačné číslo pre ICQ?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Aké je vaše heslo pre ICQ?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Sieť" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Znaková sada" + +# GtkToolButton tooltip +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Pridať…" + +# GtkToolButton tooltip +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Odstrániť" + +# GtkToolButton tooltip +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Hore" + +# GtkToolButton tooltip +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Dolu" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servery" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Väčšina serverov IRC nevyžaduje heslo, takže ak si nie ste istý, nezadávajte " +"žiadne." + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Prezývka" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Správa pri odchode" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Skutočné meno" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Používateľské meno" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Ktorú sieť IRC?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Aká je vaša prezývka pre IRC?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Aké je vaše používateľské meno pre Facebook?" + +# GtkLabel +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Toto je vaše používateľské meno, nie vaše prihlasovacie meno pre Facebook.\n" +"Ak ste facebook.com/otrava, zadajte otrava.\n" +"Ak ešte používateľské meno pre Facebook nemáte, na jeho vytvorenie použite " +"túto stránku." + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Aké je vaše heslo pre Facebook?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Aký je váš identifikátor pre Google?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Príklad: pouzivatel@gmail.com" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Aké je vaše heslo pre Google?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Príklad: používateľ@jabber.org" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Ignorovať chyby SSL certifikátu" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "_Priorita" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Zdroj" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "V_yžadovať šifrovanie (TLS/SSL)" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Potlačiť nastavenia servera" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Použiť staré _SSL" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Aký je váš identifikátor pre Jabber?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Aké je vaše heslo pre Jabber?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Prezýv_ka" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Priezvisko" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Krstné meno" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Zverejnené meno" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "Identifikátor pre _Jabber" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E_mailová adresa" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Príklad: používateľ@hotmail.com" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Aký je váš identifikátor pre Windows Live?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Aké je vaše heslo pre Windows Live?" + +#  PM: jedno je pre 'transport' combo box; a druhe pre 'keep-alive mechanism' combo box +#  PM: V tom prvom iprípade je to OK v tom druhom nechápem súvislosť medzi auto, register, options a none +# * https://bugzilla.gnome.org/show_bug.cgi?id=694486 +# gtk_list_store +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automaticky" + +# gtk_list_store +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +# gtk_list_store +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +# gtk_list_store +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +# PK: v zdrojaku je ze by sa to nemalo prekladat +# * https://bugzilla.gnome.org/show_bug.cgi?id=694486 +# gtk_list_store +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +# PK: v zdrojaku je ze by sa to nemalo prekladat +# * https://bugzilla.gnome.org/show_bug.cgi?id=694486 +# gtk_list_store +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +# gtk_list_store +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Žiadne" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Používateľské meno" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Príklad: používateľ@môj.sip.server" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Použiť tento účet na volanie na _pevné linky alebo mobilné telefóny" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Voľby pre NAT Traversal" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Voľby pre proxy" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Ďalšie voľby" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Server STUN" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Automaticky objaviť server STUN" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Objaviť prepojenia" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Voľby udržovania pripojenia" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mechanizmus" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Interval (v sekundách)" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Používateľské meno na overenie totožnosti" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Prenos" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Voľné smerovanie" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorovať chyby TLS" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Miestna adresa IP" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Aký je váš prihlasovací identifikátor pre SIP?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Aké je vaše heslo k účtu pre SIP?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Heslo:" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_dentifikátor pre Yahoo!:" + +# GtkCheckButton +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorovať pozvánky do konferencií a diskusných miestností" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Miestne nastavenia _zoznamu miestností" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Zn_aková sada:" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Aký je váš identifikátor pre Yahoo!?" + +# GtkLabel +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Aké je vaše heslo pre Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Nepodarilo sa skonvertovať obrázok" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "" +"Žiadny z povolených formátov pre obrázky nie je podporovaný vaším systémom" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Nepodarilo sa uložiť obrázok do súboru" + +# title +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Výber obrázku pre vašu podobizeň" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Zosnímať obrázok…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Bez obrázku" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Obrázky" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Všetky súbory" + +# button +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Vybrať…" + +# button +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Vybrať" + +# info_field_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Celé meno" + +# info_field_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefónne číslo" + +# info_field_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Emailová adresa" + +# info_field_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Webová stránka" + +# info_field_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Narodeniny" + +# info_field_data +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Naposledy videný:" + +# info_field_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +# info_field_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Pripojený z:" + +# info_field_data +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Správa pri odchode:" + +# info_parameter_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "pracovný" + +# info_parameter_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "domov" + +# info_parameter_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobilný" + +# info_parameter_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "hlasový" + +# info_parameter_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "prednostný" + +# info_parameter_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "poštový" + +# info_parameter_data +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "doručovací" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nová sieť" + +# window title +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Výber siete IRC" + +# button +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Obnoviť zoznam _sietí" + +# button +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Vybrať" + +# niekde v nejakej tabuľke +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nový server" + +# niekde v nejakej tabuľke +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Heslo sa nenašlo" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Heslo pre účet internetovej komunikácie %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Heslo pre diskusnú miestnosť „%s“ na účte %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nový účet %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "pred %d sekundami" +msgstr[1] "pred %d sekundou" +msgstr[2] "pred %d sekundami" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "pred %d minútami" +msgstr[1] "pred %d minútou" +msgstr[2] "pred %d minútami" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "pred %d hodinami" +msgstr[1] "pred %d hodinou" +msgstr[2] "pred %d hodinami" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "pred %d dňami" +msgstr[1] "pred %d dňom" +msgstr[2] "pred %d dňami" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "pred %d týždňami" +msgstr[1] "pred %d týždňom" +msgstr[2] "pred %d týždňami" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "pred %d mesiacmi" +msgstr[1] "pred %d mesiacom" +msgstr[2] "pred %d mesiacmi" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "v budúcnosti" + +# label +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Aby ste mohli upraviť vaše osobné údaje musíte byť prihlásený." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Tieto podrobnosti budú sprístupnené ostatným používateľom na tejto sieti." + +# GtkLabel +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifikátor" + +# GtkLabel +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Prezývka" + +# label +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Osobné údaje" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Ľudia v okolí" + +# GtkLabel +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japonsko" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +# GtkCheckButton +#~ msgid "Remember Password" +#~ msgstr "Zapamätať heslo" + +# button +#~ msgid "Select..." +#~ msgstr "Vybrať…" + +#~ msgid "L_og in" +#~ msgstr "P_rihlásiť sa" + +#~ msgid "This account already exists on the server" +#~ msgstr "Tento účet už existuje na serveri" + +#~ msgid "Create a new account on the server" +#~ msgstr "Vytvoriť nový účet na serveri" + +# GtkLabel +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Aký je váš požadovaný identifikátor pre Jabber?" + +# GtkLabel +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Aké je vaše požadované heslo pre Jabber?" diff --git a/telepathy-account-widgets/po/sl.po b/telepathy-account-widgets/po/sl.po new file mode 100644 index 0000000..d715e81 --- /dev/null +++ b/telepathy-account-widgets/po/sl.po @@ -0,0 +1,968 @@ +# Slovenian translation of tp-account-widgets. +# Copyright (C) 2009 tp-account-widgets COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# +# Bernard Banko , 2009. +# Andrej Žnidaršič , 2010. +# Matej Urbančič , 2006–2016. +# +msgid "" +msgstr "" +"Project-Id-Version: telepathy-account-widget master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-11-15 19:45+0100\n" +"PO-Revision-Date: 2016-11-15 19:52+0100\n" +"Last-Translator: Matej Urbančič \n" +"Language-Team: Slovenščina \n" +"Language: sl_SI\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.9\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Privzeta mapa slik za izbor podobe" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Zadnja mapa iz katere je bila izbrana podoba." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Trenutne jezikovne nastavitve" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "arabska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "armenska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "baltska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "keltska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "srednjeevropska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "kitajska poenostavljena" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "kitajska tradicionalna" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "hrvaška" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "cirilica" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "cirilica / ruska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "cirilica / ukrajinska " + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "gruzijska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "grška" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "gudžarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "gurmuki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "hebrejska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "hebrejska predočena" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "hindujska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "islandska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "japonska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "korejska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "nordijska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "perzijska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "romunska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "južnoevropska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "tajska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "turška" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "zahodnoevropska" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "vietnamska" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Geslo" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Zaslonsko _ime" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Primer: Ime Zaslona" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Zapomni si geslo" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Vrata" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Strežnik" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Napredno" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Kakšno je vaše zaslonsko ime AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Kakšno je vaše geslo AIM?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Račun" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Geslo" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Strežnik" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Vrata" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Uporabniško ime:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "_Dodaj" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Uveljavi" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s na %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "Račun %s" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nov račun" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "ID prijave" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Primer: uporabniško ime" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Kakšen je vaš uporabniški ID GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Kakšno je vaše geslo GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Primer: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "N_abor znakov" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Kakšen je vaš UIN ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Kakšno je vaše geslo ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Omrežje" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Nabor znakov" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Dodaj ..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Odstrani" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Navzgor" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Navzdol" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Strežniki" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Večina strežnikov IRC ne zahteva gesla. Če torej niste prepričani, geslo " +"izpustite." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Vzdevek" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Sporočilo končanja" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Pravo ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Uporabniško ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Katero IRC omrežje?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Kakšen je vaš IRC vzdevek?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "kakšno je vaše uporabniško ime Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"To je vaše uporabniško ime in ne običajno prijavno ime za Facebook.\n" +"Če je vaš Facebook naslov facebook.com/mucek, pišite mucek.\n" +"Na začetni strani " +"spletišča Facebook pa lahko izberete uporabniško ime, če ga še nimate." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Kakšno je vaše geslo Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Kakšen je vaš uporabniški ID Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Primer: uporabnik@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Kakšno je vaše geslo Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Primer: uporabnik@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Prezri napake potrdila SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Prednos_t" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Vir" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Zahtevano je šifriranje (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Prepiši nastavitve strežnika" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Uporabi stari SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Kakšen je vaš uporabniški ID Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Kakšno je vaše geslo Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Vzdevek" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Priimek" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Ime" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Objavljeno ime" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_ID Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_Elektronski naslov" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Primer: uporabnik@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Kakšen je vaš ID Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Kakšno je vaše geslo za Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Samodejno" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Vpiši se" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Možnosti" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Brez" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Uporabniško ime" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Primer: uporabnik@moj.sip.strežnik" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Uporabi račun za klicanje v daljnovodno omrežje in na mobilne telefone" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Možnosti prečkanja NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Možnosti posredniškega strežnika" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Različne možnosti" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Strežnik STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Samodejno odkrij strežnik STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Odkrij povezave" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Možnosti ohranjanja povezave" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mehanizem" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Razmik (v sekundah)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Uporabniško ime za overitev" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Prenos" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Ohlapno usmerjanje" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Prezri napake TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Krajevni naslov IP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Kakšen je prijavni ID vaše SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Kakšno je vaše geslo SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Geslo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Prezri vabila na konference in v klepetalnice" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Jezikovne nastavitve seznama klepetalnic:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "N_abor znakov:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Vrata:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Kakšen je vaš uporabniški ID Yahoo!?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Kakšno je vaše geslo Yahoo!?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Ni mogoče pretvoriti slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ni podpore za izbrane slikovne zapise" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Ni mogoče shraniti slike v datoteko" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Izberite sliko za svojo podobo" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Zajemi sliko ..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Brez slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Vse datoteke" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Izbor ..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Izberi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Polno ime" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefonska številka" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Naslov elektronske pošte" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Spletišče" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Rojstni dan" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Zadnjič viden:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Strežnik:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Povezan od:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Sporočilo odsotnosti:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "delovno" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "domače" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "prenosni telefon" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "glasovno" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "prednostno" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "poštno" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "paketno" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Novo omrežje" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Izbor IRC omrežja" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Ponastavi seznam _omrežij" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Izbor" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "nov strežnik" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Gesla ni mogoče najti" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Geslo računa hipnega sporočanja za %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Geslo za klepetalnico »%s« na računu %s (%s)." + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nov račun %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Pred %d sekundami" +msgstr[1] "Pred %d sekundo" +msgstr[2] "Pred %d sekundama" +msgstr[3] "Pred %d sekundami" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Pred %d minutami" +msgstr[1] "Pred %d minuto" +msgstr[2] "Pred %d minutama" +msgstr[3] "Pred %d minutami" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Pred %d urami" +msgstr[1] "Pred %d uro" +msgstr[2] "Pred %d urama" +msgstr[3] "Pred %d urami" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Pred %d dnevi" +msgstr[1] "Pred %d dnevom" +msgstr[2] "Pred %d dnevoma" +msgstr[3] "Pred %d dnevi" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Pred %d tedni" +msgstr[1] "Pred %d tednom" +msgstr[2] "Pred %d tednoma" +msgstr[3] "Pred %d tedni" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Pred %d meseci" +msgstr[1] "Pred %d mesecem" +msgstr[2] "Pred %d mesecema" +msgstr[3] "Pred %d meseci" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "v prihodnosti" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Prijava v omrežje za urejanje osebnih podrobnosti." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Podrobnosti bodo vidne vsem uporabnikom tega klepetalnega omrežja" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Določilo" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Vzdevek" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Osebni podatki" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Uporabniki v bližini" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Klepetanje Facebook" + +#~ msgid "Remember Password" +#~ msgstr "Zapomni si geslo" + +#~ msgid "" +#~ "Most IRC servers don't need a password, so if you're not sure, don't " +#~ "enter a password." +#~ msgstr "" +#~ "Večina strežnikov IRC ne zahteva gesla, zato ga, če niste prepričani, ne " +#~ "uporabite." + +#~ msgid "" +#~ "This is your username, not your normal Facebook login.\n" +#~ "If you are facebook.com/badger, enter badger.\n" +#~ "Use this page to choose " +#~ "a Facebook username if you don't have one." +#~ msgstr "" +#~ "To je vaše uporabniško ime in ne običajna Facebook prijava.\n" +#~ "V primeru da ste facebook.com/badger, vnesite badger.\n" +#~ "Uporabite to stran za " +#~ "izbor uporabniškega imena, v kolikor ga še nimate." + +#~ msgid "Couldn't convert image" +#~ msgstr "Ni mogoče pretvoriti slike" + +#~ msgid "Couldn't save picture to file" +#~ msgstr "Ni mogoče shraniti slike v datoteko" + +#~ msgid "Take a picture..." +#~ msgstr "Zajemi sliko ..." + +#~ msgid "Select..." +#~ msgstr "Izberi ..." + +#~ msgid "Password for chatroom '%s' on account %s (%s)" +#~ msgstr "Geslo za klepetalnico '%s' na računu %s (%s)" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Kakšen je vaš želeni uporabniški ID Jabber?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Kakšno je vaše želeno geslo Jabber?" diff --git a/telepathy-account-widgets/po/sq.po b/telepathy-account-widgets/po/sq.po new file mode 100644 index 0000000..49aebbd --- /dev/null +++ b/telepathy-account-widgets/po/sq.po @@ -0,0 +1,863 @@ +# Përkthimi i tp-account-widgets në shqip. +# Laurent Dhima , 2004, 2008. +# Copyright (C) 2004, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +msgid "" +msgstr "" +"Project-Id-Version: empathy HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2008-09-04 10:02+0200\n" +"Last-Translator: Laurent Dhima \n" +"Language-Team: albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Directory e paracaktuar nga ku duhet zgjedhur një figurë për avatar" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Directory e fundit nga ku është zgjedhur një figurë avatar-i." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Gjuha aktuale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Balltike" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Celtic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Europa Qendrore" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Kineze e thjeshtëzuar" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Kineze tradicionale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroate" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Cyrillic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Cyrillic/Rusisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Cyrillic/Ukrahina" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gjeorgjisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Greqisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmuki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebraike" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebraike vizuale" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Islandeze" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreane" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordike" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persiane" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumanisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Europa jugore" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tailandeze" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turqisht" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Perëndimore" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnameze" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Fjalë_kalimi:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "Emri i ekra_nit:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Porta:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Serveri:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +#, fuzzy +msgid "Advanced" +msgstr "Të detajuara" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +#, fuzzy +msgid "Remember Password" +msgstr "Fjalëkalimi:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "I_D e hyrjes:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "_UIN ICQ:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Rrjeti" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Kodifikimi i shkronjave:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +#, fuzzy +msgid "Remove" +msgstr "_Hiq" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +#, fuzzy +msgid "Servers" +msgstr "Serveri" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Pseudonimi:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +#, fuzzy +msgid "Password" +msgstr "Fjalëkalimi:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Mesazhi i daljes:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Emri i vërtetë:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "_Përdoruesi:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +#, fuzzy +msgid "I_gnore SSL certificate errors" +msgstr "Shpërf_ill gabimet e çertifikatave SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Rezer_va:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +#, fuzzy +msgid "Encr_yption required (TLS/SSL)" +msgstr "Kërkoh_et shifrimi (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#, fuzzy +msgid "Override server settings" +msgstr "Mbishkruaj rregullimet e serverit" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Përdor SS_L e vjetër" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Pseudonimi:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Mbiemri:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Emri: " + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Emri i _dukshëm:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "ID _Jabber:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +#, fuzzy +msgid "Register" +msgstr "Perëndimore" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Përdoruesi:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Serveri STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +#, fuzzy +msgid "Discover Binding" +msgstr "Zbulo STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Serveri" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Identifikimi dështoi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Porta" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Fjalë_kalimi:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +#, fuzzy +msgid "Yahoo! I_D:" +msgstr "I_D Yahoo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +#, fuzzy +msgid "I_gnore conference and chat room invitations" +msgstr "Shpërf_ill konferencat dhe ftesat në kanale chat" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Shteti i listës së kanaleve:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +#, fuzzy +msgid "Ch_aracter set:" +msgstr "Kodifikimi i shkronjave:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Porta:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Zgjidh" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Zgjidh" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Emri i plotë:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "Siti web:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "Ditëlindja:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +#, fuzzy +msgid "Last seen:" +msgstr "_Mbiemri:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +#, fuzzy +msgid "Server:" +msgstr "_Serveri:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +#, fuzzy +msgid "Connected from:" +msgstr "Lidhur" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +#, fuzzy +msgid "Away message:" +msgstr "Ruaj mesazhin" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "Rrjeti" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Preferime" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Rrjet i ri" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +#, fuzzy +msgid "Choose an IRC network" +msgstr "Krijo një rrjet të ri IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +#, fuzzy +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Zgjidh" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "server i ri" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Profil i ri %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Identifikuesi:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Pseudonimi:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Detajet e kontaktit" diff --git a/telepathy-account-widgets/po/sr.po b/telepathy-account-widgets/po/sr.po new file mode 100644 index 0000000..58699da --- /dev/null +++ b/telepathy-account-widgets/po/sr.po @@ -0,0 +1,937 @@ +# Serbian translation of tp-account-widgets +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003—2016. +# This file is distributed under the same license as the tp-account-widgets package. +# From Pidgin translation: +# Danilo Segan , 2003—2005. +# Aleksandar Urosevic , 2003—2004. +# Filip Miletic , 2004. +# Nikola Kotur , 2006. +# Милош Поповић , 2007—2009. +# Бранко Кокановић , 2010—2011. +# Мирослав Николић , 2011—2013. +# Марко М. Костић , 2016. +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-27 08:46+0000\n" +"PO-Revision-Date: 2016-10-30 10:56+0100\n" +"Last-Translator: Марко М. Костић \n" +"Language-Team: Serbian \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" +"X-Generator: Poedit 1.8.8\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Подразумевана фасцикла за избор слике" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Последња фасцикла из које је изабрана слика." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Текући локалитет" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "арапски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "арменијски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "балтички" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "келтски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "централни европски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "кинески једноставни" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "кинески традиционални" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "хрватски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ћирилични" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ћирилични/руски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ћирилични/украјински" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "грузијски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "грчки" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "гујарати" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "гурмуки" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "хебрејски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "хебрејски визуелни" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "хинду" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "исландски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "јапански" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "корејски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "нордијски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "персијски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "румунски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "јужноевропски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "тајландски (таи)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "турски" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "уникод" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "западни" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "вијетнамски" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Лозинка" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Надимак" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Пример: МојНадимак" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Запамти лозинку" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Порт" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Напредно" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Који је ваш АИМ надимак?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Која је ваша АИМ лозинка?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Налог" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Лозинка" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сервер" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Прикључник" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Корисничко име:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "_Додај" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Примени" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s на %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s налог" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Нови налог" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_Корисничко име" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Пример: корисничко-име" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Који је ваш Гроуп Вајз кориснички ИБ?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Која је ваша Гроуп Вајз лозинка?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ИЦКу _БКС" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Пример: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Кодни р_аспоред" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Који је ваш ИЦКу БКС?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Која је ваша ИЦКу лозинка?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Мрежа" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Кодни распоред" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Додај…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Уклони" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Горе" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Доле" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Сервери" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Већина ИРЦ сервера не тражи лозинку тако да је немојте уносити уколико нисте " +"сигурни да је потребна." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Надимак" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Порука за крај" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Стварно име" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Корисничко име" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Која ИРЦ мрежа?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Који је ваш ИРЦ надимак?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Које је ваше Фејсбук корисничко име?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Ово је ваше корисничко име, а не обична Фејсбук пријава.\n" +"Ако вам је адреса facebook.com/пера, унесите пера.\n" +"Уколико немате корисничко име за Фејсбук, идите на ову страну да га изаберете." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Која је ваша Фејсбук лозинка?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Који је ваш Гугл ИБ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Пример: korisnik@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Која је ваша Гугл лозинка?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Пример: korisnik@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Занемари грешке ССЛ уверења" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "_Важност" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Извори" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Захтева се _шифровање (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Превазиђи поставке сервера" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Користи стари СС_Л" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Који је ваш Џабер ИБ?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Која је ваша Џабер лозинка?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "На_димак" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Презиме" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Име" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Име за _објаву" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Џабер ИБ" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Адреса _ел. поште" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Пример: korisnik@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Који је ваш ИБ Виндоуза уживо?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Која је ваша лозинка Виндоуза уживо?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Самостално" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "УДП" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "ТЦП" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "ТЛС" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Отвори налог" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Могућности" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ништа" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Корисничко име" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Пример: korisnik@moj.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Користи овај налог за позиве _линијских и мобилних телефона" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Опције проласка кроз НАТ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Опције посредника" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Разне опције" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "СТУН сервер" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Аутоматски откриј СТУН сервер" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Откриј повезивања" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Опције за одржавање сталне везе" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Механизам" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Период (у секундама)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Корисничко име потврђивања идентитета" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Пренос" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Слабо рутирање" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Занемари ТЛС грешке" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Месна адреса ИП-а" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Која је идентификација за СИП пријаву?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Која је лозинка за ваш СИП налог?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Лозинка:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Јаху! И_Б:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Занемари позивнице за причаонице и конференције" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Лок_ални списак соба:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Кодни р_аспоред:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Порт:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Који је ваш Јаху! ИБ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Која је ваша Јаху! лозинка?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Не могу да претворим слику" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Ниједан од прихваћених записа слика није подржан на вашем систему" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Не могу да сачувам слику у датотеку" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Изаберите сличицу вашег аватара" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Сликајте се…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Без слике" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Слике" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Све датотеке" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Изабери…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Изабери" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Име и презиме" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Број телефона" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Адреса ел. поште" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Веб страница" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Рођендан" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Виђен пре:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Сервер:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Повезан са:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Порука за одсутност:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "посао" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "кућа" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "мобилни" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "гласовни" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "првенствени" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "поштански" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "пошиљка" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Нова мрежа" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Одаберите ИРЦ мрежу" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Ресетуј _мрежни списак" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Изабери" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "нови сервер" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "ССЛ" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Лозинка није пронађена" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Лозинка ТП налога за %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Лозинка за причаоницу „%s“ на налогу %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Нови %s налог" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Пре %d секунд" +msgstr[1] "Пре %d секунде" +msgstr[2] "Пре %d секунди" +msgstr[3] "Пре једне секунде" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Пре %d минут" +msgstr[1] "Пре %d минута" +msgstr[2] "Пре %d минута" +msgstr[3] "Пре једног минута" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Пре %d сата" +msgstr[1] "Пре %d сата" +msgstr[2] "Пре %d сати" +msgstr[3] "Пре једног сата" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Пре %d дана" +msgstr[1] "Пре %d дана" +msgstr[2] "Пре %d дана" +msgstr[3] "Пре једног дана" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Пре %d недеље" +msgstr[1] "Пре %d недеље" +msgstr[2] "Пре %d недеља" +msgstr[3] "Пре једне недеље" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Пре %d месеца" +msgstr[1] "Пре %d месеца" +msgstr[2] "Пре %d месеци" +msgstr[3] "Пре једног месеца" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "у будућности" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Успоставите везу да уредите ваше личне податке." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Ови подаци ће бити дељени са другим корисницима на овој мрежи за ћаскање." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Одредник" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Псеудоним" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Лични подаци" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Људи у околини" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Јаху! Јапан" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Гугл разговор" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Фејсбук ћаскање" + +#~ msgid "Remember Password" +#~ msgstr "Упамти лозинку" + +#~ msgid "Select..." +#~ msgstr "Изабери..." diff --git a/telepathy-account-widgets/po/sr@latin.po b/telepathy-account-widgets/po/sr@latin.po new file mode 100644 index 0000000..6f14ac6 --- /dev/null +++ b/telepathy-account-widgets/po/sr@latin.po @@ -0,0 +1,937 @@ +# Serbian translation of tp-account-widgets +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003—2016. +# This file is distributed under the same license as the tp-account-widgets package. +# From Pidgin translation: +# Danilo Segan , 2003—2005. +# Aleksandar Urosevic , 2003—2004. +# Filip Miletic , 2004. +# Nikola Kotur , 2006. +# Miloš Popović , 2007—2009. +# Branko Kokanović , 2010—2011. +# Miroslav Nikolić , 2011—2013. +# Marko M. Kostić , 2016. +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-27 08:46+0000\n" +"PO-Revision-Date: 2016-10-30 10:56+0100\n" +"Last-Translator: Marko M. Kostić \n" +"Language-Team: Serbian \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" +"X-Generator: Poedit 1.8.8\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Podrazumevana fascikla za izbor slike" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Poslednja fascikla iz koje je izabrana slika." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Tekući lokalitet" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "arapski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "armenijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "baltički" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "keltski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "centralni evropski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "kineski jednostavni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "kineski tradicionalni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "hrvatski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ćirilični" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ćirilični/ruski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ćirilični/ukrajinski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "gruzijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "grčki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "gurmuki" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "hebrejski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "hebrejski vizuelni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "hindu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "islandski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "japanski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "korejski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "nordijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "persijski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "rumunski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "južnoevropski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "tajlandski (tai)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "turski" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "unikod" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "zapadni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "vijetnamski" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Lozinka" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_Nadimak" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Primer: MojNadimak" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Zapamti lozinku" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Napredno" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Koji je vaš AIM nadimak?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Koja je vaša AIM lozinka?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Nalog" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Lozinka" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Priključnik" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Korisničko ime:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "_Dodaj" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Primeni" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s na %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s nalog" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Novi nalog" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_Korisničko ime" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Primer: korisničko-ime" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Koji je vaš Group Vajz korisnički IB?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Koja je vaša Group Vajz lozinka?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICKu _BKS" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Primer: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Kodni r_aspored" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Koji je vaš ICKu BKS?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Koja je vaša ICKu lozinka?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Mreža" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Kodni raspored" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Dodaj…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Ukloni" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Gore" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Dole" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Serveri" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"Većina IRC servera ne traži lozinku tako da je nemojte unositi ukoliko niste " +"sigurni da je potrebna." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Nadimak" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Poruka za kraj" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Stvarno ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Korisničko ime" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Koja IRC mreža?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Koji je vaš IRC nadimak?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Koje je vaše Fejsbuk korisničko ime?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Ovo je vaše korisničko ime, a ne obična Fejsbuk prijava.\n" +"Ako vam je adresa facebook.com/pera, unesite pera.\n" +"Ukoliko nemate korisničko ime za Fejsbuk, idite na ovu stranu da ga izaberete." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Koja je vaša Fejsbuk lozinka?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Koji je vaš Gugl IB?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Primer: korisnik@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Koja je vaša Gugl lozinka?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Primer: korisnik@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "_Zanemari greške SSL uverenja" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "_Važnost" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Izvori" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Zahteva se _šifrovanje (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Prevaziđi postavke servera" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Koristi stari SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Koji je vaš Džaber IB?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Koja je vaša Džaber lozinka?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Na_dimak" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Prezime" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Ime" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Ime za _objavu" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Džaber IB" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Adresa _el. pošte" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Primer: korisnik@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Koji je vaš IB Vindouza uživo?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Koja je vaša lozinka Vindouza uživo?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Samostalno" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Otvori nalog" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Mogućnosti" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ništa" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Korisničko ime" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Primer: korisnik@moj.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Koristi ovaj nalog za pozive _linijskih i mobilnih telefona" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Opcije prolaska kroz NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Opcije posrednika" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Razne opcije" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Automatski otkrij STUN server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Otkrij povezivanja" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Opcije za održavanje stalne veze" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mehanizam" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Period (u sekundama)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Korisničko ime potvrđivanja identiteta" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Prenos" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Slabo rutiranje" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Zanemari TLS greške" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Mesna adresa IP-a" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Koja je identifikacija za SIP prijavu?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Koja je lozinka za vaš SIP nalog?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Lozinka:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Jahu! I_B:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Zanemari pozivnice za pričaonice i konferencije" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Lok_alni spisak soba:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Kodni r_aspored:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Koji je vaš Jahu! IB?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Koja je vaša Jahu! lozinka?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Ne mogu da pretvorim sliku" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Nijedan od prihvaćenih zapisa slika nije podržan na vašem sistemu" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Ne mogu da sačuvam sliku u datoteku" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Izaberite sličicu vašeg avatara" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Slikajte se…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Bez slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Slike" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Sve datoteke" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Izaberi…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Izaberi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Ime i prezime" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Broj telefona" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "Adresa el. pošte" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Veb stranica" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Rođendan" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Viđen pre:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Povezan sa:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Poruka za odsutnost:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "posao" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "kuća" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobilni" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "glasovni" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "prvenstveni" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "poštanski" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "pošiljka" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nova mreža" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Odaberite IRC mrežu" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Resetuj _mrežni spisak" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Izaberi" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "novi server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Lozinka nije pronađena" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Lozinka TP naloga za %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Lozinka za pričaonicu „%s“ na nalogu %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Novi %s nalog" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "Pre %d sekund" +msgstr[1] "Pre %d sekunde" +msgstr[2] "Pre %d sekundi" +msgstr[3] "Pre jedne sekunde" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "Pre %d minut" +msgstr[1] "Pre %d minuta" +msgstr[2] "Pre %d minuta" +msgstr[3] "Pre jednog minuta" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "Pre %d sata" +msgstr[1] "Pre %d sata" +msgstr[2] "Pre %d sati" +msgstr[3] "Pre jednog sata" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "Pre %d dana" +msgstr[1] "Pre %d dana" +msgstr[2] "Pre %d dana" +msgstr[3] "Pre jednog dana" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "Pre %d nedelje" +msgstr[1] "Pre %d nedelje" +msgstr[2] "Pre %d nedelja" +msgstr[3] "Pre jedne nedelje" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "Pre %d meseca" +msgstr[1] "Pre %d meseca" +msgstr[2] "Pre %d meseci" +msgstr[3] "Pre jednog meseca" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "u budućnosti" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Uspostavite vezu da uredite vaše lične podatke." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Ovi podaci će biti deljeni sa drugim korisnicima na ovoj mreži za ćaskanje." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Odrednik" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Pseudonim" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Lični podaci" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Ljudi u okolini" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Jahu! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Gugl razgovor" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Fejsbuk ćaskanje" + +#~ msgid "Remember Password" +#~ msgstr "Upamti lozinku" + +#~ msgid "Select..." +#~ msgstr "Izaberi..." diff --git a/telepathy-account-widgets/po/sv.po b/telepathy-account-widgets/po/sv.po new file mode 100644 index 0000000..b3c89f9 --- /dev/null +++ b/telepathy-account-widgets/po/sv.po @@ -0,0 +1,929 @@ +# Swedish messages for tp-account-widgets. +# Copyright © 2002-2016 Free Software Foundation, Inc. +# Richard Hult , 2002, 2003. +# Christian Rose , 2003, 2004. +# Daniel Nylander , 2006, 2007, 2008, 2009, 2010, 2011, 2012. +# Sebastian Rasmussen , 2014. +# Anders Jonsson , 2015, 2016. +# +# Snälla, ta *INTE* bort de extra #~-meddelandena på slutet. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-06 22:00+0200\n" +"Last-Translator: Anders Jonsson \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.9\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Standardkatalog att välja en profilbild från" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Den senaste katalogen som en profilbild valdes från." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Aktuell lokal" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arabisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Armenisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Kymrisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Centraleuropeisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Kinesisk (förenklad)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Kinesisk (traditionell)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Kroatisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kyrillisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kyrillisk/Rysk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kyrillisk/Ukrainsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Georgisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Grekisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Hebreisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Hebreisk (visuell)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Isländsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Koreansk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Nordisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Persisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumänsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Sydeuropeisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Thailändsk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Turkisk" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +# "Web site" är "webbplats". "Web page" är "webbsida". +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Västlig" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamesisk" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "L_ösenord" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Skärm_namn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Exempel: MittSkärmnamn" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Kom ihåg lösenordet" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Port" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Server" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Avancerat" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Vad är ditt AIM-skärmnamn?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Vad är ditt AIM-lösenord?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "Konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Lösenord" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Server" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "Användarnamn" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "_Lägg till" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "_Verkställ" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s på %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s-konto" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "Nytt konto" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Inloggnings-I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Exempel: användarnamn" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Vad är ditt användar-id för GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Vad är ditt lösenord för GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Exempel: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Te_ckenuppsättning" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Vad är ditt ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Vad är ditt ICQ-lösenord?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Nätverk" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Teckenuppsättning" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Lägg till…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Ta bort" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Uppåt" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Nedåt" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Servrar" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "" +"De flesta IRC-servrar behöver inte något lösenord. Ange endast ett lösenord " +"om du är säker på att det behövs." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Smeknamn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Avslutningsmeddelande" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Verkligt namn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Användarnamn" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Vilket IRC-nätverk?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Vad är ditt IRC-smeknamn?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Vad är ditt användarnamn för Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"Detta är ditt användarnamn, inte ditt vanliga inloggningsnamn på Facebook.\n" +"Om du har facebook.com/hamster så ange hamster.\n" +"Använd denna sida för att " +"välja ett Facebook-användarnamn om du inte redan har ett." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Vad är ditt Facebook-lösenord?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Vad är ditt Google-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Exempel: användare@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Vad är ditt Google-lösenord?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Exempel: användare@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "I_gnorera SSL-certifikatfel" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Pri_oritet" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "_Resurs" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Kr_yptering krävs (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Åsidosätt serverinställningar" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Använd gammal SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Vad är ditt Jabber-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Vad är ditt Jabber-lösenord?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "S_meknamn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Efternamn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Förnamn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Publikt namn" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber-id" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_postadress" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Exempel: användare@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Vad är ditt id för Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Vad är ditt lösenord för Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Automatisk" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Options" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ingen" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "A_nvändarnamn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Exempel: användare@min.sipserver" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Använd detta konto för att ringa _fasta telefoner och mobiltelefoner" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Flaggor för NAT-traversering" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxyalternativ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Diverse alternativ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN-server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Upptäck STUN-servern automatiskt" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Upptäck bindning" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-Alive-flaggor" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mekanism" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Intervall (sekunder)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Användarnamn för autentisering" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Transport" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Loose Routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ignorera TLS-fel" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Lokal IP-adress" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Vad är ditt inloggnings-id för SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Vad är lösenordet för ditt SIP-konto?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "L_ösenord:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo!-I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "I_gnorera inbjudningar till konferenser och chattrum" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Lokalanpassning för _rumslista:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Te_ckenuppsättning:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Vad är ditt Yahoo!-ID?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Vad är ditt Yahoo!-lösenord?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "Kunde inte konvertera bild" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "Inget av de accepterade bildformaten stöds på ditt system" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "Kunde inte spara bild till fil" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "Välj din profilbild" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "Ta en bild…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "Ingen bild" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "Bilder" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "Alla filer" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "Välj…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Välj" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Fullständigt namn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefonnummer" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-postadress" + +# "Web site" är "webbplats". "Web page" är "webbsida". +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Webbplats" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Födelsedag" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Sågs senast:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Server:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "Ansluten från:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "Frånvaromeddelande:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "arbete" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "hem" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "mobil" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "röst" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "föredragen" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "postadress" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "leveransadress" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Nytt nätverk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Välj ett IRC-nätverk" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Återställ _nätverkslistan" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Välj" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "ny server" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Lösenordet hittades inte" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Lösenord för chattkonto för %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "Lösenord för chattrummet ”%s” för kontot %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Nytt %s-konto" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d sekund sedan" +msgstr[1] "%d sekunder sedan" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d minut sedan" +msgstr[1] "%d minuter sedan" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d timme sedan" +msgstr[1] "%d timmar sedan" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d dag sedan" +msgstr[1] "%d dagar sedan" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d vecka sedan" +msgstr[1] "%d veckor sedan" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d månad sedan" +msgstr[1] "%d månader sedan" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "i framtiden" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Anslut dig för att redigera din personliga information." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "" +"Dessa detaljer kommer att delas med andra användare på detta chattnätverk." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Identifierare" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Alias" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Personliga detaljer" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Personer i närheten" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! Japan" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Chat" + +#~ msgid "Select..." +#~ msgstr "Välj…" + +#~ msgid "Remember Password" +#~ msgstr "Kom ihåg lösenordet" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Vilket Jabber ID vill du använda?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Vilket lösenord vill du använda för Jabber?" diff --git a/telepathy-account-widgets/po/ta.po b/telepathy-account-widgets/po/ta.po new file mode 100644 index 0000000..899196b --- /dev/null +++ b/telepathy-account-widgets/po/ta.po @@ -0,0 +1,832 @@ +# translation of tp-account-widgets.master.ta.po to Tamil +# translation of ta.po to +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Dr.T.vasudevan , 2009. +# Dr.T.Vasudevan , 2009, 2010, 2011, 2012, 2013. +# I. Felix , 2009. +# Shantha kumar , 2012. +msgid "" +msgstr "" +"Project-Id-Version: empathy.master.ta\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-20 16:59+0530\n" +"Last-Translator: Dr.T.Vasudevan \n" +"Language-Team: American English <>\n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\\n\n" +"\n" +"\n" +"\n" +"\n" +"\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "அவதாரம் படம் தேந்தெடுக்க முன்னிருப்பு அடைவு" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "அவதாரம் படம் தேர்ந்தெடுத்த கடைசி அடைவு " + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "தற்போதைய மொழி உள்ளமைவு" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "அராபிக்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "அர்மேனியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "பால்டிக்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "செல்டிக்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "மத்திய ஐரோப்பா" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "எளிதாக்கிய சைனிஸ்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "சைனிஸ் மரபு" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "குரேஷியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ஸைரிலிக்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ஸைரெலிக்/ரசியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ஸைரெலிக்/யூக்கிரேனியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "ஜியார்ஜியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "கிரீக்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "குஜராத்தி" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "குர்முகி" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ஹீப்ரு" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ஹீப்ரு காட்சி" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ஹிந்தி" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ஐஸ்லாண்டிக்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ஜப்பானிய" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "கொரியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "நோர்டிக்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "பெர்சியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "ரோமானியன்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "தெற்கு ஐரோப்பா" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "தாய்" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "துருக்கி" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "யூனிக்கோடு" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "மேற்கு மொழி" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "வியட்னாம்" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "(_w) கடவுச்சொல்" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "(_N) திரை பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "உதாரணம்: என் திரைப்பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "கடவுச்சொல்லை நினைவு கொள்ளவும்" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_P துறை" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "(_S) சேவையகம்" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "மேம்பட்ட" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "உங்களது AIM திரை பெயர் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "உங்களது AIM கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "கடவுச்சொல்லை நினைவு கொள்ளவும்" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "உள்நுழை அடையாளம் (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "உதாரணம்:பயனர்பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "உங்களது GroupWise பயனர் ID என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "உங்களது GroupWise கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "(_U) ஐசிக்யூ (ICQ) யுஐஎன்" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "உதாரணம்: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_a எழுத்துரு தொகுதி" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "உங்களது ICQ UIN என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "உங்களது ICQ கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "வலையமைப்பு" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "எழுத்துருதொகுதி" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "சேர்..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "நீக்கவும் " + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "மேலே" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "கீழே" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "சேவையகங்கள்" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"ஏறத்தாழ எல்லா ஐஆர்சி சேவையகங்களுக்கும் கடவுச்சொல் தேவை இல்லை, ஆகவே நிச்சயமாக இல்லை எனில் " +"கடவுச்சொல்லை உள்ளிட வேண்டாம்" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "புனைப்பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "கடவுச்சொல்" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "வெளிச்செல் செய்தி" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "உண்மையான பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr " பயனர் பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "எந்த ஐஆர்சி வலைப்பின்னல்?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "உங்களது IRC திரை பெயர் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "உங்களது பேஸ்புக் பயனர் பெயர் என்ன?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"இ து உங்கள் பயனர் பெயர். உங்கள் பேஸ்புக் புகுபதிகை அல்ல.\n" +" நீங்கள் facebook.com/badger, ஆனால் badger என உள்ளிடுக.\n" +" இந்த பக்கம் ஐ பயன்படுத்தி ஒ " +"ரு பேஸ்புக் பயனர் பெயரை பெறவு.ம்" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "உங்களது பேஸ்புக் கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "உங்களது கூகுள் ஐடி என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "உதாரணம்: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "உங்களது கூகுள் கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "உதாரணம்: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_g எஸ்எஸ்எல் சான்றிதழ்கள் பிழைகளை உதாசீனம் செய்." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "(_t) முக்கியத்துவம்" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "(_u) மூலவளம்" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "(_y) மறையாக்கம் தேவை (டிஎல்எஸ்/எஸ்எஸ்எல்)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "சேவையக அமைப்பை உதாசீனம் செய்" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "(_L) பழைய எஸ்எஸ்எல் " + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "உங்களது ஜாப்பர் ID என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "உங்களது வேண்டிய ஜாப்பரின் ID என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "உங்களது ஜாப்பர் கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "உங்களது வேண்டிய ஜாப்பர் கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_k புனைப்பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "(_L) கடைசி பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "(_F) முதல் பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "வெளியிடப்பட்ட பெயர் (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "(_J) ஜப்பார் ஐடி (ID)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_m மின்னஞ்சல் முகவரி" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "உதாரணம்: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "உங்களது சாளரத்தின் லைவ் கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "உங்களது சாளரத்தின் லைவ் கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "தானியங்கி" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr " யூடிபி (UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "டிசிபி (TCP)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "டிஎல்எஸ்(TLS)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "பதிவேடு" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "தேர்வுகள்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ஒன்றுமில்லை" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "(_U) பயனர் பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "உதாரணம்: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "இந்த கணக்கை எல்லா தரைஇணைப்புகள் மற்றும் அலைபேசிகளுக்கும் செயலாக்கு" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "நேட் ட்ராவெர்சல் தேர்வுகள்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "பதிலாள் தேர்வுகள்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "இதர தேர்வுகள்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "ஸ்டன் சேவையகம்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "ஸ்டன் சேவையகத்தை தானிங்கியாக கண்டுபிடி" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "பைண்டிங் ஐ காணுங்கள்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "சேவையகம்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "உயிருடன் வைத்திருக்க தேர்வு" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "பொறிமுறை" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "இடைவெளி (வினாடிகளில்)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "உறுதி செய்ய பயனரின் பெயர்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "போக்குவரத்து" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "தளர்ந்த வழியாக்கம்" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "டிஎல்எஸ் பிழைகளை உதாசீனம் செய்க" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "துறை" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "உள்ளமை ஐபி முகவரி" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "உங்களது SIP உட்புகு ID என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "உங்களது SIP கணக்கின் கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "(_w) கடவுச்சொல்:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "(_I) யாகூ ஐடி:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_g அரட்டை அறை மற்றும் கலந்துரையாடல் அழைப்புகளை உதாசீனம் செய்க" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "(_R) அறை பட்டியல் உள்ளமைவு:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_a எழுத்துரு தொகுதி:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_P துறை:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "உங்களது Yahoo! ID என்ன?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "உங்களது Yahoo! கடவுச்சொல் என்ன?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "தேர்வு செய்க ..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "(_S) தேர்ந்தெடு" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "முழுப்பெயர்" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "தொலைபேசி எண்" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "மின்னஞ்சல் முகவரி" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "வலைத்தளம்" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "பிறந்தநாள்" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "கடைசியாக கண்டது:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "சேவையகம்:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "இங்கிருந்து இணைக்கப்பட்டது:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "வெளிச்செல் செய்தி:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "வேலை" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "இல்லம்" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "அலைபேசி " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "குரல்" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "விருப்பங்கள்" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "அஞ்சல்" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "பார்சல்" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "புதிய வலையமைப்பு" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "ஒரு IRC வலைப்பின்னல் ஐ தேர்ந்தெடு" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_N வலைப்பின்னல் பட்டியலை மீட்டமைக்கவும்" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "தேர்வு செய்க " + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "புதிய சேவையகம்" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "எஸ்எஸ்எல்" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "கடவுச்சொல் காணப்படவில்லை" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) க்கான IM கணக்கு கடவுச்சொல்" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "%s (%s) கணக்கில் உள்ள '%s' அரட்டையறைக்கான கடவுச்சொல்" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "புதிய %s கணக்கு" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d வினாடி முன்" +msgstr[1] "%d வினாடிகள் முன்" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d நிமிடம் முன்" +msgstr[1] "%d நிமிடங்கள் முன்" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d மணி முன்" +msgstr[1] "%d மணிகள் முன்" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d நாள் முன்" +msgstr[1] "%d நாட்கள் முன்" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d வாரம் முன்" +msgstr[1] "%d வாரங்கள் முன்" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d மாதம் முன்" +msgstr[1] "%d மாதங்கள் முன்" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "எதிர்காலத்தில்" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "இணைப்பில் சென்று உங்கள் சொந்த தகவல்களை திருத்துக" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "இனங்காட்டி" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "புனைப்பெயர்" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "தனிப்பட்ட விவரங்கள்" diff --git a/telepathy-account-widgets/po/te.po b/telepathy-account-widgets/po/te.po new file mode 100644 index 0000000..027a9ac --- /dev/null +++ b/telepathy-account-widgets/po/te.po @@ -0,0 +1,826 @@ +# translation of tp-account-widgets.master.te.po to Telugu +# Copyright (C) 2011, 2012 Swecha Telugu localisation Team +# This file is distributed under the same license as the tp-account-widgets package. +# +# Krishna Babu K , 2009.2011, 2012, 2013. +# Praveen Illa , 2011. +# Sasi Bhushan Boddepalli ,2011, 2012. +# Naveen kandimala(Swecha) , 2012. +# GVS.Giri (Swecha Team) ,2012. +msgid "" +msgstr "" +"Project-Id-Version: empathy.master.te\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-22 21:02+0530\n" +"Last-Translator: Krishnababu Krothapalli \n" +"Language-Team: Telugu \n" +"Language: te\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "అవతార బొమ్మను ఎంచుకొనుటకు అప్రమేయ డైరెక్టరీ" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "అవతారము బొమ్మను ఎంచుకోబడినటువంటి ఆఖరి డైరెక్టరి." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "ప్రస్తుత స్థానికం" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "అరబిక్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "అర్మేనియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "బాల్టిక్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "సెల్టిక్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "సెంట్రల్ యూరోపియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "సరళీకృత చైనీస్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "సాంప్రదాయ చైనీస్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "క్రోటియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "సిరిల్లిక్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "సిరిలిక్/రష్యన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "సిరిలిక్/ఉక్రైనియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "జార్జియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "గ్రీక్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr " గుజరాతీ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "గురుముఖి" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "హిబ్రూ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "హిబ్రూ విజువల్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "హింది" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ఐస్‌లాండిక్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "జపనీస్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "కొరియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "నార్డిక్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "పర్షియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "రొమానియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "సౌత్ యూరోపియన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "థాయి" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "టర్కిష్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "యూనికోడ్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "వెస్ట్రన్" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "వియెత్నామీస్" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "సంకేతపదం (_w)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "తెర పేరు (_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ఉదాహరణ: నా తెరపేరు" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "సంకేతపదం గుర్తుంచుకొను" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "పోర్టు (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "సేవిక (_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "అధునాతన" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "మీ AIM తెర పేరు ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "మీ AIM సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "సంకేతపదం గుర్తించుకొను" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "ప్రవేశించు ఐడి (_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ఉదాహరణ: వాడుకరిపేరు" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "మీ గుంపుతరహా వాడుకరి ఐడి ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "మీ గుంపుతరహ సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ఉదాహరణ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "అక్షర సమితి (_a)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "మీ ICQ UIN ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "మీ ICQ సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "నెట్ వర్క్" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "అక్షర సమితి" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "జతచేయి..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "తీసివేయి " + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "పైన" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "క్రింద" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "సేవకాలు" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"చాలా IRC సర్వర్లు మీరు భావిస్తున్నారా కాదు మీరు కనుక, ఒక పాస్వర్డ్ను ఎంటర్ చేయకండి, పాస్వర్డ్ అవసరం " +"లేదు." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "మారుపేరు" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "సంకేతపదం" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "నిష్క్రమణ సందేశం" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "అసలు పేరు" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "వాడుకరి పేరు" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "ఏ IRC నెట్‌వర్క్?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "మీ IRC మారుపేరు ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "మీ ఫేస్‌బుక్ వాడుకరిపేరు ఏమిటి?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"ఇది మీ వాడుకరిపేరు, మీ సాధారణ ఫేస్‌బుక్ ప్రవేశం కాదు.\n" +"ఒకవేళ మీరు facebook.com/badger, enter badger.\n" +"మీకు ఒకవేళ ఒక ఫేస్‌బుక్ వాడుకరిపేరు లేకుంటే ఈ పేజీని వాడి ఒకటి సృష్టించండి." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "మీ ఫేస్‌బుక్ సంకేతపదం ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "మీ గూగుల్ ఐడి ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ఉదాహరణ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "మీ గూగుల్ సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ఉదాహరణ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL ధృవీకరణపత్ర దోషములను వదిలివేయు (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "ప్రాముఖ్యత (_t)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "వనరు (_u)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "ఎన్‌క్రిప్షన్ అవసరం (_y) (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "సేవకము అమరికలను తిరిగివ్రాయి" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "పాత SS_L వాడు" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "మీ జబ్బర్ ఐడి ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "మీరు కోరుకున్న జబ్బర్ ఐడి ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "మీ జబ్బర్ సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "మీరు కోరుకున్న జబ్బర్ సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "మారుపేరు (_k)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "చివరి పేరు (_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "మొదటి పేరు (_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "ప్రచురించబడు పేరు (_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "జాబ్బర్ ఐడి (_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ఈ-మెయిల్ చిరునామా" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ఉదాహరణ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "మీ విండోస్ లైవ్ ఐడి సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "మీ విండోస్ లైవ్ సంకేతపదము ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "స్వయం" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "నమోదుచేసుకొను" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ఐచ్ఛికాలు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ఏదీకాదు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "వాడుకరిపేరు (_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ఉదాహరణ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "లండులింస్ మరియు మొబైల్ ఫోన్లు కాల్ ఈ ఖాతాను ఉపయోగించండి" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT ట్రావెర్సల్ ఐచ్ఛికాలు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ప్రోక్సీ ఐచ్ఛికాలు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "బహువిధాలైన ఇచ్ఛాపూర్వకాలు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN సేవిక" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN సేవకాన్ని స్వయంచాలకంగా కనుగొను" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "బంధనము కనుగొనుము" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "సేవకము" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "ఇచ్ఛాపూర్వకాలను అలాగే వుంచండి" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "యాంత్రిక తత్వం" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "విరామం (సెకన్లలో)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "ధృవీకరణ వాడుకరిపేరు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "ట్రాన్స్‍పోర్ట్" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "దారిమళ్ళింపును వదిలివేయండి" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS దోషాలను విస్మరించు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "పోర్టు" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "స్థానిక IP చిరునామా" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "మీ SIP ప్రవేశ ఐడి ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "మీ SIP ఖాతా సంకేతపదం ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "సంకేతపదం (_w):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "యాహూ! ఐడి (_D):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "సమావేశాన్ని మరియు చాట్‌గది ఆహ్వానములను చూసి చూడనట్లు వదిలివేయి (_g)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "గది జాబితా స్థానికం (_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "అక్షర సమితి (_a):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "పోర్టు (_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "మీ యాహూ! ఐడి ఏమిటి?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "మీ యాహూ! సంకేతపదం ఏమిటి?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "ఎంచుకోండి..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "ఎంచుకోండి_S" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "పూర్తి పేరు:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "ఫోను నంబరు:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ఈ-మెయిల్ చిరునామా:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "వెబ్‌సైటు:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "పుట్టినరోజు:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "చివరి దర్శనం:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "సేవకము:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "దీని నుండి అనుసంధానించబడింది:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "దూరంగా ఉన్నపుడు సందేశము:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "పని " + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "హోమ్‌" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "మొబైలు" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "స్వరము" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "ప్రాధాన్యత" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "తపాలా" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "పార్సెల్" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "కొత్త నెట్‌వర్కు" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "ఒక IRC నెట్‌వర్కుని ఎంచుకోండి" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "నెట్‌వర్కుల జాబితాను తిరిగి అమర్చు (_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "ఎంచుకొను" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "కొత్త సేవకము" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "సంకేతపదం కనిపెట్టలేకపోయింది " + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "IM ఖాతా కొరకు సంకేతపదం %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "%s (%s) అకౌంటుపై సంభాషణల గది కొరకు సంకేతపదం '%s'" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "కొత్త %s ఖాతా" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d సెకను క్రితం" +msgstr[1] "%d సెకనుల క్రితం" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d నిముషము క్రితం" +msgstr[1] "%d నిముషాల క్రితం" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d గంట క్రితం" +msgstr[1] "%d గంటల క్రితం" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d రోజు క్రితం" +msgstr[1] "%d రోజుల క్రితం" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d వారము క్రితం" +msgstr[1] "%d వారముల క్రితం" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d నెల క్రితం" +msgstr[1] "%d నెలల క్రితం" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "భవిష్యత్తులో" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "మీ వ్యక్తిగత సమాచారమును సవరించుటకు ఆన్‌లైన్ కి వెళ్ళండి " + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "గుర్తించునది" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "అలియాస్" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "వ్యక్తిగత వివరాలు" diff --git a/telepathy-account-widgets/po/tg.po b/telepathy-account-widgets/po/tg.po new file mode 100644 index 0000000..183ddd5 --- /dev/null +++ b/telepathy-account-widgets/po/tg.po @@ -0,0 +1,816 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Victor Ibragimov , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: Tajik Gnome\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-01-19 18:21+0500\n" +"Last-Translator: Victor Ibragimov \n" +"Language-Team: \n" +"Language: tg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Арабӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Арманӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Балтикӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Европаи Марказӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Хитоии оддӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Хитоии анъанавӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Хорватӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Кириллӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Гурҷӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Юнонӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Гуҷаротӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Гурмухӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Ибрӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Ҳиндӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Исландӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Ҷопонӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Кореягӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Форсӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Руминӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Тайӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Туркӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Ғарбӣ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Ветнамӣ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Ба ёд гирифтани парол" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Порт:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Иловагӣ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Ба ёд гирифтани парол" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Рамзи I_D-и воридшавӣ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Шабака" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Тоза кардан" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Ба боло" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Ба поён" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Серверҳо" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Тахаллус" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Парол" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Номи корбар" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Ном" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Худкор" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Имконот" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Ҳеҷ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Номи корбар" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Порт" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Рамзи I_D-и Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Порт:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Интихоб кардан..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Интихоб кардан" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Рақами телефон" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Вебсайт" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Зодрӯз" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Сервер:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "кор" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "хона" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "мобилӣ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "индекси почта" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Интихоб кардан" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "" +msgstr[1] "" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "Муайянкунанда" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "Тахаллус" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "" diff --git a/telepathy-account-widgets/po/th.po b/telepathy-account-widgets/po/th.po new file mode 100644 index 0000000..a0afc4d --- /dev/null +++ b/telepathy-account-widgets/po/th.po @@ -0,0 +1,814 @@ +# Thai translation of tp-account-widgets +# Copyright (C) 2008-2012 Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# Theppitak Karoonboonyanan , 2008-2012. +# Sira Nokyoongtong , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-10-09 19:53+0700\n" +"Last-Translator: Theppitak Karoonboonyanan \n" +"Language-Team: Thai \n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "ไดเรกทอรีปริยายที่จะใช้เลือกรูปแทนตัว" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "ไดเรกทอรีล่าสุดที่ถูกใช้เลือกรูปแทนตัว" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "โลแคลปัจจุบัน" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "อารบิก" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "อาร์เมเนีย" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "บอลติก" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "เซลติก" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "ยุโรปตอนกลาง" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "จีนตัวย่อ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "จีนตัวเต็ม" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "โครเอเชีย" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "ซีริลลิก" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "ซีริลลิก/รัสเซีย" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "ซีริลลิก/ยูเครน" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "จอร์เจีย" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "กรีก" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "คุชราตี" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "คุรุมุขี" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ฮีบรู" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ฮีบรูซ้ายไปขวา" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ฮินดี" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ไอซ์แลนด์" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ญี่ปุ่น" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "เกาหลี" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "นอร์ดิก" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "เปอร์เซีย" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "โรมาเนีย" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "ยุโรปตอนใต้" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "ไทย" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "ตุรกี" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "ยูนิโค้ด" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "ตะวันตก" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "เวียดนาม" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_รหัสผ่าน" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "_ชื่อเรียก" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "ตัวอย่าง: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "จำรหัสผ่าน" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_พอร์ต" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "เซิร์ฟเ_วอร์" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "ขั้นสูง" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "ชื่อเรียกใน AIM ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "รหัสผ่าน AIM ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "จำรหัสผ่าน" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_ชื่อเข้าระบบ" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "ตัวอย่าง: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "ชื่อผู้ใช้ GroupWise ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "รหัสผ่าน GroupWise ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "_UIN ของ ICQ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "ตัวอย่าง: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "ร_หัสอักขระ" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "UIN ของ ICQ ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "รหัสผ่าน ICQ ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "เครือข่าย" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "รหัสอักขระ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "เพิ่ม…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "ลบออก" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ขึ้น" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "ลง" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "เซิร์ฟเวอร์" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "เซิร์ฟเวอร์ IRC ส่วนใหญ่ไม่ต้องใช้รหัสผ่าน ดังนั้น ถ้าคุณไม่แน่ใจ ก็ไม่ต้องป้อนรหัสผ่าน" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "ชื่อเรียก" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "รหัสผ่าน" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "ข้อความขณะออก" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "ชื่อจริง" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ชื่อผู้ใช้" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "IRC เครือข่ายไหน?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "ชื่อเรียกใน IRC ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "ชื่อผู้ใช้ Facebook ของคุณคืออะไร?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"นี่เป็นชื่อผู้ใช้ของคุณ ไม่ใช่อีเมลที่ใช้เข้า Facebook ตามปกติ\n" +"ถ้าคุณคือ facebook.com/ชื่อผู้ใช้ ก็ให้ป้อน ชื่อผู้ใช้\n" +"คุณสามารถใช้ หน้านี้ " +"เพื่อสร้างชื่อผู้ใช้ Facebook ได้ถ้ายังไม่มี" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "รหัสผ่าน Facebook ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "ชื่อผู้ใช้ Google ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "ตัวอย่าง: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "รหัสผ่าน Google ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "ตัวอย่าง: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "ไ_ม่สนใจข้อผิดพลาดของใบรับรอง SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "ลำดับความ_สำคัญ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "แห_ล่งข้อมูล" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "ต้องเข้ารหัส_ลับ (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "กำหนดค่าทับค่าของเซิร์ฟเวอร์" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "ใช้ SSL แบบเ_ก่า" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "ชื่อผู้ใช้ Jabber ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "คุณต้องการใช้ชื่ออะไรสำหรับ Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "รหัสผ่าน Jabber ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "คุณต้องการใช้รหัสผ่านอะไรสำหรับ Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "ชื่_อเรียก" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_นามสกุล" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_ชื่อ" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "ชื่อที่_ประกาศ" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "บัญชี _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ที่อยู่อีเ_มล" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "ตัวอย่าง: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "ID สำหรับ Windows Live ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "รหัสผ่านสำหรับ Windows Live ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "อัตโนมัติ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "ตัวเลือก" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "ไม่ใช้" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_ชื่อผู้ใช้" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "ตัวอย่าง: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "ใช้บัญชีนี้เรียกสายโทรศัพท์_บ้านและโทรศัพท์มือถือ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "ตัวเลือกสำหรับเส้นทาง NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ตัวเลือกสำหรับพร็อกซี" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "ตัวเลือกเบ็ตเตล็ด" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "เซิร์ฟเวอร์ STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "ค้นหาเซิร์ฟเวอร์ STUN โดยอัตโนมัติ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "ค้นหา Binding" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "เซิร์ฟเวอร์" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "ตัวเลือกการคงการเชื่อมต่อ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "กลไก" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "ช่วงเวลา (วินาที)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "ชื่อผู้ใช้สำหรับยืนยันตัวบุคคล" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "การรับส่งข้อมูล" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ใช้การจัดเส้นทางแบบหลวม" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "ละเลยข้อผิดพลาดของ TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "พอร์ต" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "หมายเลข IP ท้องถิ่น" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "ชื่อบัญชี SIP ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "รหัสผ่านบัญชี SIP ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_รหัสผ่าน:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "_บัญชี Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "ไ_ม่สนใจการเชิญเข้าห้องประชุมและห้องสนทนา" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "โลแคลของรายชื่อ_ห้อง:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "ร_หัสอักขระ:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_พอร์ต:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "ชื่อบัญชี Yahoo! ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "รหัสผ่าน Yahoo! ของคุณคืออะไร?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "เลือก..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "เ_ลือก" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "ชื่อเต็ม" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "หมายเลขโทรศัพท์" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ที่อยู่อีเมล" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "เว็บไซต์" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "วันเกิด" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "ปรากฏตัวล่าสุด:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "เซิร์ฟเวอร์:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "เชื่อมต่อจาก:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "ข้อความที่ทิ้งไว้เมื่อไม่อยู่:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "ที่ทำงาน" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "บ้าน" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "มือถือ" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "ข้อความเสียง" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "ติดต่อสะดวก" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "ไปรษณีย์" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "พัสดุ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "เครือข่ายใหม่" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "เลือกเครือข่าย IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "_ล้างค่ารายชื่อเครือข่าย" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "เลือก" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "เซิร์ฟเวอร์ใหม่" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "ไม่พบรหัสผ่าน" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "รหัสผ่านสำหรับบัญชี IM ของ %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "รหัสผ่านสำหรับห้องสนทนา '%s' ของบัญชี %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "บัญชี %s ใหม่" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d วินาทีก่อน" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d นาทีก่อน" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d ชั่วโมงก่อน" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d วันก่อน" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d สัปดาห์ก่อน" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d เดือนก่อน" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ในอนาคต" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "ออนไลน์เพื่อแก้ไขข้อมูลส่วนตัวของคุณ" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "ชื่อประจำตัว" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "นามแฝง" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "ข้อมูลส่วนตัว" diff --git a/telepathy-account-widgets/po/tr.po b/telepathy-account-widgets/po/tr.po new file mode 100644 index 0000000..f611c78 --- /dev/null +++ b/telepathy-account-widgets/po/tr.po @@ -0,0 +1,919 @@ +# translation of tp-account-widgets to Turkish +# This file is distributed under the same license as the tp-account-widgets package. +# Copyright (C) 2008-2011 Free Software Foundation, Inc. +# +# Görkem Çetin , 2004. +# Baris Cicek , 2008, 2009. +# Muhammet Kara , 2011, 2014. +# Necdet Yücel , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-12-08 19:55+0000\n" +"PO-Revision-Date: 2014-12-21 23:35+0000\n" +"Last-Translator: Necdet Yücel \n" +"Language-Team: Türkçe \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Pootle 2.5.1.1\n" +"X-POOTLE-MTIME: 1419204933.000000\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Bir avatar resmi seçmek için öntanımlı dizin" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Bir avatar resminin seçildiği son dizin." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Şimdiki Yerel" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Arapça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Ermenice" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Baltık" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Keltçe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Orta Avrupa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Basitleştirilmiş Çince" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Geleneksel Çince" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Hırvatça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Kiril" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Kiril/Rusça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Kiril/Ukraynaca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Gürcüce" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Yunanca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "İbranice" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Görsel İbranice" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Hintçe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "İzlandaca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Japonca" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Korece" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "İskandinav" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Farsça" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Rumence" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Güney Avrupa" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tay Dili" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Türkçe" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unikod" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Batı" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Vietnamca" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Par_ola" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Ekra_n İsmi" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Örnek: Ekranİsmim" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Parolayı anımsa" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "Bağlantı Noktası (_Port)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Sunucu" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Gelişmiş" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "AIM ekran isminiz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "AIM parolanız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget.c:661 +msgid "Account" +msgstr "Hesap" + +#: ../tp-account-widgets/tpaw-account-widget.c:662 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Parola" + +#: ../tp-account-widgets/tpaw-account-widget.c:663 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Sunucu" + +#: ../tp-account-widgets/tpaw-account-widget.c:664 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Port" + +#: ../tp-account-widgets/tpaw-account-widget.c:748 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:805 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1395 +msgid "Username:" +msgstr "Kullanıcı Adı:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1722 +msgid "A_dd" +msgstr "_Ekle" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_pply" +msgstr "U_ygula" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2166 +#, c-format +msgid "%1$s on %2$s" +msgstr "%2$s üzerinde %1$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2192 +#, c-format +msgid "%s Account" +msgstr "%s Hesabı" + +#: ../tp-account-widgets/tpaw-account-widget.c:2196 +msgid "New account" +msgstr "Yeni hesap" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "Giriş Kimli_ği" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Örnek: kullanıcıadı" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "GroupWise Kullanıcı kimliğiniz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "GroupWise parolanız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Örnek: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "K_arakter kümesi" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ICQ UIN'iniz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ parolanız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Ağ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Karakter kümesi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Ekle..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Sil" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Yukarı" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Aşağı" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Sunucular" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Çoğu IRC sunucusu bir parolaya ihtiyaç duymaz; eğer emin değilseniz parola " +"girmeyin." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Takma isim" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Çıkış mesajı" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Gerçek isim" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Kullanıcı adı" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Hangi IRC ağı?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "IRC takma adınız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Facebook kullanıcı adınız nedir?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Bu sizin normal Facebook girişiniz değil, kullanıcı adınızdır.\n" +"Eğer facebook.com/porsuk iseniz, badger yazın.\n" +"Eğer facebook kullanıcı adınız yoksa almak için bu sayfayı kullanın." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Facebook parolanız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Google kimliğiniz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Örnek: kullanıcı@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Google parolanız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Örnek: kullanıcı@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "SSL sertifika hatalarını _yoksay" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "Ö_ncelik" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "Ka_ynak" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Şifr_eleme gerekli (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "Sunucu ayarlarının yerine geç" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "Eski SS_L kullan" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "Jabber kimliğiniz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "Jabber parolanız?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "Ta_kma İsim" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Soyad" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_İsim" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Görünen İsim" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber Kimliği" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "E-_posta adresi" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Örnek: kullanıcı@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Windows Live ID'niz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Windows Live parolanız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Otomatik" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Kayıt" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Seçenekler" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Yok" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Kullanıcı adı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Örnek: kullanici@sip.sunucum" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Sabit hat_ları ve cep telefonlarını aramak için bu hesabı kullan" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT Geçiş Seçenekleri" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Vekil Sunucu Seçenekleri" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Çeşitli Ayarlar" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN Sunucusu" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN sunucusunu otomatik olarak keşfedin" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Bağlanmayı (Binding) Keşfet" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Canlı-Tut (Keep-Alive) Seçenekleri" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Mekanizma" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Aralık (saniye)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Kimlik doğrulama kullanıcı adı" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Taşıma" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Gevşek Yönlendirme" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS Hatalarını Yoksay" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Yerel IP Adresi" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "SIP giriş kimliğiniz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "SIP hesabı parolanız nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Par_ola:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! Hes_abı:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Konferans ve sohbet odası davetlerini y_oksay" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Oda Listesi ye_reli:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "K_arakter kümesi:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Port:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Yahoo! kimliğiniz nedir?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Yahoo! parolanız nedir?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:581 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:666 +msgid "Couldn't convert image" +msgstr "Resim çevirilemedi" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:582 +msgid "None of the accepted image formats are supported on your system" +msgstr "Sisteminizde, kabul edilen resim biçimlerinden hiçbiri desteklenmiyor" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:942 +msgid "Couldn't save picture to file" +msgstr "Resim dosyaya kaydedilemedi" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1064 +msgid "Select Your Avatar Image" +msgstr "Avatar Resminizi Seçin" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1073 +msgid "Take a picture..." +msgstr "Resim çek..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1086 +msgid "No Image" +msgstr "Resim Yok" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1145 +msgid "Images" +msgstr "Resimler" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1149 +msgid "All Files" +msgstr "Tüm Dosyalar" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Seç..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Seç" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "Tam Ad" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "Telefon Numarası" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "E-posta Adresi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "Web sitesi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "Doğum günü" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "Son Görülme:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "Sunucu:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +#| msgid "Connected from:" +msgid "Connected From:" +msgstr "Bağlantı Kaynağı:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +#| msgid "Away message:" +msgid "Away Message:" +msgstr "Uzaktayım Mesajı:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "iş" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "ev" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "cep" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "sesli çağrı" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "tercih edilen" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "posta" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "paket" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Yeni Ağ" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Bir IRC ağı seçin" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Ağ Listesi_ni Sıfırla" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Seç" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "yeni sunucu" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "Parola bulunamadı" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s (%s) için anlık mesajlaşma hesabı parolası" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "'%s' sohbet odasının %s (%s) hesabınızdaki parolası" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "Yeni %s hesabı" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d saniye önce" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d dakika önce" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d saat önce" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d gün önce" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d hafta önce" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ay önce" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "gelecekte" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "Kişisel bilgilerinizi düzenlemek için internete bağlanın." + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "Bu ayrıntılar sohbet ağındaki diğer kullanıcılarla paylaşılacak." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "Tanımlayıcı" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "Takma ad" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "Kişisel Ayrıntılar" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "Yakındaki İnsanlar" + +#: ../tp-account-widgets/tpaw-utils.c:123 +#| msgid "Yahoo! I_D:" +msgid "Yahoo! Japan" +msgstr "Yahoo! Japonya" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook Sohbet" + +#~ msgid "Remember Password" +#~ msgstr "Parolayı Anımsa" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "Arzu ettiğiniz Jabber kimliğiniz nedir?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "Arzu ettiğiniz Jabber parolası nedir?" diff --git a/telepathy-account-widgets/po/ug.po b/telepathy-account-widgets/po/ug.po new file mode 100644 index 0000000..8a0e61e --- /dev/null +++ b/telepathy-account-widgets/po/ug.po @@ -0,0 +1,818 @@ +# Uyghur translation for tp-account-widgets. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Gheyret Kenji,2010. +# Sahran , 2010. +# Zeper , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-02-25 18:32+0900\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur Computer Science Association \n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "باش سۈرەتنى تاللايدىغان كۆڭۈلدىكى مۇندەرىجە" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "باش سۈرەت تاللانغان ئەڭ ئاخىرقى قىسقۇچ." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "نۆۋەتتىكى يەرلىك تىل" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "ئەرەبچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "ئەرمەنچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "بالتىق" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "كېلتىك" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "ئوتتۇرا ياۋروپا" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "ئاددىي خەنزۇچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "مۇرەككەپ خەنزۇچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "خورۋاتچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "سلاۋيانچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "رۇسچە/سلاۋيان" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "سلاۋيانچە/ئۇكرائىنچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "گىرۇزىنچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "گىرېكچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "گۇجاراتچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "گۇرمۇكىچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "ئىبرانىچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "ئىبرانىچە كۆرۈنۈشچان" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "ھىندىچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "ئىسلاندچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "ياپونچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "كورېيەچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "شىمالىي ياۋروپا" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "پارىسچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "رۇمىنىيەچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "جەنۇبى ياۋروپا" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "تايلاندچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "تۈركچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "يۇنىكود" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "غەربچە" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "ۋىيېتنامچە" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "ئىم(_W)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "ئېكران ئاتى(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "مەسىلەن: مېنىڭ ئاتىم" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "ئىم ئەستە تۇت" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "ئېغىز(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "مۇلازىمېتىر(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "ئالىي" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "AIM دىكى ئاتىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "AIM دىكى ئىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "ئىمنى ئەستە تۇتۇش" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "كىرىش كىملىكى(_D)" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "مىسال: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "GroupWise ئىشلەتكۈچى كىملىكىڭىز نېمە؟" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "GroupWise دىكى ئىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "مىسال: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "ھەرپ توپى(_A)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "ICQ دىكى ئاتىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "ICQ دىكى ئىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "تور" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "ھەرپ توپى" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "قوشۇش…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "چىقىرىۋەت" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "ئۈستى" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "ئاستى" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "مۇلازىمېتىر" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"نۇرغۇن IRC مۇلازىمەتلىرى ئىم تەلەپ قىلمايدۇ، بىلمىسىڭىز ئىمنى كىرگۈزمەڭ." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "تەخەللۇس" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "ئىم" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "ئۇچۇرنى ئاخىرلاشتۇر" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "ھەقىقىي ئاتى:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "ئىشلەتكۈچى ئاتى" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "قايسى IRC تورى؟" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "IRC دىكى لەقىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Facebook دىكى ئاتىڭىز؟" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"بۇ سىزنىڭ ئىشلەتكۈچى ئاتىڭىزدۇر. Facebook قا كىرىشتە ئىشلىتىدىغىنى ئەمەس.\n" +" ئەگەر سىز Facebook دا facebook.com/badger بولسىڭىز، badger " +"دەپ كىرگۈزۈڭ.\n" +"ئەگەر بۇنداق ئاتىڭىز بولمىسا بۇ يەرگە بېرىپ، Facebook دىكى ئىشلەتكۈچى ئاتىڭىزنى تاللاڭ." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Facebook دىكى ئىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Google دىكى كىملىكىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "مىسال: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Google دىكى ئىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "مىسال: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "SSL گۇۋاھنامىسىدىكى خاتالىققا پەرۋا قىلما(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "مەرتىۋىسى(_T)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "مەنبە(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "شىفىرلاش زۆرۈر(TLS/SSL)(_Y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "مۇلازىمېتىر تەڭشىكىنى قاپلاش" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "كونا SS_L نى ئىشلەت" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Jabber دىكى كىملىكىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Jabber دىكى ئارزۇ قىلغان كىملىكىڭىز نېمە؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Jabber دىكى ئىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Jabber دىكى ئارزۇ قىلغان ئىمىڭىز نېمە؟" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "لەقەم(_K)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "تەگ ئاتى(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "ئاتى(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "ئېلان قىلغان ئاتى(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "جاببېر كىملىكى(_J)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "ئېلخەت ئادرېسى(_M)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "مىسال: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Windows Live دىكى كىملىكىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Windows Live دىكى ئىمىڭىز؟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "ئاپتوماتىك" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "خەتلەت" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "تاللانما" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "يوق" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "ئىشلەتكۈچى ئاتى(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "مىسال: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" +"بۇ ھېساباتنى ئۆي تېلېفونلىرى ۋە يانفونلارغا تېلېفون قىلىش ئۈچۈن ئىشلەت(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT Traversal تاللانمىلىرى" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "ۋاكالەتچى تاللانمىلىرى" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "باشقا تاللانمىلار" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN مۇلازىمېتىرى" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "STUN مۇلازىمېتىرىنى ئاپتوماتىك تاپىدۇ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Binding نى بايقاش" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "مۇلازىمېتىر" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-Alive تاللانمىسى" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "مېخانىزمى:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "ئىنتېرۋال(سېكۇنت)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "كىملىك دەلىللىگۈچى ئاتى" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "يوللاش" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "ئازادە يول باشلاش" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "TLS خاتالىقلىرىغا پەرۋا قىلما" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "ئېغىز" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "يەرلىك IP ئادرېسى" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "SIP ھېساباتىڭىزنىڭ كىملىكى نېمە؟" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "SIP ھېساباتىڭىزنىڭ ئىمى نېمە؟" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "ئىم(_W):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "ياخۇ (Yahoo! ID) كىملىكى:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "يىغىن ۋە سۆھبەتخانا تەكلىپىگە پەرۋا قىلما" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "ئۆيلەر تىزىمىنىڭ ئورنى:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "ھەرپ توپلىمى(_A):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "ئېغىز(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "ياخۇ (Yahoo! ID) كىملىكىڭىز نېمە؟" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "ياخۇ (Yahoo! ID) ئىمىڭىز نېمە؟" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "تاللا…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "تاللا(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "تولۇق ئاتى" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "تېلېفون نومۇرى" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "ئېلخەت ئادرېسى" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "تورتۇرا" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "تۇغۇلغان كۈن" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "ئەڭ ئاخىرقى كۆرۈنگەن ۋاقتى:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "مۇلازىمېتىر:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "باغلانغان يەر:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "جايىدا يوق ئۇچۇرى:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "خىزمەت" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "باش بەت" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "يان تېلېفون" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "ئۈن" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "مايىللىق" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "پوچتا" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "بوغچا" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "يەڭ تور" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "IRC تورىنى تاللاش" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "تور تىزىمىنى ئەسلىگە قايتۇرۇش(_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "تاللا" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "يېڭى مۇلازىمېتىر" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "ئىم تېپىلمىدى" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "ئىشلەتكۈچى %s (%s) نىڭ مۇڭداشقۇ ھېساباتىنىڭ ئىمى" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "پاراڭخانا ‹%s› نىڭ ئىمى (ھېسابات %s (%s) )" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "يېڭى %s ھېساباتى" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d سېكۇنت ئىلگىرى" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d مىنۇت ئىلگىرى" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d سائەت ئىلگىرى" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d كۈن ئىلگىرى" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d ھەپتە ئىلگىرى" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d ئاي ئىلگىرى" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "كەلگۈسىدە" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "شەخسىي ئۇچۇرلارنى تەھرىرلەش ئۈچۈن تورغا باغلىنىڭ." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "بەلگە" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "تەخەللۇس" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "شەخسىي ئۇچۇرلار" diff --git a/telepathy-account-widgets/po/uk.po b/telepathy-account-widgets/po/uk.po new file mode 100644 index 0000000..6f268a7 --- /dev/null +++ b/telepathy-account-widgets/po/uk.po @@ -0,0 +1,834 @@ +# Ukrainian translation for gossip +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the gossip package. +# Sergiy Dolgopolov , 2004. +# Maxim Dziumanenko , 2008 +# Sergey Panasenko , 2009. +# Korostil Daniel , 2011, 2012. +# Re. , 2012. +# Daniel Korostil , 2013. +msgid "" +msgstr "" +"Project-Id-Version: Empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2013-03-26 15:54+0300\n" +"Last-Translator: Daniel Korostil \n" +"Language-Team: linux.org.ua\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.7.1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Каталог, що використовується для вибору зображень аватарів" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Останній каталог, з якого брались зображення аватарів." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Поточна локаль" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Арабська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Вірменська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Балтійська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Кельтська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Центральноєвропейська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Китайська спрощена" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Китайська традиційна" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Хорватська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Кирилиця" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Російська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Українська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Грузинська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Грецька" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Гуджараті" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Гурмукхі" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Іврит" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Іврит Visual" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Хінді" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Ісландська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Японська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Корейська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Скандинавська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Перська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Румунська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Південноєвропейська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Тайська" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Турецька" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Унікод" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Західна" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "В'єтнамська" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "_Пароль" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Екранне _ім'я" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Приклад: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Запам'ятати пароль" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "П_орт" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Додатково" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Пароль облікового запису AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Пароль вашого AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Запам'ятати пароль" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "_Ідентифікатор входу" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Приклад: username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Ваш ідентифікатор користувача GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Пароль вашого GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Приклад: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "Набір с_имволів" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Ідентифікатор користувача (UIN) у ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Пароль у ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Мережа" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Набір символів" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Додати…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Вилучити" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Вгору" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Униз" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Сервери" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Більшість серверів IRC потребують пароль, отож, якщо ви не впевнені, не " +"вводьте пароль." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Псевдонім" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Пароль" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Повідомлення від'єднання" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Справжнє ім'я" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Користувач" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Яка мережа IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Який ваш псевдонім у IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Користувач у Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Це псевдонім вашого користувача, а не обліковий запис Facebook.\n" +"Якщо ви facebook.com/badger, введіть badger.\n" +"Використовуйте цю сторінку " +"для вибору користувача Facebook, якщо у вас його немає." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Пароль у Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Ваш ідентифікатор у Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Приклад: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Пароль у Google" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Приклад: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_Ігнорувати помилки сертифікатів SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "П_ріоритет" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "Ре_сурс" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "_Шифрування обов'язкове (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Замінювати параметри сервера" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Використовувати старе _шифрування (SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Ідентифікатор Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Бажаний ідентифікатор у Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Пароль у Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Бажаний пароль у Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "П_севдонім" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Прізвище" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Ім'я" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "_Публічне прізвисько" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "_Адреса електронної пошти" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Приклад: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Ідентифікатор у Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Пароль у Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Автоматично" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Register" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Параметри" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Немає" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "_Користувач" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Приклад: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" +"Скористатись цим обліковим записом для _стаціонарних і мобільних телефонів" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Параметри NAT Traversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Параметри проксі" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Інші параметри" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Сервер STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Відкрийте для себе сервер STUN автоматично" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Виявляти з'єднання" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Сервер" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Параметри утримування з'єднання" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Механізм" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Інтервал (у секундах)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Користувач для аутентифікації" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Транспорт" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Вільне маршрутизування" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Ігнорувати помилки TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Порт" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Локальна адреса IP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Ідентифікатор облікового запису у SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Пароль до облікового запису у SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "_Пароль:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Ігнорувати запрошення до бесід у кімнатах та конференцій" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Локаль списку бесід:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Набір символів:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "П_орт:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Ідентифікатор у Yahoo! ?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Пароль у Yahoo!?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Вибрати..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Вибрати" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Повне ім'я" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Номер телефону" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Адреса електронної пошти" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Сайт" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "День народження" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Востаннє помічений:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Сервер:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "На зв'язку вже:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Повідомлення за відсутності:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "робочий" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "домашній" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "мобільний" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "голосовий" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "переважний" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "поштовий" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "посилковий" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Нова мережа" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Виберіть мережу IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Скинути список _мереж" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Вибрати" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "новий сервер" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "Шифрування SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "Пароль не знайдено" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Пароль облікового запису обміну повідомленнями для %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Пароль для кімнати «%s» в обліковому записі %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Новий обліковий запис %s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d секунду тому" +msgstr[1] "%d секунди тому" +msgstr[2] "%d секунд тому" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d хвилину тому" +msgstr[1] "%d хвилини тому" +msgstr[2] "%d хвилин тому" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d годину тому" +msgstr[1] "%d години тому" +msgstr[2] "%d годин тому" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d день тому" +msgstr[1] "%d дні тому" +msgstr[2] "%d днів тому" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d тиждень тому" +msgstr[1] "%d тижня тому" +msgstr[2] "%d тижнів тому" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d місяць тому" +msgstr[1] "%d місяця тому" +msgstr[2] "%d місяців тому" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "в майбутньому" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "Увійти в мережу, щоб редагувати особисті відомості." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "Ідентифікатор" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "Псевдонім" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "Особисті відомості" diff --git a/telepathy-account-widgets/po/vi.po b/telepathy-account-widgets/po/vi.po new file mode 100644 index 0000000..755b711 --- /dev/null +++ b/telepathy-account-widgets/po/vi.po @@ -0,0 +1,817 @@ +# Vietnamese translation for tp-account-widgets. +# Copyright © 2009 GNOME i18n Project for Vietnamese. +# Clytie Siddall , 2008-2009. +# Nguyễn Thái Ngọc Duy , 2009,2011-2012. +# Ngô Chin , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy TRUNK\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2012-08-22 14:16+0700\n" +"Last-Translator: Nguyễn Thái Ngọc Duy \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Thư mục mặc định để chọn ảnh đại diện" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "Thư mục chứa ảnh đại diện lần trước." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Miền địa phương hiện có" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "Tiếng Ả Rập" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "Tiếng Ác-mê-ni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "Tiếng Ban-tích" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "Tiếng Xen-tơ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Ngôn ngữ Trung Âu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Tiếng Hoa giản thể" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Tiếng Hoa phồn thể" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "Tiếng Croatia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "Ki-rin" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "Ki-rin/Tiếng Nga" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "Ki-rin/Tiếng Ucraina" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "Tiếng Gioóc-gia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "Tiếng Hy Lạp" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "Tiếng Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "Tiếng Gurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "Tiếng Do Thái" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Tiếng Do Thái trực quan" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "Tiếng Hin-đi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "Tiếng Aixơlen" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "Tiếng Nhật" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "Tiếng Hàn Quốc" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "Vùng Bắc Âu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "Tiếng Ba Tư" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "Tiếng Rô-ma-ni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Vùng Nam Âu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "Tiếng Thái" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "Tiếng Thổ Nhĩ Kỳ" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Phương Tây" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "Tiếng Việt" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "Mật khẩ_u" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "Tê_n hiển thị" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Ví dụ: TênHiểnThị" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Nhớ mật khẩu" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "_Cổng" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "_Máy phục vụ" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Cao cấp" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Tên hiển thị AIM của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Mật khẩu AIM của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Nhớ mật khẩu" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "I_D đăng nhập" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Ví dụ: tênngườidùng" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "ID GroupWise của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Mật khẩu GroupWise của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Ví dụ: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "_Bảng mã" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "UIN ICQ của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Mật khẩu ICQ của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Mạng" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "Bảng mã" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Thêm…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Bỏ" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "Lên" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "Xuống" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Máy phục vụ" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"Phần lớn các máy chủ IRC không yêu cầu mật khẩu nên nếu bạn không chắc chắn " +"thì đừng nhập mật khẩu vào đây." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "Biệt hiệu" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Mật khẩu" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "Thông điệp thoát" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "Tên thật" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "Tên người dùng" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Mạng IRC nào?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Biệt hiệu IRC của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Tên người dùng Facebook Live của bạn là gì?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Đây là tên người dùng, không phải đăng nhập Facebook bình thường.\n" +"Nếu bạn là facebook.com/xinhxinh, nhập xinhxinh.\n" +"Dùng trang này để chọn tên " +"người dùng Facebook nếu bạn chưa có." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Mật khẩu Facebook của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "ID Google của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Ví dụ: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Mật khẩu Google của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Ví dụ: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_Bỏ qua lỗi chứng nhận SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "Ư_u tiên" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "Tài ngu_yên" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Yêu cầu _mật mã (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Đè thiết lập máy chủ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Dùng SS_L cũ" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "ID Jabber của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "ID Jabber bạn mong muốn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Mật khẩu Jabber của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Mật khẩu Jabber mong muốn của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "_Biệt hiệu" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "_Họ" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "_Tên" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "Tên công _bố" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "ID _Jabber" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "Địa chỉ e-_mail" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Ví dụ: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "ID Windows Live của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Mật khẩu Windows Live của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Tự động" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Đăng ký" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Tuỳ chọn" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Không" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "Tên người _dùng" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Ví dụ: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Dùng tài khoản này để gọi điện thoại _bàn và di động" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Tuỳ chọn vượt NAT" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Tuỳ chọn uỷ nhiệm" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Tuỳ chọn linh tinh" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "Máy chủ STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Tự động phát hiện máy chủ STUN" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Phát hiện gắn kết" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Máy phục vụ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Tuỳ chọn Keep-Alive (giữ kết nối)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "Cơ chế" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Khoảng lặp (giây)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "Tên người dùng để xác thực" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "Phương tiện" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Định tuyến lỏng lẻo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Bỏ qua lỗi TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Cổng" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "Địa chỉ IP cục bộ" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "ID đăng nhập SIP của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Mật khẩu SIP của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Mật khẩ_u:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I_D Yahoo!:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "_Bỏ qua lời mời hội thảo hay phòng trò chuyện" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Miền địa phương danh sách phòng:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "_Bảng mã:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Cổng:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Yahoo! ID của bạn là gì?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Mật khẩu Yahoo! của bạn là gì?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "Chọn..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "_Chọn" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Họ tên" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Số điện thoại" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Địa chỉ E-mail" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "Trang Web" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Ngày sinh" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Lần cuối cùng trực tuyến:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Máy phục vụ:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Kết nối từ:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Thông điệp khi vắng mặt:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "công việc" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "nhà" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "di động" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "tiếng" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "ưa thích" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "bưu chính" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "bưu kiện" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Mạng mới" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Chọn mạng IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Đặt lại _danh sách mạng" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Chọn" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "máy phục vụ mới" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "Không tìm thấy mật khẩu" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "Mật khẩu tài khoản IM cho %s (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "Mật khẩu phòng tán gẫu '%s' trên tài khoản %s (%s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Tài khoản %s mới" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d giây trước" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d phút trước" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d giờ trước" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d ngày trước" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d tuần trước" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d tháng trước" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "trong tương lai" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "Vào trực tuyến để sửa thông tin cá nhân." + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +msgid "Identifier" +msgstr "Định danh" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +msgid "Alias" +msgstr "Bí danh" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +msgid "Personal Details" +msgstr "Chi tiết cá nhân" diff --git a/telepathy-account-widgets/po/xh.po b/telepathy-account-widgets/po/xh.po new file mode 100644 index 0000000..15c0b93 --- /dev/null +++ b/telepathy-account-widgets/po/xh.po @@ -0,0 +1,856 @@ +# Xhosa translation for tp-account-widgets. +# Copyright (C) 2011 tp-account-widgets's COPYRIGHT HOLDER +# This file is distributed under the same license as the tp-account-widgets package. +# Andiswa Mvanyashe , 2011. +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2011-12-23 13:48+0200\n" +"Last-Translator: Andiswa Mvanyashe \n" +"Language-Team: translate-discuss-af@lists.sourceforge.net\n" +"Language: xh\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Virtaal 0.7.0\n" +"X-DamnedLies-Scope: partial\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "I-Locale yaNgoku" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "isiArab" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "isiArmenian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "isiBaltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "isiCeltic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "iYurophu eseMbindini" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "Ummi waseChina wokwenene" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "Isiko lwamaChina" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "isiCroatian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "isiCyrillic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "isiCyria/isiRussia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "isiCyria isi-Ukraine" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "isiGeorgia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "isiGrike" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "isiGujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "isiGurmukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "isiHebheru" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "Umfanekiso wesiHebhere" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "isiHindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "isiIcelandic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "isiJapanese" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "isiKorea" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "isiNordic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "umPersia" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "isiRomanian" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "Ummi wakuMzantsi Yurophu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "isiThai" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "isiTurkish" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "I-Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "isiNtshona" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "isiVietnamese" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "I_gama lokuthela:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "I_gama lesikrini:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Umzekelo: igamalamlesikrini" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Khumbula igama lokuthela" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Isiqhagamsheli:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "I_seva:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Kwinqanaba eseliphambili" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Lithini igama lakho lesikrini sika-AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Lithini agama lokuthela ku-AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Khumbula igama lokuthela" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Indlela yokungena ye I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Umzekelo: umsebenzisi" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Lithini agama lokuthela le-GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Lithini agama lokuthela le-GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Umzekelo: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Ummiselo wo_mbhalo onjengonobumba:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Ithini i-ICQ UIN?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Lithini agama lokuthela ku-ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Umsebenzi wothungelwano" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Ummiselo wo~mbhalo onjengonobumba:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Fakela…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Susa" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Iiseva" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" +"I-IRC seva ezininzi azilifuni igama lokuthela, ngoko xa ungaqinisekanga, " +"sukulifaka igama lokuthela." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Igama lesiteketiso:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Igama lokuthela" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Phuma kumyalezo:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Igama lokwenyani:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Igama lomsebenzisi:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Loluphi uthungelwano lwe-IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Sithini isiteketiso sakho se-IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Lithini agama lokuthela ku-Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +#, fuzzy +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Eli ligama lakho lokulisebenzisa, hayi u-Facebook login oqhelekile.\n" +"If you are facebook.com/badger, faka badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Lithini agama lokuthela ku-Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Ithini i-ID yakho ku-Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Umzekelo: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Lithini agama lokuthela ku-Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Umzekelo: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "_Zizibe impazamo zesatifiketi se-SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "E_zibalulekile:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "U_mnikezi:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "I-Encr_yption iyafuneka (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Zegqume izicwangciso zeseva" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Sebenzisa i-SS_L endala" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Ithini i-ID yakho kaJabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Ithini i-ID yakho kaJabber oyinqwnelayo?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Lithini agama lokuthela ku-Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Lithini igama lokuthela lika-Jabber olinqwnelayo?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "I_gama lesiteketiso:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "Igama _Lokugqibela:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "Igama _Lokuqala:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "I_gama elipapashiwe:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "I-_Jabber ID:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "Idilesi ye-i_meyile:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Umzekelo: user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Ithini iID yakho yeFestile eohikayo?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Lithini agama lokuthela lika-Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Okuzenzekelayo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Bhalisa" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Okukhethwayo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Akukho nanye" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Igama lomsebenzisi:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Umzekelo: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "Sebenzisa le-akhawunti ukufownela i_mfonomfono zendlu kunye neselula" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Okukhethwayo kwe-NAT Traversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Shicilela okukhethwayo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Ezinokukhethwa eziziintlobo ngeentlobo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "I-STUN Seva:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Fumana iseva ye-STUN ngokwayo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Fumanisa ngokubopha" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Iseva" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Gcina ukhetho oluphilayo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "I-Mechanism:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Ikhefu lesandi (imizuzwana)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Ubungqina begama lokusebenzisa:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Uthutho:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Lahla i-routing" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Suzinaka iimpazamo zeTLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Izibuko" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +#, fuzzy +msgid "Local IP Address" +msgstr "Idilesi ye-imeyile" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Ithini i-ID yakho yokungena kuSIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Lithini agama lokuthela le-akhawunti ye-SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "I_gama lokuthela:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I-Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Su_zinaka ikhonferensi kunye namagumbi okuxoxa" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "Uluhlu le_gumbi lendawo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Ummiselo wo_mbhalo onjengonobumba:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Isiqhagamsheli:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Ithini i-ID ka-Yahoo! Yakho?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Lithini agama lokuthela ku-Yahoo?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Khetha" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Khetha" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +msgid "Full name" +msgstr "Igama elipheleleyo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Phone number" +msgstr "Umnxeba weselula" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "E-mail address" +msgstr "Idilesi ye-imeyile" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "Website" +msgstr "I-Website" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Birthday" +msgstr "Usuku lokuzalwa" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Yagqityelwa ukubonwa:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Iseva:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Uqhakamshele uphi:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Umyalezo wokubakude:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +msgid "work" +msgstr "umsebenzi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "ekhaya" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "iselula" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "ilizwi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "preferred" +msgstr "okukhethwayo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "malunga nokuposa" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "ipasile" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Uthungelwano olutsha" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Khatha uthungelwano olutsha lwe-IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Phinda ulungise uluhlu _lothungelwano olutsha" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Khetha" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "iseva entsha" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "I-SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Ibinzana lamagama alifunyenwanga" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "Akhawunti entsha ka-%s" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "kumzuzu oyi-%d odlulileyo" +msgstr[1] "kwimizuzu eyi-%d odlulileyo" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "kumzuzu oyi-%d odlulileyo" +msgstr[1] "kwimizuzu eyi-%d odlulileyo" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "kwiyure eyi-%d edlulileyo" +msgstr[1] "kwiiyure eziyi-%d ezadlulayo" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "kusuku oluyi-%d oludlulile" +msgstr[1] "kwiintsuku eziyi-%d ezadlulayo" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "kwiveki eyi-%d edlulile" +msgstr[1] "kwiiveki eziyi-%d ezidlulileyo" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "inyanga eyi-%d edlulileyo" +msgstr[1] "kwiinyanga eziyi-%d ezidlulileyo" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "kwingomso" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Umqwalaseli:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Igama elisisiqhulo:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Iinkcukacha zobuxhakaxhaka" diff --git a/telepathy-account-widgets/po/zh_CN.po b/telepathy-account-widgets/po/zh_CN.po new file mode 100644 index 0000000..da16e72 --- /dev/null +++ b/telepathy-account-widgets/po/zh_CN.po @@ -0,0 +1,933 @@ +# Simplified Chinese translation of tp-account-widgets. +# Convert to Simp. Chinese translation of tp-account-widgets. +# Copyright (C) 2003, 2008, 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the tp-account-widgets package. +# +# Abel Cheung , 2003. +# Mai Haohui , 2003. +# Rongjun Mu , 2003. +# YangZhang , 2008. +# Funda Wang , 2009. +# Lyper Lai , 2009. +# Yun Nie , 2009. +# Richard Ma , 2009. +# Tao Wei , 2009. +# Tao Wang , 2010. +# Dean Lee , 2010. +# Aron Xu , 2009, 2010. +# Wylmer Wang , 2010-2013. +# zhen liu , 2011 +# Yangtse Su , 2011 +# Mike Manilone , 2012 +# EL8LatSPQ , 2012. +# YunQiang Su , 2012. +# Cheng Lu , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-27 08:46+0000\n" +"PO-Revision-Date: 2016-10-31 02:22+0800\n" +"Last-Translator: Mandy Wang \n" +"Language-Team: Chinese (Simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "默认的选取头像图片的目录" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "上次选取头像图片的目录。" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "当前语言环境" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "阿拉伯语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "亚美尼亚语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "波罗的语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "凯尔特语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "中欧" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "简体中文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "繁体中文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "克罗地亚语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "斯拉夫语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "斯拉夫语系/俄语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "斯拉夫语系/乌克兰语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "格鲁吉亚语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "希腊语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "古吉拉特语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "旁遮普语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "希伯来语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "希伯来语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "北印度语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "冰岛语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "日本语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "韩语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "北欧语系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "波斯语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "罗马尼亚语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "南欧语系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "泰国语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "土耳其语" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "Unicode" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "西方语言" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "越南语" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "密码(_W)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "用户名(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "例如: 我的屏幕名称" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "记住密码" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "端口(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "服务器(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "高级" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "您的 AIM 屏幕名称是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "您的 AIM 密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "帐户" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "密码" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "服务器" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "端口" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "用户名:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "添加(_D)" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "应用(_P)" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s 位于 %2$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s 帐号" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "新建帐号" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "登录 I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "例如:用户名" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "您的 GroupWise 用户名是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "您的 GroupWise 密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "例如:123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "字符集(_A)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "您的 ICQ UIN 是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "您的 ICQ 密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "网络" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "字符集" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "添加..." + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "删除" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "在线" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "离线" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "服务器" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "大多数 IRC 服务器不需要密码,所以如果您不确定,就不要输入密码。" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "昵称" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "退出消息" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "真名" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "用户名" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "哪个 IRC 网络?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "您的 IRC 昵称是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "您的 Facebook 用户名是什么?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"这是您的用户名,而不是您通常登陆 Facebook 的名称。\n" +"如果您是 facebook.com/badger,输入 badger。\n" +"如果您还没有 Facebook 用户名的话,使用 这个页面 来选择一个。" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "您的 Facebook 密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "您的 Google ID 是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "例如:user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "您的 Google 密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "例如:user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "忽略 SSL 证书错误(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "优先级(_T)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "资源(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "需要加密(TLS/SSL)(_Y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "覆盖服务器设置" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "使用旧的 SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "您的 Jabber ID 是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "您的 Jabber 密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "昵称(_K)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "姓(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "名(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "公开的名字(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "电子邮件地址(_M)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "例如:user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "您的 Windows Live 帐号是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "您的 Windows Live 密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "自动" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "注册" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "选项" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "无" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "用户名(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "例如:user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "用此帐号拨打固定电话和手机(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT 选项" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "代理选项" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "杂项" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN 服务器" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "自动发现 STUN 服务器" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "发现绑定" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Keep-Alive 选项" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "机制" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "间隔(秒)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "验证用户名" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "传输" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "宽松路由" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "忽略 TLS 错误" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "本地 IP 地址" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "您的 SIP 登录 ID 是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "您的 SIP 帐号密码是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "密码(_W):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "忽略会议和聊天室邀请(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "聊天室列表 locale(_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "字符集(_A):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "端口(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "您的 Yahoo! ID 是什么?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "您的 Yahoo! 密码是什么?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "无法转换图像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "所有接受的图像格式在您的系统上都不被支持" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "无法将图片保存为文件" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "选择您的头像图片" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "拍照…" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "无图像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "图像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "所有文件" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "选择…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "选择(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "全名" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "电话号码" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "电子邮件地址" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "网站" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "生日" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "最近上线:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "服务器:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "连接来源:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "离开消息:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "办公" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "主页" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "手机" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "音频" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "首选" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "邮政" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "邮件" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "新建网络" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "选择一个 IRC 网络" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "重置_Networks列表" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "选择" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "新建服务器" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "未找到密码" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "IM 帐号 %s (%s) 的密码" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "帐号 %2$s (%3$s) 的聊天室 %1$s 的密码" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "新建 %s 帐号" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d 秒钟前" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 分钟前" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 小时前" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 天前" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d 星期前" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d 月前" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "将来" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "请上线以编辑您的个人信息。" + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "这些详细信息将与该聊天网络上的其他用户分享" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "标识符" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "别名" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "个人详情" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "附近的人" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! 日本" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook 聊天" + +#~ msgid "Remember Password" +#~ msgstr "记住密码" + +#~ msgid "Select..." +#~ msgstr "选择..." + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "您想要的 Jabber ID 是什么?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "您想要的 Jabber 密码是什么?" diff --git a/telepathy-account-widgets/po/zh_HK.po b/telepathy-account-widgets/po/zh_HK.po new file mode 100644 index 0000000..2f2b024 --- /dev/null +++ b/telepathy-account-widgets/po/zh_HK.po @@ -0,0 +1,916 @@ +# Chinese (Hong Kong) translation of tp-account-widgets. +# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# Abel Cheung , 2003, 2004. +# Chao-Hsiung Liao , 2005. +# Tryneeds translation team, 2009. +# Cheng-Chia Tseng , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy 3.3.92\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-08-29 22:02+0800\n" +"PO-Revision-Date: 2013-08-29 22:02+0800\n" +"Last-Translator: Chao-Hsiung Liao \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "用來選擇大頭貼圖片的預設目錄" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "上次選擇大頭貼圖片的目錄。" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "目前的地區資訊" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "阿拉伯文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "阿美尼亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "波羅的海語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "塞爾特語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "中歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "簡體中文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "繁體中文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "克羅地亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "斯拉夫語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "斯拉夫語系/俄文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "斯拉夫文/烏克蘭語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "格魯吉亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "希臘文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "古吉拉特文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "古魯穆奇文字" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "希伯來文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "希伯來文(左至右)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "北印度文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "冰島語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "日文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "韓文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "北歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "波斯文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "羅馬尼亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "南歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "泰文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "土耳其文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "萬國碼" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "西歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "越南文" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "密碼(_W)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "螢幕名稱(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "範例:MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "記住密碼" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "連接埠(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "伺服器(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "進階" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "你的 AIM 螢幕名稱是?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "你的 AIM 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "記住密碼" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +msgid "Account" +msgstr "帳號" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "密碼" + +#: ../tp-account-widgets/tpaw-account-widget.c:673 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "伺服器" + +#: ../tp-account-widgets/tpaw-account-widget.c:674 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "連接埠" + +#: ../tp-account-widgets/tpaw-account-widget.c:758 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:815 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1405 +msgid "Username:" +msgstr "使用者名稱:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1732 +msgid "A_dd" +msgstr "加入(_A)" + +#: ../tp-account-widgets/tpaw-account-widget.c:1740 +msgid "A_pply" +msgstr "套用(_A)" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2169 +#, c-format +msgid "%1$s on %2$s" +msgstr "%2$s 上的 %1$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2195 +#, c-format +msgid "%s Account" +msgstr "%s 帳號" + +#: ../tp-account-widgets/tpaw-account-widget.c:2199 +msgid "New account" +msgstr "新增帳號" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "登入 I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "範例:username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "你的 GroupWise 使用者 ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "你的 GroupWise 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "範例:123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "字集(_A)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "你的 ICQ UIN 是?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "你的 ICQ 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "網絡" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "字集" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "加入…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "移除" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "往上" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "往下" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "伺服器" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "大多數的 IRC 服務不需要密碼,所以若你不確定的話,請不要輸入密碼。" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "網名" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "離開訊息" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "真實姓名" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "使用者名稱" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "哪個 IRC 網絡?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "你的 IRC 網名是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "你的 Facebook 使用者名稱是?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"這是你的使用者名稱,而不是你一般的 Facebook 登入。\n" +"如果你是 facebook.com/badger 的話,請輸入 badger。\n" +"如果你還沒有 Facebook 使用者名稱,請使用 此網頁 來選用一個。" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "你的 Facebook 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "你的 Google ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "範例:user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "你的 Google 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "範例:user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "忽略 SSL 證書錯誤(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Priori_ty" +msgstr "優先權(_T)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Reso_urce" +msgstr "資源(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "要求加密 (TLS/SSL)(_Y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "覆蓋伺服器設定值" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "使用舊版 SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "你的 Jabber ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your Jabber password?" +msgstr "你的 Jabber 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "網名(_K)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "姓(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "名(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "發布的名稱(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "電子信箱位址(_M)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "範例:user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "你的 Windows Live ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "你的 Windows Live 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "自動" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "註冊" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "無" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "使用者名稱(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "範例:user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "使用這個帳號來撥打市話與流動電話(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT 傳輸選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy 選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "雜項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN 伺服器" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "自動探索 STUN 伺服器" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "探索綁定" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "保持不斷線選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "機制" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "間隔 (秒)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "認證使用者名稱" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "傳輸" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "寬鬆路由" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "忽略 TLS 錯誤" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "區域 IP 位址" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "你想要的 SIP 登入 ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "你的 SIP 帳號密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "密碼(_W):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "忽略會議與聊天室邀請(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "聊天室清單地區資訊(_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "字集(_A):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "連接埠(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "你的 Yahoo! ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "你的 Yahoo! 密碼是?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:543 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:628 +msgid "Couldn't convert image" +msgstr "無法轉換影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:544 +msgid "None of the accepted image formats are supported on your system" +msgstr "你的系統上沒有支援已接受的影像格式" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:904 +msgid "Couldn't save picture to file" +msgstr "無法將影像儲存至檔案" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1026 +msgid "Select Your Avatar Image" +msgstr "選擇你的大頭貼影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1035 +msgid "Take a picture..." +msgstr "挑選圖片..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1048 +msgid "No Image" +msgstr "沒有影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1107 +msgid "Images" +msgstr "影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1111 +msgid "All Files" +msgstr "所有檔案" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select..." +msgstr "選取..." + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "選取(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "全名" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "電話號碼" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "電子信箱位址" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "網站" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "生日" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "上次看見:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "伺服器:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "已連接來源:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "離開訊息:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "工作" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "住家" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "行動" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "聲音" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "偏好" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "郵遞" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "包裹" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "新增網絡" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "選擇 IRC 網絡" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "重設網絡清單(_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "選取" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "新增伺服器" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +msgid "Password not found" +msgstr "找不到密碼" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s 的即時通帳號密碼 (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "%2$s 帳號下「%1$s」聊天室的密碼 (%3$s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "新增 %s 帳號" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d 秒前" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 分鐘以前" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 小時以前" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 天以前" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d 週前" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d 個月以前" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "未來" + +#: ../tp-account-widgets/tpaw-user-info.c:423 +msgid "Go online to edit your personal information." +msgstr "上線以編輯你的個人資料。" + +#: ../tp-account-widgets/tpaw-user-info.c:507 +msgid "These details will be shared with other users on this chat network." +msgstr "這些詳細資料會分享給這個聊天網絡上的其他使用者。" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:516 +msgid "Identifier" +msgstr "識別身分" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:524 +msgid "Alias" +msgstr "別名" + +#: ../tp-account-widgets/tpaw-user-info.c:541 +msgid "Personal Details" +msgstr "個人詳細資料" + +#: ../tp-account-widgets/tpaw-utils.c:115 +msgid "People Nearby" +msgstr "附近的人" + +#: ../tp-account-widgets/tpaw-utils.c:120 +msgid "Yahoo! Japan" +msgstr "Yahoo! 日本" + +#: ../tp-account-widgets/tpaw-utils.c:156 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:157 +msgid "Facebook Chat" +msgstr "Facebook 聊天" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "您想要的 Jabber ID 是?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "您想要的 Jabber 密碼是?" diff --git a/telepathy-account-widgets/po/zh_TW.po b/telepathy-account-widgets/po/zh_TW.po new file mode 100644 index 0000000..2cabb8b --- /dev/null +++ b/telepathy-account-widgets/po/zh_TW.po @@ -0,0 +1,915 @@ +# traditional Chinese translation of tp-account-widgets. +# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# Abel Cheung , 2003, 2004. +# Chao-Hsiung Liao , 2005. +# Tryneeds translation team, 2009. +# Cheng-Chia Tseng , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: empathy 3.3.92\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=empathy&keywords=I18N+L10N&component=tp-aw\n" +"POT-Creation-Date: 2016-10-06 16:07+0000\n" +"PO-Revision-Date: 2016-10-09 22:00+0800\n" +"Last-Translator: Cheng-Chia Tseng \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.8\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "用來選擇大頭貼影像的預設目錄" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "上次選擇大頭貼影像的目錄。" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "目前的地區資訊" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "阿拉伯文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "阿美尼亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "波羅的海語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "塞爾特語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "中歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "簡體字中文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "正體字中文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "克羅埃西亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "斯拉夫語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "斯拉夫語系/俄文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "斯拉夫文/烏克蘭語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "喬治亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "希臘文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "古吉拉特文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "古魯穆奇文字" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "希伯來文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "希伯來文(左至右)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "北印度文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "冰島語" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "日文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "韓文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "北歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "波斯文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "羅馬尼亞文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "南歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "泰文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "土耳其文" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "萬國碼" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "西歐語系" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "越南文" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +msgid "Pass_word" +msgstr "密碼(_W)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +msgid "Screen _Name" +msgstr "螢幕名稱(_N)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "範例:MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "記住密碼" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +msgid "_Port" +msgstr "連接埠(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +msgid "_Server" +msgstr "伺服器(_S)" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "進階" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "您的 AIM 螢幕名稱是?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "您的 AIM 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget.c:669 +msgid "Account" +msgstr "帳號" + +#: ../tp-account-widgets/tpaw-account-widget.c:670 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "密碼" + +#: ../tp-account-widgets/tpaw-account-widget.c:671 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "伺服器" + +#: ../tp-account-widgets/tpaw-account-widget.c:672 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "連接埠" + +#: ../tp-account-widgets/tpaw-account-widget.c:756 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../tp-account-widgets/tpaw-account-widget.c:813 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1403 +msgid "Username:" +msgstr "使用者名稱:" + +#: ../tp-account-widgets/tpaw-account-widget.c:1730 +msgid "A_dd" +msgstr "加入(_A)" + +#: ../tp-account-widgets/tpaw-account-widget.c:1738 +msgid "A_pply" +msgstr "套用(_A)" + +#. To translators: The first parameter is the login id and the +#. * second one is the network. The resulting string will be something +#. * like: "MyUserName on freenode". +#. * You should reverse the order of these arguments if the +#. * server should come before the login id in your locale. +#: ../tp-account-widgets/tpaw-account-widget.c:2176 +#, c-format +msgid "%1$s on %2$s" +msgstr "%2$s 上的 %1$s" + +#. To translators: The parameter is the protocol name. The resulting +#. * string will be something like: "Jabber Account" +#: ../tp-account-widgets/tpaw-account-widget.c:2203 +#, c-format +msgid "%s Account" +msgstr "%s 帳號" + +#: ../tp-account-widgets/tpaw-account-widget.c:2207 +msgid "New account" +msgstr "新增帳號" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +msgid "Login I_D" +msgstr "登入 I_D" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "範例:username" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "您的 GroupWise 使用者 ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "您的 GroupWise 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +msgid "ICQ _UIN" +msgstr "ICQ _UIN" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "範例:123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +msgid "Ch_aracter set" +msgstr "字集(_A)" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "您的 ICQ UIN 是?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "您的 ICQ 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "網路" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +msgid "Character set" +msgstr "字集" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "加入…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "移除" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "往上" + +#. Translators: tooltip on a +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "往下" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "伺服器" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don’t need a password, so if you’re not sure, don’t enter a " +"password." +msgstr "大多數的 IRC 伺服器不需要密碼,所以若您不確定的話請不要輸入密碼。" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +msgid "Nickname" +msgstr "暱稱" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +msgid "Quit message" +msgstr "離開訊息" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +msgid "Real name" +msgstr "真實姓名" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +msgid "Username" +msgstr "使用者名稱" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "哪個 IRC 網路?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "您的 IRC 暱稱是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "您的 Facebook 使用者名稱是?" + +#. This string is not wrapped in the dialog so you may have to add some +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don’t have one." +msgstr "" +"這是您的使用者名稱,而不是您一般的 Facebook 登入。\n" +"如果您是 facebook.com/badger 的話,請輸入 badger。\n" +"如果您還沒有 Facebook 使用者名稱,請透過 此網頁 來決定使用者名稱。" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "您的 Facebook 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "您的 Google ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "範例:user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "您的 Google 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "範例:user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +msgid "I_gnore SSL certificate errors" +msgstr "忽略 SSL 憑證錯誤(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "Priori_ty" +msgstr "優先權(_T)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +msgid "Reso_urce" +msgstr "資源(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +msgid "Encr_yption required (TLS/SSL)" +msgstr "要求加密 (TLS/SSL)(_Y)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Override server settings" +msgstr "覆蓋伺服器設定值" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +msgid "Use old SS_L" +msgstr "使用舊版 SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +msgid "What is your Jabber ID?" +msgstr "您的 Jabber ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber password?" +msgstr "您的 Jabber 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +msgid "Nic_kname" +msgstr "暱稱(_K)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +msgid "_Last Name" +msgstr "姓(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +msgid "_First Name" +msgstr "名(_F)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +msgid "_Published Name" +msgstr "發布的名稱(_P)" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +msgid "_Jabber ID" +msgstr "_Jabber ID" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +msgid "E-_mail address" +msgstr "電子信箱位址(_M)" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "範例:user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "您的 Windows Live ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "您的 Windows Live 密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "自動" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "註冊" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "無" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +msgid "_Username" +msgstr "使用者名稱(_U)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "範例:user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "使用這個帳號來撥打市話與行動電話(_L)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "NAT 傳輸選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Proxy 選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "雜項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +msgid "STUN Server" +msgstr "STUN 伺服器" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "自動探索 STUN 伺服器" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "探索綁定" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "保持不斷線選項" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +msgid "Mechanism" +msgstr "機制" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "間隔 (秒)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +msgid "Authentication username" +msgstr "認證使用者名稱" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +msgid "Transport" +msgstr "傳輸" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "寬鬆路由" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "忽略 TLS 錯誤" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "區域 IP 位址" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "您想要的 SIP 登入 ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "您的 SIP 帳號密碼是?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "密碼(_W):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "Yahoo I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "忽略會議與聊天室邀請(_G)" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "聊天室清單地區資訊(_R):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "字集(_A):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "連接埠(_P):" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "您的 Yahoo! ID 是?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "您的 Yahoo! 密碼是?" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:587 +#: ../tp-account-widgets/tpaw-avatar-chooser.c:672 +msgid "Couldn’t convert image" +msgstr "無法轉換影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:588 +msgid "None of the accepted image formats are supported on your system" +msgstr "您的系統上沒有支援已接受的影像格式" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:948 +msgid "Couldn’t save picture to file" +msgstr "無法將圖片儲存成檔案" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1070 +msgid "Select Your Avatar Image" +msgstr "選擇您的大頭貼影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1079 +msgid "Take a picture…" +msgstr "拍攝相片..." + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1092 +msgid "No Image" +msgstr "沒有影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1151 +msgid "Images" +msgstr "影像" + +#: ../tp-account-widgets/tpaw-avatar-chooser.c:1155 +msgid "All Files" +msgstr "所有檔案" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +msgid "Select…" +msgstr "選取…" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +msgid "_Select" +msgstr "選取(_S)" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +msgid "Full Name" +msgstr "全名" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +msgid "Phone Number" +msgstr "電話號碼" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +msgid "E-mail Address" +msgstr "電子信箱位址" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +msgid "Website" +msgstr "網站" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:101 +msgid "Birthday" +msgstr "生日" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Last Seen:" +msgstr "上次看見:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Server:" +msgstr "伺服器:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:108 +msgid "Connected From:" +msgstr "已連接來源:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:112 +msgid "Away Message:" +msgstr "離開訊息:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "work" +msgstr "工作" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "home" +msgstr "住家" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "mobile" +msgstr "行動" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +msgid "voice" +msgstr "聲音" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "preferred" +msgstr "偏好" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "postal" +msgstr "郵遞" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:131 +msgid "parcel" +msgstr "包裹" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "新增網路" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "選擇 IRC 網路" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "重設網路清單(_N)" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "選取" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "新增伺服器" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:78 +#: ../tp-account-widgets/tpaw-keyring.c:189 +msgid "Password not found" +msgstr "找不到密碼" + +#: ../tp-account-widgets/tpaw-keyring.c:584 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "%s 的即時通帳號密碼 (%s)" + +#: ../tp-account-widgets/tpaw-keyring.c:621 +#, c-format +msgid "Password for chatroom “%s” on account %s (%s)" +msgstr "%2$s 帳號下「%1$s」聊天室的密碼 (%3$s)" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:63 +#, c-format +msgid "New %s account" +msgstr "新增 %s 帳號" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "%d 秒前" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "%d 分鐘以前" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "%d 小時以前" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "%d 天以前" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "%d 週前" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "%d 個月以前" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "未來" + +#: ../tp-account-widgets/tpaw-user-info.c:433 +msgid "Go online to edit your personal information." +msgstr "上線以編輯您的個人資訊。" + +#: ../tp-account-widgets/tpaw-user-info.c:517 +msgid "These details will be shared with other users on this chat network." +msgstr "這些詳細資料會分享給這個聊天網路上的其他使用者。" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:526 +msgid "Identifier" +msgstr "識別身分" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:534 +msgid "Alias" +msgstr "別名" + +#: ../tp-account-widgets/tpaw-user-info.c:552 +msgid "Personal Details" +msgstr "個人詳細資料" + +#: ../tp-account-widgets/tpaw-utils.c:118 +msgid "People Nearby" +msgstr "附近的人" + +#: ../tp-account-widgets/tpaw-utils.c:123 +msgid "Yahoo! Japan" +msgstr "Yahoo! 日本" + +#: ../tp-account-widgets/tpaw-utils.c:159 +msgid "Google Talk" +msgstr "Google Talk" + +#: ../tp-account-widgets/tpaw-utils.c:160 +msgid "Facebook Chat" +msgstr "Facebook 聊天" + +#~ msgid "Select..." +#~ msgstr "選取..." + +#~ msgid "Remember Password" +#~ msgstr "記住密碼" + +#~ msgid "What is your desired Jabber ID?" +#~ msgstr "您想要的 Jabber ID 是?" + +#~ msgid "What is your desired Jabber password?" +#~ msgstr "您想要的 Jabber 密碼是?" diff --git a/telepathy-account-widgets/po/zu.po b/telepathy-account-widgets/po/zu.po new file mode 100644 index 0000000..25b7997 --- /dev/null +++ b/telepathy-account-widgets/po/zu.po @@ -0,0 +1,861 @@ +# Zulu translation for tp-account-widgets +# This file is distributed under the same license as the tp-account-widgets package. +# Abel Motha, Translate.org.za , 2010, 2011. +# Priscilla Mahlangu , 2011. +# F Wolff , 2011. +msgid "" +msgstr "" +"Project-Id-Version: empathy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-07-31 15:46+0100\n" +"PO-Revision-Date: 2011-07-29 22:35+0200\n" +"Last-Translator: Priscilla Mahlangu \n" +"Language-Team: translate-discuss-af@lists.sourceforge.net\n" +"Language: zu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.0\n" +"X-Project-Style: gnome\n" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:1 +msgid "Default directory to select an avatar image from" +msgstr "Umkhombandlela wezimiso ongakhetha kuwo isithombe esiyisifaniso muntu" + +#: ../data/org.gnome.telepathy-account-widgets.gschema.xml.h:2 +msgid "The last directory that an avatar image was chosen from." +msgstr "" +"Umkhombandlela wokugcina lapho kukhethwe khona isithombe isingumfaniso muntu." + +#: ../tp-account-widgets/totem-subtitle-encoding.c:157 +msgid "Current Locale" +msgstr "Indawo yamanje" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:160 +#: ../tp-account-widgets/totem-subtitle-encoding.c:162 +#: ../tp-account-widgets/totem-subtitle-encoding.c:164 +#: ../tp-account-widgets/totem-subtitle-encoding.c:166 +msgid "Arabic" +msgstr "isi-Arabhu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:169 +msgid "Armenian" +msgstr "isi-Ameniyani" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:172 +#: ../tp-account-widgets/totem-subtitle-encoding.c:174 +#: ../tp-account-widgets/totem-subtitle-encoding.c:176 +msgid "Baltic" +msgstr "isi-Bhalthikhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:179 +msgid "Celtic" +msgstr "isi-Selthikhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:182 +#: ../tp-account-widgets/totem-subtitle-encoding.c:184 +#: ../tp-account-widgets/totem-subtitle-encoding.c:186 +#: ../tp-account-widgets/totem-subtitle-encoding.c:188 +msgid "Central European" +msgstr "Maphakathi neYurophu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:191 +#: ../tp-account-widgets/totem-subtitle-encoding.c:193 +#: ../tp-account-widgets/totem-subtitle-encoding.c:195 +#: ../tp-account-widgets/totem-subtitle-encoding.c:197 +msgid "Chinese Simplified" +msgstr "isi-Shayina esenziwe lula" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:200 +#: ../tp-account-widgets/totem-subtitle-encoding.c:202 +#: ../tp-account-widgets/totem-subtitle-encoding.c:204 +msgid "Chinese Traditional" +msgstr "isi-Shayina sendabuko" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:207 +msgid "Croatian" +msgstr "isi-Khroweshiyeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:210 +#: ../tp-account-widgets/totem-subtitle-encoding.c:212 +#: ../tp-account-widgets/totem-subtitle-encoding.c:214 +#: ../tp-account-widgets/totem-subtitle-encoding.c:216 +#: ../tp-account-widgets/totem-subtitle-encoding.c:218 +#: ../tp-account-widgets/totem-subtitle-encoding.c:220 +msgid "Cyrillic" +msgstr "isi-Sayrillikhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:223 +msgid "Cyrillic/Russian" +msgstr "isi-Sayrillikhi/Rashiyeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:226 +#: ../tp-account-widgets/totem-subtitle-encoding.c:228 +msgid "Cyrillic/Ukrainian" +msgstr "isi-Sayrillikhi/Yukhreniyeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:231 +msgid "Georgian" +msgstr "isi-Jiyojiyeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:234 +#: ../tp-account-widgets/totem-subtitle-encoding.c:236 +#: ../tp-account-widgets/totem-subtitle-encoding.c:238 +msgid "Greek" +msgstr "isi-Grigi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:241 +msgid "Gujarati" +msgstr "isi-Gujarati" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:244 +msgid "Gurmukhi" +msgstr "isi-Gumukhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:247 +#: ../tp-account-widgets/totem-subtitle-encoding.c:249 +#: ../tp-account-widgets/totem-subtitle-encoding.c:251 +#: ../tp-account-widgets/totem-subtitle-encoding.c:253 +msgid "Hebrew" +msgstr "isi-Hebheru" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:256 +msgid "Hebrew Visual" +msgstr "isi-Hebheru (visual)" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:259 +msgid "Hindi" +msgstr "isi-Hindi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:262 +msgid "Icelandic" +msgstr "isi-Icelandic" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:265 +#: ../tp-account-widgets/totem-subtitle-encoding.c:267 +#: ../tp-account-widgets/totem-subtitle-encoding.c:269 +msgid "Japanese" +msgstr "isi-Japani" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:272 +#: ../tp-account-widgets/totem-subtitle-encoding.c:274 +#: ../tp-account-widgets/totem-subtitle-encoding.c:276 +#: ../tp-account-widgets/totem-subtitle-encoding.c:278 +msgid "Korean" +msgstr "isi-Khoriyeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:281 +msgid "Nordic" +msgstr "isi-Nodikhi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:284 +msgid "Persian" +msgstr "isi-Pheshiyeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:287 +#: ../tp-account-widgets/totem-subtitle-encoding.c:289 +msgid "Romanian" +msgstr "isi-Romeni" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:292 +msgid "South European" +msgstr "isi-Niningizimu Yurophu" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:295 +msgid "Thai" +msgstr "isi-Thayi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:298 +#: ../tp-account-widgets/totem-subtitle-encoding.c:300 +#: ../tp-account-widgets/totem-subtitle-encoding.c:302 +#: ../tp-account-widgets/totem-subtitle-encoding.c:304 +msgid "Turkish" +msgstr "isi-Thekishi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:307 +#: ../tp-account-widgets/totem-subtitle-encoding.c:309 +#: ../tp-account-widgets/totem-subtitle-encoding.c:311 +#: ../tp-account-widgets/totem-subtitle-encoding.c:313 +#: ../tp-account-widgets/totem-subtitle-encoding.c:315 +msgid "Unicode" +msgstr "i-Yunikhodi" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:318 +#: ../tp-account-widgets/totem-subtitle-encoding.c:320 +#: ../tp-account-widgets/totem-subtitle-encoding.c:322 +#: ../tp-account-widgets/totem-subtitle-encoding.c:324 +#: ../tp-account-widgets/totem-subtitle-encoding.c:326 +msgid "Western" +msgstr "Intshonalanga" + +#: ../tp-account-widgets/totem-subtitle-encoding.c:329 +#: ../tp-account-widgets/totem-subtitle-encoding.c:331 +#: ../tp-account-widgets/totem-subtitle-encoding.c:333 +msgid "Vietnamese" +msgstr "isi-Vietnamese" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:14 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:1 +#, fuzzy +msgid "Pass_word" +msgstr "Igama_lokungena:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:2 +#, fuzzy +msgid "Screen _Name" +msgstr "Igama _lesihenqo:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:3 +msgid "Example: MyScreenName" +msgstr "Isibonelo: MyScreenName" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:12 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:4 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:4 +msgid "Remember password" +msgstr "Khumbula igama lokungena" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:5 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:21 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:5 +#, fuzzy +msgid "_Port" +msgstr "_Imbobo yokuxhumana:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:6 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:20 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:6 +#, fuzzy +msgid "_Server" +msgstr "_Isiphakeli:" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-generic.ui.h:1 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:8 +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:16 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:23 +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:22 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:9 +msgid "Advanced" +msgstr "Okuseqophelweni" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:8 +msgid "What is your AIM screen name?" +msgstr "Yini igama lesihenqo sakho se-AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:9 +msgid "What is your AIM password?" +msgstr "Yini igama lakho lokungena le-AIM?" + +#: ../tp-account-widgets/tpaw-account-widget-aim.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:11 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:7 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:10 +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:25 +msgid "Remember Password" +msgstr "Khumbula igama lokungena" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:2 +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:13 +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:2 +#, fuzzy +msgid "Login I_D" +msgstr "Ngena I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:3 +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:3 +msgid "Example: username" +msgstr "Isibonelo: igama lomsebenzisi" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:8 +msgid "What is your GroupWise User ID?" +msgstr "Yini i-ID yakho yomsebenzisi ye-GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-groupwise.ui.h:9 +msgid "What is your GroupWise password?" +msgstr "Yini igama lakho lokungena le-GroupWise?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:2 +#, fuzzy +msgid "ICQ _UIN" +msgstr "ICQ _UIN:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:3 +msgid "Example: 123456789" +msgstr "Isibonelo: 123456789" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:5 +#, fuzzy +msgid "Ch_aracter set" +msgstr "Uh_lamvusimo lumisime:" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:9 +msgid "What is your ICQ UIN?" +msgstr "Yini i-ICQ UIN yakho?" + +#: ../tp-account-widgets/tpaw-account-widget-icq.ui.h:10 +msgid "What is your ICQ password?" +msgstr "Yini igama lakho lokungena le ICQ?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:1 +msgid "Network" +msgstr "Inethiwekhi" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:2 +#, fuzzy +msgid "Character set" +msgstr "Uhlamvusimo lumisiwe:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:3 +msgid "Add…" +msgstr "Engeza…" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:4 +msgid "Remove" +msgstr "Khipha" + +#. Translators: tooltip on a 'Go Up' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:6 +msgid "Up" +msgstr "" + +#. Translators: tooltip on a 'Go Down' button used to sort IRC servers by priority +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:8 +msgid "Down" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:9 +msgid "Servers" +msgstr "Iziphakeli" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:10 +msgid "" +"Most IRC servers don't need a password, so if you're not sure, don't enter a " +"password." +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:11 +#, fuzzy +msgid "Nickname" +msgstr "Isiteketiso:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:12 +msgid "Password" +msgstr "Igama lokungena" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:13 +#, fuzzy +msgid "Quit message" +msgstr "Umlayezo wokuphuma:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:14 +#, fuzzy +msgid "Real name" +msgstr "Igama langempela:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:15 +#, fuzzy +msgid "Username" +msgstr "Igama lomsebenzisi:" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:17 +msgid "Which IRC network?" +msgstr "Iyiphi inethiwekhi ye-IRC?" + +#: ../tp-account-widgets/tpaw-account-widget-irc.ui.h:18 +msgid "What is your IRC nickname?" +msgstr "Yini isiteketiso sakho seIRC?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:1 +msgid "What is your Facebook username?" +msgstr "Yini igama lakho lomsebenzisi le Facebook?" + +#. This string is not wrapped in the dialog so you may have to add some '\n' to make it look nice. +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:3 +msgid "" +"This is your username, not your normal Facebook login.\n" +"If you are facebook.com/badger, enter badger.\n" +"Use this page to choose a " +"Facebook username if you don't have one." +msgstr "" +"Leli igama lakho lomsebenzisi, hhayi igama lokungena elijwayelekile lakho le-" +"Facebook.\n" +"Uma ngabe ungu-facebook.com/i-badger, faka i-badger.\n" +"Sebenzisa leli khasi " +"ukukhetha igama lomsebenzisi le Facebook uma ngabe ungenalo." + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:6 +msgid "What is your Facebook password?" +msgstr "Yini igama lakho lokungena le Facebook?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:8 +msgid "What is your Google ID?" +msgstr "Yini i-ID yakho ye-Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:9 +msgid "Example: user@gmail.com" +msgstr "Isibonelo: user@gmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:10 +msgid "What is your Google password?" +msgstr "Yini igama lakho lokungena le-Google?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:11 +msgid "Example: user@jabber.org" +msgstr "Isibonelo: user@jabber.org" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:15 +msgid "I_gnore SSL certificate errors" +msgstr "Shaya i_ndiva amaphutha wesitifiketi se SSL" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:16 +#, fuzzy +msgid "Priori_ty" +msgstr "Okusem_qoka:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:17 +#, fuzzy +msgid "Reso_urce" +msgstr "Insi_za:" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:18 +msgid "Encr_yption required (TLS/SSL)" +msgstr "Ukub_hala okuyimfihlo kuyadingeka (TLS/SSL)" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:19 +msgid "Override server settings" +msgstr "Dlova izimiso zesiphakeli" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:22 +msgid "Use old SS_L" +msgstr "Sebenzisa endala i-SS_L" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:24 +msgid "What is your Jabber ID?" +msgstr "Yini i-ID yakho ye-Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:25 +msgid "What is your desired Jabber ID?" +msgstr "Yini i-ID yakho ye-Jabber oyifisayo?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:26 +msgid "What is your Jabber password?" +msgstr "Yini igama lakho lokungena le-Jabber?" + +#: ../tp-account-widgets/tpaw-account-widget-jabber.ui.h:27 +msgid "What is your desired Jabber password?" +msgstr "Yini igama lokungena le-Jabber olifisayo?" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:1 +#, fuzzy +msgid "Nic_kname" +msgstr "Isi_teketiso:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:2 +#, fuzzy +msgid "_Last Name" +msgstr "_Isibongo:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:3 +#, fuzzy +msgid "_First Name" +msgstr "_Igama lokuqala:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:4 +#, fuzzy +msgid "_Published Name" +msgstr "Igama _elishicilelwe:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:5 +#, fuzzy +msgid "_Jabber ID" +msgstr "I-ID ye-_Jabber:" + +#: ../tp-account-widgets/tpaw-account-widget-local-xmpp.ui.h:6 +#, fuzzy +msgid "E-_mail address" +msgstr "I_kheli le-imeyli:" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:3 +msgid "Example: user@hotmail.com" +msgstr "Isibonelo user@hotmail.com" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:8 +msgid "What is your Windows Live ID?" +msgstr "Yini i-ID yakho ye-Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-msn.ui.h:9 +msgid "What is your Windows Live password?" +msgstr "Yini igama lokungena lakho le-Windows Live?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:198 +#: ../tp-account-widgets/tpaw-account-widget-sip.c:231 +msgid "Auto" +msgstr "Ukuzenzakalela" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:201 +msgid "UDP" +msgstr "UDP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:204 +msgid "TCP" +msgstr "TCP" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:207 +msgid "TLS" +msgstr "TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:236 +msgid "Register" +msgstr "Bhalisa" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:241 +msgid "Options" +msgstr "Izinketho" + +#: ../tp-account-widgets/tpaw-account-widget-sip.c:244 +msgid "None" +msgstr "Lutho" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:2 +#, fuzzy +msgid "_Username" +msgstr "_Igama lomsebenzisi:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:3 +msgid "Example: user@my.sip.server" +msgstr "Isibonelo: user@my.sip.server" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:5 +msgid "Use this account to call _landlines and mobile phones" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:6 +msgid "NAT Traversal Options" +msgstr "Izinkethi ze-NAT Traversal" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:7 +msgid "Proxy Options" +msgstr "Izinkethi zomnikezeli" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:8 +msgid "Miscellaneous Options" +msgstr "Izinketho eziyingxubevange" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:9 +#, fuzzy +msgid "STUN Server" +msgstr "Isiphakeli ye-STUN:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:10 +msgid "Discover the STUN server automatically" +msgstr "Thola isiphakeli se-STUN ngokuzenzakalela" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:11 +msgid "Discover Binding" +msgstr "Thola ukubophezela" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:12 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:500 +msgid "Server" +msgstr "Isiphakeli" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:13 +msgid "Keep-Alive Options" +msgstr "Gcina izinkethi ziphila" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:14 +#, fuzzy +msgid "Mechanism" +msgstr "Umshini:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:15 +msgid "Interval (seconds)" +msgstr "Isikhawu (imizuzwana)" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:16 +#, fuzzy +msgid "Authentication username" +msgstr "Kuqinisekiswa igama lomsebenzisi:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:17 +#, fuzzy +msgid "Transport" +msgstr "Thutha:" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:18 +msgid "Loose Routing" +msgstr "Ukuthutha okuxegayo" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:19 +msgid "Ignore TLS Errors" +msgstr "Unganaki amaphutha we-TLS" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:20 +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:521 +msgid "Port" +msgstr "Imbobo yokuxhumana" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:21 +msgid "Local IP Address" +msgstr "" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:23 +msgid "What is your SIP login ID?" +msgstr "Yini i-ID ykho yokungena ye-SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-sip.ui.h:24 +msgid "What is your SIP account password?" +msgstr "Yini igama lakho lokungena kwi-akhawunti ye-SIP?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:1 +msgid "Pass_word:" +msgstr "Igama_lokungena:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:2 +msgid "Yahoo! I_D:" +msgstr "I-Yahoo! I_D:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:5 +msgid "I_gnore conference and chat room invitations" +msgstr "Shaya i_ndiva izimemo zenkomfa kanye nezegumbi lokuxoxa" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:6 +msgid "_Room List locale:" +msgstr "_Uhlu lwegumbi lendawo:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:7 +msgid "Ch_aracter set:" +msgstr "Uh_lamvusimo lumisime:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:8 +msgid "_Port:" +msgstr "_Imbobo yokuxhumana:" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:10 +msgid "What is your Yahoo! ID?" +msgstr "Yini i-Yahoo! ID yakho?" + +#: ../tp-account-widgets/tpaw-account-widget-yahoo.ui.h:11 +msgid "What is your Yahoo! password?" +msgstr "Yini igama lokungena lakho le Yahoo?" + +#: ../tp-account-widgets/tpaw-calendar-button.c:63 +#, fuzzy +msgid "Select..." +msgstr "Khetha" + +#: ../tp-account-widgets/tpaw-calendar-button.c:151 +#, fuzzy +msgid "_Select" +msgstr "Khetha" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:96 +#, fuzzy +msgid "Full name" +msgstr "Igama eliphelele:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:97 +#, fuzzy +msgid "Phone number" +msgstr "Inombolo yocingo:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:98 +#, fuzzy +msgid "E-mail address" +msgstr "Ikheli le-imeyli:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:99 +#, fuzzy +msgid "Website" +msgstr "I-webhusaythi:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:100 +#, fuzzy +msgid "Birthday" +msgstr "Usuku lokuzalwa:" + +#. Note to translators: this is the caption for a string of the form "5 +#. * minutes ago", and refers to the time since the contact last interacted +#. * with their IM client. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:105 +msgid "Last seen:" +msgstr "Ugcine ukubonwa:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:106 +msgid "Server:" +msgstr "Isiphakeli:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:107 +msgid "Connected from:" +msgstr "Ixhunywe kusuka ku:" + +#. FIXME: once Idle implements SimplePresence using this information, we can +#. * and should bin this. +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:111 +msgid "Away message:" +msgstr "Umlayezo wokuba kude:" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:124 +#, fuzzy +msgid "work" +msgstr "Inethiwekhi" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:125 +msgid "home" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:126 +msgid "mobile" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:127 +msgid "voice" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:128 +#, fuzzy +msgid "preferred" +msgstr "Okuthandwayo" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:129 +msgid "postal" +msgstr "" + +#: ../tp-account-widgets/tpaw-contactinfo-utils.c:130 +msgid "parcel" +msgstr "" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:325 +msgid "New Network" +msgstr "Inethiwekhi entsha" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:526 +msgid "Choose an IRC network" +msgstr "Khetha inethiwekhi ye IRC" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:612 +msgid "Reset _Networks List" +msgstr "Setha kabusha uhlu lwama_nethiwekhi" + +#: ../tp-account-widgets/tpaw-irc-network-chooser-dialog.c:616 +msgctxt "verb displayed on a button to select an IRC network" +msgid "Select" +msgstr "Khetha" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:273 +msgid "new server" +msgstr "isiphakeli esisha" + +#: ../tp-account-widgets/tpaw-irc-network-dialog.c:536 +msgid "SSL" +msgstr "I-SSL" + +#: ../tp-account-widgets/tpaw-keyring.c:77 +#: ../tp-account-widgets/tpaw-keyring.c:186 +#, fuzzy +msgid "Password not found" +msgstr "Ibinzana alitholakali" + +#: ../tp-account-widgets/tpaw-keyring.c:586 +#, c-format +msgid "IM account password for %s (%s)" +msgstr "" + +#: ../tp-account-widgets/tpaw-keyring.c:623 +#, c-format +msgid "Password for chatroom '%s' on account %s (%s)" +msgstr "" + +#. Create account +#. To translator: %s is the name of the protocol, such as "Google Talk" or +#. * "Yahoo!" +#. +#: ../tp-account-widgets/tpaw-protocol.c:62 +#, c-format +msgid "New %s account" +msgstr "I-akhawunti %s entsha" + +#: ../tp-account-widgets/tpaw-time.c:86 +#, c-format +msgid "%d second ago" +msgid_plural "%d seconds ago" +msgstr[0] "umzuzwana ongu %d odlule" +msgstr[1] "imizuzwana engu %d edlule" + +#: ../tp-account-widgets/tpaw-time.c:92 +#, c-format +msgid "%d minute ago" +msgid_plural "%d minutes ago" +msgstr[0] "umzuzu ongu %d odlule" +msgstr[1] "imizuzu engu %d edlule" + +#: ../tp-account-widgets/tpaw-time.c:98 +#, c-format +msgid "%d hour ago" +msgid_plural "%d hours ago" +msgstr[0] "ihora elingu %d eledlule" +msgstr[1] "amahora angu %d adlule" + +#: ../tp-account-widgets/tpaw-time.c:104 +#, c-format +msgid "%d day ago" +msgid_plural "%d days ago" +msgstr[0] "usuku eli- %d eledlule" +msgstr[1] "izinsuku ezingu %d ezedlule" + +#: ../tp-account-widgets/tpaw-time.c:110 +#, c-format +msgid "%d week ago" +msgid_plural "%d weeks ago" +msgstr[0] "evikini elingu- %d eledlule" +msgstr[1] "amaviki angu- %d adlule" + +#: ../tp-account-widgets/tpaw-time.c:116 +#, c-format +msgid "%d month ago" +msgid_plural "%d months ago" +msgstr[0] "inyanga engu- %d edlule" +msgstr[1] "izinyanga ezingu- %d ezedlule" + +#: ../tp-account-widgets/tpaw-time.c:138 +msgid "in the future" +msgstr "ngokuzayo" + +#: ../tp-account-widgets/tpaw-user-info.c:394 +msgid "Go online to edit your personal information." +msgstr "" + +#. Setup id label +#: ../tp-account-widgets/tpaw-user-info.c:454 +#, fuzzy +msgid "Identifier" +msgstr "Isihlonzi:" + +#. Setup nickname entry +#: ../tp-account-widgets/tpaw-user-info.c:459 +#, fuzzy +msgid "Alias" +msgstr "Isibizo:" + +#: ../tp-account-widgets/tpaw-user-info.c:474 +#, fuzzy +msgid "Personal Details" +msgstr "Imininingwane yezobuchwepheshe" diff --git a/telepathy-account-widgets/telepathy-account-widgets-uninstalled.pc.in b/telepathy-account-widgets/telepathy-account-widgets-uninstalled.pc.in new file mode 100644 index 0000000..1acc1fc --- /dev/null +++ b/telepathy-account-widgets/telepathy-account-widgets-uninstalled.pc.in @@ -0,0 +1,13 @@ +prefix= +exec_prefix= +abs_top_srcdir=@abs_top_srcdir@ +abs_top_builddir=@abs_top_builddir@ + +uoa_provider=@TPAW_UOA_PROVIDER@ + +Name: telepathy-account-widgets (uninstalled copy) +Description: Widgets and utility functions for configuring Telepathy accounts +Version: @VERSION@ +Requires: pkg-config >= 0.21, glib-2.0 >= 2.33.3, gobject-2.0 >= 2.33.3, gtk+-3.0 >= 3.5.1, telepathy-glib >= 0.19.9, libxml-2.0, libsecret-1 >= 0.5@REQUIRE_CHEESE@@REQUIRE_UDEV@ +Libs: ${abs_top_builddir}/tp-account-widgets/libtp-account-widgets.la +Cflags: -I${abs_top_srcdir} -I${abs_top_builddir} diff --git a/telepathy-account-widgets/tools/Makefile.am b/telepathy-account-widgets/tools/Makefile.am new file mode 100644 index 0000000..6908d25 --- /dev/null +++ b/telepathy-account-widgets/tools/Makefile.am @@ -0,0 +1,68 @@ +abs_top_builddir = @abs_top_builddir@ + +noinst_SCRIPTS = telepathy-glib-env + +telepathy-glib-env: telepathy-glib-env.in Makefile + sed -e 's![@]abs_top_builddir[@]!$(abs_top_builddir)!' $< > $@ + chmod +x $@ + +EXTRA_DIST = \ + c-constants-gen.py \ + check-coding-style.mk \ + check-c-style.sh \ + check-misc.sh \ + check-whitespace.sh \ + doc-generator.xsl \ + flymake.mk \ + git-which-branch.sh \ + glib-client-gen.py \ + glib-client-marshaller-gen.py \ + glib-errors-check-gen.py \ + glib-errors-str-gen.py \ + glib-ginterface-gen.py \ + glib-gtypes-generator.py \ + glib-interfaces-gen.py \ + gobject-foo.py \ + lcov.am \ + libtpcodegen.py \ + libglibcodegen.py \ + make-release-mail.py \ + make-version-script.py \ + manager-file.py \ + shave.mk \ + telepathy.am \ + telepathy-glib.supp \ + telepathy-glib-env.in \ + test-wrapper.sh \ + with-session-bus.sh \ + xincludator.py + +CLEANFILES = libtpcodegen.pyc libtpcodegen.pyo libglibcodegen.pyc libglibcodegen.pyo $(noinst_SCRIPTS) + +all: $(EXTRA_DIST) + +libglibcodegen.py: libtpcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +c-constants-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-client-marshaller-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-errors-enum-body-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-errors-enum-header-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-ginterface-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-gtypes-generator.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-interfaces-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ + +TELEPATHY_SPEC_SRCDIR = $(top_srcdir)/../telepathy-spec +maintainer-update-from-telepathy-spec: + set -e && cd $(srcdir) && \ + for x in $(EXTRA_DIST); do \ + if test -f $(TELEPATHY_SPEC_SRCDIR)/tools/$$x; then \ + cp $(TELEPATHY_SPEC_SRCDIR)/tools/$$x $$x; \ + fi; \ + done diff --git a/telepathy-account-widgets/tools/Makefile.in b/telepathy-account-widgets/tools/Makefile.in new file mode 100644 index 0000000..05d1387 --- /dev/null +++ b/telepathy-account-widgets/tools/Makefile.in @@ -0,0 +1,561 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tools +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/as-compiler-flag.m4 \ + $(top_srcdir)/m4/gsettings.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tpaw-args.m4 \ + $(top_srcdir)/m4/tpaw-valgrind.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SCRIPTS = $(noinst_SCRIPTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACCOUNTS_APPLICATION_FILES_DIR = @ACCOUNTS_APPLICATION_FILES_DIR@ +ACCOUNTS_APP_PLUGIN_DIR = @ACCOUNTS_APP_PLUGIN_DIR@ +ACCOUNTS_PROVIDER_FILES_DIR = @ACCOUNTS_PROVIDER_FILES_DIR@ +ACCOUNTS_PROVIDER_PLUGIN_DIR = @ACCOUNTS_PROVIDER_PLUGIN_DIR@ +ACCOUNTS_SERVICE_FILES_DIR = @ACCOUNTS_SERVICE_FILES_DIR@ +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHEESE_CFLAGS = @CHEESE_CFLAGS@ +CHEESE_LIBS = @CHEESE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_CODING_STYLE_CHECKS = @ENABLE_CODING_STYLE_CHECKS@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMSGFMT = @GMSGFMT@ +GOBJECT_QUERY = @GOBJECT_QUERY@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MISSION_CONTROL_PLUGINS_DIR = @MISSION_CONTROL_PLUGINS_DIR@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +REQUIRE_CHEESE = @REQUIRE_CHEESE@ +REQUIRE_UDEV = @REQUIRE_UDEV@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TPAW_UOA_PROVIDER = @TPAW_UOA_PROVIDER@ +UDEV_CFLAGS = @UDEV_CFLAGS@ +UDEV_LIBS = @UDEV_LIBS@ +UOA_CFLAGS = @UOA_CFLAGS@ +UOA_LIBS = @UOA_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +icondir = @icondir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +real_pkgdatadir = @real_pkgdatadir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_SCRIPTS = telepathy-glib-env +EXTRA_DIST = \ + c-constants-gen.py \ + check-coding-style.mk \ + check-c-style.sh \ + check-misc.sh \ + check-whitespace.sh \ + doc-generator.xsl \ + flymake.mk \ + git-which-branch.sh \ + glib-client-gen.py \ + glib-client-marshaller-gen.py \ + glib-errors-check-gen.py \ + glib-errors-str-gen.py \ + glib-ginterface-gen.py \ + glib-gtypes-generator.py \ + glib-interfaces-gen.py \ + gobject-foo.py \ + lcov.am \ + libtpcodegen.py \ + libglibcodegen.py \ + make-release-mail.py \ + make-version-script.py \ + manager-file.py \ + shave.mk \ + telepathy.am \ + telepathy-glib.supp \ + telepathy-glib-env.in \ + test-wrapper.sh \ + with-session-bus.sh \ + xincludator.py + +CLEANFILES = libtpcodegen.pyc libtpcodegen.pyo libglibcodegen.pyc libglibcodegen.pyo $(noinst_SCRIPTS) +TELEPATHY_SPEC_SRCDIR = $(top_srcdir)/../telepathy-spec +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tools/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(SCRIPTS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +telepathy-glib-env: telepathy-glib-env.in Makefile + sed -e 's![@]abs_top_builddir[@]!$(abs_top_builddir)!' $< > $@ + chmod +x $@ + +all: $(EXTRA_DIST) + +libglibcodegen.py: libtpcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +c-constants-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-client-marshaller-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-errors-enum-body-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-errors-enum-header-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-ginterface-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-gtypes-generator.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +glib-interfaces-gen.py: libglibcodegen.py + $(AM_V_GEN)test -e ${srcdir}/$@ && touch ${srcdir}/$@ +maintainer-update-from-telepathy-spec: + set -e && cd $(srcdir) && \ + for x in $(EXTRA_DIST); do \ + if test -f $(TELEPATHY_SPEC_SRCDIR)/tools/$$x; then \ + cp $(TELEPATHY_SPEC_SRCDIR)/tools/$$x $$x; \ + fi; \ + done + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/telepathy-account-widgets/tools/c-constants-gen.py b/telepathy-account-widgets/tools/c-constants-gen.py new file mode 100644 index 0000000..a08afee --- /dev/null +++ b/telepathy-account-widgets/tools/c-constants-gen.py @@ -0,0 +1,182 @@ +#!/usr/bin/python + +from sys import argv, stdout, stderr +import xml.dom.minidom + +from libtpcodegen import file_set_contents, u +from libglibcodegen import NS_TP, get_docstring, \ + get_descendant_text, get_by_path + +class Generator(object): + def __init__(self, prefix, dom, output_base): + self.prefix = prefix + '_' + self.spec = get_by_path(dom, "spec")[0] + + self.output_base = output_base + self.__header = [] + self.__docs = [] + + def __call__(self): + self.do_header() + self.do_body() + self.do_footer() + + file_set_contents(self.output_base + '.h', u('').join(self.__header).encode('utf-8')) + file_set_contents(self.output_base + '-gtk-doc.h', u('').join(self.__docs).encode('utf-8')) + + def write(self, code): + self.__header.append(code) + + def d(self, code): + self.__docs.append(code) + + # Header + def do_header(self): + self.write('/* Generated from ') + self.write(get_descendant_text(get_by_path(self.spec, 'title'))) + version = get_by_path(self.spec, "version") + if version: + self.write(', version ' + get_descendant_text(version)) + self.write('\n\n') + for copyright in get_by_path(self.spec, 'copyright'): + self.write(get_descendant_text(copyright)) + self.write('\n') + self.write(get_descendant_text(get_by_path(self.spec, 'license'))) + self.write('\n') + self.write(get_descendant_text(get_by_path(self.spec, 'docstring'))) + self.write(""" + */ + +#ifdef __cplusplus +extern "C" { +#endif +\n""") + + # Body + def do_body(self): + for elem in self.spec.getElementsByTagNameNS(NS_TP, '*'): + if elem.localName == 'flags': + self.do_flags(elem) + elif elem.localName == 'enum': + self.do_enum(elem) + + def do_flags(self, flags): + name = flags.getAttribute('plural') or flags.getAttribute('name') + value_prefix = flags.getAttribute('singular') or \ + flags.getAttribute('value-prefix') or \ + flags.getAttribute('name') + self.d("""\ +/** + * %s: +""" % (self.prefix + name).replace('_', '')) + for flag in get_by_path(flags, 'flag'): + self.do_gtkdoc(flag, value_prefix) + self.d(' *\n') + docstrings = get_by_path(flags, 'docstring') + if docstrings: + self.d("""\ + * + * +""" % get_descendant_text(docstrings).replace('\n', ' ')) + self.d("""\ + * Bitfield/set of flags generated from the Telepathy specification. + */ +""") + + self.write("typedef enum /*< flags >*/ {\n") + + for flag in get_by_path(flags, 'flag'): + self.do_val(flag, value_prefix) + self.write("""\ +} %s; + +""" % (self.prefix + name).replace('_', '')) + + def do_enum(self, enum): + name = enum.getAttribute('singular') or enum.getAttribute('name') + value_prefix = enum.getAttribute('singular') or \ + enum.getAttribute('value-prefix') or \ + enum.getAttribute('name') + name_plural = enum.getAttribute('plural') or \ + enum.getAttribute('name') + 's' + self.d("""\ +/** + * %s: +""" % (self.prefix + name).replace('_', '')) + vals = get_by_path(enum, 'enumvalue') + for val in vals: + self.do_gtkdoc(val, value_prefix) + self.d(' *\n') + docstrings = get_by_path(enum, 'docstring') + if docstrings: + self.d("""\ + * + * +""" % get_descendant_text(docstrings).replace('\n', ' ')) + self.d("""\ + * Bitfield/set of flags generated from the Telepathy specification. + */ +""") + + self.write("typedef enum {\n") + + for val in vals: + self.do_val(val, value_prefix) + self.write("} %s;\n" % (self.prefix + name).replace('_', '')) + + self.d("""\ +/** + * %(upper-prefix)sNUM_%(upper-plural)s: + * + * 1 higher than the highest valid value of #%(mixed-name)s. + */ + +/** + * NUM_%(upper-prefix)s%(upper-plural)s: (skip) + * + * 1 higher than the highest valid value of #%(mixed-name)s. + * In new code, use %(upper-prefix)sNUM_%(upper-plural)s instead. + */ +""" % {'mixed-name' : (self.prefix + name).replace('_', ''), + 'upper-prefix' : self.prefix.upper(), + 'upper-plural' : name_plural.upper(), + 'last-val' : vals[-1].getAttribute('value')}) + + self.write("""\ +#define %(upper-prefix)sNUM_%(upper-plural)s (%(last-val)s+1) +#define NUM_%(upper-prefix)s%(upper-plural)s %(upper-prefix)sNUM_%(upper-plural)s + +""" % {'mixed-name' : (self.prefix + name).replace('_', ''), + 'upper-prefix' : self.prefix.upper(), + 'upper-plural' : name_plural.upper(), + 'last-val' : vals[-1].getAttribute('value')}) + + def do_val(self, val, value_prefix): + name = val.getAttribute('name') + suffix = val.getAttribute('suffix') + use_name = (self.prefix + value_prefix + '_' + \ + (suffix or name)).upper() + assert not (name and suffix) or name == suffix, \ + 'Flag/enumvalue name %s != suffix %s' % (name, suffix) + self.write(' %s = %s,\n' % (use_name, val.getAttribute('value'))) + + def do_gtkdoc(self, node, value_prefix): + self.d(' * @') + self.d((self.prefix + value_prefix + '_' + + node.getAttribute('suffix')).upper()) + self.d(': \n') + + # Footer + def do_footer(self): + self.write(""" +#ifdef __cplusplus +} +#endif +""") + +if __name__ == '__main__': + argv = argv[1:] + Generator(argv[0], xml.dom.minidom.parse(argv[1]), argv[2])() diff --git a/telepathy-account-widgets/tools/check-c-style.sh b/telepathy-account-widgets/tools/check-c-style.sh new file mode 100644 index 0000000..5583420 --- /dev/null +++ b/telepathy-account-widgets/tools/check-c-style.sh @@ -0,0 +1,62 @@ +#!/bin/sh +fail=0 + +( . "${tools_dir}"/check-misc.sh ) || fail=$? + +# The first regex finds function calls like foo() (as opposed to foo ()). +# It attempts to ignore string constants (may cause false negatives). +# The second and third ignore block comments (gtkdoc uses foo() as markup). +# The fourth ignores cpp so you can +# #define foo(bar) (_real_foo (__FUNC__, bar)) (cpp insists on foo() style). +if grep -n '^[^"]*[[:lower:]](' "$@" \ + | grep -v '^[-[:alnum:]_./]*:[[:digit:]]*: *\*' \ + | grep -v '^[-[:alnum:]_./]*:[[:digit:]]*: */\*' \ + | grep -v '^[-[:alnum:]_./]*:[[:digit:]]*: *#' +then + echo "^^^ Our coding style is to use function calls like foo (), not foo()" + fail=1 +fi + +if grep -En '[(][[:alnum:]_]+ ?\*[)][(]?[[:alpha:]_]' "$@"; then + echo "^^^ Our coding style is to have a space between a cast and the " + echo " thing being cast" + fail=1 +fi + +# this only spots casts +if grep -En '[(][[:alnum:]_]+\*+[)]' "$@"; then + echo "^^^ Our coding style is to have a space before the * of pointer types" + echo " (regex 1)" + fail=1 +fi +# ... and this only spots variable declarations and function return types +if grep -En '^ *(static |const |)* *[[:alnum:]_]+\*+([[:alnum:]_]|;|$)' \ + "$@"; then + echo "^^^ Our coding style is to have a space before the * of pointer types" + echo " (regex 2)" + fail=1 +fi + +if grep -n 'g_hash_table_destroy' "$@"; then + echo "^^^ Our coding style is to use g_hash_table_unref" + fail=1 +fi + +for p in "" "ptr_" "byte_"; do + if grep -En "g_${p}array_free \(([^ ,]+), TRUE\)" "$@"; then + echo "^^^ Our coding style is to use g_${p}array_unref in the case " + echo " the underlying C array is not used" + fail=1 + fi +done + +if test -n "$CHECK_FOR_LONG_LINES" +then + if egrep -n '.{80,}' "$@" + then + echo "^^^ The above files contain long lines" + fail=1 + fi +fi + +exit $fail diff --git a/telepathy-account-widgets/tools/check-coding-style.mk b/telepathy-account-widgets/tools/check-coding-style.mk new file mode 100644 index 0000000..f3f74fa --- /dev/null +++ b/telepathy-account-widgets/tools/check-coding-style.mk @@ -0,0 +1,17 @@ +check-coding-style: + @fail=0; \ + if test -n "$(check_misc_sources)"; then \ + tools_dir=$(top_srcdir)/tools \ + sh $(top_srcdir)/tools/check-misc.sh \ + $(addprefix $(srcdir)/,$(check_misc_sources)) || fail=1; \ + fi; \ + if test -n "$(check_c_sources)"; then \ + tools_dir=$(top_srcdir)/tools \ + sh $(top_srcdir)/tools/check-c-style.sh \ + $(addprefix $(srcdir)/,$(check_c_sources)) || fail=1; \ + fi;\ + if test yes = "$(enable_fatal_warnings)"; then \ + exit "$$fail";\ + else \ + exit 0;\ + fi diff --git a/telepathy-account-widgets/tools/check-misc.sh b/telepathy-account-widgets/tools/check-misc.sh new file mode 100644 index 0000000..89e8e87 --- /dev/null +++ b/telepathy-account-widgets/tools/check-misc.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +fail=0 + +( . "${tools_dir}"/check-whitespace.sh ) || fail=$? + +if egrep '(Free\s*Software\s*Foundation.*02139|02111-1307)' "$@" +then + echo "^^^ The above files contain the FSF's old address in GPL headers" + fail=1 +fi + +exit $fail diff --git a/telepathy-account-widgets/tools/check-whitespace.sh b/telepathy-account-widgets/tools/check-whitespace.sh new file mode 100644 index 0000000..5348331 --- /dev/null +++ b/telepathy-account-widgets/tools/check-whitespace.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +fail=0 + +if grep -n ' $' "$@" +then + echo "^^^ The above files contain unwanted trailing spaces" + fail=1 +fi + +if grep -n ' ' "$@" +then + echo "^^^ The above files contain tabs" + fail=1 +fi + +exit $fail diff --git a/telepathy-account-widgets/tools/doc-generator.xsl b/telepathy-account-widgets/tools/doc-generator.xsl new file mode 100644 index 0000000..76fc969 --- /dev/null +++ b/telepathy-account-widgets/tools/doc-generator.xsl @@ -0,0 +1,1199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + . + + + + + + + + + + + + + + + + + + + + + ERR: cannot find D-Bus interface, method, + signal or property called ' + + ' + + + + + + + + + + + + + ERR: Cannot use tp:member-ref when not in an + <interface> + + + + + + + + + + ERR: interface + + has no signal/method/property called + + + + + + + + + + + + + + + + + + + + + + +

Added in + version . +

+
+ + + + +

Changed in + version : +

+
+ +

Changed in version +

+
+
+
+ + +

Deprecated + since version . +

+
+ + +
+ +
+
+ + +

Errors

+ +
+ + +

Generic types

+ +
+ + + +

Simple types

+ +
+ + +

Enumerated types:

+ +
+ + +

Sets of flags:

+ +
+ + +

Structure types

+ +
+ + +

Mapping types

+ +
+ + +

Types defined elsewhere

+
+
+
+ + +

+ + + + +
+ + +
+ +
+
+ +
+ +
+
+ + + + + +

+ + +

+ This interface is + and is likely to cause havoc to your API/ABI if bindings are generated. + Don't include it in libraries that care about compatibility. +

+
+ + +

Implementations of this interface must also implement:

+
    + +
  • +
    +
+
+ + + + + + + + +

Methods:

+ +
+ +

Interface has no methods.

+
+
+ + + +

Signals:

+ +
+ +

Interface has no signals.

+
+
+ + + +

Telepathy Properties:

+

Accessed using the + Telepathy + Properties interface.

+
+ +
+
+ +

Interface has no Telepathy + properties.

+
+
+ + + +

D-Bus core Properties:

+

Accessed using the + org.freedesktop.DBus.Properties interface.

+
+ +
+
+ +

Interface has no D-Bus core + properties.

+
+
+ + + +
+ + + + + + ERR: missing @name on a tp:flags type + + + + + + ERR: missing @type on tp:flags type + + + + + +

+ + + +

+ + + + +
+ + + + + + + + + + + +
=
+ + +
+ + + + +
+
+ +
(Undocumented)
+
+
+
+
+
+ + + + + + ERR: missing @name on a tp:enum type + + + + + + ERR: missing @type on tp:enum type + + + + + +

+ + + +

+ + + + +
+ + + + + + + + + + + +
=
+ + +
+ + + + +
+
+ +
(Undocumented)
+
+
+
+
+
+ + + + + + ERR: property + + does not have an interface as parent + + + + + + ERR: missing @name on a property of + + + + + + + + ERR: missing @type on property + + : ' + + ' + + + +
+ + + + + + + , + + + read-only + + + write-only + + + read/write + + + + ERR: unknown or missing value for + @access on property + + : ' + + ' + + + +
+
+ + + + +
+
+ + +
+ + − + + +
+
+ + + + +
+
+ + +
+

+ + + − a{ + + + : + + + + } +

+
+ + +

In bindings that need a separate name, arrays of + should be called + .

+
+
+
+

Members

+
+ +
+
+
+
+ + + + + − + + + + + + + ERR: missing @name on a tp:simple-type + + + + + + ERR: missing @type on tp:simple-type + + + + + +
+

+ + + +

+
+ + + + +
+
+
+ + + + + + ERR: missing @name on a tp:external-type + + + + + + ERR: missing @type on tp:external-type + + + + + +
+
+ + + +
+
Defined by:
+
+
+ + + − ( + + , + ) + + + + − a{ + + + } + + + +
+

+ + + − ( + + + : + + , + + ) +

+
+ + + + +
+ + +

In bindings that need a separate name, arrays of + should be called + .

+
+ +

Arrays of don't generally + make sense.

+
+
+
+

Members

+
+ +
+
+
+
+ + + + + + ERR: method + + does not have an interface as parent + + + + + + ERR: missing @name on a method of + + + + + + + + + ERR: an arg of method + + has no type + + + + + + + ERR: an 'in' arg of method + + has no name + + + + + + + + + ERR: an arg of method + + has direction neither 'in' nor 'out' + + + + + +
+

+ + + ( + + : + , + + ) → + + + + + , + + + nothing + +

+
+ + + + +
+ + +
+

Parameters

+
+ +
+
+
+ + +
+

Returns

+
+ +
+
+
+ + +
+

Possible errors

+
+ +
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + ( + + + + ) + + + + + + + + + a{ + + + + } + + + + + + + ERR: Unable to find type ' + + ' + + + + + + + + ERR: tp:type ' + + ' has D-Bus type ' + + ' but has been used with type=' + + ' + + + + + + + + + + ( + + + + + ) + + + + +
+ − + + +
+
+ + + + + + (undocumented) + + +
+
+ + +
+ − + + +
+
+ +
+
+ + +
+ + − + + + +
+
+ +
+
+ + +
+ +
+
+ + + + + + + (generic description) + + + (Undocumented.) + + +
+
+ + + + + + ERR: signal + + does not have an interface as parent + + + + + + ERR: missing @name on a signal of + + + + + + + + + ERR: an arg of signal + + has no type + + + + + ERR: an arg of signal + + has no name + + + + + + + INFO: an arg of signal + + has unnecessary direction 'in' + + + + + ERR: an arg of signal + + has direction other than 'in' + + + + + +
+

+ + + ( + + : + , + + )

+ +
+ + + + +
+ + +
+

Parameters

+
+ +
+
+
+
+
+ + + + + + + + <xsl:value-of select="tp:title"/> + <xsl:if test="tp:version"> + <xsl:text> version </xsl:text> + <xsl:value-of select="tp:version"/> + </xsl:if> + + + + +

+ +

+ +

Version

+
+ + + + +

Interfaces

+
    + +
  • +
    +
+ + + + + +

Index

+

Index of interfaces

+
    + +
  • +
    +
+

Index of types

+
    + + +
  • + + + + + + +
  • +
    +
+ + +
+ + + + + + + + + Stray text: {{{ + + }}} + + + + + + + Unrecognised element: { + + } + + + + +
+ + diff --git a/telepathy-account-widgets/tools/flymake.mk b/telepathy-account-widgets/tools/flymake.mk new file mode 100644 index 0000000..020a7bf --- /dev/null +++ b/telepathy-account-widgets/tools/flymake.mk @@ -0,0 +1,4 @@ +check-syntax: + $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -fsyntax-only $(CHK_SOURCES) + +.PHONY: check-syntax diff --git a/telepathy-account-widgets/tools/git-which-branch.sh b/telepathy-account-widgets/tools/git-which-branch.sh new file mode 100644 index 0000000..b96b5d5 --- /dev/null +++ b/telepathy-account-widgets/tools/git-which-branch.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# git-which-branch.sh - output the name of the current git branch +# +# The canonical location of this program is the telepathy-spec tools/ +# directory, please synchronize any changes with that copy. +# +# Copyright (C) 2008 Collabora Ltd. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + +default="$1" +if { ref="`git symbolic-ref HEAD 2>/dev/null`"; }; then + echo ${ref#refs/heads/} + exit 0 +fi + +if test -n "$default"; then + echo "$default" >/dev/null + exit 0 +fi + +echo "no git branch found" >&2 +exit 1 diff --git a/telepathy-account-widgets/tools/glib-client-gen.py b/telepathy-account-widgets/tools/glib-client-gen.py new file mode 100644 index 0000000..e68e1a5 --- /dev/null +++ b/telepathy-account-widgets/tools/glib-client-gen.py @@ -0,0 +1,1263 @@ +#!/usr/bin/python + +# glib-client-gen.py: "I Can't Believe It's Not dbus-binding-tool" +# +# Generate GLib client wrappers from the Telepathy specification. +# The master copy of this program is in the telepathy-glib repository - +# please make any changes there. +# +# Copyright (C) 2006-2008 Collabora Ltd. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import sys +import os.path +import xml.dom.minidom +from getopt import gnu_getopt + +from libtpcodegen import file_set_contents, key_by_name, u +from libglibcodegen import Signature, type_to_gtype, \ + get_docstring, xml_escape, get_deprecated + + +NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + +class Generator(object): + + def __init__(self, dom, prefix, basename, opts): + self.dom = dom + self.__header = [] + self.__body = [] + self.__docs = [] + + self.prefix_lc = prefix.lower() + self.prefix_uc = prefix.upper() + self.prefix_mc = prefix.replace('_', '') + self.basename = basename + self.group = opts.get('--group', None) + self.iface_quark_prefix = opts.get('--iface-quark-prefix', None) + self.tp_proxy_api = tuple(map(int, + opts.get('--tp-proxy-api', '0').split('.'))) + self.proxy_cls = opts.get('--subclass', 'TpProxy') + ' *' + self.proxy_arg = opts.get('--subclass', 'void') + ' *' + self.proxy_assert = opts.get('--subclass-assert', 'TP_IS_PROXY') + self.proxy_doc = ('A #%s or subclass' + % opts.get('--subclass', 'TpProxy')) + if self.proxy_arg == 'void *': + self.proxy_arg = 'gpointer ' + + self.reentrant_symbols = set() + try: + filename = opts['--generate-reentrant'] + with open(filename, 'r') as f: + for line in f.readlines(): + self.reentrant_symbols.add(line.strip()) + except KeyError: + pass + + self.deprecate_reentrant = opts.get('--deprecate-reentrant', None) + self.deprecation_attribute = opts.get('--deprecation-attribute', + 'G_GNUC_DEPRECATED') + + self.guard = opts.get('--guard', None) + + def h(self, s): + self.__header.append(s) + + def b(self, s): + self.__body.append(s) + + def d(self, s): + self.__docs.append(s) + + def get_iface_quark(self): + assert self.iface_dbus is not None + assert self.iface_uc is not None + if self.iface_quark_prefix is None: + return 'g_quark_from_static_string (\"%s\")' % self.iface_dbus + else: + return '%s_%s' % (self.iface_quark_prefix, self.iface_uc) + + def do_signal(self, iface, signal): + iface_lc = iface.lower() + + member = signal.getAttribute('name') + member_lc = signal.getAttribute('tp:name-for-bindings') + if member != member_lc.replace('_', ''): + raise AssertionError('Signal %s tp:name-for-bindings (%s) does ' + 'not match' % (member, member_lc)) + member_lc = member_lc.lower() + member_uc = member_lc.upper() + + arg_count = 0 + args = [] + out_args = [] + + for arg in signal.getElementsByTagName('arg'): + name = arg.getAttribute('name') + type = arg.getAttribute('type') + tp_type = arg.getAttribute('tp:type') + + if not name: + name = 'arg%u' % arg_count + arg_count += 1 + else: + name = 'arg_%s' % name + + info = type_to_gtype(type) + args.append((name, info, tp_type, arg)) + + callback_name = ('%s_%s_signal_callback_%s' + % (self.prefix_lc, iface_lc, member_lc)) + collect_name = ('_%s_%s_collect_args_of_%s' + % (self.prefix_lc, iface_lc, member_lc)) + invoke_name = ('_%s_%s_invoke_callback_for_%s' + % (self.prefix_lc, iface_lc, member_lc)) + + # Example: + # + # typedef void (*tp_cli_connection_signal_callback_new_channel) + # (TpConnection *proxy, const gchar *arg_object_path, + # const gchar *arg_channel_type, guint arg_handle_type, + # guint arg_handle, gboolean arg_suppress_handler, + # gpointer user_data, GObject *weak_object); + + self.d('/**') + self.d(' * %s:' % callback_name) + self.d(' * @proxy: The proxy on which %s_%s_connect_to_%s ()' + % (self.prefix_lc, iface_lc, member_lc)) + self.d(' * was called') + + for arg in args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + docs = get_docstring(elt) or '(Undocumented)' + + if ctype == 'guint ' and tp_type != '': + docs += ' (#%s)' % ('Tp' + tp_type.replace('_', '')) + + self.d(' * @%s: %s' % (name, xml_escape(docs))) + + self.d(' * @user_data: User-supplied data') + self.d(' * @weak_object: User-supplied weakly referenced object') + self.d(' *') + self.d(' * Represents the signature of a callback for the signal %s.' + % member) + self.d(' */') + self.d('') + + self.h('typedef void (*%s) (%sproxy,' + % (callback_name, self.proxy_cls)) + + for arg in args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + const = pointer and 'const ' or '' + + self.h(' %s%s%s,' % (const, ctype, name)) + + self.h(' gpointer user_data, GObject *weak_object);') + + if args: + self.b('static void') + self.b('%s (DBusGProxy *proxy G_GNUC_UNUSED,' % collect_name) + + for arg in args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + const = pointer and 'const ' or '' + + self.b(' %s%s%s,' % (const, ctype, name)) + + self.b(' TpProxySignalConnection *sc)') + self.b('{') + self.b(' GValueArray *args = g_value_array_new (%d);' % len(args)) + self.b(' GValue blank = { 0 };') + self.b(' guint i;') + self.b('') + self.b(' g_value_init (&blank, G_TYPE_INT);') + self.b('') + self.b(' for (i = 0; i < %d; i++)' % len(args)) + self.b(' g_value_array_append (args, &blank);') + self.b('') + + for i, arg in enumerate(args): + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + self.b(' g_value_unset (args->values + %d);' % i) + self.b(' g_value_init (args->values + %d, %s);' % (i, gtype)) + + if gtype == 'G_TYPE_STRING': + self.b(' g_value_set_string (args->values + %d, %s);' + % (i, name)) + elif marshaller == 'BOXED': + self.b(' g_value_set_boxed (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_UCHAR': + self.b(' g_value_set_uchar (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_BOOLEAN': + self.b(' g_value_set_boolean (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_INT': + self.b(' g_value_set_int (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_UINT': + self.b(' g_value_set_uint (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_INT64': + self.b(' g_value_set_int (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_UINT64': + self.b(' g_value_set_uint64 (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_DOUBLE': + self.b(' g_value_set_double (args->values + %d, %s);' + % (i, name)) + else: + assert False, ("Don't know how to put %s in a GValue" + % gtype) + self.b('') + + self.b(' tp_proxy_signal_connection_v0_take_results (sc, args);') + self.b('}') + + self.b('static void') + self.b('%s (TpProxy *tpproxy,' % invoke_name) + self.b(' GError *error G_GNUC_UNUSED,') + self.b(' GValueArray *args,') + self.b(' GCallback generic_callback,') + self.b(' gpointer user_data,') + self.b(' GObject *weak_object)') + self.b('{') + self.b(' %s callback =' % callback_name) + self.b(' (%s) generic_callback;' % callback_name) + self.b('') + self.b(' if (callback != NULL)') + self.b(' callback (g_object_ref (tpproxy),') + + # FIXME: factor out into a function + for i, arg in enumerate(args): + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + if marshaller == 'BOXED': + self.b(' g_value_get_boxed (args->values + %d),' % i) + elif gtype == 'G_TYPE_STRING': + self.b(' g_value_get_string (args->values + %d),' % i) + elif gtype == 'G_TYPE_UCHAR': + self.b(' g_value_get_uchar (args->values + %d),' % i) + elif gtype == 'G_TYPE_BOOLEAN': + self.b(' g_value_get_boolean (args->values + %d),' % i) + elif gtype == 'G_TYPE_UINT': + self.b(' g_value_get_uint (args->values + %d),' % i) + elif gtype == 'G_TYPE_INT': + self.b(' g_value_get_int (args->values + %d),' % i) + elif gtype == 'G_TYPE_UINT64': + self.b(' g_value_get_uint64 (args->values + %d),' % i) + elif gtype == 'G_TYPE_INT64': + self.b(' g_value_get_int64 (args->values + %d),' % i) + elif gtype == 'G_TYPE_DOUBLE': + self.b(' g_value_get_double (args->values + %d),' % i) + else: + assert False, "Don't know how to get %s from a GValue" % gtype + + self.b(' user_data,') + self.b(' weak_object);') + self.b('') + + if len(args) > 0: + self.b(' g_value_array_free (args);') + else: + self.b(' if (args != NULL)') + self.b(' g_value_array_free (args);') + self.b('') + + self.b(' g_object_unref (tpproxy);') + self.b('}') + + # Example: + # + # TpProxySignalConnection * + # tp_cli_connection_connect_to_new_channel + # (TpConnection *proxy, + # tp_cli_connection_signal_callback_new_channel callback, + # gpointer user_data, + # GDestroyNotify destroy); + # + # destroy is invoked when the signal becomes disconnected. This + # is either because the signal has been disconnected explicitly + # by the user, because the TpProxy has become invalid and + # emitted the 'invalidated' signal, or because the weakly referenced + # object has gone away. + + self.d('/**') + self.d(' * %s_%s_connect_to_%s:' + % (self.prefix_lc, iface_lc, member_lc)) + self.d(' * @proxy: %s' % self.proxy_doc) + self.d(' * @callback: Callback to be called when the signal is') + self.d(' * received') + self.d(' * @user_data: User-supplied data for the callback') + self.d(' * @destroy: Destructor for the user-supplied data, which') + self.d(' * will be called when this signal is disconnected, or') + self.d(' * before this function returns %NULL') + self.d(' * @weak_object: A #GObject which will be weakly referenced; ') + self.d(' * if it is destroyed, this callback will automatically be') + self.d(' * disconnected') + self.d(' * @error: If not %NULL, used to raise an error if %NULL is') + self.d(' * returned') + self.d(' *') + self.d(' * Connect a handler to the signal %s.' % member) + self.d(' *') + self.d(' * %s' % xml_escape(get_docstring(signal) or '(Undocumented)')) + self.d(' *') + self.d(' * Returns: a #TpProxySignalConnection containing all of the') + self.d(' * above, which can be used to disconnect the signal; or') + self.d(' * %NULL if the proxy does not have the desired interface') + self.d(' * or has become invalid.') + self.d(' */') + self.d('') + + self.h('TpProxySignalConnection *%s_%s_connect_to_%s (%sproxy,' + % (self.prefix_lc, iface_lc, member_lc, self.proxy_arg)) + self.h(' %s callback,' % callback_name) + self.h(' gpointer user_data,') + self.h(' GDestroyNotify destroy,') + self.h(' GObject *weak_object,') + self.h(' GError **error);') + self.h('') + + self.b('TpProxySignalConnection *') + self.b('%s_%s_connect_to_%s (%sproxy,' + % (self.prefix_lc, iface_lc, member_lc, self.proxy_arg)) + self.b(' %s callback,' % callback_name) + self.b(' gpointer user_data,') + self.b(' GDestroyNotify destroy,') + self.b(' GObject *weak_object,') + self.b(' GError **error)') + self.b('{') + self.b(' GType expected_types[%d] = {' % (len(args) + 1)) + + for arg in args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + self.b(' %s,' % gtype) + + self.b(' G_TYPE_INVALID };') + self.b('') + self.b(' g_return_val_if_fail (%s (proxy), NULL);' + % self.proxy_assert) + self.b(' g_return_val_if_fail (callback != NULL, NULL);') + self.b('') + self.b(' return tp_proxy_signal_connection_v0_new ((TpProxy *) proxy,') + self.b(' %s, \"%s\",' % (self.get_iface_quark(), member)) + self.b(' expected_types,') + + if args: + self.b(' G_CALLBACK (%s),' % collect_name) + else: + self.b(' NULL, /* no args => no collector function */') + + self.b(' %s,' % invoke_name) + self.b(' G_CALLBACK (callback), user_data, destroy,') + self.b(' weak_object, error);') + self.b('}') + self.b('') + + def do_method(self, iface, method): + iface_lc = iface.lower() + + member = method.getAttribute('name') + member_lc = method.getAttribute('tp:name-for-bindings') + if member != member_lc.replace('_', ''): + raise AssertionError('Method %s tp:name-for-bindings (%s) does ' + 'not match' % (member, member_lc)) + member_lc = member_lc.lower() + member_uc = member_lc.upper() + + in_count = 0 + ret_count = 0 + in_args = [] + out_args = [] + + for arg in method.getElementsByTagName('arg'): + name = arg.getAttribute('name') + direction = arg.getAttribute('direction') + type = arg.getAttribute('type') + tp_type = arg.getAttribute('tp:type') + + if direction != 'out': + if not name: + name = 'in%u' % in_count + in_count += 1 + else: + name = 'in_%s' % name + else: + if not name: + name = 'out%u' % ret_count + ret_count += 1 + else: + name = 'out_%s' % name + + info = type_to_gtype(type) + if direction != 'out': + in_args.append((name, info, tp_type, arg)) + else: + out_args.append((name, info, tp_type, arg)) + + # Async reply callback type + + # Example: + # void (*tp_cli_properties_interface_callback_for_get_properties) + # (TpProxy *proxy, + # const GPtrArray *out0, + # const GError *error, + # gpointer user_data, + # GObject *weak_object); + + self.d('/**') + self.d(' * %s_%s_callback_for_%s:' + % (self.prefix_lc, iface_lc, member_lc)) + self.d(' * @proxy: the proxy on which the call was made') + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + docs = xml_escape(get_docstring(elt) or '(Undocumented)') + + if ctype == 'guint ' and tp_type != '': + docs += ' (#%s)' % ('Tp' + tp_type.replace('_', '')) + + self.d(' * @%s: Used to return an \'out\' argument if @error is ' + '%%NULL: %s' + % (name, docs)) + + self.d(' * @error: %NULL on success, or an error on failure') + self.d(' * @user_data: user-supplied data') + self.d(' * @weak_object: user-supplied object') + self.d(' *') + self.d(' * Signature of the callback called when a %s method call' + % member) + self.d(' * succeeds or fails.') + + deprecated = method.getElementsByTagName('tp:deprecated') + if deprecated: + d = deprecated[0] + self.d(' *') + self.d(' * Deprecated: %s' % xml_escape(get_deprecated(d))) + + self.d(' */') + self.d('') + + callback_name = '%s_%s_callback_for_%s' % (self.prefix_lc, iface_lc, + member_lc) + + self.h('typedef void (*%s) (%sproxy,' + % (callback_name, self.proxy_cls)) + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + const = pointer and 'const ' or '' + + self.h(' %s%s%s,' % (const, ctype, name)) + + self.h(' const GError *error, gpointer user_data,') + self.h(' GObject *weak_object);') + self.h('') + + # Async callback implementation + + invoke_callback = '_%s_%s_invoke_callback_%s' % (self.prefix_lc, + iface_lc, + member_lc) + + collect_callback = '_%s_%s_collect_callback_%s' % (self.prefix_lc, + iface_lc, + member_lc) + + # The callback called by dbus-glib; this ends the call and collects + # the results into a GValueArray. + self.b('static void') + self.b('%s (DBusGProxy *proxy,' % collect_callback) + self.b(' DBusGProxyCall *call,') + self.b(' gpointer user_data)') + self.b('{') + self.b(' GError *error = NULL;') + + if len(out_args) > 0: + self.b(' GValueArray *args;') + self.b(' GValue blank = { 0 };') + self.b(' guint i;') + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + # "We handle variants specially; the caller is expected to + # have already allocated storage for them". Thanks, + # dbus-glib... + if gtype == 'G_TYPE_VALUE': + self.b(' GValue *%s = g_new0 (GValue, 1);' % name) + else: + self.b(' %s%s;' % (ctype, name)) + + self.b('') + self.b(' dbus_g_proxy_end_call (proxy, call, &error,') + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + if gtype == 'G_TYPE_VALUE': + self.b(' %s, %s,' % (gtype, name)) + else: + self.b(' %s, &%s,' % (gtype, name)) + + self.b(' G_TYPE_INVALID);') + + if len(out_args) == 0: + self.b(' tp_proxy_pending_call_v0_take_results (user_data, error,' + 'NULL);') + else: + self.b('') + self.b(' if (error != NULL)') + self.b(' {') + self.b(' tp_proxy_pending_call_v0_take_results (user_data, error,') + self.b(' NULL);') + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + if gtype == 'G_TYPE_VALUE': + self.b(' g_free (%s);' % name) + + self.b(' return;') + self.b(' }') + self.b('') + self.b(' args = g_value_array_new (%d);' % len(out_args)) + self.b(' g_value_init (&blank, G_TYPE_INT);') + self.b('') + self.b(' for (i = 0; i < %d; i++)' % len(out_args)) + self.b(' g_value_array_append (args, &blank);') + + for i, arg in enumerate(out_args): + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + self.b('') + self.b(' g_value_unset (args->values + %d);' % i) + self.b(' g_value_init (args->values + %d, %s);' % (i, gtype)) + + if gtype == 'G_TYPE_STRING': + self.b(' g_value_take_string (args->values + %d, %s);' + % (i, name)) + elif marshaller == 'BOXED': + self.b(' g_value_take_boxed (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_UCHAR': + self.b(' g_value_set_uchar (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_BOOLEAN': + self.b(' g_value_set_boolean (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_INT': + self.b(' g_value_set_int (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_UINT': + self.b(' g_value_set_uint (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_INT64': + self.b(' g_value_set_int (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_UINT64': + self.b(' g_value_set_uint (args->values + %d, %s);' + % (i, name)) + elif gtype == 'G_TYPE_DOUBLE': + self.b(' g_value_set_double (args->values + %d, %s);' + % (i, name)) + else: + assert False, ("Don't know how to put %s in a GValue" + % gtype) + + self.b(' tp_proxy_pending_call_v0_take_results (user_data, ' + 'NULL, args);') + + self.b('}') + + self.b('static void') + self.b('%s (TpProxy *self,' % invoke_callback) + self.b(' GError *error,') + self.b(' GValueArray *args,') + self.b(' GCallback generic_callback,') + self.b(' gpointer user_data,') + self.b(' GObject *weak_object)') + self.b('{') + self.b(' %s callback = (%s) generic_callback;' + % (callback_name, callback_name)) + self.b('') + self.b(' if (error != NULL)') + self.b(' {') + self.b(' callback ((%s) self,' % self.proxy_cls) + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + if marshaller == 'BOXED' or pointer: + self.b(' NULL,') + elif gtype == 'G_TYPE_DOUBLE': + self.b(' 0.0,') + else: + self.b(' 0,') + + self.b(' error, user_data, weak_object);') + self.b(' g_error_free (error);') + self.b(' return;') + self.b(' }') + + self.b(' callback ((%s) self,' % self.proxy_cls) + + # FIXME: factor out into a function + for i, arg in enumerate(out_args): + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + if marshaller == 'BOXED': + self.b(' g_value_get_boxed (args->values + %d),' % i) + elif gtype == 'G_TYPE_STRING': + self.b(' g_value_get_string (args->values + %d),' % i) + elif gtype == 'G_TYPE_UCHAR': + self.b(' g_value_get_uchar (args->values + %d),' % i) + elif gtype == 'G_TYPE_BOOLEAN': + self.b(' g_value_get_boolean (args->values + %d),' % i) + elif gtype == 'G_TYPE_UINT': + self.b(' g_value_get_uint (args->values + %d),' % i) + elif gtype == 'G_TYPE_INT': + self.b(' g_value_get_int (args->values + %d),' % i) + elif gtype == 'G_TYPE_UINT64': + self.b(' g_value_get_uint64 (args->values + %d),' % i) + elif gtype == 'G_TYPE_INT64': + self.b(' g_value_get_int64 (args->values + %d),' % i) + elif gtype == 'G_TYPE_DOUBLE': + self.b(' g_value_get_double (args->values + %d),' % i) + else: + assert False, "Don't know how to get %s from a GValue" % gtype + + self.b(' error, user_data, weak_object);') + self.b('') + + if len(out_args) > 0: + self.b(' g_value_array_free (args);') + else: + self.b(' if (args != NULL)') + self.b(' g_value_array_free (args);') + + self.b('}') + self.b('') + + # Async stub + + # Example: + # TpProxyPendingCall * + # tp_cli_properties_interface_call_get_properties + # (gpointer proxy, + # gint timeout_ms, + # const GArray *in_properties, + # tp_cli_properties_interface_callback_for_get_properties callback, + # gpointer user_data, + # GDestroyNotify *destructor); + + self.h('TpProxyPendingCall *%s_%s_call_%s (%sproxy,' + % (self.prefix_lc, iface_lc, member_lc, self.proxy_arg)) + self.h(' gint timeout_ms,') + + self.d('/**') + self.d(' * %s_%s_call_%s:' + % (self.prefix_lc, iface_lc, member_lc)) + self.d(' * @proxy: the #TpProxy') + self.d(' * @timeout_ms: the timeout in milliseconds, or -1 to use the') + self.d(' * default') + + for arg in in_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + docs = xml_escape(get_docstring(elt) or '(Undocumented)') + + if ctype == 'guint ' and tp_type != '': + docs += ' (#%s)' % ('Tp' + tp_type.replace('_', '')) + + self.d(' * @%s: Used to pass an \'in\' argument: %s' + % (name, docs)) + + self.d(' * @callback: called when the method call succeeds or fails;') + self.d(' * may be %NULL to make a "fire and forget" call with no ') + self.d(' * reply tracking') + self.d(' * @user_data: user-supplied data passed to the callback;') + self.d(' * must be %NULL if @callback is %NULL') + self.d(' * @destroy: called with the user_data as argument, after the') + self.d(' * call has succeeded, failed or been cancelled;') + self.d(' * must be %NULL if @callback is %NULL') + self.d(' * @weak_object: If not %NULL, a #GObject which will be ') + self.d(' * weakly referenced; if it is destroyed, this call ') + self.d(' * will automatically be cancelled. Must be %NULL if ') + self.d(' * @callback is %NULL') + self.d(' *') + self.d(' * Start a %s method call.' % member) + self.d(' *') + self.d(' * %s' % xml_escape(get_docstring(method) or '(Undocumented)')) + self.d(' *') + self.d(' * Returns: a #TpProxyPendingCall representing the call in') + self.d(' * progress. It is borrowed from the object, and will become') + self.d(' * invalid when the callback is called, the call is') + self.d(' * cancelled or the #TpProxy becomes invalid.') + + deprecated = method.getElementsByTagName('tp:deprecated') + if deprecated: + d = deprecated[0] + self.d(' *') + self.d(' * Deprecated: %s' % xml_escape(get_deprecated(d))) + + self.d(' */') + self.d('') + + self.b('TpProxyPendingCall *\n%s_%s_call_%s (%sproxy,' + % (self.prefix_lc, iface_lc, member_lc, self.proxy_arg)) + self.b(' gint timeout_ms,') + + for arg in in_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + const = pointer and 'const ' or '' + + self.h(' %s%s%s,' % (const, ctype, name)) + self.b(' %s%s%s,' % (const, ctype, name)) + + self.h(' %s callback,' % callback_name) + self.h(' gpointer user_data,') + self.h(' GDestroyNotify destroy,') + self.h(' GObject *weak_object);') + self.h('') + + self.b(' %s callback,' % callback_name) + self.b(' gpointer user_data,') + self.b(' GDestroyNotify destroy,') + self.b(' GObject *weak_object)') + self.b('{') + self.b(' GError *error = NULL;') + self.b(' GQuark interface = %s;' % self.get_iface_quark()) + self.b(' DBusGProxy *iface;') + self.b('') + self.b(' g_return_val_if_fail (%s (proxy), NULL);' + % self.proxy_assert) + self.b(' g_return_val_if_fail (callback != NULL || ' + 'user_data == NULL, NULL);') + self.b(' g_return_val_if_fail (callback != NULL || ' + 'destroy == NULL, NULL);') + self.b(' g_return_val_if_fail (callback != NULL || ' + 'weak_object == NULL, NULL);') + self.b('') + self.b(' G_GNUC_BEGIN_IGNORE_DEPRECATIONS') + self.b(' iface = tp_proxy_borrow_interface_by_id (') + self.b(' (TpProxy *) proxy,') + self.b(' interface, &error);') + self.b(' G_GNUC_END_IGNORE_DEPRECATIONS') + self.b('') + self.b(' if (iface == NULL)') + self.b(' {') + self.b(' if (callback != NULL)') + self.b(' callback (proxy,') + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + if pointer: + self.b(' NULL,') + else: + self.b(' 0,') + + self.b(' error, user_data, weak_object);') + self.b('') + self.b(' if (destroy != NULL)') + self.b(' destroy (user_data);') + self.b('') + self.b(' g_error_free (error);') + self.b(' return NULL;') + self.b(' }') + self.b('') + self.b(' if (callback == NULL)') + self.b(' {') + self.b(' dbus_g_proxy_call_no_reply (iface, "%s",' % member) + + for arg in in_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + const = pointer and 'const ' or '' + + self.b(' %s, %s,' % (gtype, name)) + + self.b(' G_TYPE_INVALID);') + self.b(' return NULL;') + self.b(' }') + self.b(' else') + self.b(' {') + self.b(' TpProxyPendingCall *data;') + self.b('') + self.b(' data = tp_proxy_pending_call_v0_new ((TpProxy *) proxy,') + self.b(' interface, "%s", iface,' % member) + self.b(' %s,' % invoke_callback) + self.b(' G_CALLBACK (callback), user_data, destroy,') + self.b(' weak_object, FALSE);') + self.b(' tp_proxy_pending_call_v0_take_pending_call (data,') + self.b(' dbus_g_proxy_begin_call_with_timeout (iface,') + self.b(' "%s",' % member) + self.b(' %s,' % collect_callback) + self.b(' data,') + self.b(' tp_proxy_pending_call_v0_completed,') + self.b(' timeout_ms,') + + for arg in in_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + const = pointer and 'const ' or '' + + self.b(' %s, %s,' % (gtype, name)) + + self.b(' G_TYPE_INVALID));') + self.b('') + self.b(' return data;') + self.b(' }') + self.b('}') + self.b('') + + self.do_method_reentrant(method, iface_lc, member, member_lc, + in_args, out_args, collect_callback) + + # leave a gap for the end of the method + self.d('') + self.b('') + self.h('') + + def do_method_reentrant(self, method, iface_lc, member, member_lc, in_args, + out_args, collect_callback): + # Reentrant blocking calls + # Example: + # gboolean tp_cli_properties_interface_run_get_properties + # (gpointer proxy, + # gint timeout_ms, + # const GArray *in_properties, + # GPtrArray **out0, + # GError **error, + # GMainLoop **loop); + + run_method_name = '%s_%s_run_%s' % (self.prefix_lc, iface_lc, member_lc) + if run_method_name not in self.reentrant_symbols: + return + + self.b('typedef struct {') + self.b(' GMainLoop *loop;') + self.b(' GError **error;') + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + self.b(' %s*%s;' % (ctype, name)) + + self.b(' unsigned success:1;') + self.b(' unsigned completed:1;') + self.b('} _%s_%s_run_state_%s;' + % (self.prefix_lc, iface_lc, member_lc)) + + reentrant_invoke = '_%s_%s_finish_running_%s' % (self.prefix_lc, + iface_lc, + member_lc) + + self.b('static void') + self.b('%s (TpProxy *self G_GNUC_UNUSED,' % reentrant_invoke) + self.b(' GError *error,') + self.b(' GValueArray *args,') + self.b(' GCallback unused G_GNUC_UNUSED,') + self.b(' gpointer user_data G_GNUC_UNUSED,') + self.b(' GObject *unused2 G_GNUC_UNUSED)') + self.b('{') + self.b(' _%s_%s_run_state_%s *state = user_data;' + % (self.prefix_lc, iface_lc, member_lc)) + self.b('') + self.b(' state->success = (error == NULL);') + self.b(' state->completed = TRUE;') + self.b(' g_main_loop_quit (state->loop);') + self.b('') + self.b(' if (error != NULL)') + self.b(' {') + self.b(' if (state->error != NULL)') + self.b(' *state->error = error;') + self.b(' else') + self.b(' g_error_free (error);') + self.b('') + self.b(' return;') + self.b(' }') + self.b('') + + for i, arg in enumerate(out_args): + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + self.b(' if (state->%s != NULL)' % name) + if marshaller == 'BOXED': + self.b(' *state->%s = g_value_dup_boxed (' + 'args->values + %d);' % (name, i)) + elif marshaller == 'STRING': + self.b(' *state->%s = g_value_dup_string ' + '(args->values + %d);' % (name, i)) + elif marshaller in ('UCHAR', 'BOOLEAN', 'INT', 'UINT', + 'INT64', 'UINT64', 'DOUBLE'): + self.b(' *state->%s = g_value_get_%s (args->values + %d);' + % (name, marshaller.lower(), i)) + else: + assert False, "Don't know how to copy %s" % gtype + + self.b('') + + if len(out_args) > 0: + self.b(' g_value_array_free (args);') + else: + self.b(' if (args != NULL)') + self.b(' g_value_array_free (args);') + + self.b('}') + self.b('') + + if self.deprecate_reentrant: + self.h('#ifndef %s' % self.deprecate_reentrant) + + self.h('gboolean %s (%sproxy,' + % (run_method_name, self.proxy_arg)) + self.h(' gint timeout_ms,') + + self.d('/**') + self.d(' * %s:' % run_method_name) + self.d(' * @proxy: %s' % self.proxy_doc) + self.d(' * @timeout_ms: Timeout in milliseconds, or -1 for default') + + for arg in in_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + docs = xml_escape(get_docstring(elt) or '(Undocumented)') + + if ctype == 'guint ' and tp_type != '': + docs += ' (#%s)' % ('Tp' + tp_type.replace('_', '')) + + self.d(' * @%s: Used to pass an \'in\' argument: %s' + % (name, docs)) + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + self.d(' * @%s: Used to return an \'out\' argument if %%TRUE is ' + 'returned: %s' + % (name, xml_escape(get_docstring(elt) or '(Undocumented)'))) + + self.d(' * @error: If not %NULL, used to return errors if %FALSE ') + self.d(' * is returned') + self.d(' * @loop: If not %NULL, set before re-entering ') + self.d(' * the main loop, to point to a #GMainLoop ') + self.d(' * which can be used to cancel this call with ') + self.d(' * g_main_loop_quit(), causing a return of ') + self.d(' * %FALSE with @error set to %TP_DBUS_ERROR_CANCELLED') + self.d(' *') + self.d(' * Call the method %s and run the main loop' % member) + self.d(' * until it returns. Before calling this method, you must') + self.d(' * add a reference to any borrowed objects you need to keep,') + self.d(' * and generally ensure that everything is in a consistent') + self.d(' * state.') + self.d(' *') + self.d(' * %s' % xml_escape(get_docstring(method) or '(Undocumented)')) + self.d(' *') + self.d(' * Returns: TRUE on success, FALSE and sets @error on error') + + deprecated = method.getElementsByTagName('tp:deprecated') + if deprecated: + d = deprecated[0] + self.d(' *') + self.d(' * Deprecated: %s' % xml_escape(get_deprecated(d))) + + self.d(' */') + self.d('') + + self.b('gboolean\n%s (%sproxy,' + % (run_method_name, self.proxy_arg)) + self.b(' gint timeout_ms,') + + for arg in in_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + const = pointer and 'const ' or '' + + self.h(' %s%s%s,' % (const, ctype, name)) + self.b(' %s%s%s,' % (const, ctype, name)) + + for arg in out_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + self.h(' %s*%s,' % (ctype, name)) + self.b(' %s*%s,' % (ctype, name)) + + self.h(' GError **error,') + + if self.deprecate_reentrant: + self.h(' GMainLoop **loop) %s;' % self.deprecation_attribute) + self.h('#endif /* not %s */' % self.deprecate_reentrant) + else: + self.h(' GMainLoop **loop);') + + self.h('') + + self.b(' GError **error,') + self.b(' GMainLoop **loop)') + self.b('{') + self.b(' DBusGProxy *iface;') + self.b(' GQuark interface = %s;' % self.get_iface_quark()) + self.b(' TpProxyPendingCall *pc;') + self.b(' _%s_%s_run_state_%s state = {' + % (self.prefix_lc, iface_lc, member_lc)) + self.b(' NULL /* loop */, error,') + + for arg in out_args: + name, info, tp_type, elt = arg + + self.b(' %s,' % name) + + self.b(' FALSE /* completed */, FALSE /* success */ };') + self.b('') + self.b(' g_return_val_if_fail (%s (proxy), FALSE);' + % self.proxy_assert) + self.b('') + self.b(' G_GNUC_BEGIN_IGNORE_DEPRECATIONS') + self.b(' iface = tp_proxy_borrow_interface_by_id') + self.b(' ((TpProxy *) proxy, interface, error);') + self.b(' G_GNUC_END_IGNORE_DEPRECATIONS') + self.b('') + self.b(' if (iface == NULL)') + self.b(' return FALSE;') + self.b('') + self.b(' state.loop = g_main_loop_new (NULL, FALSE);') + self.b('') + self.b(' pc = tp_proxy_pending_call_v0_new ((TpProxy *) proxy,') + self.b(' interface, "%s", iface,' % member) + self.b(' %s,' % reentrant_invoke) + self.b(' NULL, &state, NULL, NULL, TRUE);') + self.b('') + self.b(' if (loop != NULL)') + self.b(' *loop = state.loop;') + self.b('') + self.b(' tp_proxy_pending_call_v0_take_pending_call (pc,') + self.b(' dbus_g_proxy_begin_call_with_timeout (iface,') + self.b(' "%s",' % member) + self.b(' %s,' % collect_callback) + self.b(' pc,') + self.b(' tp_proxy_pending_call_v0_completed,') + self.b(' timeout_ms,') + + for arg in in_args: + name, info, tp_type, elt = arg + ctype, gtype, marshaller, pointer = info + + const = pointer and 'const ' or '' + + self.b(' %s, %s,' % (gtype, name)) + + self.b(' G_TYPE_INVALID));') + self.b('') + self.b(' if (!state.completed)') + self.b(' g_main_loop_run (state.loop);') + self.b('') + self.b(' if (!state.completed)') + self.b(' tp_proxy_pending_call_cancel (pc);') + self.b('') + self.b(' if (loop != NULL)') + self.b(' *loop = NULL;') + self.b('') + self.b(' g_main_loop_unref (state.loop);') + self.b('') + self.b(' return state.success;') + self.b('}') + self.b('') + + def do_signal_add(self, signal): + marshaller_items = [] + gtypes = [] + + for i in signal.getElementsByTagName('arg'): + name = i.getAttribute('name') + type = i.getAttribute('type') + info = type_to_gtype(type) + # type, GType, STRING, is a pointer + gtypes.append(info[1]) + + self.b(' dbus_g_proxy_add_signal (proxy, "%s",' + % signal.getAttribute('name')) + for gtype in gtypes: + self.b(' %s,' % gtype) + self.b(' G_TYPE_INVALID);') + + def do_interface(self, node): + ifaces = node.getElementsByTagName('interface') + assert len(ifaces) == 1 + iface = ifaces[0] + name = node.getAttribute('name').replace('/', '') + + self.iface = name + self.iface_lc = name.lower() + self.iface_uc = name.upper() + self.iface_mc = name.replace('_', '') + self.iface_dbus = iface.getAttribute('name') + + signals = node.getElementsByTagName('signal') + methods = node.getElementsByTagName('method') + + if signals: + self.b('static inline void') + self.b('%s_add_signals_for_%s (DBusGProxy *proxy)' + % (self.prefix_lc, name.lower())) + self.b('{') + + if self.tp_proxy_api >= (0, 7, 6): + self.b(' if (!tp_proxy_dbus_g_proxy_claim_for_signal_adding ' + '(proxy))') + self.b(' return;') + + for signal in signals: + self.do_signal_add(signal) + + self.b('}') + self.b('') + self.b('') + + for signal in signals: + self.do_signal(name, signal) + + for method in methods: + self.do_method(name, method) + + self.iface_dbus = None + + def __call__(self): + + if self.guard is not None: + self.h('#ifndef %s' % self.guard) + self.h('#define %s' % self.guard) + self.h('') + + self.h('G_BEGIN_DECLS') + self.h('') + + self.b('/* We don\'t want gtkdoc scanning this file, it\'ll get') + self.b(' * confused by seeing function definitions, so mark it as: */') + self.b('/**/') + self.b('') + + nodes = self.dom.getElementsByTagName('node') + nodes.sort(key=key_by_name) + + for node in nodes: + self.do_interface(node) + + if self.group is not None: + + self.b('/*') + self.b(' * %s_%s_add_signals:' % (self.prefix_lc, self.group)) + self.b(' * @self: the #TpProxy') + self.b(' * @quark: a quark whose string value is the interface') + self.b(' * name whose signals should be added') + self.b(' * @proxy: the D-Bus proxy to which to add the signals') + self.b(' * @unused: not used for anything') + self.b(' *') + self.b(' * Tell dbus-glib that @proxy has the signatures of all') + self.b(' * signals on the given interface, if it\'s one we') + self.b(' * support.') + self.b(' *') + self.b(' * This function should be used as a signal handler for') + self.b(' * #TpProxy::interface-added.') + self.b(' */') + self.b('static void') + self.b('%s_%s_add_signals (TpProxy *self G_GNUC_UNUSED,' + % (self.prefix_lc, self.group)) + self.b(' guint quark,') + self.b(' DBusGProxy *proxy,') + self.b(' gpointer unused G_GNUC_UNUSED)') + + self.b('{') + + for node in nodes: + iface = node.getElementsByTagName('interface')[0] + self.iface_dbus = iface.getAttribute('name') + signals = node.getElementsByTagName('signal') + if not signals: + continue + name = node.getAttribute('name').replace('/', '').lower() + self.iface_uc = name.upper() + self.b(' if (quark == %s)' % self.get_iface_quark()) + self.b(' %s_add_signals_for_%s (proxy);' + % (self.prefix_lc, name)) + + self.b('}') + self.b('') + + self.h('G_END_DECLS') + self.h('') + + if self.guard is not None: + self.h('#endif /* defined (%s) */' % self.guard) + self.h('') + + file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8')) + file_set_contents(self.basename + '-body.h', u('\n').join(self.__body).encode('utf-8')) + file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8')) + +def types_to_gtypes(types): + return [type_to_gtype(t)[1] for t in types] + + +if __name__ == '__main__': + options, argv = gnu_getopt(sys.argv[1:], '', + ['group=', 'subclass=', 'subclass-assert=', + 'iface-quark-prefix=', 'tp-proxy-api=', + 'generate-reentrant=', 'deprecate-reentrant=', + 'deprecation-attribute=', 'guard=']) + + opts = {} + + for option, value in options: + opts[option] = value + + dom = xml.dom.minidom.parse(argv[0]) + + Generator(dom, argv[1], argv[2], opts)() diff --git a/telepathy-account-widgets/tools/glib-client-marshaller-gen.py b/telepathy-account-widgets/tools/glib-client-marshaller-gen.py new file mode 100644 index 0000000..cd9823b --- /dev/null +++ b/telepathy-account-widgets/tools/glib-client-marshaller-gen.py @@ -0,0 +1,60 @@ +#!/usr/bin/python + +import sys +import xml.dom.minidom +from string import ascii_letters, digits + + +from libglibcodegen import signal_to_marshal_name + + +NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + +class Generator(object): + + def __init__(self, dom, prefix): + self.dom = dom + self.marshallers = {} + self.prefix = prefix + + def do_signal(self, signal): + marshaller = signal_to_marshal_name(signal, self.prefix) + + assert '__' in marshaller + rhs = marshaller.split('__', 1)[1].split('_') + + self.marshallers[marshaller] = rhs + + def __call__(self): + signals = self.dom.getElementsByTagName('signal') + + for signal in signals: + self.do_signal(signal) + + print('void') + print('%s_register_dbus_glib_marshallers (void)' % self.prefix) + print('{') + + all = list(self.marshallers.keys()) + all.sort() + for marshaller in all: + rhs = self.marshallers[marshaller] + + print(' dbus_g_object_register_marshaller (') + print(' g_cclosure_marshal_generic,') + print(' G_TYPE_NONE, /* return */') + for type in rhs: + print(' G_TYPE_%s,' % type.replace('VOID', 'NONE')) + print(' G_TYPE_INVALID);') + + print('}') + + +def types_to_gtypes(types): + return [type_to_gtype(t)[1] for t in types] + +if __name__ == '__main__': + argv = sys.argv[1:] + dom = xml.dom.minidom.parse(argv[0]) + + Generator(dom, argv[1])() diff --git a/telepathy-account-widgets/tools/glib-errors-check-gen.py b/telepathy-account-widgets/tools/glib-errors-check-gen.py new file mode 100644 index 0000000..fad261e --- /dev/null +++ b/telepathy-account-widgets/tools/glib-errors-check-gen.py @@ -0,0 +1,58 @@ +#!/usr/bin/python + +import sys +import xml.dom.minidom + +from libglibcodegen import NS_TP, get_docstring, get_descendant_text + +class Generator(object): + def __init__(self, dom): + self.dom = dom + self.errors = self.dom.getElementsByTagNameNS(NS_TP, 'errors')[0] + + def __call__(self): + + print('{') + print(' GEnumClass *klass;') + print(' GEnumValue *value_by_name;') + print(' GEnumValue *value_by_nick;') + print('') + print(' g_type_init ();') + print(' klass = g_type_class_ref (TP_TYPE_ERROR);') + + for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): + ns = error.parentNode.getAttribute('namespace') + nick = error.getAttribute('name').replace(' ', '') + enum = ('TP_ERROR_' + + error.getAttribute('name').replace(' ', '_').replace('.', '_').upper()) + s = ('TP_ERROR_STR_' + + error.getAttribute('name').replace(' ', '_').replace('.', '_').upper()) + + print('') + print(' /* %s.%s */' % (ns, nick)) + print(' value_by_name = g_enum_get_value_by_name (klass, "%s");' + % enum) + print(' value_by_nick = g_enum_get_value_by_nick (klass, "%s");' + % nick) + print(' g_assert (value_by_name != NULL);') + print(' g_assert (value_by_nick != NULL);') + print(' g_assert_cmpint (value_by_name->value, ==, %s);' + % enum) + print(' g_assert_cmpint (value_by_nick->value, ==, %s);' + % enum) + print(' g_assert_cmpstr (value_by_name->value_name, ==, "%s");' + % enum) + print(' g_assert_cmpstr (value_by_nick->value_name, ==, "%s");' + % enum) + print(' g_assert_cmpstr (value_by_name->value_nick, ==, "%s");' + % nick) + print(' g_assert_cmpstr (value_by_nick->value_nick, ==, "%s");' + % nick) + print(' g_assert_cmpstr (%s, ==, TP_ERROR_PREFIX ".%s");' + % (s, nick)) + + print('}') + +if __name__ == '__main__': + argv = sys.argv[1:] + Generator(xml.dom.minidom.parse(argv[0]))() diff --git a/telepathy-account-widgets/tools/glib-errors-str-gen.py b/telepathy-account-widgets/tools/glib-errors-str-gen.py new file mode 100644 index 0000000..ddb1e16 --- /dev/null +++ b/telepathy-account-widgets/tools/glib-errors-str-gen.py @@ -0,0 +1,77 @@ +#!/usr/bin/python + +import sys +import xml.dom.minidom + +from libtpcodegen import file_set_contents, u +from libglibcodegen import NS_TP, get_docstring, xml_escape + +class Generator(object): + def __init__(self, dom, basename): + self.dom = dom + self.errors = self.dom.getElementsByTagNameNS(NS_TP, 'errors')[0] + self.basename = basename + + self.__header = [] + self.__body = [] + self.__docs = [] + + def h(self, s): + self.__header.append(s) + + def b(self, s): + self.__body.append(s) + + def d(self, s): + self.__docs.append(s) + + def __call__(self): + errors = self.errors.getElementsByTagNameNS(NS_TP, 'error') + + self.b('#include ') + self.b('') + self.b('const gchar *') + self.b('tp_error_get_dbus_name (TpError error)') + self.b('{') + self.b(' switch (error)') + self.b(' {') + + for error in errors: + ns = error.parentNode.getAttribute('namespace') + nick = error.getAttribute('name').replace(' ', '') + uc_nick = error.getAttribute('name').replace(' ', '_').replace('.', '_').upper() + name = 'TP_ERROR_STR_' + uc_nick + error_name = '%s.%s' % (ns, nick) + + self.d('/**') + self.d(' * %s:' % name) + self.d(' *') + self.d(' * The D-Bus error name %s' % error_name) + self.d(' *') + self.d(' * %s' % xml_escape(get_docstring(error))) + self.d(' */') + self.d('') + + self.h('#define %s "%s"' % (name, error_name)) + + self.b(' case TP_ERROR_%s:' % uc_nick) + self.b(' return %s;' % name) + + self.b(' default:') + self.b(' g_return_val_if_reached (NULL);') + self.b(' }') + self.b('}') + + # make both files end with a newline + self.h('') + self.b('') + + file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8')) + file_set_contents(self.basename + '.c', u('\n').join(self.__body).encode('utf-8')) + file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8')) + +if __name__ == '__main__': + argv = sys.argv[1:] + basename = argv[0] + + Generator(xml.dom.minidom.parse(argv[1]), basename)() diff --git a/telepathy-account-widgets/tools/glib-ginterface-gen.py b/telepathy-account-widgets/tools/glib-ginterface-gen.py new file mode 100644 index 0000000..c0ce20d --- /dev/null +++ b/telepathy-account-widgets/tools/glib-ginterface-gen.py @@ -0,0 +1,832 @@ +#!/usr/bin/python + +# glib-ginterface-gen.py: service-side interface generator +# +# Generate dbus-glib 0.x service GInterfaces from the Telepathy specification. +# The master copy of this program is in the telepathy-glib repository - +# please make any changes there. +# +# Copyright (C) 2006, 2007 Collabora Limited +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import sys +import os.path +import xml.dom.minidom + +from libtpcodegen import file_set_contents, key_by_name, u +from libglibcodegen import Signature, type_to_gtype, \ + NS_TP, dbus_gutils_wincaps_to_uscore + + +NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + +def get_emits_changed(node): + try: + return [ + annotation.getAttribute('value') + for annotation in node.getElementsByTagName('annotation') + if annotation.getAttribute('name') == 'org.freedesktop.DBus.Property.EmitsChangedSignal' + ][0] + except IndexError: + return None + +class Generator(object): + + def __init__(self, dom, prefix, basename, signal_marshal_prefix, + headers, end_headers, not_implemented_func, + allow_havoc): + self.dom = dom + self.__header = [] + self.__body = [] + self.__docs = [] + + assert prefix.endswith('_') + assert not signal_marshal_prefix.endswith('_') + + # The main_prefix, sub_prefix thing is to get: + # FOO_ -> (FOO_, _) + # FOO_SVC_ -> (FOO_, _SVC_) + # but + # FOO_BAR/ -> (FOO_BAR_, _) + # FOO_BAR/SVC_ -> (FOO_BAR_, _SVC_) + + if '/' in prefix: + main_prefix, sub_prefix = prefix.upper().split('/', 1) + prefix = prefix.replace('/', '_') + else: + main_prefix, sub_prefix = prefix.upper().split('_', 1) + + self.MAIN_PREFIX_ = main_prefix + '_' + self._SUB_PREFIX_ = '_' + sub_prefix + + self.Prefix_ = prefix + self.Prefix = prefix.replace('_', '') + self.prefix_ = prefix.lower() + self.PREFIX_ = prefix.upper() + + self.basename = basename + self.signal_marshal_prefix = signal_marshal_prefix + self.headers = headers + self.end_headers = end_headers + self.not_implemented_func = not_implemented_func + self.allow_havoc = allow_havoc + + def h(self, s): + self.__header.append(s) + + def b(self, s): + self.__body.append(s) + + def d(self, s): + self.__docs.append(s) + + def do_node(self, node): + node_name = node.getAttribute('name').replace('/', '') + node_name_mixed = self.node_name_mixed = node_name.replace('_', '') + node_name_lc = self.node_name_lc = node_name.lower() + node_name_uc = self.node_name_uc = node_name.upper() + + interfaces = node.getElementsByTagName('interface') + assert len(interfaces) == 1, interfaces + interface = interfaces[0] + self.iface_name = interface.getAttribute('name') + + tmp = interface.getAttribute('tp:implement-service') + if tmp == "no": + return + + tmp = interface.getAttribute('tp:causes-havoc') + if tmp and not self.allow_havoc: + raise AssertionError('%s is %s' % (self.iface_name, tmp)) + + iface_emits_changed = get_emits_changed(interface) + + self.b('static const DBusGObjectInfo _%s%s_object_info;' + % (self.prefix_, node_name_lc)) + self.b('') + + methods = interface.getElementsByTagName('method') + signals = interface.getElementsByTagName('signal') + properties = interface.getElementsByTagName('property') + # Don't put properties in dbus-glib glue + glue_properties = [] + + self.b('struct _%s%sClass {' % (self.Prefix, node_name_mixed)) + self.b(' GTypeInterface parent_class;') + for method in methods: + self.b(' %s %s;' % self.get_method_impl_names(method)) + self.b('};') + self.b('') + + if signals: + self.b('enum {') + for signal in signals: + self.b(' %s,' % self.get_signal_const_entry(signal)) + self.b(' N_%s_SIGNALS' % node_name_uc) + self.b('};') + self.b('static guint %s_signals[N_%s_SIGNALS] = {0};' + % (node_name_lc, node_name_uc)) + self.b('') + + self.b('static void %s%s_base_init (gpointer klass);' + % (self.prefix_, node_name_lc)) + self.b('') + + self.b('GType') + self.b('%s%s_get_type (void)' + % (self.prefix_, node_name_lc)) + self.b('{') + self.b(' static GType type = 0;') + self.b('') + self.b(' if (G_UNLIKELY (type == 0))') + self.b(' {') + self.b(' static const GTypeInfo info = {') + self.b(' sizeof (%s%sClass),' % (self.Prefix, node_name_mixed)) + self.b(' %s%s_base_init, /* base_init */' + % (self.prefix_, node_name_lc)) + self.b(' NULL, /* base_finalize */') + self.b(' NULL, /* class_init */') + self.b(' NULL, /* class_finalize */') + self.b(' NULL, /* class_data */') + self.b(' 0,') + self.b(' 0, /* n_preallocs */') + self.b(' NULL /* instance_init */') + self.b(' };') + self.b('') + self.b(' type = g_type_register_static (G_TYPE_INTERFACE,') + self.b(' "%s%s", &info, 0);' % (self.Prefix, node_name_mixed)) + self.b(' }') + self.b('') + self.b(' return type;') + self.b('}') + self.b('') + + self.d('/**') + self.d(' * %s%s:' % (self.Prefix, node_name_mixed)) + self.d(' *') + self.d(' * Dummy typedef representing any implementation of this ' + 'interface.') + self.d(' */') + + self.h('typedef struct _%s%s %s%s;' + % (self.Prefix, node_name_mixed, self.Prefix, node_name_mixed)) + self.h('') + + self.d('/**') + self.d(' * %s%sClass:' % (self.Prefix, node_name_mixed)) + self.d(' *') + self.d(' * The class of %s%s.' % (self.Prefix, node_name_mixed)) + + if methods: + self.d(' *') + self.d(' * In a full implementation of this interface (i.e. all') + self.d(' * methods implemented), the interface initialization') + self.d(' * function used in G_IMPLEMENT_INTERFACE() would') + self.d(' * typically look like this:') + self.d(' *') + self.d(' * ') + self.d(' * static void') + self.d(' * implement_%s (gpointer klass,' % self.node_name_lc) + self.d(' * gpointer unused G_GNUC_UNUSED)') + self.d(' * {') + self.d(' * #define IMPLEMENT(x) %s%s_implement_##x (\\' + % (self.prefix_, self.node_name_lc)) + self.d(' * klass, my_object_##x)') + + for method in methods: + class_member_name = method.getAttribute('tp:name-for-bindings') + class_member_name = class_member_name.lower() + self.d(' * IMPLEMENT (%s);' % class_member_name) + + self.d(' * #undef IMPLEMENT') + self.d(' * }') + self.d(' * ') + else: + self.d(' * This interface has no D-Bus methods, so an') + self.d(' * implementation can typically pass %NULL to') + self.d(' * G_IMPLEMENT_INTERFACE() as the interface') + self.d(' * initialization function.') + + self.d(' */') + self.d('') + + self.h('typedef struct _%s%sClass %s%sClass;' + % (self.Prefix, node_name_mixed, self.Prefix, node_name_mixed)) + self.h('') + self.h('GType %s%s_get_type (void);' + % (self.prefix_, node_name_lc)) + + gtype = self.current_gtype = \ + self.MAIN_PREFIX_ + 'TYPE' + self._SUB_PREFIX_ + node_name_uc + classname = self.Prefix + node_name_mixed + + self.h('#define %s \\\n (%s%s_get_type ())' + % (gtype, self.prefix_, node_name_lc)) + self.h('#define %s%s(obj) \\\n' + ' (G_TYPE_CHECK_INSTANCE_CAST((obj), %s, %s))' + % (self.PREFIX_, node_name_uc, gtype, classname)) + self.h('#define %sIS%s%s(obj) \\\n' + ' (G_TYPE_CHECK_INSTANCE_TYPE((obj), %s))' + % (self.MAIN_PREFIX_, self._SUB_PREFIX_, node_name_uc, gtype)) + self.h('#define %s%s_GET_CLASS(obj) \\\n' + ' (G_TYPE_INSTANCE_GET_INTERFACE((obj), %s, %sClass))' + % (self.PREFIX_, node_name_uc, gtype, classname)) + self.h('') + self.h('') + + base_init_code = [] + + for method in methods: + self.do_method(method) + + for signal in signals: + base_init_code.extend(self.do_signal(signal)) + + self.b('static inline void') + self.b('%s%s_base_init_once (gpointer klass G_GNUC_UNUSED)' + % (self.prefix_, node_name_lc)) + self.b('{') + + if properties: + self.b(' static TpDBusPropertiesMixinPropInfo properties[%d] = {' + % (len(properties) + 1)) + + for m in properties: + access = m.getAttribute('access') + assert access in ('read', 'write', 'readwrite') + + if access == 'read': + flags = 'TP_DBUS_PROPERTIES_MIXIN_FLAG_READ' + elif access == 'write': + flags = 'TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE' + else: + flags = ('TP_DBUS_PROPERTIES_MIXIN_FLAG_READ | ' + 'TP_DBUS_PROPERTIES_MIXIN_FLAG_WRITE') + + prop_emits_changed = get_emits_changed(m) + + if prop_emits_changed is None: + prop_emits_changed = iface_emits_changed + + if prop_emits_changed == 'true': + flags += ' | TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_CHANGED' + elif prop_emits_changed == 'invalidates': + flags += ' | TP_DBUS_PROPERTIES_MIXIN_FLAG_EMITS_INVALIDATED' + + self.b(' { 0, %s, "%s", 0, NULL, NULL }, /* %s */' + % (flags, m.getAttribute('type'), m.getAttribute('name'))) + + self.b(' { 0, 0, NULL, 0, NULL, NULL }') + self.b(' };') + self.b(' static TpDBusPropertiesMixinIfaceInfo interface =') + self.b(' { 0, properties, NULL, NULL };') + self.b('') + + + self.b(' dbus_g_object_type_install_info (%s%s_get_type (),' + % (self.prefix_, node_name_lc)) + self.b(' &_%s%s_object_info);' + % (self.prefix_, node_name_lc)) + self.b('') + + if properties: + self.b(' interface.dbus_interface = g_quark_from_static_string ' + '("%s");' % self.iface_name) + + for i, m in enumerate(properties): + self.b(' properties[%d].name = g_quark_from_static_string ("%s");' + % (i, m.getAttribute('name'))) + self.b(' properties[%d].type = %s;' + % (i, type_to_gtype(m.getAttribute('type'))[1])) + + self.b(' tp_svc_interface_set_dbus_properties_info (%s, &interface);' + % self.current_gtype) + + self.b('') + + for s in base_init_code: + self.b(s) + self.b('}') + + self.b('static void') + self.b('%s%s_base_init (gpointer klass)' + % (self.prefix_, node_name_lc)) + self.b('{') + self.b(' static gboolean initialized = FALSE;') + self.b('') + self.b(' if (!initialized)') + self.b(' {') + self.b(' initialized = TRUE;') + self.b(' %s%s_base_init_once (klass);' + % (self.prefix_, node_name_lc)) + self.b(' }') + # insert anything we need to do per implementation here + self.b('}') + + self.h('') + + self.b('static const DBusGMethodInfo _%s%s_methods[] = {' + % (self.prefix_, node_name_lc)) + + method_blob, offsets = self.get_method_glue(methods) + + for method, offset in zip(methods, offsets): + self.do_method_glue(method, offset) + + if len(methods) == 0: + # empty arrays are a gcc extension, so put in a dummy member + self.b(" { NULL, NULL, 0 }") + + self.b('};') + self.b('') + + self.b('static const DBusGObjectInfo _%s%s_object_info = {' + % (self.prefix_, node_name_lc)) + self.b(' 0,') # version + self.b(' _%s%s_methods,' % (self.prefix_, node_name_lc)) + self.b(' %d,' % len(methods)) + self.b('"' + method_blob.replace('\0', '\\0') + '",') + self.b('"' + self.get_signal_glue(signals).replace('\0', '\\0') + '",') + self.b('"' + + self.get_property_glue(glue_properties).replace('\0', '\\0') + + '",') + self.b('};') + self.b('') + + self.node_name_mixed = None + self.node_name_lc = None + self.node_name_uc = None + + def get_method_glue(self, methods): + info = [] + offsets = [] + + for method in methods: + offsets.append(len(''.join(info))) + + info.append(self.iface_name + '\0') + info.append(method.getAttribute('name') + '\0') + + info.append('A\0') # async + + counter = 0 + for arg in method.getElementsByTagName('arg'): + out = arg.getAttribute('direction') == 'out' + + name = arg.getAttribute('name') + if not name: + assert out + name = 'arg%u' % counter + counter += 1 + + info.append(name + '\0') + + if out: + info.append('O\0') + else: + info.append('I\0') + + if out: + info.append('F\0') # not const + info.append('N\0') # not error or return + info.append(arg.getAttribute('type') + '\0') + + info.append('\0') + + return ''.join(info) + '\0', offsets + + def do_method_glue(self, method, offset): + lc_name = method.getAttribute('tp:name-for-bindings') + if method.getAttribute('name') != lc_name.replace('_', ''): + raise AssertionError('Method %s tp:name-for-bindings (%s) does ' + 'not match' % (method.getAttribute('name'), lc_name)) + lc_name = lc_name.lower() + + marshaller = 'g_cclosure_marshal_generic' + wrapper = self.prefix_ + self.node_name_lc + '_' + lc_name + + self.b(" { (GCallback) %s, %s, %d }," % (wrapper, marshaller, offset)) + + def get_signal_glue(self, signals): + info = [] + + for signal in signals: + info.append(self.iface_name) + info.append(signal.getAttribute('name')) + + return '\0'.join(info) + '\0\0' + + # the implementation can be the same + get_property_glue = get_signal_glue + + def get_method_impl_names(self, method): + dbus_method_name = method.getAttribute('name') + + class_member_name = method.getAttribute('tp:name-for-bindings') + if dbus_method_name != class_member_name.replace('_', ''): + raise AssertionError('Method %s tp:name-for-bindings (%s) does ' + 'not match' % (dbus_method_name, class_member_name)) + class_member_name = class_member_name.lower() + + stub_name = (self.prefix_ + self.node_name_lc + '_' + + class_member_name) + return (stub_name + '_impl', class_member_name + '_cb') + + def do_method(self, method): + assert self.node_name_mixed is not None + + in_class = [] + + # Examples refer to Thing.DoStuff (su) -> ii + + # DoStuff + dbus_method_name = method.getAttribute('name') + # do_stuff + class_member_name = method.getAttribute('tp:name-for-bindings') + if dbus_method_name != class_member_name.replace('_', ''): + raise AssertionError('Method %s tp:name-for-bindings (%s) does ' + 'not match' % (dbus_method_name, class_member_name)) + class_member_name = class_member_name.lower() + + # void tp_svc_thing_do_stuff (TpSvcThing *, const char *, guint, + # DBusGMethodInvocation *); + stub_name = (self.prefix_ + self.node_name_lc + '_' + + class_member_name) + # typedef void (*tp_svc_thing_do_stuff_impl) (TpSvcThing *, + # const char *, guint, DBusGMethodInvocation); + impl_name = stub_name + '_impl' + # void tp_svc_thing_return_from_do_stuff (DBusGMethodInvocation *, + # gint, gint); + ret_name = (self.prefix_ + self.node_name_lc + '_return_from_' + + class_member_name) + + # Gather arguments + in_args = [] + out_args = [] + for i in method.getElementsByTagName('arg'): + name = i.getAttribute('name') + direction = i.getAttribute('direction') or 'in' + dtype = i.getAttribute('type') + + assert direction in ('in', 'out') + + if name: + name = direction + '_' + name + elif direction == 'in': + name = direction + str(len(in_args)) + else: + name = direction + str(len(out_args)) + + ctype, gtype, marshaller, pointer = type_to_gtype(dtype) + + if pointer: + ctype = 'const ' + ctype + + struct = (ctype, name) + + if direction == 'in': + in_args.append(struct) + else: + out_args.append(struct) + + # Implementation type declaration (in header, docs separated) + self.d('/**') + self.d(' * %s:' % impl_name) + self.d(' * @self: The object implementing this interface') + for (ctype, name) in in_args: + self.d(' * @%s: %s (FIXME, generate documentation)' + % (name, ctype)) + self.d(' * @context: Used to return values or throw an error') + self.d(' *') + self.d(' * The signature of an implementation of the D-Bus method') + self.d(' * %s on interface %s.' % (dbus_method_name, self.iface_name)) + self.d(' */') + + self.h('typedef void (*%s) (%s%s *self,' + % (impl_name, self.Prefix, self.node_name_mixed)) + for (ctype, name) in in_args: + self.h(' %s%s,' % (ctype, name)) + self.h(' DBusGMethodInvocation *context);') + + # Class member (in class definition) + in_class.append(' %s %s;' % (impl_name, class_member_name)) + + # Stub definition (in body only - it's static) + self.b('static void') + self.b('%s (%s%s *self,' + % (stub_name, self.Prefix, self.node_name_mixed)) + for (ctype, name) in in_args: + self.b(' %s%s,' % (ctype, name)) + self.b(' DBusGMethodInvocation *context)') + self.b('{') + self.b(' %s impl = (%s%s_GET_CLASS (self)->%s_cb);' + % (impl_name, self.PREFIX_, self.node_name_uc, class_member_name)) + self.b('') + self.b(' if (impl != NULL)') + tmp = ['self'] + [name for (ctype, name) in in_args] + ['context'] + self.b(' {') + self.b(' (impl) (%s);' % ',\n '.join(tmp)) + self.b(' }') + self.b(' else') + self.b(' {') + if self.not_implemented_func: + self.b(' %s (context);' % self.not_implemented_func) + else: + self.b(' GError e = { DBUS_GERROR, ') + self.b(' DBUS_GERROR_UNKNOWN_METHOD,') + self.b(' "Method not implemented" };') + self.b('') + self.b(' dbus_g_method_return_error (context, &e);') + self.b(' }') + self.b('}') + self.b('') + + # Implementation registration (in both header and body) + self.h('void %s%s_implement_%s (%s%sClass *klass, %s impl);' + % (self.prefix_, self.node_name_lc, class_member_name, + self.Prefix, self.node_name_mixed, impl_name)) + + self.d('/**') + self.d(' * %s%s_implement_%s:' + % (self.prefix_, self.node_name_lc, class_member_name)) + self.d(' * @klass: A class whose instances implement this interface') + self.d(' * @impl: A callback used to implement the %s D-Bus method' + % dbus_method_name) + self.d(' *') + self.d(' * Register an implementation for the %s method in the vtable' + % dbus_method_name) + self.d(' * of an implementation of this interface. To be called from') + self.d(' * the interface init function.') + self.d(' */') + + self.b('void') + self.b('%s%s_implement_%s (%s%sClass *klass, %s impl)' + % (self.prefix_, self.node_name_lc, class_member_name, + self.Prefix, self.node_name_mixed, impl_name)) + self.b('{') + self.b(' klass->%s_cb = impl;' % class_member_name) + self.b('}') + self.b('') + + # Return convenience function (static inline, in header) + self.d('/**') + self.d(' * %s:' % ret_name) + self.d(' * @context: The D-Bus method invocation context') + for (ctype, name) in out_args: + self.d(' * @%s: %s (FIXME, generate documentation)' + % (name, ctype)) + self.d(' *') + self.d(' * Return successfully by calling dbus_g_method_return().') + self.d(' * This inline function exists only to provide type-safety.') + self.d(' */') + self.d('') + + tmp = (['DBusGMethodInvocation *context'] + + [ctype + name for (ctype, name) in out_args]) + self.h('static inline') + self.h('/* this comment is to stop gtkdoc realising this is static */') + self.h(('void %s (' % ret_name) + (',\n '.join(tmp)) + ');') + self.h('static inline void') + self.h(('%s (' % ret_name) + (',\n '.join(tmp)) + ')') + self.h('{') + tmp = ['context'] + [name for (ctype, name) in out_args] + self.h(' dbus_g_method_return (' + ',\n '.join(tmp) + ');') + self.h('}') + self.h('') + + return in_class + + def get_signal_const_entry(self, signal): + assert self.node_name_uc is not None + return ('SIGNAL_%s_%s' + % (self.node_name_uc, signal.getAttribute('name'))) + + def do_signal(self, signal): + assert self.node_name_mixed is not None + + in_base_init = [] + + # for signal: Thing::StuffHappened (s, u) + # we want to emit: + # void tp_svc_thing_emit_stuff_happened (gpointer instance, + # const char *arg0, guint arg1); + + dbus_name = signal.getAttribute('name') + + ugly_name = signal.getAttribute('tp:name-for-bindings') + if dbus_name != ugly_name.replace('_', ''): + raise AssertionError('Signal %s tp:name-for-bindings (%s) does ' + 'not match' % (dbus_name, ugly_name)) + + stub_name = (self.prefix_ + self.node_name_lc + '_emit_' + + ugly_name.lower()) + + const_name = self.get_signal_const_entry(signal) + + # Gather arguments + args = [] + for i in signal.getElementsByTagName('arg'): + name = i.getAttribute('name') + dtype = i.getAttribute('type') + tp_type = i.getAttribute('tp:type') + + if name: + name = 'arg_' + name + else: + name = 'arg' + str(len(args)) + + ctype, gtype, marshaller, pointer = type_to_gtype(dtype) + + if pointer: + ctype = 'const ' + ctype + + struct = (ctype, name, gtype) + args.append(struct) + + tmp = (['gpointer instance'] + + [ctype + name for (ctype, name, gtype) in args]) + + self.h(('void %s (' % stub_name) + (',\n '.join(tmp)) + ');') + + # FIXME: emit docs + + self.d('/**') + self.d(' * %s:' % stub_name) + self.d(' * @instance: The object implementing this interface') + for (ctype, name, gtype) in args: + self.d(' * @%s: %s (FIXME, generate documentation)' + % (name, ctype)) + self.d(' *') + self.d(' * Type-safe wrapper around g_signal_emit to emit the') + self.d(' * %s signal on interface %s.' + % (dbus_name, self.iface_name)) + self.d(' */') + + self.b('void') + self.b(('%s (' % stub_name) + (',\n '.join(tmp)) + ')') + self.b('{') + self.b(' g_assert (instance != NULL);') + self.b(' g_assert (G_TYPE_CHECK_INSTANCE_TYPE (instance, %s));' + % (self.current_gtype)) + tmp = (['instance', '%s_signals[%s]' % (self.node_name_lc, const_name), + '0'] + [name for (ctype, name, gtype) in args]) + self.b(' g_signal_emit (' + ',\n '.join(tmp) + ');') + self.b('}') + self.b('') + + signal_name = dbus_gutils_wincaps_to_uscore(dbus_name).replace('_', + '-') + + self.d('/**') + self.d(' * %s%s::%s:' + % (self.Prefix, self.node_name_mixed, signal_name)) + self.d(' * @self: an object') + for (ctype, name, gtype) in args: + self.d(' * @%s: %s (FIXME, generate documentation)' + % (name, ctype)) + self.d(' *') + self.d(' * The %s D-Bus signal is emitted whenever ' + 'this GObject signal is.' % dbus_name) + self.d(' */') + self.d('') + + in_base_init.append(' %s_signals[%s] =' + % (self.node_name_lc, const_name)) + in_base_init.append(' g_signal_new ("%s",' % signal_name) + in_base_init.append(' G_OBJECT_CLASS_TYPE (klass),') + in_base_init.append(' G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED,') + in_base_init.append(' 0,') + in_base_init.append(' NULL, NULL,') + in_base_init.append(' g_cclosure_marshal_generic,') + in_base_init.append(' G_TYPE_NONE,') + tmp = ['%d' % len(args)] + [gtype for (ctype, name, gtype) in args] + in_base_init.append(' %s);' % ',\n '.join(tmp)) + in_base_init.append('') + + return in_base_init + + def have_properties(self, nodes): + for node in nodes: + interface = node.getElementsByTagName('interface')[0] + if interface.getElementsByTagName('property'): + return True + return False + + def __call__(self): + nodes = self.dom.getElementsByTagName('node') + nodes.sort(key=key_by_name) + + self.h('#include ') + self.h('#include ') + + for header in self.headers: + self.h('#include %s' % header) + self.h('') + + self.h('') + self.h('G_BEGIN_DECLS') + self.h('') + + self.b('#include "%s.h"' % self.basename) + self.b('') + + for node in nodes: + self.do_node(node) + + self.h('') + self.h('G_END_DECLS') + + self.b('') + for header in self.end_headers: + self.b('#include %s' % header) + + self.h('') + self.b('') + file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8')) + file_set_contents(self.basename + '.c', u('\n').join(self.__body).encode('utf-8')) + file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8')) + +def cmdline_error(): + print("""\ +usage: + gen-ginterface [OPTIONS] xmlfile Prefix_ +options: + --include='' (may be repeated) + --include='"header.h"' (ditto) + --include-end='"header.h"' (ditto) + Include extra headers in the generated .c file + --signal-marshal-prefix='prefix' + Use the given prefix on generated signal marshallers (default is + prefix.lower()). + --filename='BASENAME' + Set the basename for the output files (default is prefix.lower() + + 'ginterfaces') + --not-implemented-func='symbol' + Set action when methods not implemented in the interface vtable are + called. symbol must have signature + void symbol (DBusGMethodInvocation *context) + and return some sort of "not implemented" error via + dbus_g_method_return_error (context, ...) +""") + sys.exit(1) + + +if __name__ == '__main__': + from getopt import gnu_getopt + + options, argv = gnu_getopt(sys.argv[1:], '', + ['filename=', 'signal-marshal-prefix=', + 'include=', 'include-end=', + 'allow-unstable', + 'not-implemented-func=']) + + try: + prefix = argv[1] + except IndexError: + cmdline_error() + + basename = prefix.lower() + 'ginterfaces' + signal_marshal_prefix = prefix.lower().rstrip('_') + headers = [] + end_headers = [] + not_implemented_func = '' + allow_havoc = False + + for option, value in options: + if option == '--filename': + basename = value + elif option == '--signal-marshal-prefix': + signal_marshal_prefix = value + elif option == '--include': + if value[0] not in '<"': + value = '"%s"' % value + headers.append(value) + elif option == '--include-end': + if value[0] not in '<"': + value = '"%s"' % value + end_headers.append(value) + elif option == '--not-implemented-func': + not_implemented_func = value + elif option == '--allow-unstable': + allow_havoc = True + + try: + dom = xml.dom.minidom.parse(argv[0]) + except IndexError: + cmdline_error() + + Generator(dom, prefix, basename, signal_marshal_prefix, headers, + end_headers, not_implemented_func, allow_havoc)() diff --git a/telepathy-account-widgets/tools/glib-gtypes-generator.py b/telepathy-account-widgets/tools/glib-gtypes-generator.py new file mode 100644 index 0000000..1477bd3 --- /dev/null +++ b/telepathy-account-widgets/tools/glib-gtypes-generator.py @@ -0,0 +1,304 @@ +#!/usr/bin/python + +# Generate GLib GInterfaces from the Telepathy specification. +# The master copy of this program is in the telepathy-glib repository - +# please make any changes there. +# +# Copyright (C) 2006, 2007 Collabora Limited +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import sys +import xml.dom.minidom + +from libtpcodegen import file_set_contents, u +from libglibcodegen import escape_as_identifier, \ + get_docstring, \ + NS_TP, \ + Signature, \ + type_to_gtype, \ + xml_escape + + +def types_to_gtypes(types): + return [type_to_gtype(t)[1] for t in types] + + +class GTypesGenerator(object): + def __init__(self, dom, output, mixed_case_prefix): + self.dom = dom + self.Prefix = mixed_case_prefix + self.PREFIX_ = self.Prefix.upper() + '_' + self.prefix_ = self.Prefix.lower() + '_' + + self.header = [] + self.body = [] + self.docs = [] + self.output = output + + for f in (self.header, self.body, self.docs): + f.append('/* Auto-generated, do not edit.\n *\n' + ' * This file may be distributed under the same terms\n' + ' * as the specification from which it was generated.\n' + ' */\n\n') + + # keys are e.g. 'sv', values are the key escaped + self.need_mappings = {} + # keys are the contents of the struct (e.g. 'sssu'), values are the + # key escaped + self.need_structs = {} + # keys are the contents of the struct (e.g. 'sssu'), values are the + # key escaped + self.need_struct_arrays = {} + + # keys are the contents of the array (unlike need_struct_arrays!), + # values are the key escaped + self.need_other_arrays = {} + + def h(self, code): + self.header.append(code) + + def c(self, code): + self.body.append(code) + + def d(self, code): + self.docs.append(code) + + def do_mapping_header(self, mapping): + members = mapping.getElementsByTagNameNS(NS_TP, 'member') + assert len(members) == 2 + + impl_sig = ''.join([elt.getAttribute('type') + for elt in members]) + + esc_impl_sig = escape_as_identifier(impl_sig) + + name = (self.PREFIX_ + 'HASH_TYPE_' + + mapping.getAttribute('name').upper()) + impl = self.prefix_ + 'type_dbus_hash_' + esc_impl_sig + + docstring = get_docstring(mapping) or '(Undocumented)' + + self.d('/**\n * %s:\n *\n' % name.strip()) + self.d(' * %s\n' % xml_escape(docstring)) + self.d(' *\n') + self.d(' * This macro expands to a call to a function\n') + self.d(' * that returns the #GType of a #GHashTable\n') + self.d(' * appropriate for representing a D-Bus\n') + self.d(' * dictionary of signature\n') + self.d(' * a{%s}.\n' % impl_sig) + self.d(' *\n') + + key, value = members + + self.d(' * Keys (D-Bus type %s,\n' + % key.getAttribute('type')) + tp_type = key.getAttributeNS(NS_TP, 'type') + if tp_type: + self.d(' * type %s,\n' % tp_type) + self.d(' * named %s):\n' + % key.getAttribute('name')) + docstring = get_docstring(key) or '(Undocumented)' + self.d(' * %s\n' % xml_escape(docstring)) + self.d(' *\n') + + self.d(' * Values (D-Bus type %s,\n' + % value.getAttribute('type')) + tp_type = value.getAttributeNS(NS_TP, 'type') + if tp_type: + self.d(' * type %s,\n' % tp_type) + self.d(' * named %s):\n' + % value.getAttribute('name')) + docstring = get_docstring(value) or '(Undocumented)' + self.d(' * %s\n' % xml_escape(docstring)) + self.d(' *\n') + + self.d(' */\n') + + self.h('#define %s (%s ())\n\n' % (name, impl)) + self.need_mappings[impl_sig] = esc_impl_sig + + array_name = mapping.getAttribute('array-name') + if array_name: + gtype_name = self.PREFIX_ + 'ARRAY_TYPE_' + array_name.upper() + contents_sig = 'a{' + impl_sig + '}' + esc_contents_sig = escape_as_identifier(contents_sig) + impl = self.prefix_ + 'type_dbus_array_of_' + esc_contents_sig + self.d('/**\n * %s:\n\n' % gtype_name) + self.d(' * Expands to a call to a function\n') + self.d(' * that returns the #GType of a #GPtrArray\n') + self.d(' * of #%s.\n' % name) + self.d(' */\n\n') + + self.h('#define %s (%s ())\n\n' % (gtype_name, impl)) + self.need_other_arrays[contents_sig] = esc_contents_sig + + def do_struct_header(self, struct): + members = struct.getElementsByTagNameNS(NS_TP, 'member') + impl_sig = ''.join([elt.getAttribute('type') for elt in members]) + esc_impl_sig = escape_as_identifier(impl_sig) + + name = (self.PREFIX_ + 'STRUCT_TYPE_' + + struct.getAttribute('name').upper()) + impl = self.prefix_ + 'type_dbus_struct_' + esc_impl_sig + docstring = struct.getElementsByTagNameNS(NS_TP, 'docstring') + if docstring: + docstring = docstring[0].toprettyxml() + if docstring.startswith(''): + docstring = docstring[14:] + if docstring.endswith('\n'): + docstring = docstring[:-16] + if docstring.strip() in ('', ''): + docstring = '(Undocumented)' + else: + docstring = '(Undocumented)' + self.d('/**\n * %s:\n\n' % name) + self.d(' * %s\n' % xml_escape(docstring)) + self.d(' *\n') + self.d(' * This macro expands to a call to a function\n') + self.d(' * that returns the #GType of a #GValueArray\n') + self.d(' * appropriate for representing a D-Bus struct\n') + self.d(' * with signature (%s).\n' + % impl_sig) + self.d(' *\n') + + for i, member in enumerate(members): + self.d(' * Member %d (D-Bus type ' + '%s,\n' + % (i, member.getAttribute('type'))) + tp_type = member.getAttributeNS(NS_TP, 'type') + if tp_type: + self.d(' * type %s,\n' % tp_type) + self.d(' * named %s):\n' + % member.getAttribute('name')) + docstring = get_docstring(member) or '(Undocumented)' + self.d(' * %s\n' % xml_escape(docstring)) + self.d(' *\n') + + self.d(' */\n\n') + + self.h('#define %s (%s ())\n\n' % (name, impl)) + + array_name = struct.getAttribute('array-name') + if array_name != '': + array_name = (self.PREFIX_ + 'ARRAY_TYPE_' + array_name.upper()) + impl = self.prefix_ + 'type_dbus_array_' + esc_impl_sig + self.d('/**\n * %s:\n\n' % array_name) + self.d(' * Expands to a call to a function\n') + self.d(' * that returns the #GType of a #GPtrArray\n') + self.d(' * of #%s.\n' % name) + self.d(' */\n\n') + + self.h('#define %s (%s ())\n\n' % (array_name, impl)) + self.need_struct_arrays[impl_sig] = esc_impl_sig + + self.need_structs[impl_sig] = esc_impl_sig + + def __call__(self): + mappings = self.dom.getElementsByTagNameNS(NS_TP, 'mapping') + structs = self.dom.getElementsByTagNameNS(NS_TP, 'struct') + + for mapping in mappings: + self.do_mapping_header(mapping) + + for sig in self.need_mappings: + self.h('GType %stype_dbus_hash_%s (void);\n\n' % + (self.prefix_, self.need_mappings[sig])) + self.c('GType\n%stype_dbus_hash_%s (void)\n{\n' % + (self.prefix_, self.need_mappings[sig])) + self.c(' static GType t = 0;\n\n') + self.c(' if (G_UNLIKELY (t == 0))\n') + # FIXME: translate sig into two GTypes + items = tuple(Signature(sig)) + gtypes = types_to_gtypes(items) + self.c(' t = dbus_g_type_get_map ("GHashTable", ' + '%s, %s);\n' % (gtypes[0], gtypes[1])) + self.c(' return t;\n') + self.c('}\n\n') + + for struct in structs: + self.do_struct_header(struct) + + for sig in self.need_structs: + self.h('GType %stype_dbus_struct_%s (void);\n\n' % + (self.prefix_, self.need_structs[sig])) + self.c('GType\n%stype_dbus_struct_%s (void)\n{\n' % + (self.prefix_, self.need_structs[sig])) + self.c(' static GType t = 0;\n\n') + self.c(' if (G_UNLIKELY (t == 0))\n') + self.c(' t = dbus_g_type_get_struct ("GValueArray",\n') + items = tuple(Signature(sig)) + gtypes = types_to_gtypes(items) + for gtype in gtypes: + self.c(' %s,\n' % gtype) + self.c(' G_TYPE_INVALID);\n') + self.c(' return t;\n') + self.c('}\n\n') + + for sig in self.need_struct_arrays: + self.h('GType %stype_dbus_array_%s (void);\n\n' % + (self.prefix_, self.need_struct_arrays[sig])) + self.c('GType\n%stype_dbus_array_%s (void)\n{\n' % + (self.prefix_, self.need_struct_arrays[sig])) + self.c(' static GType t = 0;\n\n') + self.c(' if (G_UNLIKELY (t == 0))\n') + self.c(' t = dbus_g_type_get_collection ("GPtrArray", ' + '%stype_dbus_struct_%s ());\n' % + (self.prefix_, self.need_struct_arrays[sig])) + self.c(' return t;\n') + self.c('}\n\n') + + for sig in self.need_other_arrays: + self.h('GType %stype_dbus_array_of_%s (void);\n\n' % + (self.prefix_, self.need_other_arrays[sig])) + self.c('GType\n%stype_dbus_array_of_%s (void)\n{\n' % + (self.prefix_, self.need_other_arrays[sig])) + self.c(' static GType t = 0;\n\n') + self.c(' if (G_UNLIKELY (t == 0))\n') + + if sig[:2] == 'a{' and sig[-1:] == '}': + # array of mappings + self.c(' t = dbus_g_type_get_collection (' + '"GPtrArray", ' + '%stype_dbus_hash_%s ());\n' % + (self.prefix_, escape_as_identifier(sig[2:-1]))) + elif sig[:2] == 'a(' and sig[-1:] == ')': + # array of arrays of struct + self.c(' t = dbus_g_type_get_collection (' + '"GPtrArray", ' + '%stype_dbus_array_%s ());\n' % + (self.prefix_, escape_as_identifier(sig[2:-1]))) + elif sig[:1] == 'a': + # array of arrays of non-struct + self.c(' t = dbus_g_type_get_collection (' + '"GPtrArray", ' + '%stype_dbus_array_of_%s ());\n' % + (self.prefix_, escape_as_identifier(sig[1:]))) + else: + raise AssertionError("array of '%s' not supported" % sig) + + self.c(' return t;\n') + self.c('}\n\n') + + file_set_contents(self.output + '.h', u('').join(self.header).encode('utf-8')) + file_set_contents(self.output + '-body.h', u('').join(self.body).encode('utf-8')) + file_set_contents(self.output + '-gtk-doc.h', u('').join(self.docs).encode('utf-8')) + +if __name__ == '__main__': + argv = sys.argv[1:] + + dom = xml.dom.minidom.parse(argv[0]) + + GTypesGenerator(dom, argv[1], argv[2])() diff --git a/telepathy-account-widgets/tools/glib-interfaces-gen.py b/telepathy-account-widgets/tools/glib-interfaces-gen.py new file mode 100644 index 0000000..b67d7b4 --- /dev/null +++ b/telepathy-account-widgets/tools/glib-interfaces-gen.py @@ -0,0 +1,207 @@ +#!/usr/bin/python + +from sys import argv, stdout, stderr +import xml.dom.minidom + +from libtpcodegen import file_set_contents, u +from libglibcodegen import NS_TP, get_docstring, \ + get_descendant_text, get_by_path + +class Generator(object): + def __init__(self, prefix, implfile, declfile, dom): + self.prefix = prefix + '_' + + assert declfile.endswith('.h') + docfile = declfile[:-2] + '-gtk-doc.h' + + self.implfile = implfile + self.declfile = declfile + self.docfile = docfile + + self.impls = [] + self.decls = [] + self.docs = [] + self.spec = get_by_path(dom, "spec")[0] + + def h(self, code): + self.decls.append(code) + + def c(self, code): + self.impls.append(code) + + def d(self, code): + self.docs.append(code) + + def __call__(self): + for f in self.h, self.c: + self.do_header(f) + self.do_body() + + file_set_contents(self.implfile, u('').join(self.impls).encode('utf-8')) + file_set_contents(self.declfile, u('').join(self.decls).encode('utf-8')) + file_set_contents(self.docfile, u('').join(self.docs).encode('utf-8')) + + # Header + def do_header(self, f): + f('/* Generated from: ') + f(get_descendant_text(get_by_path(self.spec, 'title'))) + version = get_by_path(self.spec, "version") + if version: + f(' version ' + get_descendant_text(version)) + f('\n\n') + for copyright in get_by_path(self.spec, 'copyright'): + f(get_descendant_text(copyright)) + f('\n') + f('\n') + f(get_descendant_text(get_by_path(self.spec, 'license'))) + f(get_descendant_text(get_by_path(self.spec, 'docstring'))) + f(""" + */ + +#include +""") + + # Body + def do_body(self): + for iface in self.spec.getElementsByTagName('interface'): + self.do_iface(iface) + + def do_iface(self, iface): + parent_name = get_by_path(iface, '../@name') + self.d("""\ +/** + * %(IFACE_DEFINE)s: + * + * The interface name "%(name)s" + */ +""" % {'IFACE_DEFINE' : (self.prefix + 'IFACE_' + \ + parent_name).upper().replace('/', ''), + 'name' : iface.getAttribute('name')}) + + self.h(""" +#define %(IFACE_DEFINE)s \\ +"%(name)s" +""" % {'IFACE_DEFINE' : (self.prefix + 'IFACE_' + \ + parent_name).upper().replace('/', ''), + 'name' : iface.getAttribute('name')}) + + self.d(""" +/** + * %(IFACE_QUARK_DEFINE)s: + * + * Expands to a call to a function that returns a quark for the interface \ +name "%(name)s" + */ +""" % {'IFACE_QUARK_DEFINE' : (self.prefix + 'IFACE_QUARK_' + \ + parent_name).upper().replace('/', ''), + 'iface_quark_func' : (self.prefix + 'iface_quark_' + \ + parent_name).lower().replace('/', ''), + 'name' : iface.getAttribute('name')}) + + self.h(""" +#define %(IFACE_QUARK_DEFINE)s \\ + (%(iface_quark_func)s ()) + +GQuark %(iface_quark_func)s (void); + +""" % {'IFACE_QUARK_DEFINE' : (self.prefix + 'IFACE_QUARK_' + \ + parent_name).upper().replace('/', ''), + 'iface_quark_func' : (self.prefix + 'iface_quark_' + \ + parent_name).lower().replace('/', ''), + 'name' : iface.getAttribute('name')}) + + self.c("""\ +GQuark +%(iface_quark_func)s (void) +{ + static GQuark quark = 0; + + if (G_UNLIKELY (quark == 0)) + { + quark = g_quark_from_static_string ("%(name)s"); + } + + return quark; +} + +""" % {'iface_quark_func' : (self.prefix + 'iface_quark_' + \ + parent_name).lower().replace('/', ''), + 'name' : iface.getAttribute('name')}) + + for prop in iface.getElementsByTagNameNS(None, 'property'): + self.d(""" +/** + * %(IFACE_PREFIX)s_%(PROP_UC)s: + * + * The fully-qualified property name "%(name)s.%(prop)s" + */ +""" % {'IFACE_PREFIX' : (self.prefix + 'PROP_' + \ + parent_name).upper().replace('/', ''), + 'PROP_UC': prop.getAttributeNS(NS_TP, "name-for-bindings").upper(), + 'name' : iface.getAttribute('name'), + 'prop' : prop.getAttribute('name'), + }) + + self.h(""" +#define %(IFACE_PREFIX)s_%(PROP_UC)s \\ +"%(name)s.%(prop)s" +""" % {'IFACE_PREFIX' : (self.prefix + 'PROP_' + \ + parent_name).upper().replace('/', ''), + 'PROP_UC': prop.getAttributeNS(NS_TP, "name-for-bindings").upper(), + 'name' : iface.getAttribute('name'), + 'prop' : prop.getAttribute('name'), + }) + + + for prop in iface.getElementsByTagNameNS(NS_TP, 'contact-attribute'): + self.d(""" +/** + * %(TOKEN_PREFIX)s_%(TOKEN_UC)s: + * + * The fully-qualified contact attribute token name "%(name)s/%(prop)s" + */ +""" % {'TOKEN_PREFIX' : (self.prefix + 'TOKEN_' + \ + parent_name).upper().replace('/', ''), + 'TOKEN_UC': prop.getAttributeNS(None, "name").upper().replace("-", "_").replace(".", "_"), + 'name' : iface.getAttribute('name'), + 'prop' : prop.getAttribute('name'), + }) + + self.h(""" +#define %(TOKEN_PREFIX)s_%(TOKEN_UC)s \\ +"%(name)s/%(prop)s" +""" % {'TOKEN_PREFIX' : (self.prefix + 'TOKEN_' + \ + parent_name).upper().replace('/', ''), + 'TOKEN_UC': prop.getAttributeNS(None, "name").upper().replace("-", "_").replace(".", "_"), + 'name' : iface.getAttribute('name'), + 'prop' : prop.getAttribute('name'), + }) + + for prop in iface.getElementsByTagNameNS(NS_TP, 'hct'): + if (prop.getAttribute('is-family') != "yes"): + self.d(""" +/** + * %(TOKEN_PREFIX)s_%(TOKEN_UC)s: + * + * The fully-qualified capability token name "%(name)s/%(prop)s" + */ +""" % {'TOKEN_PREFIX' : (self.prefix + 'TOKEN_' + \ + parent_name).upper().replace('/', ''), + 'TOKEN_UC': prop.getAttributeNS(None, "name").upper().replace("-", "_").replace(".", "_"), + 'name' : iface.getAttribute('name'), + 'prop' : prop.getAttribute('name'), + }) + + self.h(""" +#define %(TOKEN_PREFIX)s_%(TOKEN_UC)s \\ +"%(name)s/%(prop)s" +""" % {'TOKEN_PREFIX' : (self.prefix + 'TOKEN_' + \ + parent_name).upper().replace('/', ''), + 'TOKEN_UC': prop.getAttributeNS(None, "name").upper().replace("-", "_").replace(".", "_"), + 'name' : iface.getAttribute('name'), + 'prop' : prop.getAttribute('name'), + }) + +if __name__ == '__main__': + argv = argv[1:] + Generator(argv[0], argv[1], argv[2], xml.dom.minidom.parse(argv[3]))() diff --git a/telepathy-account-widgets/tools/gobject-foo.py b/telepathy-account-widgets/tools/gobject-foo.py new file mode 100644 index 0000000..a2abd76 --- /dev/null +++ b/telepathy-account-widgets/tools/gobject-foo.py @@ -0,0 +1,90 @@ +#!/usr/bin/python + +# gobject-foo.py: generate standard GObject type macros etc. +# +# The master copy of this program is in the telepathy-glib repository - +# please make any changes there. +# +# Copyright (C) 2007-2010 Collabora Ltd. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +def gobject_header(head, tail, as_interface=False): + out = [] + o = out.append + + name = head + '_' + tail + MixedCase = name.replace('_', '') + lower_case = name.lower() + UPPER_CASE = name.upper() + + gtype = head.upper() + '_TYPE_' + tail.upper() + + o("typedef struct _%s %s;" % (MixedCase, MixedCase)) + + if as_interface: + o("typedef struct _%sInterface %sInterface;" % (MixedCase, MixedCase)) + else: + o("typedef struct _%sClass %sClass;" % (MixedCase, MixedCase)) + o("typedef struct _%sPrivate %sPrivate;" % (MixedCase, MixedCase)) + + o("") + o("GType %s_get_type (void);" % lower_case) + o("") + + o("#define %s \\" % gtype) + o(" (%s_get_type ())" % lower_case) + + o("#define %s(obj) \\" % UPPER_CASE) + o(" (G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, \\" % gtype) + o(" %s))" % MixedCase) + + if not as_interface: + o("#define %s_CLASS(klass) \\" % UPPER_CASE) + o(" (G_TYPE_CHECK_CLASS_CAST ((klass), %s, \\" % gtype) + o(" %sClass))" % MixedCase) + + o("#define %s_IS_%s(obj) \\" % (head.upper(), tail.upper())) + o(" (G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))" % gtype) + + if as_interface: + o("#define %s_GET_IFACE(obj) \\" % UPPER_CASE) + o(" (G_TYPE_INSTANCE_GET_INTERFACE ((obj), %s, \\" % gtype) + o(" %sInterface))" % MixedCase) + else: + o("#define %s_IS_%s_CLASS(klass) \\" % (head.upper(), tail.upper())) + o(" (G_TYPE_CHECK_CLASS_TYPE ((klass), %s))" % gtype) + + o("#define %s_GET_CLASS(obj) \\" % UPPER_CASE) + o(" (G_TYPE_INSTANCE_GET_CLASS ((obj), %s, \\" % gtype) + o(" %sClass))" % MixedCase) + + return out + +if __name__ == '__main__': + import sys + from getopt import gnu_getopt + + options, argv = gnu_getopt(sys.argv[1:], '', ['interface']) + + as_interface = False + + for opt, val in options: + if opt == '--interface': + as_interface = True + + head, tail = argv + + print('\n'.join(gobject_header(head, tail, as_interface=as_interface))) diff --git a/telepathy-account-widgets/tools/lcov.am b/telepathy-account-widgets/tools/lcov.am new file mode 100644 index 0000000..d2d282a --- /dev/null +++ b/telepathy-account-widgets/tools/lcov.am @@ -0,0 +1,25 @@ +lcov-reset: + lcov --directory @top_srcdir@ --zerocounters + +lcov-report: + lcov --directory @top_srcdir@ --capture \ + --output-file @top_builddir@/lcov.info.tmp + lcov --directory @top_srcdir@ --output-file @top_builddir@/lcov.info \ + --remove @top_builddir@/lcov.info.tmp telepathy-glib-scan.c + rm @top_builddir@/lcov.info.tmp + $(MKDIR_P) @top_builddir@/lcov.html + echo "Coming soon!" > @top_builddir@/lcov.html/index.html + git_commit=`GIT_DIR=@top_srcdir@/.git git log -1 --pretty=format:%h 2>/dev/null`;\ + genhtml --title "@PACKAGE_STRING@ $$git_commit" \ + --output-directory @top_builddir@/lcov.html lcov.info + @echo + @echo 'lcov report can be found in:' + @echo 'file://@abs_top_builddir@/lcov.html/index.html' + @echo + +lcov-check: + $(MAKE) lcov-reset + $(MAKE) check $(LCOV_CHECK_ARGS) + $(MAKE) lcov-report + +## vim:set ft=automake: diff --git a/telepathy-account-widgets/tools/libglibcodegen.py b/telepathy-account-widgets/tools/libglibcodegen.py new file mode 100644 index 0000000..6cd1a62 --- /dev/null +++ b/telepathy-account-widgets/tools/libglibcodegen.py @@ -0,0 +1,172 @@ +"""Library code for GLib/D-Bus-related code generation. + +The master copy of this library is in the telepathy-glib repository - +please make any changes there. +""" + +# Copyright (C) 2006-2008 Collabora Limited +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +from libtpcodegen import NS_TP, \ + Signature, \ + cmp_by_name, \ + escape_as_identifier, \ + get_by_path, \ + get_descendant_text, \ + get_docstring, \ + xml_escape, \ + get_deprecated + +def dbus_gutils_wincaps_to_uscore(s): + """Bug-for-bug compatible Python port of _dbus_gutils_wincaps_to_uscore + which gets sequences of capital letters wrong in the same way. + (e.g. in Telepathy, SendDTMF -> send_dt_mf) + """ + ret = '' + for c in s: + if c >= 'A' and c <= 'Z': + length = len(ret) + if length > 0 and (length < 2 or ret[length-2] != '_'): + ret += '_' + ret += c.lower() + else: + ret += c + return ret + + +def signal_to_marshal_type(signal): + """ + return a list of strings indicating the marshalling type for this signal. + """ + + mtype=[] + for i in signal.getElementsByTagName("arg"): + name =i.getAttribute("name") + type = i.getAttribute("type") + mtype.append(type_to_gtype(type)[2]) + + return mtype + + +_glib_marshallers = ['VOID', 'BOOLEAN', 'CHAR', 'UCHAR', 'INT', + 'STRING', 'UINT', 'LONG', 'ULONG', 'ENUM', 'FLAGS', 'FLOAT', + 'DOUBLE', 'STRING', 'PARAM', 'BOXED', 'POINTER', 'OBJECT', + 'UINT_POINTER'] + + +def signal_to_marshal_name(signal, prefix): + + mtype = signal_to_marshal_type(signal) + if len(mtype): + name = '_'.join(mtype) + else: + name = 'VOID' + + if name in _glib_marshallers: + return 'g_cclosure_marshal_VOID__' + name + else: + return prefix + '_marshal_VOID__' + name + + +def method_to_glue_marshal_name(method, prefix): + + mtype = [] + for i in method.getElementsByTagName("arg"): + if i.getAttribute("direction") != "out": + type = i.getAttribute("type") + mtype.append(type_to_gtype(type)[2]) + + mtype.append('POINTER') + + name = '_'.join(mtype) + + if name in _glib_marshallers: + return 'g_cclosure_marshal_VOID__' + name + else: + return prefix + '_marshal_VOID__' + name + + +def type_to_gtype(s): + if s == 'y': #byte + return ("guchar ", "G_TYPE_UCHAR","UCHAR", False) + elif s == 'b': #boolean + return ("gboolean ", "G_TYPE_BOOLEAN","BOOLEAN", False) + elif s == 'n': #int16 + return ("gint ", "G_TYPE_INT","INT", False) + elif s == 'q': #uint16 + return ("guint ", "G_TYPE_UINT","UINT", False) + elif s == 'i': #int32 + return ("gint ", "G_TYPE_INT","INT", False) + elif s == 'u': #uint32 + return ("guint ", "G_TYPE_UINT","UINT", False) + elif s == 'x': #int64 + return ("gint64 ", "G_TYPE_INT64","INT64", False) + elif s == 't': #uint64 + return ("guint64 ", "G_TYPE_UINT64","UINT64", False) + elif s == 'd': #double + return ("gdouble ", "G_TYPE_DOUBLE","DOUBLE", False) + elif s == 's': #string + return ("gchar *", "G_TYPE_STRING", "STRING", True) + elif s == 'g': #signature - FIXME + return ("gchar *", "DBUS_TYPE_G_SIGNATURE", "STRING", True) + elif s == 'o': #object path + return ("gchar *", "DBUS_TYPE_G_OBJECT_PATH", "BOXED", True) + elif s == 'v': #variant + return ("GValue *", "G_TYPE_VALUE", "BOXED", True) + elif s == 'as': #array of strings + return ("gchar **", "G_TYPE_STRV", "BOXED", True) + elif s == 'ay': #byte array + return ("GArray *", + "dbus_g_type_get_collection (\"GArray\", G_TYPE_UCHAR)", "BOXED", + True) + elif s == 'au': #uint array + return ("GArray *", "DBUS_TYPE_G_UINT_ARRAY", "BOXED", True) + elif s == 'ai': #int array + return ("GArray *", "DBUS_TYPE_G_INT_ARRAY", "BOXED", True) + elif s == 'ax': #int64 array + return ("GArray *", "DBUS_TYPE_G_INT64_ARRAY", "BOXED", True) + elif s == 'at': #uint64 array + return ("GArray *", "DBUS_TYPE_G_UINT64_ARRAY", "BOXED", True) + elif s == 'ad': #double array + return ("GArray *", "DBUS_TYPE_G_DOUBLE_ARRAY", "BOXED", True) + elif s == 'ab': #boolean array + return ("GArray *", "DBUS_TYPE_G_BOOLEAN_ARRAY", "BOXED", True) + elif s == 'ao': #object path array + return ("GPtrArray *", + 'dbus_g_type_get_collection ("GPtrArray",' + ' DBUS_TYPE_G_OBJECT_PATH)', + "BOXED", True) + elif s == 'a{ss}': #hash table of string to string + return ("GHashTable *", "DBUS_TYPE_G_STRING_STRING_HASHTABLE", "BOXED", False) + elif s[:2] == 'a{': #some arbitrary hash tables + if s[2] not in ('y', 'b', 'n', 'q', 'i', 'u', 's', 'o', 'g'): + raise Exception("can't index a hashtable off non-basic type " + s) + first = type_to_gtype(s[2]) + second = type_to_gtype(s[3:-1]) + return ("GHashTable *", "(dbus_g_type_get_map (\"GHashTable\", " + first[1] + ", " + second[1] + "))", "BOXED", False) + elif s[:2] in ('a(', 'aa'): # array of structs or arrays, recurse + gtype = type_to_gtype(s[1:])[1] + return ("GPtrArray *", "(dbus_g_type_get_collection (\"GPtrArray\", "+gtype+"))", "BOXED", True) + elif s[:1] == '(': #struct + gtype = "(dbus_g_type_get_struct (\"GValueArray\", " + for subsig in Signature(s[1:-1]): + gtype = gtype + type_to_gtype(subsig)[1] + ", " + gtype = gtype + "G_TYPE_INVALID))" + return ("GValueArray *", gtype, "BOXED", True) + + # we just don't know .. + raise Exception("don't know the GType for " + s) diff --git a/telepathy-account-widgets/tools/libtpcodegen.py b/telepathy-account-widgets/tools/libtpcodegen.py new file mode 100644 index 0000000..99de663 --- /dev/null +++ b/telepathy-account-widgets/tools/libtpcodegen.py @@ -0,0 +1,247 @@ +"""Library code for language-independent D-Bus-related code generation. + +The master copy of this library is in the telepathy-glib repository - +please make any changes there. +""" + +# Copyright (C) 2006-2008 Collabora Limited +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import os +import sys +from string import ascii_letters, digits + + +NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + +_ASCII_ALNUM = ascii_letters + digits + +if sys.version_info[0] >= 3: + def u(s): + """Return s, which must be a str literal with no non-ASCII characters. + This is like a more restricted form of the Python 2 u'' syntax. + """ + return s.encode('ascii').decode('ascii') +else: + def u(s): + """Return a Unicode version of s, which must be a str literal + (a bytestring) in which each byte is an ASCII character. + This is like a more restricted form of the u'' syntax. + """ + return s.decode('ascii') + +def file_set_contents(filename, contents): + try: + os.remove(filename) + except OSError: + pass + try: + os.remove(filename + '.tmp') + except OSError: + pass + + open(filename + '.tmp', 'wb').write(contents) + os.rename(filename + '.tmp', filename) + +def cmp_by_name(node1, node2): + return cmp(node1.getAttributeNode("name").nodeValue, + node2.getAttributeNode("name").nodeValue) + +def key_by_name(node): + return node.getAttributeNode("name").nodeValue + +def escape_as_identifier(identifier): + """Escape the given string to be a valid D-Bus object path or service + name component, using a reversible encoding to ensure uniqueness. + + The reversible encoding is as follows: + + * The empty string becomes '_' + * Otherwise, each non-alphanumeric character is replaced by '_' plus + two lower-case hex digits; the same replacement is carried out on + the first character, if it's a digit + """ + # '' -> '_' + if not identifier: + return '_' + + # A bit of a fast path for strings which are already OK. + # We deliberately omit '_' because, for reversibility, that must also + # be escaped. + if (identifier.strip(_ASCII_ALNUM) == '' and + identifier[0] in ascii_letters): + return identifier + + # The first character may not be a digit + if identifier[0] not in ascii_letters: + ret = ['_%02x' % ord(identifier[0])] + else: + ret = [identifier[0]] + + # Subsequent characters may be digits or ASCII letters + for c in identifier[1:]: + if c in _ASCII_ALNUM: + ret.append(c) + else: + ret.append('_%02x' % ord(c)) + + return ''.join(ret) + + +def get_by_path(element, path): + branches = path.split('/') + branch = branches[0] + + # Is the current branch an attribute, if so, return the attribute value + if branch[0] == '@': + return element.getAttribute(branch[1:]) + + # Find matching children for the branch + children = [] + if branch == '..': + children.append(element.parentNode) + else: + for x in element.childNodes: + if x.localName == branch: + children.append(x) + + ret = [] + # If this is not the last path element, recursively gather results from + # children + if len(branches) > 1: + for x in children: + add = get_by_path(x, '/'.join(branches[1:])) + if isinstance(add, list): + ret += add + else: + return add + else: + ret = children + + return ret + + +def get_docstring(element): + docstring = None + for x in element.childNodes: + if x.namespaceURI == NS_TP and x.localName == 'docstring': + docstring = x + if docstring is not None: + docstring = docstring.toxml().replace('\n', ' ').strip() + if docstring.startswith(''): + docstring = docstring[14:].lstrip() + if docstring.endswith(''): + docstring = docstring[:-15].rstrip() + if docstring in ('', ''): + docstring = '' + return docstring + +def get_deprecated(element): + text = [] + for x in element.childNodes: + if hasattr(x, 'data'): + text.append(x.data.replace('\n', ' ').strip()) + else: + # This caters for tp:dbus-ref elements, but little else. + if x.childNodes and hasattr(x.childNodes[0], 'data'): + text.append(x.childNodes[0].data.replace('\n', ' ').strip()) + return ' '.join(text) + +def get_descendant_text(element_or_elements): + if not element_or_elements: + return '' + if isinstance(element_or_elements, list): + return ''.join(map(get_descendant_text, element_or_elements)) + parts = [] + for x in element_or_elements.childNodes: + if x.nodeType == x.TEXT_NODE: + parts.append(x.nodeValue) + elif x.nodeType == x.ELEMENT_NODE: + parts.append(get_descendant_text(x)) + else: + pass + return ''.join(parts) + + +class _SignatureIter: + """Iterator over a D-Bus signature. Copied from dbus-python 0.71 so we + can run genginterface in a limited environment with only Python + (like Scratchbox). + """ + def __init__(self, string): + self.remaining = string + + def next(self): + return self.__next__() + + def __next__(self): + if self.remaining == '': + raise StopIteration + + signature = self.remaining + block_depth = 0 + block_type = None + end = len(signature) + + for marker in range(0, end): + cur_sig = signature[marker] + + if cur_sig == 'a': + pass + elif cur_sig == '{' or cur_sig == '(': + if block_type == None: + block_type = cur_sig + + if block_type == cur_sig: + block_depth = block_depth + 1 + + elif cur_sig == '}': + if block_type == '{': + block_depth = block_depth - 1 + + if block_depth == 0: + end = marker + break + + elif cur_sig == ')': + if block_type == '(': + block_depth = block_depth - 1 + + if block_depth == 0: + end = marker + break + + else: + if block_depth == 0: + end = marker + break + + end = end + 1 + self.remaining = signature[end:] + return Signature(signature[0:end]) + + +class Signature(str): + """A string, iteration over which is by D-Bus single complete types + rather than characters. + """ + def __iter__(self): + return _SignatureIter(self) + + +def xml_escape(s): + s = s.replace('&', '&').replace("'", ''').replace('"', '"') + return s.replace('<', '<').replace('>', '>') diff --git a/telepathy-account-widgets/tools/make-release-mail.py b/telepathy-account-widgets/tools/make-release-mail.py new file mode 100644 index 0000000..b03ebd2 --- /dev/null +++ b/telepathy-account-widgets/tools/make-release-mail.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +# vim: set fileencoding=utf-8 : +# +# Hello. This is make-release-mail.py from the Telepathy project. It's +# designed to turn an item from a NEWS file into a mail suitable for sending +# to . I hope that you enjoy your stay. + +import sys +import re + +def looks_like_a_header(line, package, version=None): + if version is None: + pattern = "^%s .* \(.*\)$" % package + else: + pattern = "^%s %s \(.*\)$" % (package, version) + + return re.match(pattern, line) is not None + +def extract_description(package, version, news_path): + release_name = [] + details = [] + + with open(news_path) as f: + lines = (line for line in f.readlines()) + for line in lines: + # Find the 'telepathy-foo 0.1.2' header + if looks_like_a_header(line, package, version): + break + + # Skip the ====== line, and the first blank line + lines.next() + lines.next() + + got_release_name = False + + for line in lines: + line = line.rstrip() + # If we hit the next version header, we're done + if looks_like_a_header(line, package): + break + # Else, if we hit a blank line and we're still reading the release + # name, we're done with the release name. + elif not got_release_name and line == '': + got_release_name = True + # Otherwise, append this to the relevant list + elif not got_release_name: + release_name.append(line) + else: + details.append(line) + + assert got_release_name, (release_name, details) + + # We rstrip details because it picks up a trailing blank line + return ('\n'.join(release_name), '\n'.join(details).rstrip()) + +BASE_URL = 'http://telepathy.freedesktop.org/releases' +GIT_URL = 'http://cgit.freedesktop.org/telepathy' + +def main(package, version, news_path): + release_name, details = extract_description(package, version, news_path) + + print """ +%(release_name)s + +tarball: %(base_url)s/%(package)s/%(package)s-%(version)s.tar.gz +signature: %(base_url)s/%(package)s/%(package)s-%(version)s.tar.gz.asc +git: %(git_url)s/%(package)s + +%(details)s""".strip().rstrip() % { + 'base_url': BASE_URL, + 'git_url': GIT_URL, + 'package': package, + 'version': version, + 'release_name': release_name, + 'details': details, + } + +if __name__ == '__main__': + try: + package, version, news_path = sys.argv[1:] + + main(package, version, news_path) + except ValueError, e: + sys.stderr.write( + 'Usage: %s package-name package.version.number path/to/NEWS\n' % + sys.argv[0]) + sys.stderr.flush() + sys.exit(1) diff --git a/telepathy-account-widgets/tools/make-version-script.py b/telepathy-account-widgets/tools/make-version-script.py new file mode 100644 index 0000000..4ced849 --- /dev/null +++ b/telepathy-account-widgets/tools/make-version-script.py @@ -0,0 +1,208 @@ +#!/usr/bin/python + +"""Construct a GNU ld or Debian dpkg version-script from a set of +RFC822-style symbol lists. + +Usage: + make-version-script.py [--symbols SYMBOLS] [--unreleased-version VER] + [--dpkg "LIBRARY.so.0 LIBRARY0 #MINVER#"] + [--dpkg-build-depends-package LIBRARY-dev] + [FILES...] + +Each FILE starts with RFC822-style headers "Version:" (the name of the +symbol version, e.g. FOO_1.2.3) and "Extends:" (either the previous +version, or "-" if this is the first version). Next there is a blank +line, then a list of C symbols one per line. + +Comments (lines starting with whitespace + "#") are allowed and ignored. + +If --symbols is given, SYMBOLS lists the symbols actually exported by +the library (one per line). If --unreleased-version is given, any symbols +in SYMBOLS but not in FILES are assigned to that version; otherwise, any +such symbols cause an error. + +If --dpkg is given, produce a Debian dpkg-gensymbols file instead of a +GNU ld version-script. The argument to --dpkg is the first line of the +resulting symbols file, and --dpkg-build-depends-package can optionally +be used to set the Build-Depends-Package field. + +This script originates in telepathy-glib - +please send us any changes that are needed. +""" + +# Copyright (C) 2008-2010 Collabora Ltd. +# Copyright (C) 2008 Nokia Corporation +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + +import sys +from getopt import gnu_getopt + + +def e(format, *args): + sys.stderr.write((format + '\n') % args) + + +def main(abifiles, symbols=None, unreleased_version=None, + dpkg=False, dpkg_first_line=None, dpkg_build_depends_package=None): + + gnuld = not dpkg + symbol_set = None + + if symbols is not None: + symbol_set = open(symbols, 'r').readlines() + symbol_set = map(str.strip, symbol_set) + symbol_set = set(symbol_set) + + versioned_symbols = set() + + dpkg_symbols = [] + dpkg_versions = [] + + if dpkg: + assert dpkg_first_line is not None + print(dpkg_first_line) + if dpkg_build_depends_package is not None: + print("* Build-Depends-Package: %s" % dpkg_build_depends_package) + + for filename in abifiles: + lines = open(filename, 'r').readlines() + + version = None + extends = None + release = None + + for i, line in enumerate(lines): + line = line.strip() + + if line.startswith('#'): + continue + elif not line: + # the transition betwen headers and symbols + cut = i + 1 + break + elif line.lower().startswith('version:'): + line = line[8:].strip() + version = line + continue + elif line.lower().startswith('extends:'): + line = line[8:].strip() + extends = line + continue + elif line.lower().startswith('release:'): + release = line[8:].strip() + continue + else: + e('Could not understand line in %s header: %s', filename, line) + raise SystemExit(1) + + else: + e('No symbols in %s', filename) + raise SystemExit(1) + + if version is None: + e('No Versions: header in %s', filename) + raise SystemExit(1) + + if extends is None: + e('No Extends: header in %s', filename) + raise SystemExit(1) + + if release is None and dpkg: + e('No Release: header in %s', filename) + raise SystemExit(1) + + if dpkg: + dpkg_versions.append('%s@%s %s' % (version, version, release)) + + lines = lines[cut:] + + if gnuld: + print("%s {" % version) + print(" global:") + + for symbol in lines: + symbol = symbol.strip() + + if symbol.startswith('#'): + continue + + if gnuld: + print(" %s;" % symbol) + elif dpkg: + dpkg_symbols.append('%s@%s %s' % (symbol, version, release)) + + if symbol in versioned_symbols: + raise AssertionError('Symbol %s is in version %s and an ' + 'earlier version' % (symbol, version)) + + versioned_symbols.add(symbol) + + if gnuld: + if extends == '-': + print(" local:") + print(" *;") + print("};") + else: + print("} %s;" % extends) + print("") + + if dpkg: + dpkg_symbols.sort() + dpkg_versions.sort() + + for x in dpkg_versions: + print(" %s" % x) + + for x in dpkg_symbols: + print(" %s" % x) + + if symbol_set is not None: + missing = versioned_symbols - symbol_set + + if missing: + e('These symbols have disappeared:') + + for symbol in missing: + e(' %s', symbol) + + raise SystemExit(1) + + unreleased = symbol_set - versioned_symbols + + if unreleased: + if unreleased_version is None: + e('Unversioned symbols are not allowed in releases:') + + for symbol in unreleased: + e(' %s', symbol) + + raise SystemExit(1) + + if gnuld: + print("%s {" % unreleased_version) + print(" global:") + + for symbol in unreleased: + print(" %s;" % symbol) + + print("} %s;" % version) + + +if __name__ == '__main__': + options, argv = gnu_getopt (sys.argv[1:], '', + ['symbols=', 'unreleased-version=', + 'dpkg=', 'dpkg-build-depends-package=']) + + opts = {'dpkg': False} + + for option, value in options: + if option == '--dpkg': + opts['dpkg'] = True + opts['dpkg_first_line'] = value + else: + opts[option.lstrip('-').replace('-', '_')] = value + + main(argv, **opts) diff --git a/telepathy-account-widgets/tools/manager-file.py b/telepathy-account-widgets/tools/manager-file.py new file mode 100644 index 0000000..e1b51a6 --- /dev/null +++ b/telepathy-account-widgets/tools/manager-file.py @@ -0,0 +1,187 @@ +#!/usr/bin/python + +# manager-file.py: generate .manager files and TpCMParamSpec arrays from the +# same data (should be suitable for all connection managers that don't have +# plugins) +# +# The master copy of this program is in the telepathy-glib repository - +# please make any changes there. +# +# Copyright (c) Collabora Ltd. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import re +import sys + +_NOT_C_STR = re.compile(r'[^A-Za-z0-9_-]') + +def c_string(x): + # whitelist-based brute force and ignorance - escape nearly all punctuation + return '"' + _NOT_C_STR.sub(lambda c: r'\x%02x' % ord(c), x) + '"' + +def desktop_string(x): + return x.replace(' ', r'\s').replace('\n', r'\n').replace('\r', r'\r').replace('\t', r'\t') + +supported = list('sbuiqn') + +fdefaultencoders = { + 's': desktop_string, + 'b': (lambda b: b and '1' or '0'), + 'u': (lambda n: '%u' % n), + 'i': (lambda n: '%d' % n), + 'q': (lambda n: '%u' % n), + 'n': (lambda n: '%d' % n), + } +for x in supported: assert x in fdefaultencoders + +gtypes = { + 's': 'G_TYPE_STRING', + 'b': 'G_TYPE_BOOLEAN', + 'u': 'G_TYPE_UINT', + 'i': 'G_TYPE_INT', + 'q': 'G_TYPE_UINT', + 'n': 'G_TYPE_INT', +} +for x in supported: assert x in gtypes + +gdefaultencoders = { + 's': c_string, + 'b': (lambda b: b and 'GINT_TO_POINTER (TRUE)' or 'GINT_TO_POINTER (FALSE)'), + 'u': (lambda n: 'GUINT_TO_POINTER (%u)' % n), + 'i': (lambda n: 'GINT_TO_POINTER (%d)' % n), + 'q': (lambda n: 'GUINT_TO_POINTER (%u)' % n), + 'n': (lambda n: 'GINT_TO_POINTER (%d)' % n), + } +for x in supported: assert x in gdefaultencoders + +gdefaultdefaults = { + 's': 'NULL', + 'b': 'GINT_TO_POINTER (FALSE)', + 'u': 'GUINT_TO_POINTER (0)', + 'i': 'GINT_TO_POINTER (0)', + 'q': 'GUINT_TO_POINTER (0)', + 'n': 'GINT_TO_POINTER (0)', + } +for x in supported: assert x in gdefaultdefaults + +gflags = { + 'has-default': 'TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT', + 'register': 'TP_CONN_MGR_PARAM_FLAG_REGISTER', + 'required': 'TP_CONN_MGR_PARAM_FLAG_REQUIRED', + 'secret': 'TP_CONN_MGR_PARAM_FLAG_SECRET', + 'dbus-property': 'TP_CONN_MGR_PARAM_FLAG_DBUS_PROPERTY', +} + +def write_manager(f, manager, protos): + # pointless backwards compat section + print >> f, '[ConnectionManager]' + print >> f, 'BusName=org.freedesktop.Telepathy.ConnectionManager.' + manager + print >> f, 'ObjectPath=/org/freedesktop/Telepathy/ConnectionManager/' + manager + + # protocols + for proto, params in protos.iteritems(): + print >> f + print >> f, '[Protocol %s]' % proto + + defaults = {} + + for param, info in params.iteritems(): + dtype = info['dtype'] + flags = info.get('flags', '').split() + struct_field = info.get('struct_field', param.replace('-', '_')) + filter = info.get('filter', 'NULL') + filter_data = info.get('filter_data', 'NULL') + setter_data = 'NULL' + + if 'default' in info: + default = fdefaultencoders[dtype](info['default']) + defaults[param] = default + + if flags: + flags = ' ' + ' '.join(flags) + else: + flags = '' + + print >> f, 'param-%s=%s%s' % (param, desktop_string(dtype), flags) + + for param, default in defaults.iteritems(): + print >> f, 'default-%s=%s' % (param, default) + +def write_c_params(f, manager, proto, struct, params): + print >> f, "static const TpCMParamSpec %s_%s_params[] = {" % (manager, proto) + + for param, info in params.iteritems(): + dtype = info['dtype'] + flags = info.get('flags', '').split() + struct_field = info.get('struct_field', param.replace('-', '_')) + filter = info.get('filter', 'NULL') + filter_data = info.get('filter_data', 'NULL') + setter_data = 'NULL' + + if 'default' in info: + default = gdefaultencoders[dtype](info['default']) + else: + default = gdefaultdefaults[dtype] + + if flags: + flags = ' | '.join([gflags[flag] for flag in flags]) + else: + flags = '0' + + if struct is None or struct_field is None: + struct_offset = '0' + else: + struct_offset = 'G_STRUCT_OFFSET (%s, %s)' % (struct, struct_field) + + print >> f, (''' { %s, %s, %s, + %s, + %s, /* default */ + %s, /* struct offset */ + %s, /* filter */ + %s, /* filter data */ + %s /* setter data */ },''' % + (c_string(param), c_string(dtype), gtypes[dtype], flags, + default, struct_offset, filter, filter_data, setter_data)) + + print >> f, " { NULL }" + print >> f, "};" + +if __name__ == '__main__': + environment = {} + execfile(sys.argv[1], environment) + + filename = '%s/%s.manager' % (sys.argv[2], environment['MANAGER']) + try: + os.remove(filename) + except OSError: + pass + f = open(filename + '.tmp', 'w') + write_manager(f, environment['MANAGER'], environment['PARAMS']) + f.close() + os.rename(filename + '.tmp', filename) + + filename = '%s/param-spec-struct.h' % sys.argv[2] + try: + os.remove(filename) + except OSError: + pass + f = open(filename + '.tmp', 'w') + for protocol in environment['PARAMS']: + write_c_params(f, environment['MANAGER'], protocol, + environment['STRUCTS'][protocol], + environment['PARAMS'][protocol]) + f.close() + os.rename(filename + '.tmp', filename) diff --git a/telepathy-account-widgets/tools/shave.mk b/telepathy-account-widgets/tools/shave.mk new file mode 100644 index 0000000..53cb3bf --- /dev/null +++ b/telepathy-account-widgets/tools/shave.mk @@ -0,0 +1 @@ +QUIET_GEN = $(Q:@=@echo ' GEN '$@;) diff --git a/telepathy-account-widgets/tools/telepathy-glib-env.in b/telepathy-account-widgets/tools/telepathy-glib-env.in new file mode 100644 index 0000000..ddc47bf --- /dev/null +++ b/telepathy-account-widgets/tools/telepathy-glib-env.in @@ -0,0 +1,9 @@ +#!/bin/sh +abs_top_builddir="@abs_top_builddir@" +export abs_top_builddir +LD_LIBRARY_PATH="${abs_top_builddir}/telepathy-glib/.libs${LD_LIBRARY_PATH:+":${LD_LIBRARY_PATH}"}" +export LD_LIBRARY_PATH +G_DEBUG="fatal_criticals,fatal_warnings${G_DEBUG:+",${G_DEBUG}"}" +export G_DEBUG + +exec "$@" diff --git a/telepathy-account-widgets/tools/telepathy-glib.supp b/telepathy-account-widgets/tools/telepathy-glib.supp new file mode 100644 index 0000000..28bd5a0 --- /dev/null +++ b/telepathy-account-widgets/tools/telepathy-glib.supp @@ -0,0 +1,390 @@ +# Valgrind error suppression file + +# ============================= libc ================================== + +{ + ld.so initialization + selinux + Memcheck:Leak + ... + fun:_dl_init + obj:/lib/ld-*.so +} + +{ + dlopen initialization, triggered by handle-leak-debug code + Memcheck:Leak + ... + fun:__libc_dlopen_mode + fun:init + fun:backtrace + fun:handle_leak_debug_bt + fun:dynamic_ensure_handle + fun:tp_handle_ensure +} + +# default.supp has these for 2.10, but they're too specific +{ + Debian libc6 (2.10.x, 2.11.x) stripped dynamic linker + Memcheck:Cond + fun:index + fun:expand_dynamic_string_token + fun:_dl_map_object + fun:map_doit + fun:_dl_catch_error + fun:do_preload + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start + obj:/lib/ld-*.so +} +{ + Debian libc6 (2.9.x - 2.11.x) stripped dynamic linker + Memcheck:Cond + fun:_dl_relocate_object + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start + obj:/lib/ld-*.so +} + +{ + ld.so initialization on glibc 2.9 + Memcheck:Cond + fun:strlen + fun:_dl_init_paths + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start + obj:/lib/ld-2.9.so +} + +# ======================= libselinux on Debian amd64 ===================== + +{ + I have no idea what SELinux is doing but it's not my problem + Memcheck:Cond + ... + obj:/lib/libselinux.so.1 + obj:/lib/libselinux.so.1 + obj:/lib/libselinux.so.1 +} + +{ + I have no idea what SELinux is doing but it's not my problem + Memcheck:Value8 + ... + obj:/lib/libselinux.so.1 + obj:/lib/libselinux.so.1 + obj:/lib/libselinux.so.1 +} + +{ + I have no idea what SELinux is doing but it's not my problem + Memcheck:Leak + ... + obj:/lib/libselinux.so.1 + obj:/lib/libselinux.so.1 + obj:/lib/libselinux.so.1 +} + +# ============================= GLib ================================== + +{ + g_set_prgname copies its argument + Memcheck:Leak + ... + fun:g_set_prgname +} + +{ + one g_get_charset per child^Wprocess + Memcheck:Leak + ... + fun:g_get_charset +} + +{ + one g_get_home_dir per process + Memcheck:Leak + ... + fun:g_get_home_dir +} + +{ + GQuarks can't be freed + Memcheck:Leak + ... + fun:g_quark_from_static_string +} + +{ + GQuarks can't be freed + Memcheck:Leak + ... + fun:g_quark_from_string +} + +{ + interned strings can't be freed + Memcheck:Leak + ... + fun:g_intern_string +} + +{ + interned strings can't be freed + Memcheck:Leak + ... + fun:g_intern_static_string +} + +{ + shared global default g_main_context + Memcheck:Leak + ... + fun:g_main_context_new + fun:g_main_context_default +} + +{ + GTest initialization + Memcheck:Leak + ... + fun:g_test_init + fun:main +} + +{ + GTest admin + Memcheck:Leak + ... + fun:g_test_add_vtable +} + +{ + GTest pseudorandomness + Memcheck:Leak + ... + fun:g_rand_new_with_seed_array + fun:test_run_seed + ... + fun:g_test_run +} + +{ + GSLice initialization + Memcheck:Leak + ... + fun:g_malloc0 + fun:g_slice_init_nomessage + fun:g_slice_alloc +} + +# ============================= GObject =============================== + +{ + g_type_init + Memcheck:Leak + ... + fun:g_type_init +} + +{ + g_type_init_with_debug_flags + Memcheck:Leak + ... + fun:g_type_init_with_debug_flags +} + +{ + g_type_register_static + Memcheck:Leak + ... + fun:g_type_register_static +} + +{ + g_type_add_interface_static + Memcheck:Leak + ... + fun:g_type_add_interface_static +} + +{ + initialization of interfaces + Memcheck:Leak + ... + fun:type_iface_vtable_base_init_Wm + fun:g_type_class_ref +} + +# ============================= GIO =================================== + +{ + GIO init + Memcheck:Leak + ... + fun:g_inet_address_class_intern_init +} + +{ + g_simple_async_result class + Memcheck:Leak + ... + fun:g_type_class_ref + ... + fun:g_simple_async_result_new +} + +# ============================= dbus-glib ============================= + +{ + registering marshallers is permanent + Memcheck:Leak + ... + fun:dbus_g_object_register_marshaller_array + fun:dbus_g_object_register_marshaller +} + +{ + dbus-glib specialized GTypes are permanent + Memcheck:Leak + ... + fun:dbus_g_type_specialized_init +} + +{ + libdbus shared connection + Memcheck:Leak + ... + fun:dbus_g_bus_get +} + +{ + dbus-gobject registrations aren't freed unless we fall off the bus + Memcheck:Leak + ... + fun:g_slist_append + fun:dbus_g_connection_register_g_object +} + +{ + DBusGProxy slots aren't freed unless we fall off the bus + Memcheck:Leak + ... + fun:dbus_connection_allocate_data_slot + ... + fun:dbus_g_proxy_constructor +} + +{ + error registrations are for life, not just for Christmas + Memcheck:Leak + ... + fun:dbus_g_error_domain_register +} + +{ + DBusGProxy class init + Memcheck:Leak + ... + fun:dbus_g_proxy_class_init +} + +# ============================= telepathy-glib ======================== + +{ + tp_dbus_daemon_constructor @daemons once per DBusConnection + Memcheck:Leak + ... + fun:g_slice_alloc + fun:tp_dbus_daemon_constructor +} + +{ + tp_proxy_subclass_add_error_mapping refs the enum + Memcheck:Leak + ... + fun:g_type_class_ref + fun:tp_proxy_subclass_add_error_mapping +} + +{ + tp_proxy_or_subclass_hook_on_interface_add never frees its list + Memcheck:Leak + ... + fun:tp_proxy_or_subclass_hook_on_interface_add +} + +{ + tp_dbus_daemon_constructor filter not freed til we fall off the bus + Memcheck:Leak + ... + fun:dbus_connection_add_filter + fun:tp_dbus_daemon_constructor +} + +{ + tp_g_socket_address_from_variant reffing GNIO types + Memcheck:Leak + ... + fun:g_type_class_ref + ... + fun:tp_g_socket_address_from_variant +} + +{ + creating classes for DBusGProxy + Memcheck:Leak + ... + fun:g_type_class_ref + ... + fun:g_object_new + ... + fun:tp_proxy_borrow_interface_by_id +} + +{ + creating classes for tp_dbus_daemon_new + Memcheck:Leak + ... + fun:g_type_class_ref + ... + fun:g_object_new + ... + fun:tp_dbus_daemon_new +} + +{ + creating classes for TpCHannel + Memcheck:Leak + ... + fun:g_type_class_ref + ... + fun:g_object_new + ... + fun:tp_channel_new +} + +{ + creating a boxed type to use in TpCapabilities + Memcheck:Leak + ... + fun:g_type_class_ref + ... + fun:g_param_spec_boxed + fun:tp_capabilities_class_intern_init +} + +# ============================= questionable ========================== + +{ + creating classes for instances (this is a pretty big hammer) + Memcheck:Leak + ... + fun:g_type_class_ref + ... + fun:g_type_create_instance + ... + fun:g_param_spec_string +} diff --git a/telepathy-account-widgets/tools/telepathy.am b/telepathy-account-widgets/tools/telepathy.am new file mode 100644 index 0000000..20ff0be --- /dev/null +++ b/telepathy-account-widgets/tools/telepathy.am @@ -0,0 +1,85 @@ +## Useful top-level Makefile.am snippets for Telepathy projects. + +dist-hook: + chmod u+w ${distdir}/ChangeLog + if test -d ${top_srcdir}/.git; then \ + ( cd ${top_srcdir} && git log --date=iso $(CHANGELOG_RANGE) ) > ${distdir}/ChangeLog; \ + fi + +distcheck-hook: + @test "z$(CHECK_FOR_UNRELEASED)" = z || \ + case @VERSION@ in \ + *.*.*.*|*+) ;; \ + *) \ + if grep -r UNRELEASED $(CHECK_FOR_UNRELEASED); \ + then \ + echo "^^^ This is meant to be a release, but some files say UNRELEASED" >&2; \ + exit 2; \ + fi \ + ;; \ + esac + +_is-release-check: + @case @VERSION@ in \ + (*.*.*.*|*+) \ + echo "Hey! @VERSION@ is not a release!" >&2; \ + exit 2; \ + ;; \ + esac + @cd ${top_srcdir} && \ + if ! git diff --no-ext-diff --quiet --exit-code; then \ + echo "Hey! Your tree is dirty! No release for you." >&2; \ + exit 2; \ + fi + @cd ${top_srcdir} && \ + if ! git diff --cached --no-ext-diff --quiet --exit-code; then \ + echo "Hey! You have changes staged! No release for you." >&2; \ + exit 2; \ + fi +if ENABLE_GTK_DOC +else + @echo "Hey! You need to pass --enable-gtk-doc to configure!" + @exit 2; +endif + +%.tar.gz.asc: %.tar.gz + $(AM_V_GEN)gpg --detach-sign --armor $@ + +@PACKAGE@-@VERSION@.tar.gz: + $(MAKE) _is-release-check + $(MAKE) check + $(MAKE) distcheck + +maintainer-prepare-release: + $(MAKE) _is-release-check + $(MAKE) all + $(MAKE) distcheck + $(MAKE) release-mail + git tag -s @PACKAGE@-@VERSION@ -m @PACKAGE@' '@VERSION@ + gpg --detach-sign --armor @PACKAGE@-@VERSION@.tar.gz + +release-mail: NEWS + $(AM_V_GEN)(python $(top_srcdir)/tools/make-release-mail.py \ + @PACKAGE@ @VERSION@ $(top_srcdir)/NEWS > $@.tmp && \ + mv $@.tmp $@) + +maintainer-upload-release: _maintainer-upload-release + +_maintainer-upload-release-check: _is-release-check + test -f @PACKAGE@-@VERSION@.tar.gz + test -f @PACKAGE@-@VERSION@.tar.gz.asc + gpg --verify @PACKAGE@-@VERSION@.tar.gz.asc + +_maintainer-upload-release: _maintainer-upload-release-check + rsync -vzP @PACKAGE@-@VERSION@.tar.gz telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.gz + rsync -vzP @PACKAGE@-@VERSION@.tar.gz.asc telepathy.freedesktop.org:/srv/telepathy.freedesktop.org/www/releases/@PACKAGE@/@PACKAGE@-@VERSION@.tar.gz.asc + +maintainer-make-release: + $(MAKE) maintainer-prepare-release + $(MAKE) maintainer-upload-release + @echo "Now:" + @echo " • bump the nano-version;" + @echo " • push the branch and tags upstream; and" + @echo " • send release-mail to ." + +## vim:set ft=automake: diff --git a/telepathy-account-widgets/tools/test-wrapper.sh b/telepathy-account-widgets/tools/test-wrapper.sh new file mode 100755 index 0000000..9490067 --- /dev/null +++ b/telepathy-account-widgets/tools/test-wrapper.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Make tests shut up. On success, if stdout is a tty, we only output messages +# about skipped tests; on failure, or if stdout is a file or pipe, we output +# the lot. +# +# Usage: test-wrapper.sh PROGRAM [ARGS...] + +set -e + +if test -t 1 && test "z$CHECK_VERBOSE" = z; then + : # continue with the output-suppressed code path, below +else + "$@" || e=$? + exit $e +fi + +e=0 +"$@" > capture-$$.log 2>&1 || e=$? +if test z$e = z0; then + grep -i skipped capture-$$.log || true + rm -f capture-$$.log +else + cat capture-$$.log + exit $e +fi + +# Copyright © 2010 Collabora Ltd. +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. There is no warranty. diff --git a/telepathy-account-widgets/tools/with-session-bus.sh b/telepathy-account-widgets/tools/with-session-bus.sh new file mode 100644 index 0000000..b3038cd --- /dev/null +++ b/telepathy-account-widgets/tools/with-session-bus.sh @@ -0,0 +1,100 @@ +#!/bin/sh +# with-session-bus.sh - run a program with a temporary D-Bus session daemon +# +# The canonical location of this program is the telepathy-glib tools/ +# directory, please synchronize any changes with that copy. +# +# Copyright (C) 2007-2008 Collabora Ltd. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + +set -e + +me=with-session-bus + +dbus_daemon_args="--print-address=5 --print-pid=6 --fork" +sleep=0 + +usage () +{ + echo "usage: $me [options] -- program [program_options]" >&2 + echo "Requires write access to the current directory." >&2 + echo "" >&2 + echo "If \$WITH_SESSION_BUS_FORK_DBUS_MONITOR is set, fork dbus-monitor" >&2 + echo "with the arguments in \$WITH_SESSION_BUS_FORK_DBUS_MONITOR_OPT." >&2 + echo "The output of dbus-monitor is saved in $me-.dbus-monitor-logs" >&2 + exit 2 +} + +while test "z$1" != "z--"; do + case "$1" in + --sleep=*) + sleep="$1" + sleep="${sleep#--sleep=}" + shift + ;; + --session) + dbus_daemon_args="$dbus_daemon_args --session" + shift + ;; + --config-file=*) + # FIXME: assumes config file doesn't contain any special characters + dbus_daemon_args="$dbus_daemon_args $1" + shift + ;; + *) + usage + ;; + esac +done +shift +if test "z$1" = "z"; then usage; fi + +exec 5> $me-$$.address +exec 6> $me-$$.pid + +cleanup () +{ + pid=`head -n1 $me-$$.pid` + if test -n "$pid" ; then + if [ -n "$VERBOSE_TESTS" ]; then + echo "Killing temporary bus daemon: $pid" >&2 + fi + kill -INT "$pid" + fi + rm -f $me-$$.address + rm -f $me-$$.pid +} + +trap cleanup INT HUP TERM +dbus-daemon $dbus_daemon_args + +if [ -n "$VERBOSE_TESTS" ]; then + { echo -n "Temporary bus daemon is "; cat $me-$$.address; } >&2 + { echo -n "Temporary bus daemon PID is "; head -n1 $me-$$.pid; } >&2 +fi + +e=0 +DBUS_SESSION_BUS_ADDRESS="`cat $me-$$.address`" +export DBUS_SESSION_BUS_ADDRESS +DBUS_SESSION_BUS_PID="`cat $me-$$.pid`" +export DBUS_SESSION_BUS_PID + +if [ -n "$WITH_SESSION_BUS_FORK_DBUS_MONITOR" ] ; then + echo -n "Forking dbus-monitor $WITH_SESSION_BUS_FORK_DBUS_MONITOR_OPT" >&2 + dbus-monitor $WITH_SESSION_BUS_FORK_DBUS_MONITOR_OPT \ + > $me-$$.dbus-monitor-logs 2>&1 & +fi + +"$@" || e=$? + +if test $sleep != 0; then + sleep $sleep +fi + +trap - INT HUP TERM +cleanup + +exit $e diff --git a/telepathy-account-widgets/tools/xincludator.py b/telepathy-account-widgets/tools/xincludator.py new file mode 100644 index 0000000..f9ed49c --- /dev/null +++ b/telepathy-account-widgets/tools/xincludator.py @@ -0,0 +1,46 @@ +#!/usr/bin/python + +import sys +from sys import argv, stdout, stderr +import codecs, locale +import os +import xml.dom.minidom + +if sys.version_info[0] < 3: + stdout = codecs.getwriter('utf-8')(stdout) + +NS_XI = 'http://www.w3.org/2001/XInclude' + +def xincludate(dom, base, dropns = []): + remove_attrs = [] + for i in range(dom.documentElement.attributes.length): + attr = dom.documentElement.attributes.item(i) + if attr.prefix == 'xmlns': + if attr.localName in dropns: + remove_attrs.append(attr) + else: + dropns.append(attr.localName) + for attr in remove_attrs: + dom.documentElement.removeAttributeNode(attr) + for include in dom.getElementsByTagNameNS(NS_XI, 'include'): + href = include.getAttribute('href') + # FIXME: assumes Unixy paths + filename = os.path.join(os.path.dirname(base), href) + subdom = xml.dom.minidom.parse(filename) + xincludate(subdom, filename, dropns) + if './' in href: + subdom.documentElement.setAttribute('xml:base', href) + include.parentNode.replaceChild(subdom.documentElement, include) + +if __name__ == '__main__': + argv = argv[1:] + dom = xml.dom.minidom.parse(argv[0]) + xincludate(dom, argv[0]) + + if sys.version_info[0] >= 3: + xml = dom.toxml(encoding=None) + else: + xml = dom.toxml() + + stdout.write(xml) + stdout.write('\n') diff --git a/telepathy-account-widgets/tp-account-widgets/Makefile.am b/telepathy-account-widgets/tp-account-widgets/Makefile.am new file mode 100644 index 0000000..ff60c4a --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/Makefile.am @@ -0,0 +1,156 @@ +AM_CPPFLAGS = \ + $(ERROR_CFLAGS) \ + -DDATADIR=\""$(datadir)"\" \ + -DPKGDATADIR=\""$(real_pkgdatadir)"\" \ + -DICONDIR=\""$(icondir)"\" \ + -DG_LOG_DOMAIN=\"tp-account-widgets\" \ + -DGCR_API_SUBJECT_TO_CHANGE \ + $(TPAW_CFLAGS) \ + $(UDEV_CFLAGS) \ + $(CHEESE_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +BUILT_SOURCES = \ + tpaw-account-widgets-resources.c \ + tpaw-account-widgets-resources.h \ + $(NULL) + +libtp_account_widgets_sources = \ + tpaw-account-settings.c \ + tpaw-account-widget.c \ + tpaw-account-widget-irc.c \ + tpaw-account-widget-private.h \ + tpaw-account-widget-sip.c \ + tpaw-avatar-chooser.c \ + tpaw-builder.c \ + tpaw-calendar-button.c \ + tpaw-camera-monitor.c \ + tpaw-connection-managers.c \ + tpaw-contactinfo-utils.c \ + tpaw-debug.c \ + tpaw-keyring.c \ + tpaw-irc-network-chooser.c \ + tpaw-irc-network-chooser-dialog.c \ + tpaw-irc-network-dialog.c \ + tpaw-irc-network-manager.c \ + tpaw-irc-network.c \ + tpaw-irc-server.c \ + tpaw-live-search.c \ + tpaw-pixbuf-utils.c \ + tpaw-protocol.c \ + tpaw-string-parser.c \ + tpaw-time.c \ + tpaw-user-info.c \ + tpaw-utils.c \ + $(NULL) + +libtp_account_widgets_headers = \ + tpaw-account-settings.h \ + tpaw-account-widget.h \ + tpaw-account-widget-irc.h \ + tpaw-account-widget-sip.h \ + tpaw-avatar-chooser.h \ + tpaw-builder.h \ + tpaw-calendar-button.h \ + tpaw-camera-monitor.h \ + tpaw-connection-managers.h \ + tpaw-contactinfo-utils.h \ + tpaw-debug.h \ + tpaw-gsettings.h \ + tpaw-images.h \ + tpaw-keyring.h \ + tpaw-irc-network-chooser-dialog.h \ + tpaw-irc-network-chooser.h \ + tpaw-irc-network-dialog.h \ + tpaw-irc-network-manager.h \ + tpaw-irc-network.h \ + tpaw-irc-server.h \ + tpaw-live-search.h \ + tpaw-pixbuf-utils.h \ + tpaw-protocol.h \ + tpaw-string-parser.h \ + tpaw-time.h \ + tpaw-user-info.h \ + tpaw-utils.h \ + $(NULL) + +nocheck_sources = \ + cheese-camera-device-monitor.c \ + cheese-camera-device-monitor.h \ + totem-subtitle-encoding.c \ + totem-subtitle-encoding.h \ + $(NULL) + +noinst_LTLIBRARIES = libtp-account-widgets.la + +libtp_account_widgets_la_SOURCES = \ + $(libtp_account_widgets_sources) \ + $(libtp_account_widgets_headers) \ + $(nocheck_sources) \ + $(NULL) + +# these are sources that depend on Ubuntu Online Accounts +uoa_sources = \ + tpaw-uoa-utils.c \ + tpaw-uoa-utils.h \ + $(NULL) + +if HAVE_UOA +libtp_account_widgets_la_SOURCES += $(uoa_sources) +EXTRA_DIST = +else +EXTRA_DIST = $(uoa_sources) +endif + +# do not distribute generated files +nodist_libtp_account_widgets_la_SOURCES = \ + $(BUILT_SOURCES) + +check_c_sources = \ + $(libtp_account_widgets_sources) \ + $(libtp_account_widgets_headers) \ + $(uoa_sources) \ + $(NULL) +include $(top_srcdir)/tools/check-coding-style.mk +check-local: check-coding-style + +account_widgets_dtd_files = \ + tpaw-irc-networks.dtd \ + $(NULL) + +ircnetworksdir = $(real_pkgdatadir) +ircnetworks_DATA = \ + irc-networks.xml + +account_widgets_ui_files = \ + tpaw-account-widget-generic.ui \ + tpaw-account-widget-jabber.ui \ + tpaw-account-widget-msn.ui \ + tpaw-account-widget-sip.ui \ + tpaw-account-widget-local-xmpp.ui \ + tpaw-account-widget-irc.ui \ + tpaw-account-widget-icq.ui \ + tpaw-account-widget-yahoo.ui \ + tpaw-account-widget-groupwise.ui \ + tpaw-account-widget-aim.ui \ + $(NULL) + +account_widgets_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=$(srcdir) $(srcdir)/tpaw-account-widgets.gresource.xml) + +tpaw-account-widgets-resources.c: tpaw-account-widgets.gresource.xml $(account_widgets_resource_files) + $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $< + +tpaw-account-widgets-resources.h: tpaw-account-widgets.gresource.xml $(account_widgets_resource_files) + $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-header $< + +EXTRA_DIST += \ + tpaw-account-widgets.gresource.xml \ + $(account_widgets_dtd_files) \ + $(account_widgets_ui_files) \ + $(ircnetworks_DATA) \ + $(NULL) + +CLEANFILES = \ + $(BUILT_SOURCES) \ + $(NULL) diff --git a/telepathy-account-widgets/tp-account-widgets/Makefile.in b/telepathy-account-widgets/tp-account-widgets/Makefile.in new file mode 100644 index 0000000..2164d53 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/Makefile.in @@ -0,0 +1,942 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@HAVE_UOA_TRUE@am__append_1 = $(uoa_sources) +subdir = tp-account-widgets +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/as-compiler-flag.m4 \ + $(top_srcdir)/m4/gsettings.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tpaw-args.m4 \ + $(top_srcdir)/m4/tpaw-valgrind.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libtp_account_widgets_la_LIBADD = +am__libtp_account_widgets_la_SOURCES_DIST = tpaw-account-settings.c \ + tpaw-account-widget.c tpaw-account-widget-irc.c \ + tpaw-account-widget-private.h tpaw-account-widget-sip.c \ + tpaw-avatar-chooser.c tpaw-builder.c tpaw-calendar-button.c \ + tpaw-camera-monitor.c tpaw-connection-managers.c \ + tpaw-contactinfo-utils.c tpaw-debug.c tpaw-keyring.c \ + tpaw-irc-network-chooser.c tpaw-irc-network-chooser-dialog.c \ + tpaw-irc-network-dialog.c tpaw-irc-network-manager.c \ + tpaw-irc-network.c tpaw-irc-server.c tpaw-live-search.c \ + tpaw-pixbuf-utils.c tpaw-protocol.c tpaw-string-parser.c \ + tpaw-time.c tpaw-user-info.c tpaw-utils.c \ + tpaw-account-settings.h tpaw-account-widget.h \ + tpaw-account-widget-irc.h tpaw-account-widget-sip.h \ + tpaw-avatar-chooser.h tpaw-builder.h tpaw-calendar-button.h \ + tpaw-camera-monitor.h tpaw-connection-managers.h \ + tpaw-contactinfo-utils.h tpaw-debug.h tpaw-gsettings.h \ + tpaw-images.h tpaw-keyring.h tpaw-irc-network-chooser-dialog.h \ + tpaw-irc-network-chooser.h tpaw-irc-network-dialog.h \ + tpaw-irc-network-manager.h tpaw-irc-network.h \ + tpaw-irc-server.h tpaw-live-search.h tpaw-pixbuf-utils.h \ + tpaw-protocol.h tpaw-string-parser.h tpaw-time.h \ + tpaw-user-info.h tpaw-utils.h cheese-camera-device-monitor.c \ + cheese-camera-device-monitor.h totem-subtitle-encoding.c \ + totem-subtitle-encoding.h tpaw-uoa-utils.c tpaw-uoa-utils.h +am__objects_1 = tpaw-account-settings.lo tpaw-account-widget.lo \ + tpaw-account-widget-irc.lo tpaw-account-widget-sip.lo \ + tpaw-avatar-chooser.lo tpaw-builder.lo tpaw-calendar-button.lo \ + tpaw-camera-monitor.lo tpaw-connection-managers.lo \ + tpaw-contactinfo-utils.lo tpaw-debug.lo tpaw-keyring.lo \ + tpaw-irc-network-chooser.lo tpaw-irc-network-chooser-dialog.lo \ + tpaw-irc-network-dialog.lo tpaw-irc-network-manager.lo \ + tpaw-irc-network.lo tpaw-irc-server.lo tpaw-live-search.lo \ + tpaw-pixbuf-utils.lo tpaw-protocol.lo tpaw-string-parser.lo \ + tpaw-time.lo tpaw-user-info.lo tpaw-utils.lo +am__objects_2 = +am__objects_3 = cheese-camera-device-monitor.lo \ + totem-subtitle-encoding.lo +am__objects_4 = tpaw-uoa-utils.lo +@HAVE_UOA_TRUE@am__objects_5 = $(am__objects_4) +am_libtp_account_widgets_la_OBJECTS = $(am__objects_1) \ + $(am__objects_2) $(am__objects_3) $(am__objects_5) +am__objects_6 = tpaw-account-widgets-resources.lo +nodist_libtp_account_widgets_la_OBJECTS = $(am__objects_6) +libtp_account_widgets_la_OBJECTS = \ + $(am_libtp_account_widgets_la_OBJECTS) \ + $(nodist_libtp_account_widgets_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libtp_account_widgets_la_SOURCES) \ + $(nodist_libtp_account_widgets_la_SOURCES) +DIST_SOURCES = $(am__libtp_account_widgets_la_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(ircnetworksdir)" +DATA = $(ircnetworks_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + $(top_srcdir)/tools/check-coding-style.mk +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACCOUNTS_APPLICATION_FILES_DIR = @ACCOUNTS_APPLICATION_FILES_DIR@ +ACCOUNTS_APP_PLUGIN_DIR = @ACCOUNTS_APP_PLUGIN_DIR@ +ACCOUNTS_PROVIDER_FILES_DIR = @ACCOUNTS_PROVIDER_FILES_DIR@ +ACCOUNTS_PROVIDER_PLUGIN_DIR = @ACCOUNTS_PROVIDER_PLUGIN_DIR@ +ACCOUNTS_SERVICE_FILES_DIR = @ACCOUNTS_SERVICE_FILES_DIR@ +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHEESE_CFLAGS = @CHEESE_CFLAGS@ +CHEESE_LIBS = @CHEESE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_CODING_STYLE_CHECKS = @ENABLE_CODING_STYLE_CHECKS@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMSGFMT = @GMSGFMT@ +GOBJECT_QUERY = @GOBJECT_QUERY@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MISSION_CONTROL_PLUGINS_DIR = @MISSION_CONTROL_PLUGINS_DIR@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +REQUIRE_CHEESE = @REQUIRE_CHEESE@ +REQUIRE_UDEV = @REQUIRE_UDEV@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TPAW_CFLAGS = @TPAW_CFLAGS@ +TPAW_LIBS = @TPAW_LIBS@ +TPAW_UOA_PROVIDER = @TPAW_UOA_PROVIDER@ +UDEV_CFLAGS = @UDEV_CFLAGS@ +UDEV_LIBS = @UDEV_LIBS@ +UOA_CFLAGS = @UOA_CFLAGS@ +UOA_LIBS = @UOA_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +icondir = @icondir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +real_pkgdatadir = @real_pkgdatadir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AM_CPPFLAGS = \ + $(ERROR_CFLAGS) \ + -DDATADIR=\""$(datadir)"\" \ + -DPKGDATADIR=\""$(real_pkgdatadir)"\" \ + -DICONDIR=\""$(icondir)"\" \ + -DG_LOG_DOMAIN=\"tp-account-widgets\" \ + -DGCR_API_SUBJECT_TO_CHANGE \ + $(TPAW_CFLAGS) \ + $(UDEV_CFLAGS) \ + $(CHEESE_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) + +BUILT_SOURCES = \ + tpaw-account-widgets-resources.c \ + tpaw-account-widgets-resources.h \ + $(NULL) + +libtp_account_widgets_sources = \ + tpaw-account-settings.c \ + tpaw-account-widget.c \ + tpaw-account-widget-irc.c \ + tpaw-account-widget-private.h \ + tpaw-account-widget-sip.c \ + tpaw-avatar-chooser.c \ + tpaw-builder.c \ + tpaw-calendar-button.c \ + tpaw-camera-monitor.c \ + tpaw-connection-managers.c \ + tpaw-contactinfo-utils.c \ + tpaw-debug.c \ + tpaw-keyring.c \ + tpaw-irc-network-chooser.c \ + tpaw-irc-network-chooser-dialog.c \ + tpaw-irc-network-dialog.c \ + tpaw-irc-network-manager.c \ + tpaw-irc-network.c \ + tpaw-irc-server.c \ + tpaw-live-search.c \ + tpaw-pixbuf-utils.c \ + tpaw-protocol.c \ + tpaw-string-parser.c \ + tpaw-time.c \ + tpaw-user-info.c \ + tpaw-utils.c \ + $(NULL) + +libtp_account_widgets_headers = \ + tpaw-account-settings.h \ + tpaw-account-widget.h \ + tpaw-account-widget-irc.h \ + tpaw-account-widget-sip.h \ + tpaw-avatar-chooser.h \ + tpaw-builder.h \ + tpaw-calendar-button.h \ + tpaw-camera-monitor.h \ + tpaw-connection-managers.h \ + tpaw-contactinfo-utils.h \ + tpaw-debug.h \ + tpaw-gsettings.h \ + tpaw-images.h \ + tpaw-keyring.h \ + tpaw-irc-network-chooser-dialog.h \ + tpaw-irc-network-chooser.h \ + tpaw-irc-network-dialog.h \ + tpaw-irc-network-manager.h \ + tpaw-irc-network.h \ + tpaw-irc-server.h \ + tpaw-live-search.h \ + tpaw-pixbuf-utils.h \ + tpaw-protocol.h \ + tpaw-string-parser.h \ + tpaw-time.h \ + tpaw-user-info.h \ + tpaw-utils.h \ + $(NULL) + +nocheck_sources = \ + cheese-camera-device-monitor.c \ + cheese-camera-device-monitor.h \ + totem-subtitle-encoding.c \ + totem-subtitle-encoding.h \ + $(NULL) + +noinst_LTLIBRARIES = libtp-account-widgets.la +libtp_account_widgets_la_SOURCES = $(libtp_account_widgets_sources) \ + $(libtp_account_widgets_headers) $(nocheck_sources) $(NULL) \ + $(am__append_1) + +# these are sources that depend on Ubuntu Online Accounts +uoa_sources = \ + tpaw-uoa-utils.c \ + tpaw-uoa-utils.h \ + $(NULL) + +@HAVE_UOA_FALSE@EXTRA_DIST = $(uoa_sources) \ +@HAVE_UOA_FALSE@ tpaw-account-widgets.gresource.xml \ +@HAVE_UOA_FALSE@ $(account_widgets_dtd_files) \ +@HAVE_UOA_FALSE@ $(account_widgets_ui_files) \ +@HAVE_UOA_FALSE@ $(ircnetworks_DATA) $(NULL) +@HAVE_UOA_TRUE@EXTRA_DIST = tpaw-account-widgets.gresource.xml \ +@HAVE_UOA_TRUE@ $(account_widgets_dtd_files) \ +@HAVE_UOA_TRUE@ $(account_widgets_ui_files) $(ircnetworks_DATA) \ +@HAVE_UOA_TRUE@ $(NULL) + +# do not distribute generated files +nodist_libtp_account_widgets_la_SOURCES = \ + $(BUILT_SOURCES) + +check_c_sources = \ + $(libtp_account_widgets_sources) \ + $(libtp_account_widgets_headers) \ + $(uoa_sources) \ + $(NULL) + +account_widgets_dtd_files = \ + tpaw-irc-networks.dtd \ + $(NULL) + +ircnetworksdir = $(real_pkgdatadir) +ircnetworks_DATA = \ + irc-networks.xml + +account_widgets_ui_files = \ + tpaw-account-widget-generic.ui \ + tpaw-account-widget-jabber.ui \ + tpaw-account-widget-msn.ui \ + tpaw-account-widget-sip.ui \ + tpaw-account-widget-local-xmpp.ui \ + tpaw-account-widget-irc.ui \ + tpaw-account-widget-icq.ui \ + tpaw-account-widget-yahoo.ui \ + tpaw-account-widget-groupwise.ui \ + tpaw-account-widget-aim.ui \ + $(NULL) + +account_widgets_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=$(srcdir) $(srcdir)/tpaw-account-widgets.gresource.xml) +CLEANFILES = \ + $(BUILT_SOURCES) \ + $(NULL) + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/tools/check-coding-style.mk $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tp-account-widgets/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tp-account-widgets/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/tools/check-coding-style.mk $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libtp-account-widgets.la: $(libtp_account_widgets_la_OBJECTS) $(libtp_account_widgets_la_DEPENDENCIES) $(EXTRA_libtp_account_widgets_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libtp_account_widgets_la_OBJECTS) $(libtp_account_widgets_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cheese-camera-device-monitor.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/totem-subtitle-encoding.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-account-settings.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-account-widget-irc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-account-widget-sip.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-account-widget.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-account-widgets-resources.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-avatar-chooser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-builder.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-calendar-button.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-camera-monitor.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-connection-managers.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-contactinfo-utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-debug.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-irc-network-chooser-dialog.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-irc-network-chooser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-irc-network-dialog.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-irc-network-manager.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-irc-network.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-irc-server.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-keyring.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-live-search.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-pixbuf-utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-protocol.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-string-parser.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-time.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-uoa-utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-user-info.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpaw-utils.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-ircnetworksDATA: $(ircnetworks_DATA) + @$(NORMAL_INSTALL) + @list='$(ircnetworks_DATA)'; test -n "$(ircnetworksdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(ircnetworksdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(ircnetworksdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ircnetworksdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(ircnetworksdir)" || exit $$?; \ + done + +uninstall-ircnetworksDATA: + @$(NORMAL_UNINSTALL) + @list='$(ircnetworks_DATA)'; test -n "$(ircnetworksdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(ircnetworksdir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(ircnetworksdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-ircnetworksDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-ircnetworksDATA + +.MAKE: all check check-am install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am check-local clean \ + clean-generic clean-libtool clean-noinstLTLIBRARIES \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-ircnetworksDATA \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-ircnetworksDATA + +.PRECIOUS: Makefile + +check-coding-style: + @fail=0; \ + if test -n "$(check_misc_sources)"; then \ + tools_dir=$(top_srcdir)/tools \ + sh $(top_srcdir)/tools/check-misc.sh \ + $(addprefix $(srcdir)/,$(check_misc_sources)) || fail=1; \ + fi; \ + if test -n "$(check_c_sources)"; then \ + tools_dir=$(top_srcdir)/tools \ + sh $(top_srcdir)/tools/check-c-style.sh \ + $(addprefix $(srcdir)/,$(check_c_sources)) || fail=1; \ + fi;\ + if test yes = "$(enable_fatal_warnings)"; then \ + exit "$$fail";\ + else \ + exit 0;\ + fi +check-local: check-coding-style + +tpaw-account-widgets-resources.c: tpaw-account-widgets.gresource.xml $(account_widgets_resource_files) + $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $< + +tpaw-account-widgets-resources.h: tpaw-account-widgets.gresource.xml $(account_widgets_resource_files) + $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-header $< + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/telepathy-account-widgets/tp-account-widgets/cheese-camera-device-monitor.c b/telepathy-account-widgets/tp-account-widgets/cheese-camera-device-monitor.c new file mode 100644 index 0000000..76b7fd4 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/cheese-camera-device-monitor.c @@ -0,0 +1,406 @@ +/* This file is a copy of cheese-camera-device-monitor.c from Tpaw. We + * just renamespaced it to avoid conflicts when linking on libcheese. */ +/* + * Copyright © 2007,2008 Jaap Haitsma + * Copyright © 2007-2009 daniel g. siegel + * Copyright © 2008 Ryan Zeigler + * Copyright © 2010 Filippo Argiolas + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifdef HAVE_CONFIG_H + #include "config.h" +#endif + +#include + +#ifdef HAVE_UDEV + #define G_UDEV_API_IS_SUBJECT_TO_CHANGE 1 + #include +#else + #include + #include + #include + #if USE_SYS_VIDEOIO_H > 0 + #include + #include + #elif defined (__sun) + #include + #include + #endif /* USE_SYS_VIDEOIO_H */ +#endif + +#include "cheese-camera-device-monitor.h" + +/** + * SECTION:cheese-camera-device-monitor + * @short_description: Simple object to enumerate v4l devices + * @include: cheese/cheese-camera-device-monitor.h + * + * #TpawCameraDeviceMonitor provides a basic interface for + * video4linux device enumeration and hotplugging. + * + * It uses either GUdev or some platform specific code to list video + * devices. It is also capable (right now in linux only, with the + * udev backend) to monitor device plugging and emit a + * TpawCameraDeviceMonitor::added or + * TpawCameraDeviceMonitor::removed signal when an event happens. + */ + +G_DEFINE_TYPE (TpawCameraDeviceMonitor, tpaw_camera_device_monitor, G_TYPE_OBJECT) + +#define TPAW_CAMERA_DEVICE_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ + TPAW_TYPE_CAMERA_DEVICE_MONITOR, \ + TpawCameraDeviceMonitorPrivate)) + +#define TPAW_CAMERA_DEVICE_MONITOR_ERROR tpaw_camera_device_monitor_error_quark () + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +enum TpawCameraDeviceMonitorError +{ + TPAW_CAMERA_DEVICE_MONITOR_ERROR_UNKNOWN, + TPAW_CAMERA_DEVICE_MONITOR_ERROR_ELEMENT_NOT_FOUND +}; + +typedef struct +{ +#ifdef HAVE_UDEV + GUdevClient *client; +#else + guint filler; +#endif /* HAVE_UDEV */ +} TpawCameraDeviceMonitorPrivate; + +enum +{ + ADDED, + REMOVED, + LAST_SIGNAL +}; + +static guint monitor_signals[LAST_SIGNAL]; + +#if 0 +GQuark +tpaw_camera_device_monitor_error_quark (void) +{ + return g_quark_from_static_string ("tpaw-camera-error-quark"); +} +#endif + +#ifdef HAVE_UDEV +static void +tpaw_camera_device_monitor_added (TpawCameraDeviceMonitor *monitor, + GUdevDevice *udevice) +{ + const char *device_file; + const char *product_name; + const char *vendor; + const char *product; + const char *bus; + gint vendor_id = 0; + gint product_id = 0; + gint v4l_version = 0; + + const gchar *devpath = g_udev_device_get_property (udevice, "DEVPATH"); + + DEBUG ("Checking udev device '%s'", devpath); + + bus = g_udev_device_get_property (udevice, "ID_BUS"); + if (g_strcmp0 (bus, "usb") == 0) + { + vendor = g_udev_device_get_property (udevice, "ID_VENDOR_ID"); + if (vendor != NULL) + vendor_id = g_ascii_strtoll (vendor, NULL, 16); + product = g_udev_device_get_property (udevice, "ID_MODEL_ID"); + if (product != NULL) + product_id = g_ascii_strtoll (product, NULL, 16); + if (vendor_id == 0 || product_id == 0) + { + DEBUG ("Error getting vendor and product id"); + } + else + { + DEBUG ("Found device %04x:%04x, getting capabilities...", vendor_id, product_id); + } + } + else + { + DEBUG ("Not an usb device, skipping vendor and model id retrieval"); + } + + device_file = g_udev_device_get_device_file (udevice); + if (device_file == NULL) + { + DEBUG ("Error getting V4L device"); + return; + } + + /* vbi devices support capture capability too, but cannot be used, + * so detect them by device name */ + if (strstr (device_file, "vbi")) + { + DEBUG ("Skipping vbi device: %s", device_file); + return; + } + + v4l_version = g_udev_device_get_property_as_int (udevice, "ID_V4L_VERSION"); + if (v4l_version == 2 || v4l_version == 1) + { + const char *caps; + + caps = g_udev_device_get_property (udevice, "ID_V4L_CAPABILITIES"); + if (caps == NULL || strstr (caps, ":capture:") == NULL) + { + DEBUG ("Device %s seems to not have the capture capability, (radio tuner?)" + "Removing it from device list.", device_file); + return; + } + product_name = g_udev_device_get_property (udevice, "ID_V4L_PRODUCT"); + } + else if (v4l_version == 0) + { + DEBUG ("Fix your udev installation to include v4l_id, ignoring %s", device_file); + return; + } + else + { + g_assert_not_reached (); + } + + g_signal_emit (monitor, monitor_signals[ADDED], 0, + devpath, + device_file, + product_name, + v4l_version); +} + +static void +tpaw_camera_device_monitor_removed (TpawCameraDeviceMonitor *monitor, + GUdevDevice *udevice) +{ + g_signal_emit (monitor, monitor_signals[REMOVED], 0, + g_udev_device_get_property (udevice, "DEVPATH")); +} + +static void +tpaw_camera_device_monitor_uevent_cb (GUdevClient *client, + const gchar *action, + GUdevDevice *udevice, + TpawCameraDeviceMonitor *monitor) +{ + if (g_str_equal (action, "remove")) + tpaw_camera_device_monitor_removed (monitor, udevice); + else if (g_str_equal (action, "add")) + tpaw_camera_device_monitor_added (monitor, udevice); +} + +/** + * tpaw_camera_device_monitor_coldplug: + * @monitor: a #TpawCameraDeviceMonitor object. + * + * Will actively look for plugged in cameras and emit + * ::added for those new cameras. + * This is only required when your program starts, so as to connect + * to those signals before they are emitted. + */ +void +tpaw_camera_device_monitor_coldplug (TpawCameraDeviceMonitor *monitor) +{ + TpawCameraDeviceMonitorPrivate *priv = TPAW_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor); + GList *devices, *l; + gint i = 0; + + if (priv->client == NULL) + return; + + DEBUG ("Probing devices with udev..."); + + devices = g_udev_client_query_by_subsystem (priv->client, "video4linux"); + + /* Initialize camera structures */ + for (l = devices; l != NULL; l = l->next) + { + tpaw_camera_device_monitor_added (monitor, l->data); + g_object_unref (l->data); + i++; + } + g_list_free (devices); + + if (i == 0) DEBUG ("No device found"); +} + +#else /* HAVE_UDEV */ +void +tpaw_camera_device_monitor_coldplug (TpawCameraDeviceMonitor *monitor) +{ + #if 0 + TpawCameraDeviceMonitorPrivate *priv = TPAW_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor); + struct v4l2_capability v2cap; + struct video_capability v1cap; + int fd, ok; + + if ((fd = open (device_path, O_RDONLY | O_NONBLOCK)) < 0) + { + g_warning ("Failed to open %s: %s", device_path, strerror (errno)); + return; + } + ok = ioctl (fd, VIDIOC_QUERYCAP, &v2cap); + if (ok < 0) + { + ok = ioctl (fd, VIDIOCGCAP, &v1cap); + if (ok < 0) + { + g_warning ("Error while probing v4l capabilities for %s: %s", + device_path, strerror (errno)); + close (fd); + return; + } + g_print ("Detected v4l device: %s\n", v1cap.name); + g_print ("Device type: %d\n", v1cap.type); + gstreamer_src = "v4lsrc"; + product_name = v1cap.name; + } + else + { + guint cap = v2cap.capabilities; + g_print ("Detected v4l2 device: %s\n", v2cap.card); + g_print ("Driver: %s, version: %d\n", v2cap.driver, v2cap.version); + + /* g_print ("Bus info: %s\n", v2cap.bus_info); */ /* Doesn't seem anything useful */ + g_print ("Capabilities: 0x%08X\n", v2cap.capabilities); + if (!(cap & V4L2_CAP_VIDEO_CAPTURE)) + { + g_print ("Device %s seems to not have the capture capability, (radio tuner?)\n" + "Removing it from device list.\n", device_path); + close (fd); + return; + } + gstreamer_src = "v4l2src"; + product_name = (char *) v2cap.card; + } + close (fd); + + GList *devices, *l; + + g_print ("Probing devices with udev...\n"); + + if (priv->client == NULL) + return; + + devices = g_udev_client_query_by_subsystem (priv->client, "video4linux"); + + /* Initialize camera structures */ + for (l = devices; l != NULL; l = l->next) + { + tpaw_camera_device_monitor_added (monitor, l->data); + g_object_unref (l->data); + } + g_list_free (devices); + #endif +} + +#endif /* HAVE_UDEV */ + +static void +tpaw_camera_device_monitor_finalize (GObject *object) +{ +#ifdef HAVE_UDEV + TpawCameraDeviceMonitor *monitor = TPAW_CAMERA_DEVICE_MONITOR (object); + TpawCameraDeviceMonitorPrivate *priv = TPAW_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor); + + if (priv->client != NULL) + { + g_object_unref (priv->client); + priv->client = NULL; + } +#endif /* HAVE_UDEV */ + G_OBJECT_CLASS (tpaw_camera_device_monitor_parent_class)->finalize (object); +} + +static void +tpaw_camera_device_monitor_class_init (TpawCameraDeviceMonitorClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = tpaw_camera_device_monitor_finalize; + + /** + * TpawCameraDeviceMonitor::added: + * @device: A private object representing the newly added camera. + * @id: Device unique identifier. + * @device: Device file name (e.g. /dev/video2). + * @product_name: Device product name (human readable, intended to be displayed in a UI). + * @api_version: Supported video4linux API: 1 for v4l, 2 for v4l2. + * + * The ::added signal is emitted when a camera is added, or on start-up + * after #tpaw_camera_device_monitor_colplug is called. + **/ + monitor_signals[ADDED] = g_signal_new ("added", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (TpawCameraDeviceMonitorClass, added), + NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT); + + /** + * TpawCameraDeviceMonitor::removed: + * @device: A private object representing the newly added camera + * @id: Device unique identifier. + * + * The ::removed signal is emitted when a camera is un-plugged, or + * disabled on the system. + **/ + monitor_signals[REMOVED] = g_signal_new ("removed", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (TpawCameraDeviceMonitorClass, removed), + NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 1, G_TYPE_STRING); + + g_type_class_add_private (klass, sizeof (TpawCameraDeviceMonitorPrivate)); +} + +static void +tpaw_camera_device_monitor_init (TpawCameraDeviceMonitor *monitor) +{ +#ifdef HAVE_UDEV + TpawCameraDeviceMonitorPrivate *priv = TPAW_CAMERA_DEVICE_MONITOR_GET_PRIVATE (monitor); + const gchar *const subsystems[] = {"video4linux", NULL}; + + priv->client = g_udev_client_new (subsystems); + g_signal_connect (G_OBJECT (priv->client), "uevent", + G_CALLBACK (tpaw_camera_device_monitor_uevent_cb), monitor); +#endif /* HAVE_UDEV */ +} + +/** + * tpaw_camera_device_monitor_new: + * + * Returns a new #TpawCameraDeviceMonitor object. + * + * Return value: a new #TpawCameraDeviceMonitor object. + **/ +TpawCameraDeviceMonitor * +tpaw_camera_device_monitor_new (void) +{ + return g_object_new (TPAW_TYPE_CAMERA_DEVICE_MONITOR, NULL); +} + +/* + * vim: sw=2 ts=8 cindent noai bs=2 + */ diff --git a/telepathy-account-widgets/tp-account-widgets/cheese-camera-device-monitor.h b/telepathy-account-widgets/tp-account-widgets/cheese-camera-device-monitor.h new file mode 100644 index 0000000..3534402 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/cheese-camera-device-monitor.h @@ -0,0 +1,67 @@ +/* This file is a copy of cheese-camera-device-monitor.h from Tpaw. We + * just renamespaced it to avoid conflicts when linking on libcheese. */ +/* + * Copyright © 2007,2008 Jaap Haitsma + * Copyright © 2007-2009 daniel g. siegel + * Copyright © 2008 Ryan zeigler + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#ifndef __TPAW_CAMERA_DEVICE_MONITOR_H__ +#define __TPAW_CAMERA_DEVICE_MONITOR_H__ + +#include + +G_BEGIN_DECLS + +#define TPAW_TYPE_CAMERA_DEVICE_MONITOR (tpaw_camera_device_monitor_get_type ()) +#define TPAW_CAMERA_DEVICE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TPAW_TYPE_CAMERA_DEVICE_MONITOR, \ + TpawCameraDeviceMonitor)) +#define TPAW_CAMERA_DEVICE_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TPAW_TYPE_CAMERA_DEVICE_MONITOR, \ + TpawCameraDeviceMonitorClass)) +#define TPAW_IS_CAMERA_DEVICE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TPAW_TYPE_CAMERA_DEVICE_MONITOR)) +#define TPAW_IS_CAMERA_DEVICE_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TPAW_TYPE_CAMERA_DEVICE_MONITOR)) +#define TPAW_CAMERA_DEVICE_MONITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_CAMERA_DEVICE_MONITOR, \ + TpawCameraDeviceMonitorClass)) + +typedef struct _TpawCameraDeviceMonitorClass TpawCameraDeviceMonitorClass; +typedef struct _TpawCameraDeviceMonitor TpawCameraDeviceMonitor; + +struct _TpawCameraDeviceMonitor +{ + GObject parent; +}; + +struct _TpawCameraDeviceMonitorClass +{ + GObjectClass parent_class; + + void (*added)(TpawCameraDeviceMonitor *camera, + const char *id, + const char *device_file, + const char *product_name, + int api_version); + void (*removed)(TpawCameraDeviceMonitor *camera, const char *id); +}; + +GType tpaw_camera_device_monitor_get_type (void) G_GNUC_CONST; +TpawCameraDeviceMonitor *tpaw_camera_device_monitor_new (void); +void tpaw_camera_device_monitor_coldplug (TpawCameraDeviceMonitor *monitor); + +G_END_DECLS + +#endif /* __TPAW_CAMERA_DEVICE_MONITOR_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/irc-networks.xml b/telepathy-account-widgets/tp-account-widgets/irc-networks.xml new file mode 100644 index 0000000..6a687f9 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/irc-networks.xml @@ -0,0 +1,550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/totem-subtitle-encoding.c b/telepathy-account-widgets/tp-account-widgets/totem-subtitle-encoding.c new file mode 100644 index 0000000..1cb03bb --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/totem-subtitle-encoding.c @@ -0,0 +1,584 @@ +/* + * Copyright (C) 2001-2006 Bastien Nocera + * + * encoding list copied from gnome-terminal/encoding.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * The Totem project hereby grant permission for non-gpl compatible GStreamer + * plugins to be used and distributed together with GStreamer and Totem. This + * permission are above and beyond the permissions granted by the GPL license + * Totem is covered by. + * + * Monday 7th February 2005: Christian Schaller: Add exception clause. + * See license_change file for details. + * + */ + +#include "config.h" +#include +#include "totem-subtitle-encoding.h" + +typedef enum +{ + SUBTITLE_ENCODING_CURRENT_LOCALE, + + SUBTITLE_ENCODING_ISO_8859_6, + SUBTITLE_ENCODING_IBM_864, + SUBTITLE_ENCODING_MAC_ARABIC, + SUBTITLE_ENCODING_WINDOWS_1256, + + SUBTITLE_ENCODING_ARMSCII_8, + + SUBTITLE_ENCODING_ISO_8859_4, + SUBTITLE_ENCODING_ISO_8859_13, + SUBTITLE_ENCODING_WINDOWS_1257, + + SUBTITLE_ENCODING_ISO_8859_14, + + SUBTITLE_ENCODING_ISO_8859_2, + SUBTITLE_ENCODING_IBM_852, + SUBTITLE_ENCODING_MAC_CE, + SUBTITLE_ENCODING_WINDOWS_1250, + + SUBTITLE_ENCODING_GB18030, + SUBTITLE_ENCODING_GB2312, + SUBTITLE_ENCODING_GBK, + SUBTITLE_ENCODING_HZ, + + SUBTITLE_ENCODING_BIG5, + SUBTITLE_ENCODING_BIG5_HKSCS, + SUBTITLE_ENCODING_EUC_TW, + + SUBTITLE_ENCODING_MAC_CROATIAN, + + SUBTITLE_ENCODING_ISO_8859_5, + SUBTITLE_ENCODING_IBM_855, + SUBTITLE_ENCODING_ISO_IR_111, + SUBTITLE_ENCODING_KOI8_R, + SUBTITLE_ENCODING_MAC_CYRILLIC, + SUBTITLE_ENCODING_WINDOWS_1251, + + SUBTITLE_ENCODING_CP_866, + + SUBTITLE_ENCODING_MAC_UKRAINIAN, + SUBTITLE_ENCODING_KOI8_U, + + SUBTITLE_ENCODING_GEOSTD8, + + SUBTITLE_ENCODING_ISO_8859_7, + SUBTITLE_ENCODING_MAC_GREEK, + SUBTITLE_ENCODING_WINDOWS_1253, + + SUBTITLE_ENCODING_MAC_GUJARATI, + + SUBTITLE_ENCODING_MAC_GURMUKHI, + + SUBTITLE_ENCODING_ISO_8859_8_I, + SUBTITLE_ENCODING_IBM_862, + SUBTITLE_ENCODING_MAC_HEBREW, + SUBTITLE_ENCODING_WINDOWS_1255, + + SUBTITLE_ENCODING_ISO_8859_8, + + SUBTITLE_ENCODING_MAC_DEVANAGARI, + + SUBTITLE_ENCODING_MAC_ICELANDIC, + + SUBTITLE_ENCODING_EUC_JP, + SUBTITLE_ENCODING_ISO_2022_JP, + SUBTITLE_ENCODING_SHIFT_JIS, + + SUBTITLE_ENCODING_EUC_KR, + SUBTITLE_ENCODING_ISO_2022_KR, + SUBTITLE_ENCODING_JOHAB, + SUBTITLE_ENCODING_UHC, + + SUBTITLE_ENCODING_ISO_8859_10, + + SUBTITLE_ENCODING_MAC_FARSI, + + SUBTITLE_ENCODING_ISO_8859_16, + SUBTITLE_ENCODING_MAC_ROMANIAN, + + SUBTITLE_ENCODING_ISO_8859_3, + + SUBTITLE_ENCODING_TIS_620, + + SUBTITLE_ENCODING_ISO_8859_9, + SUBTITLE_ENCODING_IBM_857, + SUBTITLE_ENCODING_MAC_TURKISH, + SUBTITLE_ENCODING_WINDOWS_1254, + + SUBTITLE_ENCODING_UTF_7, + SUBTITLE_ENCODING_UTF_8, + SUBTITLE_ENCODING_UTF_16, + SUBTITLE_ENCODING_UCS_2, + SUBTITLE_ENCODING_UCS_4, + + SUBTITLE_ENCODING_ISO_8859_1, + SUBTITLE_ENCODING_ISO_8859_15, + SUBTITLE_ENCODING_IBM_850, + SUBTITLE_ENCODING_MAC_ROMAN, + SUBTITLE_ENCODING_WINDOWS_1252, + + SUBTITLE_ENCODING_TCVN, + SUBTITLE_ENCODING_VISCII, + SUBTITLE_ENCODING_WINDOWS_1258, + + SUBTITLE_ENCODING_LAST +} SubtitleEncodingIndex; + + +typedef struct +{ + int index; + gboolean valid; + const char *charset; + const char *name; +} SubtitleEncoding; + + +static SubtitleEncoding encodings[] = { + + {SUBTITLE_ENCODING_CURRENT_LOCALE, TRUE, + NULL, N_("Current Locale")}, + + {SUBTITLE_ENCODING_ISO_8859_6, FALSE, + "ISO-8859-6", N_("Arabic")}, + {SUBTITLE_ENCODING_IBM_864, FALSE, + "IBM864", N_("Arabic")}, + {SUBTITLE_ENCODING_MAC_ARABIC, FALSE, + "MAC_ARABIC", N_("Arabic")}, + {SUBTITLE_ENCODING_WINDOWS_1256, FALSE, + "WINDOWS-1256", N_("Arabic")}, + + {SUBTITLE_ENCODING_ARMSCII_8, FALSE, + "ARMSCII-8", N_("Armenian")}, + + {SUBTITLE_ENCODING_ISO_8859_4, FALSE, + "ISO-8859-4", N_("Baltic")}, + {SUBTITLE_ENCODING_ISO_8859_13, FALSE, + "ISO-8859-13", N_("Baltic")}, + {SUBTITLE_ENCODING_WINDOWS_1257, FALSE, + "WINDOWS-1257", N_("Baltic")}, + + {SUBTITLE_ENCODING_ISO_8859_14, FALSE, + "ISO-8859-14", N_("Celtic")}, + + {SUBTITLE_ENCODING_ISO_8859_2, FALSE, + "ISO-8859-2", N_("Central European")}, + {SUBTITLE_ENCODING_IBM_852, FALSE, + "IBM852", N_("Central European")}, + {SUBTITLE_ENCODING_MAC_CE, FALSE, + "MAC_CE", N_("Central European")}, + {SUBTITLE_ENCODING_WINDOWS_1250, FALSE, + "WINDOWS-1250", N_("Central European")}, + + {SUBTITLE_ENCODING_GB18030, FALSE, + "GB18030", N_("Chinese Simplified")}, + {SUBTITLE_ENCODING_GB2312, FALSE, + "GB2312", N_("Chinese Simplified")}, + {SUBTITLE_ENCODING_GBK, FALSE, + "GBK", N_("Chinese Simplified")}, + {SUBTITLE_ENCODING_HZ, FALSE, + "HZ", N_("Chinese Simplified")}, + + {SUBTITLE_ENCODING_BIG5, FALSE, + "BIG5", N_("Chinese Traditional")}, + {SUBTITLE_ENCODING_BIG5_HKSCS, FALSE, + "BIG5-HKSCS", N_("Chinese Traditional")}, + {SUBTITLE_ENCODING_EUC_TW, FALSE, + "EUC-TW", N_("Chinese Traditional")}, + + {SUBTITLE_ENCODING_MAC_CROATIAN, FALSE, + "MAC_CROATIAN", N_("Croatian")}, + + {SUBTITLE_ENCODING_ISO_8859_5, FALSE, + "ISO-8859-5", N_("Cyrillic")}, + {SUBTITLE_ENCODING_IBM_855, FALSE, + "IBM855", N_("Cyrillic")}, + {SUBTITLE_ENCODING_ISO_IR_111, FALSE, + "ISO-IR-111", N_("Cyrillic")}, + {SUBTITLE_ENCODING_KOI8_R, FALSE, + "KOI8-R", N_("Cyrillic")}, + {SUBTITLE_ENCODING_MAC_CYRILLIC, FALSE, + "MAC-CYRILLIC", N_("Cyrillic")}, + {SUBTITLE_ENCODING_WINDOWS_1251, FALSE, + "WINDOWS-1251", N_("Cyrillic")}, + + {SUBTITLE_ENCODING_CP_866, FALSE, + "CP866", N_("Cyrillic/Russian")}, + + {SUBTITLE_ENCODING_MAC_UKRAINIAN, FALSE, + "MAC_UKRAINIAN", N_("Cyrillic/Ukrainian")}, + {SUBTITLE_ENCODING_KOI8_U, FALSE, + "KOI8-U", N_("Cyrillic/Ukrainian")}, + + {SUBTITLE_ENCODING_GEOSTD8, FALSE, + "GEORGIAN-PS", N_("Georgian")}, + + {SUBTITLE_ENCODING_ISO_8859_7, FALSE, + "ISO-8859-7", N_("Greek")}, + {SUBTITLE_ENCODING_MAC_GREEK, FALSE, + "MAC_GREEK", N_("Greek")}, + {SUBTITLE_ENCODING_WINDOWS_1253, FALSE, + "WINDOWS-1253", N_("Greek")}, + + {SUBTITLE_ENCODING_MAC_GUJARATI, FALSE, + "MAC_GUJARATI", N_("Gujarati")}, + + {SUBTITLE_ENCODING_MAC_GURMUKHI, FALSE, + "MAC_GURMUKHI", N_("Gurmukhi")}, + + {SUBTITLE_ENCODING_ISO_8859_8_I, FALSE, + "ISO-8859-8-I", N_("Hebrew")}, + {SUBTITLE_ENCODING_IBM_862, FALSE, + "IBM862", N_("Hebrew")}, + {SUBTITLE_ENCODING_MAC_HEBREW, FALSE, + "MAC_HEBREW", N_("Hebrew")}, + {SUBTITLE_ENCODING_WINDOWS_1255, FALSE, + "WINDOWS-1255", N_("Hebrew")}, + + {SUBTITLE_ENCODING_ISO_8859_8, FALSE, + "ISO-8859-8", N_("Hebrew Visual")}, + + {SUBTITLE_ENCODING_MAC_DEVANAGARI, FALSE, + "MAC_DEVANAGARI", N_("Hindi")}, + + {SUBTITLE_ENCODING_MAC_ICELANDIC, FALSE, + "MAC_ICELANDIC", N_("Icelandic")}, + + {SUBTITLE_ENCODING_EUC_JP, FALSE, + "EUC-JP", N_("Japanese")}, + {SUBTITLE_ENCODING_ISO_2022_JP, FALSE, + "ISO2022JP", N_("Japanese")}, + {SUBTITLE_ENCODING_SHIFT_JIS, FALSE, + "SHIFT-JIS", N_("Japanese")}, + + {SUBTITLE_ENCODING_EUC_KR, FALSE, + "EUC-KR", N_("Korean")}, + {SUBTITLE_ENCODING_ISO_2022_KR, FALSE, + "ISO2022KR", N_("Korean")}, + {SUBTITLE_ENCODING_JOHAB, FALSE, + "JOHAB", N_("Korean")}, + {SUBTITLE_ENCODING_UHC, FALSE, + "UHC", N_("Korean")}, + + {SUBTITLE_ENCODING_ISO_8859_10, FALSE, + "ISO-8859-10", N_("Nordic")}, + + {SUBTITLE_ENCODING_MAC_FARSI, FALSE, + "MAC_FARSI", N_("Persian")}, + + {SUBTITLE_ENCODING_ISO_8859_16, FALSE, + "ISO-8859-16", N_("Romanian")}, + {SUBTITLE_ENCODING_MAC_ROMANIAN, FALSE, + "MAC_ROMANIAN", N_("Romanian")}, + + {SUBTITLE_ENCODING_ISO_8859_3, FALSE, + "ISO-8859-3", N_("South European")}, + + {SUBTITLE_ENCODING_TIS_620, FALSE, + "TIS-620", N_("Thai")}, + + {SUBTITLE_ENCODING_ISO_8859_9, FALSE, + "ISO-8859-9", N_("Turkish")}, + {SUBTITLE_ENCODING_IBM_857, FALSE, + "IBM857", N_("Turkish")}, + {SUBTITLE_ENCODING_MAC_TURKISH, FALSE, + "MAC_TURKISH", N_("Turkish")}, + {SUBTITLE_ENCODING_WINDOWS_1254, FALSE, + "WINDOWS-1254", N_("Turkish")}, + + {SUBTITLE_ENCODING_UTF_7, FALSE, + "UTF-7", N_("Unicode")}, + {SUBTITLE_ENCODING_UTF_8, FALSE, + "UTF-8", N_("Unicode")}, + {SUBTITLE_ENCODING_UTF_16, FALSE, + "UTF-16", N_("Unicode")}, + {SUBTITLE_ENCODING_UCS_2, FALSE, + "UCS-2", N_("Unicode")}, + {SUBTITLE_ENCODING_UCS_4, FALSE, + "UCS-4", N_("Unicode")}, + + {SUBTITLE_ENCODING_ISO_8859_1, FALSE, + "ISO-8859-1", N_("Western")}, + {SUBTITLE_ENCODING_ISO_8859_15, FALSE, + "ISO-8859-15", N_("Western")}, + {SUBTITLE_ENCODING_IBM_850, FALSE, + "IBM850", N_("Western")}, + {SUBTITLE_ENCODING_MAC_ROMAN, FALSE, + "MAC_ROMAN", N_("Western")}, + {SUBTITLE_ENCODING_WINDOWS_1252, FALSE, + "WINDOWS-1252", N_("Western")}, + + {SUBTITLE_ENCODING_TCVN, FALSE, + "TCVN", N_("Vietnamese")}, + {SUBTITLE_ENCODING_VISCII, FALSE, + "VISCII", N_("Vietnamese")}, + {SUBTITLE_ENCODING_WINDOWS_1258, FALSE, + "WINDOWS-1258", N_("Vietnamese")} +}; + +static const SubtitleEncoding * +find_encoding_by_charset (const char *charset) +{ + int i; + + i = 1; /* skip current locale */ + while (i < SUBTITLE_ENCODING_LAST) { + if (strcasecmp (charset, encodings[i].charset) == 0) + return &encodings[i]; + + ++i; + } + + if (strcasecmp (charset, + encodings[SUBTITLE_ENCODING_CURRENT_LOCALE].charset) == 0) + return &encodings[SUBTITLE_ENCODING_CURRENT_LOCALE]; + + return NULL; +} + +static void +subtitle_encoding_init (void) +{ + int i; + gsize bytes_read, bytes_written; + gchar *converted; + gchar ascii_sample[96]; + + g_get_charset ((const char **) + &encodings[SUBTITLE_ENCODING_CURRENT_LOCALE].charset); + + g_assert (G_N_ELEMENTS (encodings) == SUBTITLE_ENCODING_LAST); + + /* Initialize the sample text with all of the printing ASCII characters + * from space (32) to the tilde (126), 95 in all. */ + for (i = 0; i < (int) sizeof (ascii_sample); i++) + ascii_sample[i] = i + 32; + + ascii_sample[sizeof (ascii_sample) - 1] = '\0'; + + i = 0; + while (i < SUBTITLE_ENCODING_LAST) { + bytes_read = 0; + bytes_written = 0; + + g_assert (encodings[i].index == i); + + /* Translate the names */ + encodings[i].name = _(encodings[i].name); + + /* Test that the encoding is a proper superset of ASCII (which naive + * apps are going to use anyway) by attempting to validate the text + * using the current encoding. This also flushes out any encodings + * which the underlying GIConv implementation can't support. + */ + converted = g_convert (ascii_sample, sizeof (ascii_sample) - 1, + encodings[i].charset, encodings[i].charset, + &bytes_read, &bytes_written, NULL); + + /* The encoding is only valid if ASCII passes through cleanly. */ + if (i == SUBTITLE_ENCODING_CURRENT_LOCALE) + encodings[i].valid = TRUE; + else + encodings[i].valid = + (bytes_read == (sizeof (ascii_sample) - 1)) && + (converted != NULL) && (strcmp (converted, ascii_sample) == 0); + +#ifdef DEBUG_ENCODINGS + if (!encodings[i].valid) { + g_print ("Rejecting encoding %s as invalid:\n", encodings[i].charset); + g_print (" input \"%s\"\n", ascii_sample); + g_print (" output \"%s\"\n\n", converted ? converted : "(null)"); + } +#endif + + /* Discard the converted string. */ + g_free (converted); + + ++i; + } +} + +static int +subtitle_encoding_get_index (const char *charset) +{ + const SubtitleEncoding *e; + + e = find_encoding_by_charset (charset); + if (e != NULL) + return e->index; + else + return SUBTITLE_ENCODING_CURRENT_LOCALE; +} + +static const char * +subtitle_encoding_get_charset (int index_) +{ + const SubtitleEncoding *e; + + if (index_ >= SUBTITLE_ENCODING_LAST) + e = &encodings[SUBTITLE_ENCODING_CURRENT_LOCALE]; + else if (index_ < SUBTITLE_ENCODING_CURRENT_LOCALE) + e = &encodings[SUBTITLE_ENCODING_CURRENT_LOCALE]; + else if (!encodings[index_].valid) + e = &encodings[SUBTITLE_ENCODING_CURRENT_LOCALE]; + else + e = &encodings[index_]; + return e->charset; +} + +enum +{ + INDEX_COL, + NAME_COL +}; + +static gint +compare (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer data) +{ + gchar *str_a, *str_b; + gint result; + + gtk_tree_model_get (model, a, NAME_COL, &str_a, -1); + gtk_tree_model_get (model, b, NAME_COL, &str_b, -1); + + result = strcmp (str_a, str_b); + + g_free (str_a); + g_free (str_b); + + return result; +} + +static void +is_encoding_sensitive (GtkCellLayout * cell_layout, + GtkCellRenderer * cell, + GtkTreeModel * tree_model, GtkTreeIter * iter, gpointer data) +{ + + gboolean sensitive; + + sensitive = !gtk_tree_model_iter_has_child (tree_model, iter); + g_object_set (cell, "sensitive", sensitive, NULL); +} + +static GtkTreeModel * +subtitle_encoding_create_store (void) +{ + gchar *label; + const gchar *lastlang = ""; + GtkTreeIter iter, iter2; + GtkTreeStore *store; + int i; + + store = gtk_tree_store_new (2, G_TYPE_INT, G_TYPE_STRING); + + for (i = 0; i < SUBTITLE_ENCODING_LAST; i++) { + if (encodings[i].valid) { + if (strcmp (lastlang, encodings[i].name)) { + lastlang = encodings[i].name; + gtk_tree_store_append (store, &iter, NULL); + gtk_tree_store_set (store, &iter, INDEX_COL, + -1, NAME_COL, lastlang, -1); + } + label = g_strdup_printf("%s (%s)", lastlang, encodings[i].charset); + gtk_tree_store_append (store, &iter2, &iter); + gtk_tree_store_set (store, &iter2, INDEX_COL, + encodings[i].index, NAME_COL, label, -1); + g_free(label); + } + } + gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (store), + compare, NULL, NULL); + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), + NAME_COL, GTK_SORT_ASCENDING); + return GTK_TREE_MODEL (store); +} + +static void +subtitle_encoding_combo_render (GtkComboBox * combo) +{ + GtkCellRenderer *renderer; + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, + "text", NAME_COL, NULL); + gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), + renderer, is_encoding_sensitive, NULL, NULL); +} + +const char * +totem_subtitle_encoding_get_selected (GtkComboBox * combo) +{ + GtkTreeModel *model; + GtkTreeIter iter; + gint index_ = -1; + + model = gtk_combo_box_get_model (combo); + if (gtk_combo_box_get_active_iter (combo, &iter)) { + gtk_tree_model_get (model, &iter, INDEX_COL, &index_, -1); + } + if (index_ == -1) + return NULL; + return subtitle_encoding_get_charset (index_); +} + +void +totem_subtitle_encoding_set (GtkComboBox * combo, const char *encoding) +{ + GtkTreeModel *model; + GtkTreeIter iter, iter2; + gint index_, i; + + g_return_if_fail (encoding != NULL); + + model = gtk_combo_box_get_model (combo); + index_ = subtitle_encoding_get_index (encoding); + gtk_tree_model_get_iter_first (model, &iter); + do { + if (!gtk_tree_model_iter_has_child (model, &iter)) + continue; + if (!gtk_tree_model_iter_children (model, &iter2, &iter)) + continue; + do { + gtk_tree_model_get (model, &iter2, INDEX_COL, &i, -1); + if (i == index_) + break; + } while (gtk_tree_model_iter_next (model, &iter2)); + if (i == index_) + break; + } while (gtk_tree_model_iter_next (model, &iter)); + gtk_combo_box_set_active_iter (combo, &iter2); +} + +void +totem_subtitle_encoding_init (GtkComboBox *combo) +{ + GtkTreeModel *model; + subtitle_encoding_init (); + model = subtitle_encoding_create_store (); + gtk_combo_box_set_model (combo, model); + g_object_unref (model); + subtitle_encoding_combo_render (combo); +} + +/* + * vim: sw=2 ts=8 cindent noai bs=2 + */ diff --git a/telepathy-account-widgets/tp-account-widgets/totem-subtitle-encoding.h b/telepathy-account-widgets/tp-account-widgets/totem-subtitle-encoding.h new file mode 100644 index 0000000..7941318 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/totem-subtitle-encoding.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2001-2006 Bastien Nocera + * + * encoding list copied from gnome-terminal/encoding.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * The Totem project hereby grant permission for non-gpl compatible GStreamer + * plugins to be used and distributed together with GStreamer and Totem. This + * permission are above and beyond the permissions granted by the GPL license + * Totem is covered by. + * + * Monday 7th February 2005: Christian Schaller: Add exception clause. + * See license_change file for details. + * + */ + +/* Encoding stuff */ + +#ifndef TOTEM_SUBTITLE_ENCODING_H +#define TOTEM_SUBTITLE_ENCODING_H + +#include + +void totem_subtitle_encoding_init (GtkComboBox *combo); +void totem_subtitle_encoding_set (GtkComboBox *combo, const char *encoding); +const char * totem_subtitle_encoding_get_selected (GtkComboBox *combo); + +#endif /* SUBTITLE_ENCODING_H */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-settings.c b/telepathy-account-widgets/tp-account-widgets/tpaw-account-settings.c new file mode 100644 index 0000000..0ccff20 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-settings.c @@ -0,0 +1,1660 @@ +/* + * tpaw-account-settings.c - Source for TpawAccountSettings + * Copyright (C) 2009 Collabora Ltd. + * @author Sjoerd Simons + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-account-settings.h" + +#include + +#include "tpaw-connection-managers.h" +#include "tpaw-keyring.h" +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_ACCOUNT +#include "tpaw-debug.h" + +G_DEFINE_TYPE(TpawAccountSettings, tpaw_account_settings, G_TYPE_OBJECT) + +enum { + PROP_ACCOUNT = 1, + PROP_CM_NAME, + PROP_PROTOCOL, + PROP_SERVICE, + PROP_DISPLAY_NAME, + PROP_DISPLAY_NAME_OVERRIDDEN, + PROP_READY +}; + +enum { + PASSWORD_RETRIEVED = 1, + LAST_SIGNAL +}; + +static gulong signals[LAST_SIGNAL] = { 0, }; + +struct _TpawAccountSettingsPriv +{ + gboolean dispose_has_run; + TpawConnectionManagers *managers; + TpAccountManager *account_manager; + + TpConnectionManager *manager; + TpProtocol *protocol_obj; + + TpAccount *account; + gchar *cm_name; + gchar *protocol; + gchar *service; + gchar *display_name; + gchar *icon_name; + gchar *storage_provider; + gboolean display_name_overridden; + gboolean ready; + + gboolean supports_sasl; + gboolean remember_password; + + gchar *password; + gchar *password_original; + + gboolean password_retrieved; + gboolean password_requested; + + /* Parameter name (gchar *) -> parameter value (GVariant) */ + GHashTable *parameters; + /* Keys are parameter names from the hash above (gchar *). + * Values are regular expresions that should match corresponding parameter + * values (GRegex *). Possible regexp patterns are defined in + * tpaw-account-widget.c */ + GHashTable *param_regexps; + GArray *unset_parameters; + GList *required_params; + + gulong managers_ready_id; + gboolean preparing_protocol; + + /* If TRUE, the account should have 'tel' in its + * Account.Interface.Addressing.URISchemes property. */ + gboolean uri_scheme_tel; + /* If TRUE, Service property needs to be updated when applying changes */ + gboolean update_service; + + GSimpleAsyncResult *apply_result; +}; + +static void +tpaw_account_settings_init (TpawAccountSettings *obj) +{ + obj->priv = G_TYPE_INSTANCE_GET_PRIVATE ((obj), + TPAW_TYPE_ACCOUNT_SETTINGS, TpawAccountSettingsPriv); + + /* allocate any data required by the object here */ + obj->priv->managers = tpaw_connection_managers_dup_singleton (); + obj->priv->account_manager = tp_account_manager_dup (); + + obj->priv->parameters = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, (GDestroyNotify) g_variant_unref); + + obj->priv->param_regexps = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, (GDestroyNotify) g_regex_unref); + + obj->priv->unset_parameters = g_array_new (TRUE, FALSE, sizeof (gchar *)); + + obj->priv->required_params = NULL; +} + +static void tpaw_account_settings_dispose (GObject *object); +static void tpaw_account_settings_finalize (GObject *object); +static void tpaw_account_settings_account_ready_cb (GObject *source_object, + GAsyncResult *result, gpointer user_data); +static void tpaw_account_settings_managers_ready_cb (GObject *obj, + GParamSpec *pspec, gpointer user_data); +static void tpaw_account_settings_check_readyness ( + TpawAccountSettings *self); + +static void +tpaw_account_settings_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawAccountSettings *self = TPAW_ACCOUNT_SETTINGS (object); + + switch (prop_id) + { + case PROP_ACCOUNT: + self->priv->account = g_value_dup_object (value); + break; + case PROP_CM_NAME: + self->priv->cm_name = g_value_dup_string (value); + break; + case PROP_PROTOCOL: + self->priv->protocol = g_value_dup_string (value); + break; + case PROP_SERVICE: + self->priv->service = g_value_dup_string (value); + break; + case PROP_DISPLAY_NAME: + self->priv->display_name = g_value_dup_string (value); + break; + case PROP_DISPLAY_NAME_OVERRIDDEN: + self->priv->display_name_overridden = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +tpaw_account_settings_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TpawAccountSettings *self = TPAW_ACCOUNT_SETTINGS (object); + + switch (prop_id) + { + case PROP_ACCOUNT: + g_value_set_object (value, self->priv->account); + break; + case PROP_CM_NAME: + g_value_set_string (value, self->priv->cm_name); + break; + case PROP_PROTOCOL: + g_value_set_string (value, self->priv->protocol); + break; + case PROP_SERVICE: + g_value_set_string (value, self->priv->service); + break; + case PROP_DISPLAY_NAME: + g_value_set_string (value, self->priv->display_name); + break; + case PROP_DISPLAY_NAME_OVERRIDDEN: + g_value_set_boolean (value, self->priv->display_name_overridden); + break; + case PROP_READY: + g_value_set_boolean (value, self->priv->ready); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +tpaw_account_settings_constructed (GObject *object) +{ + TpawAccountSettings *self = TPAW_ACCOUNT_SETTINGS (object); + + if (self->priv->account != NULL) + { + g_free (self->priv->cm_name); + g_free (self->priv->protocol); + g_free (self->priv->service); + + self->priv->cm_name = + g_strdup (tp_account_get_cm_name (self->priv->account)); + self->priv->protocol = + g_strdup (tp_account_get_protocol_name (self->priv->account)); + self->priv->service = + g_strdup (tp_account_get_service (self->priv->account)); + self->priv->icon_name = g_strdup + (tp_account_get_icon_name (self->priv->account)); + } + else + { + self->priv->icon_name = tpaw_protocol_icon_name (self->priv->protocol); + } + + g_assert (self->priv->cm_name != NULL && self->priv->protocol != NULL); + + tpaw_account_settings_check_readyness (self); + + if (!self->priv->ready) + { + GQuark features[] = { + TP_ACCOUNT_FEATURE_CORE, + TP_ACCOUNT_FEATURE_STORAGE, + TP_ACCOUNT_FEATURE_ADDRESSING, + 0 }; + + if (self->priv->account != NULL) + { + tp_proxy_prepare_async (self->priv->account, features, + tpaw_account_settings_account_ready_cb, self); + } + + tp_g_signal_connect_object (self->priv->managers, "notify::ready", + G_CALLBACK (tpaw_account_settings_managers_ready_cb), object, 0); + } + + if (G_OBJECT_CLASS ( + tpaw_account_settings_parent_class)->constructed != NULL) + G_OBJECT_CLASS ( + tpaw_account_settings_parent_class)->constructed (object); +} + + +static void +tpaw_account_settings_class_init ( + TpawAccountSettingsClass *tpaw_account_settings_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (tpaw_account_settings_class); + + g_type_class_add_private (tpaw_account_settings_class, sizeof + (TpawAccountSettingsPriv)); + + object_class->dispose = tpaw_account_settings_dispose; + object_class->finalize = tpaw_account_settings_finalize; + object_class->set_property = tpaw_account_settings_set_property; + object_class->get_property = tpaw_account_settings_get_property; + object_class->constructed = tpaw_account_settings_constructed; + + g_object_class_install_property (object_class, PROP_ACCOUNT, + g_param_spec_object ("account", + "Account", + "The TpAccount backing these settings", + TP_TYPE_ACCOUNT, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_CM_NAME, + g_param_spec_string ("connection-manager", + "connection-manager", + "The name of the connection manager this account uses", + NULL, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_PROTOCOL, + g_param_spec_string ("protocol", + "Protocol", + "The name of the protocol this account uses", + NULL, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_SERVICE, + g_param_spec_string ("service", + "Service", + "The service of this account, or NULL", + NULL, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_DISPLAY_NAME, + g_param_spec_string ("display-name", + "display-name", + "The display name account these settings belong to", + NULL, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_DISPLAY_NAME_OVERRIDDEN, + g_param_spec_boolean ("display-name-overridden", + "display-name-overridden", + "Whether the display name for this account has been manually " + "overridden", + FALSE, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); + + g_object_class_install_property (object_class, PROP_READY, + g_param_spec_boolean ("ready", + "Ready", + "Whether this account is ready to be used", + FALSE, + G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); + + signals[PASSWORD_RETRIEVED] = + g_signal_new ("password-retrieved", + G_TYPE_FROM_CLASS (tpaw_account_settings_class), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 0); +} + +static void +tpaw_account_settings_dispose (GObject *object) +{ + TpawAccountSettings *self = TPAW_ACCOUNT_SETTINGS (object); + + if (self->priv->dispose_has_run) + return; + + self->priv->dispose_has_run = TRUE; + + if (self->priv->managers_ready_id != 0) + g_signal_handler_disconnect (self->priv->managers, + self->priv->managers_ready_id); + self->priv->managers_ready_id = 0; + + tp_clear_object (&self->priv->managers); + tp_clear_object (&self->priv->manager); + tp_clear_object (&self->priv->account_manager); + tp_clear_object (&self->priv->account); + tp_clear_object (&self->priv->protocol_obj); + + /* release any references held by the object here */ + if (G_OBJECT_CLASS (tpaw_account_settings_parent_class)->dispose) + G_OBJECT_CLASS (tpaw_account_settings_parent_class)->dispose (object); +} + +static void +tpaw_account_settings_free_unset_parameters ( + TpawAccountSettings *settings) +{ + guint i; + + for (i = 0 ; i < settings->priv->unset_parameters->len; i++) + g_free (g_array_index (settings->priv->unset_parameters, gchar *, i)); + + g_array_set_size (settings->priv->unset_parameters, 0); +} + +static void +tpaw_account_settings_finalize (GObject *object) +{ + TpawAccountSettings *self = TPAW_ACCOUNT_SETTINGS (object); + GList *l; + + /* free any data held directly by the object here */ + g_free (self->priv->cm_name); + g_free (self->priv->protocol); + g_free (self->priv->service); + g_free (self->priv->display_name); + g_free (self->priv->icon_name); + g_free (self->priv->password); + g_free (self->priv->password_original); + g_free (self->priv->storage_provider); + + if (self->priv->required_params != NULL) + { + for (l = self->priv->required_params; l; l = l->next) + g_free (l->data); + g_list_free (self->priv->required_params); + } + + g_hash_table_unref (self->priv->parameters); + g_hash_table_unref (self->priv->param_regexps); + + tpaw_account_settings_free_unset_parameters (self); + g_array_unref (self->priv->unset_parameters); + + G_OBJECT_CLASS (tpaw_account_settings_parent_class)->finalize (object); +} + +static void +tpaw_account_settings_protocol_obj_prepared_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpawAccountSettings *self = user_data; + GError *error = NULL; + + if (!tp_proxy_prepare_finish (source, result, &error)) + { + DEBUG ("Failed to prepare protocol object: %s", error->message); + g_clear_error (&error); + return; + } + + tpaw_account_settings_check_readyness (self); +} + +static void +tpaw_account_settings_get_password_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpawAccountSettings *self = user_data; + const gchar *password; + GError *error = NULL; + + password = tpaw_keyring_get_account_password_finish (TP_ACCOUNT (source), + result, &error); + + if (error != NULL) + { + DEBUG ("Failed to get password: %s", error->message); + g_clear_error (&error); + } + + /* It doesn't really matter if getting the password failed; that + * just means that it's not there, or let's act like that at + * least. */ + + g_assert (self->priv->password == NULL); + + self->priv->password = g_strdup (password); + self->priv->password_original = g_strdup (password); + + g_signal_emit (self, signals[PASSWORD_RETRIEVED], 0); +} + +static gboolean +account_has_uri_scheme_tel (TpAccount *account) +{ + return tp_account_associated_with_uri_scheme (account, "tel"); +} + +static GVariant * tpaw_account_settings_dup ( + TpawAccountSettings *settings, + const gchar *param); + +static void +tpaw_account_settings_check_readyness (TpawAccountSettings *self) +{ + GQuark features[] = { TP_PROTOCOL_FEATURE_CORE, 0 }; + + if (self->priv->ready) + return; + + if (self->priv->account != NULL + && !tp_proxy_is_prepared (self->priv->account, + TP_ACCOUNT_FEATURE_CORE)) + return; + + if (!tpaw_connection_managers_is_ready (self->priv->managers)) + return; + + if (self->priv->manager == NULL) + { + self->priv->manager = tpaw_connection_managers_get_cm ( + self->priv->managers, self->priv->cm_name); + } + + if (self->priv->manager == NULL) + return; + + g_object_ref (self->priv->manager); + + if (self->priv->account != NULL) + { + g_free (self->priv->display_name); + self->priv->display_name = + g_strdup (tp_account_get_display_name (self->priv->account)); + + g_free (self->priv->icon_name); + self->priv->icon_name = + g_strdup (tp_account_get_icon_name (self->priv->account)); + + self->priv->uri_scheme_tel = account_has_uri_scheme_tel ( + self->priv->account); + } + + if (self->priv->protocol_obj == NULL) + { + self->priv->protocol_obj = g_object_ref ( + tp_connection_manager_get_protocol_object (self->priv->manager, + self->priv->protocol)); + } + + if (!tp_proxy_is_prepared (self->priv->protocol_obj, + TP_PROTOCOL_FEATURE_CORE) + && !self->priv->preparing_protocol) + { + self->priv->preparing_protocol = TRUE; + tp_proxy_prepare_async (self->priv->protocol_obj, features, + tpaw_account_settings_protocol_obj_prepared_cb, self); + return; + } + else + { + if (tp_strv_contains (tp_protocol_get_authentication_types ( + self->priv->protocol_obj), + TP_IFACE_CHANNEL_INTERFACE_SASL_AUTHENTICATION)) + { + self->priv->supports_sasl = TRUE; + } + } + + if (self->priv->required_params == NULL) + { + GList *params, *l; + + params = tp_protocol_dup_params (self->priv->protocol_obj); + for (l = params; l != NULL; l = g_list_next (l)) + { + TpConnectionManagerParam *cur = l->data; + + if (tp_connection_manager_param_is_required (cur)) + { + self->priv->required_params = g_list_append ( + self->priv->required_params, + g_strdup (tp_connection_manager_param_get_name (cur))); + } + } + + g_list_free_full (params, + (GDestroyNotify) tp_connection_manager_param_free); + } + + /* self->priv->account won't be a proper account if it's the account + * assistant showing this widget. */ + if (self->priv->supports_sasl && !self->priv->password_requested + && self->priv->account != NULL) + { + self->priv->password_requested = TRUE; + + /* Make this call but don't block on its readiness. We'll signal + * if it's updated later with ::password-retrieved. */ + tpaw_keyring_get_account_password_async (self->priv->account, + tpaw_account_settings_get_password_cb, self); + } + + self->priv->ready = TRUE; + g_object_notify (G_OBJECT (self), "ready"); +} + +static void +tpaw_account_settings_account_ready_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + TpawAccountSettings *settings = TPAW_ACCOUNT_SETTINGS (user_data); + TpAccount *account = TP_ACCOUNT (source_object); + GError *error = NULL; + + if (!tp_proxy_prepare_finish (account, result, &error)) + { + DEBUG ("Failed to prepare account: %s", error->message); + g_error_free (error); + return; + } + + tpaw_account_settings_check_readyness (settings); +} + +static void +tpaw_account_settings_managers_ready_cb (GObject *object, + GParamSpec *pspec, + gpointer user_data) +{ + TpawAccountSettings *settings = TPAW_ACCOUNT_SETTINGS (user_data); + + tpaw_account_settings_check_readyness (settings); +} + +TpawAccountSettings * +tpaw_account_settings_new (const gchar *connection_manager, + const gchar *protocol, + const gchar *service, + const char *display_name) +{ + return g_object_new (TPAW_TYPE_ACCOUNT_SETTINGS, + "connection-manager", connection_manager, + "protocol", protocol, + "service", service, + "display-name", display_name, + NULL); +} + +TpawAccountSettings * +tpaw_account_settings_new_for_account (TpAccount *account) +{ + return g_object_new (TPAW_TYPE_ACCOUNT_SETTINGS, + "account", account, + NULL); +} + +GList * +tpaw_account_settings_dup_tp_params (TpawAccountSettings *settings) +{ + g_return_val_if_fail (settings->priv->protocol_obj != NULL, NULL); + + return tp_protocol_dup_params (settings->priv->protocol_obj); +} + +gboolean +tpaw_account_settings_is_ready (TpawAccountSettings *settings) +{ + return settings->priv->ready; +} + +const gchar * +tpaw_account_settings_get_cm (TpawAccountSettings *settings) +{ + return settings->priv->cm_name; +} + +const gchar * +tpaw_account_settings_get_protocol (TpawAccountSettings *settings) +{ + return settings->priv->protocol; +} + +const gchar * +tpaw_account_settings_get_service (TpawAccountSettings *settings) +{ + return settings->priv->service; +} + +void +tpaw_account_settings_set_service (TpawAccountSettings *settings, + const gchar *service) +{ + if (!tp_strdiff (settings->priv->service, service)) + return; + + g_free (settings->priv->service); + settings->priv->service = g_strdup (service); + g_object_notify (G_OBJECT (settings), "service"); + settings->priv->update_service = TRUE; +} + +gchar * +tpaw_account_settings_get_icon_name (TpawAccountSettings *settings) +{ + return settings->priv->icon_name; +} + +const gchar * +tpaw_account_settings_get_display_name (TpawAccountSettings *settings) +{ + return settings->priv->display_name; +} + +TpAccount * +tpaw_account_settings_get_account (TpawAccountSettings *settings) +{ + return settings->priv->account; +} + +static gboolean +tpaw_account_settings_is_unset (TpawAccountSettings *settings, + const gchar *param) +{ + GArray *a; + guint i; + + a = settings->priv->unset_parameters; + + for (i = 0; i < a->len; i++) + { + if (!tp_strdiff (g_array_index (a, gchar *, i), param)) + return TRUE; + } + + return FALSE; +} + +static const TpConnectionManagerParam * +tpaw_account_settings_get_tp_param (TpawAccountSettings *settings, + const gchar *param) +{ + return tp_protocol_get_param (settings->priv->protocol_obj, param); +} + +gboolean +tpaw_account_settings_have_tp_param (TpawAccountSettings *settings, + const gchar *param) +{ + return (tpaw_account_settings_get_tp_param (settings, param) != NULL); +} + +static void +account_settings_remove_from_unset (TpawAccountSettings *settings, + const gchar *param) +{ + guint idx; + gchar *val; + + for (idx = 0; idx < settings->priv->unset_parameters->len; idx++) + { + val = g_array_index (settings->priv->unset_parameters, gchar *, idx); + + if (!tp_strdiff (val, param)) + { + settings->priv->unset_parameters = + g_array_remove_index (settings->priv->unset_parameters, idx); + g_free (val); + + break; + } + } +} + +GVariant * +tpaw_account_settings_dup_default (TpawAccountSettings *settings, + const gchar *param) +{ + const TpConnectionManagerParam *p; + + p = tpaw_account_settings_get_tp_param (settings, param); + if (p == NULL) + return NULL; + + return tp_connection_manager_param_dup_default_variant (p); +} + +const gchar * +tpaw_account_settings_get_dbus_signature (TpawAccountSettings *settings, + const gchar *param) +{ + const TpConnectionManagerParam *p; + + p = tpaw_account_settings_get_tp_param (settings, param); + + if (p == NULL) + return NULL; + + return tp_connection_manager_param_get_dbus_signature (p); +} + +static GVariant * +tpaw_account_settings_dup (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *result; + + /* Lookup the update parameters we set */ + result = g_hash_table_lookup (settings->priv->parameters, param); + if (result != NULL) + return g_variant_ref (result); + + /* If the parameters isn't unset use the accounts setting if any */ + if (settings->priv->account != NULL + && !tpaw_account_settings_is_unset (settings, param)) + { + GVariant *parameters; + + parameters = tp_account_dup_parameters_vardict ( + settings->priv->account); + result = g_variant_lookup_value (parameters, param, NULL); + g_variant_unref (parameters); + + if (result != NULL) + /* g_variant_lookup_value() is (transfer full) */ + return result; + } + + /* fallback to the default */ + return tpaw_account_settings_dup_default (settings, param); +} + +void +tpaw_account_settings_unset (TpawAccountSettings *settings, + const gchar *param) +{ + gchar *v; + if (tpaw_account_settings_is_unset (settings, param)) + return; + + if (settings->priv->supports_sasl && !tp_strdiff (param, "password")) + { + g_free (settings->priv->password); + settings->priv->password = NULL; + return; + } + + v = g_strdup (param); + + g_array_append_val (settings->priv->unset_parameters, v); + g_hash_table_remove (settings->priv->parameters, param); +} + +void +tpaw_account_settings_discard_changes (TpawAccountSettings *settings) +{ + g_hash_table_remove_all (settings->priv->parameters); + tpaw_account_settings_free_unset_parameters (settings); + + g_free (settings->priv->password); + settings->priv->password = g_strdup (settings->priv->password_original); + + if (settings->priv->account != NULL) + settings->priv->uri_scheme_tel = account_has_uri_scheme_tel ( + settings->priv->account); + else + settings->priv->uri_scheme_tel = FALSE; +} + +gchar * +tpaw_account_settings_dup_string (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *v; + gchar *result = NULL; + + if (!tp_strdiff (param, "password") && settings->priv->supports_sasl) + { + return g_strdup (settings->priv->password); + } + + v = tpaw_account_settings_dup (settings, param); + if (v == NULL) + return NULL; + + if (g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)) + result = g_variant_dup_string (v, NULL); + + g_variant_unref (v); + return result; +} + +GStrv +tpaw_account_settings_dup_strv (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *v; + GStrv result = NULL; + + v = tpaw_account_settings_dup (settings, param); + if (v == NULL) + return NULL; + + if (g_variant_is_of_type (v, G_VARIANT_TYPE_STRING_ARRAY)) + result = g_variant_dup_strv (v, NULL); + + g_variant_unref (v); + return result; +} + +gint32 +tpaw_account_settings_get_int32 (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *v; + gint32 ret = 0; + + v = tpaw_account_settings_dup (settings, param); + if (v == NULL) + return 0; + + if (g_variant_is_of_type (v, G_VARIANT_TYPE_BYTE)) + ret = g_variant_get_byte (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT32)) + ret = g_variant_get_int32 (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT32)) + ret = MIN (g_variant_get_uint32 (v), G_MAXINT32); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT64)) + ret = CLAMP (g_variant_get_int64 (v), G_MININT32, G_MAXINT32); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT64)) + ret = MIN (g_variant_get_uint64 (v), G_MAXINT32); + else + { + gchar *tmp; + + tmp = g_variant_print (v, TRUE); + DEBUG ("Unsupported type for param '%s': %s'", param, tmp); + g_free (tmp); + } + + g_variant_unref (v); + return ret; +} + +gint64 +tpaw_account_settings_get_int64 (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *v; + gint64 ret = 0; + + v = tpaw_account_settings_dup (settings, param); + if (v == NULL) + return 0; + + if (g_variant_is_of_type (v, G_VARIANT_TYPE_BYTE)) + ret = g_variant_get_byte (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT32)) + ret = g_variant_get_int32 (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT32)) + ret = g_variant_get_uint32 (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT64)) + ret = g_variant_get_int64 (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT64)) + ret = MIN (g_variant_get_uint64 (v), G_MAXINT64); + else + { + gchar *tmp; + + tmp = g_variant_print (v, TRUE); + DEBUG ("Unsupported type for param '%s': %s'", param, tmp); + g_free (tmp); + } + + g_variant_unref (v); + return ret; +} + +guint32 +tpaw_account_settings_get_uint32 (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *v; + guint32 ret = 0; + + v = tpaw_account_settings_dup (settings, param); + if (v == NULL) + return 0; + + if (g_variant_is_of_type (v, G_VARIANT_TYPE_BYTE)) + ret = g_variant_get_byte (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT32)) + ret = MAX (0, g_variant_get_int32 (v)); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT32)) + ret = g_variant_get_uint32 (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT64)) + ret = CLAMP (g_variant_get_int64 (v), 0, G_MAXUINT32); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT64)) + ret = MIN (g_variant_get_uint64 (v), G_MAXUINT32); + else + { + gchar *tmp; + + tmp = g_variant_print (v, TRUE); + DEBUG ("Unsupported type for param '%s': %s'", param, tmp); + g_free (tmp); + } + + g_variant_unref (v); + return ret; +} + +guint64 +tpaw_account_settings_get_uint64 (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *v; + guint64 ret = 0; + + v = tpaw_account_settings_dup (settings, param); + if (v == NULL) + return 0; + + if (g_variant_is_of_type (v, G_VARIANT_TYPE_BYTE)) + ret = g_variant_get_byte (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT32)) + ret = MAX (0, g_variant_get_int32 (v)); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT32)) + ret = g_variant_get_uint32 (v); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_INT64)) + ret = MAX (0, g_variant_get_int64 (v)); + else if (g_variant_is_of_type (v, G_VARIANT_TYPE_UINT64)) + ret = g_variant_get_uint64 (v); + else + { + gchar *tmp; + + tmp = g_variant_print (v, TRUE); + DEBUG ("Unsupported type for param '%s': %s'", param, tmp); + g_free (tmp); + } + + + g_variant_unref (v); + return ret; +} + +gboolean +tpaw_account_settings_get_boolean (TpawAccountSettings *settings, + const gchar *param) +{ + GVariant *v; + gboolean result = FALSE; + + v = tpaw_account_settings_dup (settings, param); + if (v == NULL) + return result; + + if (g_variant_is_of_type (v, G_VARIANT_TYPE_BOOLEAN)) + result = g_variant_get_boolean (v); + + return result; +} + +void +tpaw_account_settings_set (TpawAccountSettings *settings, + const gchar *param, + GVariant *v) +{ + g_return_if_fail (param != NULL); + g_return_if_fail (v != NULL); + + g_variant_ref_sink (v); + + if (!tp_strdiff (param, "password") && settings->priv->supports_sasl && + g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)) + { + g_free (settings->priv->password); + settings->priv->password = g_variant_dup_string (v, NULL); + g_variant_unref (v); + } + else + { + g_hash_table_insert (settings->priv->parameters, g_strdup (param), v); + } + + account_settings_remove_from_unset (settings, param); +} + +static void +account_settings_display_name_set_cb (GObject *src, + GAsyncResult *res, + gpointer user_data) +{ + GError *error = NULL; + TpAccount *account = TP_ACCOUNT (src); + GSimpleAsyncResult *set_result = user_data; + + tp_account_set_display_name_finish (account, res, &error); + + if (error != NULL) + { + g_simple_async_result_set_from_error (set_result, error); + g_error_free (error); + } + + g_simple_async_result_complete (set_result); + g_object_unref (set_result); +} + +void +tpaw_account_settings_set_display_name_async ( + TpawAccountSettings *settings, + const gchar *name, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *result; + + g_return_if_fail (name != NULL); + + result = g_simple_async_result_new (G_OBJECT (settings), + callback, user_data, tpaw_account_settings_set_display_name_finish); + + if (!tp_strdiff (name, settings->priv->display_name)) + { + /* Nothing to do */ + g_simple_async_result_complete_in_idle (result); + g_object_unref (result); + return; + } + + g_free (settings->priv->display_name); + settings->priv->display_name = g_strdup (name); + + if (settings->priv->account == NULL) + { + g_simple_async_result_complete_in_idle (result); + g_object_unref (result); + return; + } + + tp_account_set_display_name_async (settings->priv->account, name, + account_settings_display_name_set_cb, result); +} + +gboolean +tpaw_account_settings_set_display_name_finish ( + TpawAccountSettings *settings, + GAsyncResult *result, + GError **error) +{ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), + error)) + return FALSE; + + g_return_val_if_fail (g_simple_async_result_is_valid (result, + G_OBJECT (settings), tpaw_account_settings_set_display_name_finish), + FALSE); + + return TRUE; +} + +static void +account_settings_icon_name_set_cb (GObject *src, + GAsyncResult *res, + gpointer user_data) +{ + GError *error = NULL; + TpAccount *account = TP_ACCOUNT (src); + GSimpleAsyncResult *set_result = user_data; + + tp_account_set_icon_name_finish (account, res, &error); + + if (error != NULL) + { + g_simple_async_result_set_from_error (set_result, error); + g_error_free (error); + } + + g_simple_async_result_complete (set_result); + g_object_unref (set_result); +} + +void +tpaw_account_settings_set_icon_name_async ( + TpawAccountSettings *settings, + const gchar *name, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *result; + + g_return_if_fail (name != NULL); + + result = g_simple_async_result_new (G_OBJECT (settings), + callback, user_data, tpaw_account_settings_set_icon_name_finish); + + if (settings->priv->account == NULL) + { + if (settings->priv->icon_name != NULL) + g_free (settings->priv->icon_name); + + settings->priv->icon_name = g_strdup (name); + + g_simple_async_result_complete_in_idle (result); + g_object_unref (result); + + return; + } + + tp_account_set_icon_name_async (settings->priv->account, name, + account_settings_icon_name_set_cb, result); +} + +gboolean +tpaw_account_settings_set_icon_name_finish ( + TpawAccountSettings *settings, + GAsyncResult *result, + GError **error) +{ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), + error)) + return FALSE; + + g_return_val_if_fail (g_simple_async_result_is_valid (result, + G_OBJECT (settings), tpaw_account_settings_set_icon_name_finish), + FALSE); + + return TRUE; +} + +static void +tpaw_account_settings_processed_password (GObject *source, + GAsyncResult *result, + gpointer user_data, + gpointer finish_func) +{ + TpawAccountSettings *settings = TPAW_ACCOUNT_SETTINGS (user_data); + GSimpleAsyncResult *r; + GError *error = NULL; + gboolean (*func) (TpAccount *source, GAsyncResult *result, GError **error) = + finish_func; + + g_free (settings->priv->password_original); + settings->priv->password_original = g_strdup (settings->priv->password); + + if (!func (TP_ACCOUNT (source), result, &error)) + { + g_simple_async_result_set_from_error (settings->priv->apply_result, + error); + g_error_free (error); + } + + tpaw_account_settings_discard_changes (settings); + + r = settings->priv->apply_result; + settings->priv->apply_result = NULL; + + g_simple_async_result_complete (r); + g_object_unref (r); +} + +static void +tpaw_account_settings_set_password_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + tpaw_account_settings_processed_password (source, result, user_data, + tpaw_keyring_set_account_password_finish); +} + +static void +tpaw_account_settings_delete_password_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + tpaw_account_settings_processed_password (source, result, user_data, + tpaw_keyring_delete_account_password_finish); +} + +static void +update_account_uri_schemes (TpawAccountSettings *self) +{ + if (self->priv->uri_scheme_tel == account_has_uri_scheme_tel ( + self->priv->account)) + return; + + tp_account_set_uri_scheme_association_async (self->priv->account, "tel", + self->priv->uri_scheme_tel, NULL, NULL); +} + +static void +set_service_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GError *error = NULL; + + if (!tp_account_set_service_finish (TP_ACCOUNT (source), result, &error)) + { + DEBUG ("Failed to set Account.Service: %s", error->message); + g_error_free (error); + } +} + +static void +update_account_service (TpawAccountSettings *self) +{ + if (!self->priv->update_service) + return; + + tp_account_set_service_async (self->priv->account, + self->priv->service != NULL ? self->priv->service : "", + set_service_cb, self); +} + +static void +tpaw_account_settings_account_updated (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpawAccountSettings *settings = TPAW_ACCOUNT_SETTINGS (user_data); + GSimpleAsyncResult *r; + GError *error = NULL; + GStrv reconnect_required = NULL; + + if (!tp_account_update_parameters_vardict_finish (TP_ACCOUNT (source), + result, &reconnect_required, &error)) + { + g_simple_async_result_set_from_error (settings->priv->apply_result, + error); + g_error_free (error); + goto out; + } + + update_account_uri_schemes (settings); + update_account_service (settings); + + g_simple_async_result_set_op_res_gboolean (settings->priv->apply_result, + g_strv_length (reconnect_required) > 0); + + /* Only set the password in the keyring if the CM supports SASL. */ + if (settings->priv->supports_sasl) + { + if (settings->priv->password != NULL) + { + /* FIXME: we shouldn't save the password if we + * can't (MaySaveResponse=False) but we don't have API to check that + * at this point (fdo #35382). */ + tpaw_keyring_set_account_password_async (settings->priv->account, + settings->priv->password, settings->priv->remember_password, + tpaw_account_settings_set_password_cb, settings); + } + else + { + tpaw_keyring_delete_account_password_async ( + settings->priv->account, + tpaw_account_settings_delete_password_cb, settings); + } + + return; + } + +out: + tpaw_account_settings_discard_changes (settings); + + r = settings->priv->apply_result; + settings->priv->apply_result = NULL; + + g_simple_async_result_complete (r); + g_object_unref (r); + g_strfreev (reconnect_required); +} + +static void +tpaw_account_settings_created_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpawAccountSettings *settings = TPAW_ACCOUNT_SETTINGS (user_data); + GError *error = NULL; + GSimpleAsyncResult *r; + + settings->priv->account = tp_account_request_create_account_finish ( + TP_ACCOUNT_REQUEST (source), result, &error); + + if (settings->priv->account == NULL) + { + g_simple_async_result_set_from_error (settings->priv->apply_result, + error); + } + else + { + if (settings->priv->supports_sasl && settings->priv->password != NULL) + { + /* Save the password before connecting */ + /* FIXME: we shouldn't save the password if we + * can't (MaySaveResponse=False) but we don't have API to check that + * at this point (fdo #35382). */ + tpaw_keyring_set_account_password_async (settings->priv->account, + settings->priv->password, settings->priv->remember_password, + tpaw_account_settings_set_password_cb, + settings); + return; + } + + update_account_uri_schemes (settings); + + tpaw_account_settings_discard_changes (settings); + } + + r = settings->priv->apply_result; + settings->priv->apply_result = NULL; + + g_simple_async_result_complete (r); + g_object_unref (r); +} + +static void +tpaw_account_settings_do_create_account (TpawAccountSettings *self) +{ + TpAccountRequest *account_req; + GHashTableIter iter; + gpointer k, v; + + account_req = tp_account_request_new (self->priv->account_manager, + self->priv->cm_name, self->priv->protocol, "New Account"); + + tp_account_request_set_icon_name (account_req, self->priv->icon_name); + + tp_account_request_set_display_name (account_req, + self->priv->display_name); + + if (self->priv->service != NULL) + tp_account_request_set_service (account_req, self->priv->service); + + g_hash_table_iter_init (&iter, self->priv->parameters); + while (g_hash_table_iter_next (&iter, &k, &v)) + { + const gchar *key = k; + GVariant *value = v; + + tp_account_request_set_parameter (account_req, key, value); + } + + if (self->priv->storage_provider != NULL) + { + tp_account_request_set_storage_provider (account_req, + self->priv->storage_provider); + } + + tp_account_request_create_account_async (account_req, + tpaw_account_settings_created_cb, self); + g_object_unref (account_req); +} + +static GVariant * +build_parameters_variant (TpawAccountSettings *self) +{ + GVariantBuilder *builder; + GHashTableIter iter; + gpointer k, v; + + builder = g_variant_builder_new (G_VARIANT_TYPE_VARDICT); + + g_hash_table_iter_init (&iter, self->priv->parameters); + while (g_hash_table_iter_next (&iter, &k, &v)) + { + const gchar *key = k; + GVariant *value = v; + GVariant *entry; + + entry = g_variant_new_dict_entry (g_variant_new_string (key), + g_variant_new_variant (value)); + + g_variant_builder_add_value (builder, entry); + } + + return g_variant_builder_end (builder); +} + +void +tpaw_account_settings_apply_async (TpawAccountSettings *settings, + GAsyncReadyCallback callback, + gpointer user_data) +{ + if (settings->priv->apply_result != NULL) + { + g_simple_async_report_error_in_idle (G_OBJECT (settings), + callback, user_data, + G_IO_ERROR, G_IO_ERROR_PENDING, "Applying already in progress"); + return; + } + + settings->priv->apply_result = g_simple_async_result_new ( + G_OBJECT (settings), callback, user_data, + tpaw_account_settings_apply_finish); + + /* We'll have to reconnect only if we change none DBus_Property on an + * existing account. */ + g_simple_async_result_set_op_res_gboolean (settings->priv->apply_result, + FALSE); + + if (settings->priv->account == NULL) + { + g_assert (settings->priv->apply_result != NULL && + settings->priv->account == NULL); + + tpaw_account_settings_do_create_account (settings); + } + else + { + tp_account_update_parameters_vardict_async (settings->priv->account, + build_parameters_variant (settings), + (const gchar **) settings->priv->unset_parameters->data, + tpaw_account_settings_account_updated, settings); + } +} + +gboolean +tpaw_account_settings_apply_finish (TpawAccountSettings *settings, + GAsyncResult *result, + gboolean *reconnect_required, + GError **error) +{ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), + error)) + return FALSE; + + g_return_val_if_fail (g_simple_async_result_is_valid (result, + G_OBJECT (settings), tpaw_account_settings_apply_finish), FALSE); + + if (reconnect_required != NULL) + *reconnect_required = g_simple_async_result_get_op_res_gboolean ( + G_SIMPLE_ASYNC_RESULT (result)); + + return TRUE; +} + +gboolean +tpaw_account_settings_has_account (TpawAccountSettings *settings, + TpAccount *account) +{ + const gchar *account_path; + const gchar *priv_account_path; + + g_return_val_if_fail (TPAW_IS_ACCOUNT_SETTINGS (settings), FALSE); + g_return_val_if_fail (TP_IS_ACCOUNT (account), FALSE); + + if (settings->priv->account == NULL) + return FALSE; + + account_path = tp_proxy_get_object_path (TP_PROXY (account)); + priv_account_path = tp_proxy_get_object_path ( + TP_PROXY (settings->priv->account)); + + return (!tp_strdiff (account_path, priv_account_path)); +} + +void +tpaw_account_settings_set_regex (TpawAccountSettings *settings, + const gchar *param, + const gchar *pattern) +{ + GRegex *regex; + GError *error = NULL; + + regex = g_regex_new (pattern, 0, 0, &error); + if (regex == NULL) + { + g_warning ("Failed to create reg exp: %s", error->message); + g_error_free (error); + return; + } + + g_hash_table_insert (settings->priv->param_regexps, g_strdup (param), + regex); +} + +gboolean +tpaw_account_settings_parameter_is_valid ( + TpawAccountSettings *settings, + const gchar *param) +{ + const GRegex *regex; + + g_return_val_if_fail (TPAW_IS_ACCOUNT_SETTINGS (settings), FALSE); + + if (g_list_find_custom (settings->priv->required_params, param, + (GCompareFunc) g_strcmp0)) + { + /* first, look if it's set in our own parameters */ + if (g_hash_table_lookup (settings->priv->parameters, param) != NULL) + goto test_regex; + + /* if we did not unset the parameter, look if it's in the account */ + if (settings->priv->account != NULL && + !tpaw_account_settings_is_unset (settings, param)) + { + const GHashTable *account_params; + + account_params = tp_account_get_parameters ( + settings->priv->account); + if (tp_asv_lookup (account_params, param)) + goto test_regex; + } + + return FALSE; + } + +test_regex: + /* test whether parameter value matches its regex */ + regex = g_hash_table_lookup (settings->priv->param_regexps, param); + if (regex) + { + gchar *value; + gboolean match; + + value = tpaw_account_settings_dup_string (settings, param); + if (value == NULL) + return FALSE; + + match = g_regex_match (regex, value, 0, NULL); + + g_free (value); + return match; + } + + return TRUE; +} + +gboolean +tpaw_account_settings_is_valid (TpawAccountSettings *settings) +{ + const gchar *param; + GHashTableIter iter; + GList *l; + + g_return_val_if_fail (TPAW_IS_ACCOUNT_SETTINGS (settings), FALSE); + + for (l = settings->priv->required_params; l; l = l->next) + { + if (!tpaw_account_settings_parameter_is_valid (settings, l->data)) + return FALSE; + } + + g_hash_table_iter_init (&iter, settings->priv->param_regexps); + while (g_hash_table_iter_next (&iter, (gpointer *) ¶m, NULL)) + { + if (!tpaw_account_settings_parameter_is_valid (settings, param)) + return FALSE; + } + + return TRUE; +} + +TpProtocol * +tpaw_account_settings_get_tp_protocol (TpawAccountSettings *self) +{ + return self->priv->protocol_obj; +} + +gboolean +tpaw_account_settings_supports_sasl (TpawAccountSettings *self) +{ + return self->priv->supports_sasl; +} + +gboolean +tpaw_account_settings_param_is_supported (TpawAccountSettings *self, + const gchar *param) +{ + return tp_protocol_has_param (self->priv->protocol_obj, param); +} + +void +tpaw_account_settings_set_uri_scheme_tel (TpawAccountSettings *self, + gboolean associate) +{ + self->priv->uri_scheme_tel = associate; +} + +gboolean +tpaw_account_settings_has_uri_scheme_tel ( + TpawAccountSettings *self) +{ + return self->priv->uri_scheme_tel; +} + +void +tpaw_account_settings_set_storage_provider (TpawAccountSettings *self, + const gchar *storage) +{ + g_free (self->priv->storage_provider); + self->priv->storage_provider = g_strdup (storage); +} + +void +tpaw_account_settings_set_remember_password (TpawAccountSettings *self, + gboolean remember) +{ + self->priv->remember_password = remember; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-settings.h b/telepathy-account-widgets/tp-account-widgets/tpaw-account-settings.h new file mode 100644 index 0000000..d8e567f --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-settings.h @@ -0,0 +1,207 @@ +/* + * tpaw-account-settings.h - Header for TpawAccountSettings + * Copyright (C) 2009 Collabora Ltd. + * @author Sjoerd Simons + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_ACCOUNT_SETTINGS_H__ +#define __TPAW_ACCOUNT_SETTINGS_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +typedef struct _TpawAccountSettings TpawAccountSettings; +typedef struct _TpawAccountSettingsPriv TpawAccountSettingsPriv; +typedef struct _TpawAccountSettingsClass TpawAccountSettingsClass; + +struct _TpawAccountSettingsClass { + GObjectClass parent_class; +}; + +struct _TpawAccountSettings { + GObject parent; + + /**/ + TpawAccountSettingsPriv *priv; +}; + +GType tpaw_account_settings_get_type (void); + +/* TYPE MACROS */ +#define TPAW_TYPE_ACCOUNT_SETTINGS \ + (tpaw_account_settings_get_type ()) +#define TPAW_ACCOUNT_SETTINGS(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + TPAW_TYPE_ACCOUNT_SETTINGS, TpawAccountSettings)) +#define TPAW_ACCOUNT_SETTINGS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), TPAW_TYPE_ACCOUNT_SETTINGS, \ + TpawAccountSettingsClass)) +#define TPAW_IS_ACCOUNT_SETTINGS(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), TPAW_TYPE_ACCOUNT_SETTINGS)) +#define TPAW_IS_ACCOUNT_SETTINGS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), TPAW_TYPE_ACCOUNT_SETTINGS)) +#define TPAW_ACCOUNT_SETTINGS_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), TPAW_TYPE_ACCOUNT_SETTINGS, \ + TpawAccountSettingsClass)) + +TpawAccountSettings * tpaw_account_settings_new ( + const gchar *connection_manager, + const gchar *protocol, + const gchar *service, + const char *display_name); + +TpawAccountSettings * tpaw_account_settings_new_for_account ( + TpAccount *account); + +gboolean tpaw_account_settings_is_ready (TpawAccountSettings *settings); + +const gchar *tpaw_account_settings_get_cm (TpawAccountSettings *settings); +const gchar *tpaw_account_settings_get_protocol ( + TpawAccountSettings *settings); + +const gchar *tpaw_account_settings_get_service ( + TpawAccountSettings *settings); + +void tpaw_account_settings_set_service (TpawAccountSettings *settings, + const gchar *service); + +TpAccount *tpaw_account_settings_get_account ( + TpawAccountSettings *settings); + +gboolean tpaw_account_settings_has_account ( + TpawAccountSettings *settings, TpAccount *account); + +GList * tpaw_account_settings_dup_tp_params ( + TpawAccountSettings *settings); + +gboolean tpaw_account_settings_have_tp_param ( + TpawAccountSettings *settings, + const gchar *param); + +void tpaw_account_settings_unset (TpawAccountSettings *settings, + const gchar *param); + +void tpaw_account_settings_discard_changes ( + TpawAccountSettings *settings); + +const gchar * +tpaw_account_settings_get_dbus_signature (TpawAccountSettings *setting, + const gchar *param); + +GVariant * +tpaw_account_settings_dup_default (TpawAccountSettings *settings, + const gchar *param); + +gchar * tpaw_account_settings_dup_string ( + TpawAccountSettings *settings, + const gchar *param); +GStrv tpaw_account_settings_dup_strv ( + TpawAccountSettings *settings, + const gchar *param); + +gint32 tpaw_account_settings_get_int32 (TpawAccountSettings *settings, + const gchar *param); +gint64 tpaw_account_settings_get_int64 (TpawAccountSettings *settings, + const gchar *param); +guint32 tpaw_account_settings_get_uint32 (TpawAccountSettings *settings, + const gchar *param); +guint64 tpaw_account_settings_get_uint64 (TpawAccountSettings *settings, + const gchar *param); +gboolean tpaw_account_settings_get_boolean (TpawAccountSettings *settings, + const gchar *param); + +void tpaw_account_settings_set (TpawAccountSettings *settings, + const gchar *param, + GVariant *v); + +gchar *tpaw_account_settings_get_icon_name ( + TpawAccountSettings *settings); + +void tpaw_account_settings_set_icon_name_async ( + TpawAccountSettings *settings, + const gchar *name, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean tpaw_account_settings_set_icon_name_finish ( + TpawAccountSettings *settings, + GAsyncResult *result, + GError **error); + +const gchar *tpaw_account_settings_get_display_name ( + TpawAccountSettings *settings); + +void tpaw_account_settings_set_display_name_async ( + TpawAccountSettings *settings, + const gchar *name, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean tpaw_account_settings_set_display_name_finish ( + TpawAccountSettings *settings, + GAsyncResult *result, + GError **error); + +void tpaw_account_settings_apply_async (TpawAccountSettings *settings, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean tpaw_account_settings_apply_finish ( + TpawAccountSettings *settings, + GAsyncResult *result, + gboolean *reconnect_required, + GError **error); + +void tpaw_account_settings_set_regex (TpawAccountSettings *settings, + const gchar *param, + const gchar *regex); + +gboolean tpaw_account_settings_parameter_is_valid ( + TpawAccountSettings *settings, + const gchar *param); + +gboolean tpaw_account_settings_is_valid (TpawAccountSettings *settings); + +TpProtocol * tpaw_account_settings_get_tp_protocol ( + TpawAccountSettings *settings); + +gboolean tpaw_account_settings_supports_sasl (TpawAccountSettings *self); + +gboolean tpaw_account_settings_param_is_supported ( + TpawAccountSettings *self, + const gchar *param); + +void tpaw_account_settings_set_uri_scheme_tel (TpawAccountSettings *self, + gboolean associate); + +gboolean tpaw_account_settings_has_uri_scheme_tel ( + TpawAccountSettings *self); + +void tpaw_account_settings_set_storage_provider ( + TpawAccountSettings *self, + const gchar *storage); + +void tpaw_account_settings_set_remember_password ( + TpawAccountSettings *self, + gboolean remember); + +G_END_DECLS + +#endif /* #ifndef __TPAW_ACCOUNT_SETTINGS_H__*/ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-aim.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-aim.ui new file mode 100644 index 0000000..4adcba8 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-aim.ui @@ -0,0 +1,309 @@ + + + + + + 5222 + 65555 + 1 + 10 + + + True + vertical + 6 + + + True + 12 + 6 + + + True + 1 + Pass_word + True + entry_password + 6 + + + + 2 + + + + + True + 1 + Screen _Name + True + entry_screenname + + + + + + + + True + True + 280 + True + + + 1 + + + + + True + True + False + 280 + True + 6 + + + 1 + 2 + + + + + True + 0 + 3 + <b>Example:</b> MyScreenName + True + + + + + + 1 + 1 + + + + + Remember password + True + True + False + True + True + + + 1 + 3 + + + + + + + + + + + False + False + 0 + + + + + True + True + + + True + 12 + 6 + + + True + True + adjustment1 + 1 + True + True + + + 1 + 1 + + + + + True + 1 + _Port + True + spinbutton_port + + + + 0 + 1 + + + + + True + True + True + + + 1 + 0 + + + + + True + 1 + _Server + True + entry_server + + + + 0 + 0 + + + + + + + True + Advanced + + + + + + + + False + False + 1 + + + + + True + vertical + 6 + + + True + 0 + What is your AIM screen name? + + + 0 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 3 + 12 + + + True + vertical + 4 + + + True + True + 280 + True + + + 0 + + + + + True + 0.10000000149011612 + <b>Example:</b> MyScreenName + True + + + + + + 1 + + + + + + + 1 + + + + + True + 0 + What is your AIM password? + + + 2 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 12 + + + True + True + False + 280 + True + + + + + 3 + + + + + Remember password + True + True + False + True + True + + + 4 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-generic.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-generic.ui new file mode 100644 index 0000000..c37da5e --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-generic.ui @@ -0,0 +1,122 @@ + + + + + True + False + 6 + + + True + False + 6 + 12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + False + 0 + + + + + True + True + + + 150 + True + True + never + in + + + True + False + 6 + queue + + + True + False + 6 + 12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + False + Advanced + + + + + + + + True + True + 1 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-groupwise.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-groupwise.ui new file mode 100644 index 0000000..3902b6a --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-groupwise.ui @@ -0,0 +1,303 @@ + + + + + + 65535 + 1 + 10 + + + True + vertical + 6 + + + True + 12 + 6 + + + True + 1 + Pass_word + True + 6 + + + + 2 + + + + + True + 1 + Login I_D + True + entry_id + + + + + + + + True + True + 280 + True + + + 1 + + + + + True + 0 + 3 + <b>Example:</b> username + True + + + + + + 1 + 1 + + + + + True + True + False + 280 + True + 6 + + + 1 + 2 + + + + + Remember password + True + True + False + True + True + + + 1 + 3 + + + + + + + + + + + False + 0 + + + + + True + True + + + True + 6 + 6 + + + True + 1 + _Port + True + spinbutton_port + + + + 1 + + + + + True + 1 + _Server + True + entry_server + + + + 0 + + + + + True + True + True + + + 1 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + adjustment1 + 1 + True + + + 1 + 1 + + + + + + + True + Advanced + + + + + + + + False + False + 1 + + + + + True + vertical + 6 + + + True + 0 + What is your GroupWise User ID? + + + 0 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 3 + 12 + + + True + vertical + 4 + + + True + True + 280 + True + + + 0 + + + + + True + 0.10000000149011612 + <b>Example:</b> username + True + + + + + + 1 + + + + + + + 1 + + + + + True + 0 + What is your GroupWise password? + + + 2 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 12 + + + True + True + False + 280 + True + + + + + 3 + + + + + Remember password + True + True + False + True + True + + + 4 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-icq.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-icq.ui new file mode 100644 index 0000000..ce510bf --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-icq.ui @@ -0,0 +1,332 @@ + + + + + + 5222 + 65555 + 1 + 10 + + + True + vertical + 6 + + + True + 12 + 6 + + + True + 1 + Pass_word + True + entry_password + 6 + + + + 2 + + + + + True + 1 + ICQ _UIN + True + entry_uin + + + + + + + + True + True + 280 + True + + + 1 + + + + + True + True + False + 280 + True + 6 + + + 1 + 2 + + + + + True + 0 + 3 + <b>Example:</b> 123456789 + True + + + + + + 1 + 1 + + + + + Remember password + True + True + False + True + True + + + 1 + 3 + + + + + + + + + + + False + False + 0 + + + + + True + True + + + True + 12 + 6 + + + True + 1 + Ch_aracter set + True + entry_charset + + + + + + + + True + True + adjustment1 + 1 + True + + + 1 + 2 + + + + + True + True + True + + + 1 + 1 + + + + + True + 1 + _Port + True + spinbutton_port + + + + 2 + 0 + + + + + True + 1 + _Server + True + entry_server + + + + 1 + 0 + + + + + True + True + True + + + 1 + + + + + + + True + Advanced + + + + + + + + False + False + 1 + + + + + True + vertical + 6 + + + True + 0 + What is your ICQ UIN? + + + 0 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 3 + 12 + + + True + vertical + 4 + + + True + True + 280 + True + + + 0 + + + + + True + 0.10000000149011612 + <b>Example:</b> 123456789 + True + + + + + + 1 + + + + + + + 1 + + + + + True + 0 + What is your ICQ password? + + + 2 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 12 + + + True + True + False + 280 + True + + + + + 3 + + + + + Remember password + True + True + False + True + True + + + 4 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.c b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.c new file mode 100644 index 0000000..b6ef877 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.c @@ -0,0 +1,242 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#include "config.h" +#include "tpaw-account-widget-irc.h" + +#include "tpaw-account-widget-private.h" +#include "tpaw-builder.h" + +#define DEBUG_FLAG TPAW_DEBUG_ACCOUNT | TPAW_DEBUG_IRC +#include "tpaw-debug.h" + +typedef struct { + TpawAccountWidget *self; + + GtkWidget *vbox_settings; + + GtkWidget *network_chooser; +} TpawAccountWidgetIrc; + +static void +account_widget_irc_destroy_cb (GtkWidget *widget, + TpawAccountWidgetIrc *settings) +{ + g_slice_free (TpawAccountWidgetIrc, settings); +} + +static void +account_widget_irc_setup (TpawAccountWidgetIrc *settings) +{ + gchar *nick = NULL; + gchar *fullname = NULL; + TpawAccountSettings *ac_settings; + + g_object_get (settings->self, "settings", &ac_settings, NULL); + + nick = tpaw_account_settings_dup_string (ac_settings, "account"); + fullname = tpaw_account_settings_dup_string (ac_settings, + "fullname"); + + if (nick == NULL) + { + nick = g_strdup (g_get_user_name ()); + + tpaw_account_settings_set (ac_settings, + "account", g_variant_new_string (nick)); + } + + if (fullname == NULL) + { + fullname = g_strdup (g_get_real_name ()); + + if (fullname == NULL) + fullname = g_strdup (nick); + + tpaw_account_settings_set (ac_settings, + "fullname", g_variant_new_string (fullname)); + } + + g_free (nick); + g_free (fullname); +} + +static void +network_changed_cb (TpawIrcNetworkChooser *chooser, + TpawAccountWidgetIrc *settings) +{ + tpaw_account_widget_changed (settings->self); +} + +/** + * set_password_prompt_if_needed: + * + * If @password is not empty, this function sets the 'password-prompt' param + * on @ac_settings. This will ensure that Idle actually asks for the password + * when connecting. + * + * Return: %TRUE if the password-prompt param has been changed + */ +static gboolean +set_password_prompt_if_needed (TpawAccountSettings *ac_settings, + const gchar *password) +{ + gboolean prompt; + + prompt = !tp_str_empty (password); + + if (prompt == tpaw_account_settings_get_boolean (ac_settings, + "password-prompt")) + return FALSE; + + tpaw_account_settings_set (ac_settings, "password-prompt", + g_variant_new_boolean (prompt)); + + return TRUE; +} + +static void +entry_password_changed_cb (GtkEntry *entry, + TpawAccountWidgetIrc *settings) +{ + const gchar *password; + TpawAccountSettings *ac_settings; + + g_object_get (settings->self, "settings", &ac_settings, NULL); + + password = gtk_entry_get_text (entry); + + set_password_prompt_if_needed (ac_settings, password); + + g_object_unref (ac_settings); +} + +TpawIrcNetworkChooser * +tpaw_account_widget_irc_build (TpawAccountWidget *self, + const char *filename, + GtkWidget **table_common_settings, + GtkWidget **box) +{ + TpawAccountWidgetIrc *settings; + TpawAccountSettings *ac_settings; + GtkWidget *entry_password; + gchar *password; + + settings = g_slice_new0 (TpawAccountWidgetIrc); + settings->self = self; + + self->ui_details->gui = tpaw_builder_get_resource (filename, + "table_irc_settings", table_common_settings, + "vbox_irc", box, + "table_irc_settings", &settings->vbox_settings, + "entry_password", &entry_password, + NULL); + + /* Add network chooser button */ + g_object_get (settings->self, "settings", &ac_settings, NULL); + + settings->network_chooser = tpaw_irc_network_chooser_new (ac_settings); + + g_signal_connect (settings->network_chooser, "changed", + G_CALLBACK (network_changed_cb), settings); + + gtk_grid_attach (GTK_GRID (*table_common_settings), + settings->network_chooser, 1, 0, 1, 1); + + gtk_widget_show (settings->network_chooser); + + account_widget_irc_setup (settings); + + tpaw_account_widget_handle_params (self, + "entry_nick", "account", + "entry_fullname", "fullname", + "entry_password", "password", + "entry_quit_message", "quit-message", + "entry_username", "username", + NULL); + + tpaw_builder_connect (self->ui_details->gui, settings, + "table_irc_settings", "destroy", account_widget_irc_destroy_cb, + NULL); + + self->ui_details->default_focus = g_strdup ("entry_nick"); + + g_object_unref (ac_settings); + + /* Automatically set password-prompt when needed */ + password = tpaw_account_settings_dup_string (ac_settings, "password"); + + if (set_password_prompt_if_needed (ac_settings, password)) + { + /* Apply right now to save password-prompt */ + tpaw_account_settings_apply_async (ac_settings, NULL, NULL); + } + + g_free (password); + + g_signal_connect (entry_password, "changed", + G_CALLBACK (entry_password_changed_cb), settings); + + return TPAW_IRC_NETWORK_CHOOSER (settings->network_chooser); +} + +TpawIrcNetworkChooser * +tpaw_account_widget_irc_build_simple (TpawAccountWidget *self, + const char *filename, + GtkWidget **box) +{ + TpawAccountWidgetIrc *settings; + TpawAccountSettings *ac_settings; + GtkAlignment *alignment; + + settings = g_slice_new0 (TpawAccountWidgetIrc); + settings->self = self; + + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_irc_simple", box, + "alignment_network_simple", &alignment, + NULL); + + /* Add network chooser button */ + g_object_get (settings->self, "settings", &ac_settings, NULL); + + settings->network_chooser = tpaw_irc_network_chooser_new (ac_settings); + + g_signal_connect (settings->network_chooser, "changed", + G_CALLBACK (network_changed_cb), settings); + + gtk_container_add (GTK_CONTAINER (alignment), settings->network_chooser); + + gtk_widget_show (settings->network_chooser); + + tpaw_account_widget_handle_params (self, + "entry_nick_simple", "account", + NULL); + + tpaw_builder_connect (self->ui_details->gui, settings, + "vbox_irc_simple", "destroy", account_widget_irc_destroy_cb, + NULL); + + self->ui_details->default_focus = g_strdup ("entry_nick_simple"); + + g_object_unref (ac_settings); + + return TPAW_IRC_NETWORK_CHOOSER (settings->network_chooser); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.h b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.h new file mode 100644 index 0000000..f913cbc --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#ifndef __TPAW_ACCOUNT_WIDGET_IRC_H__ +#define __TPAW_ACCOUNT_WIDGET_IRC_H__ + +#include "tpaw-account-widget.h" +#include "tpaw-irc-network-chooser.h" + +G_BEGIN_DECLS + +TpawIrcNetworkChooser * tpaw_account_widget_irc_build ( + TpawAccountWidget *self, + const char *filename, + GtkWidget **table_common_settings, + GtkWidget **box); + +TpawIrcNetworkChooser * tpaw_account_widget_irc_build_simple ( + TpawAccountWidget *self, + const char *filename, + GtkWidget **box); + +G_END_DECLS + +#endif /* __TPAW_ACCOUNT_WIDGET_IRC_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.ui new file mode 100644 index 0000000..b976cc5 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-irc.ui @@ -0,0 +1,613 @@ + + + + + False + 5 + Network + center-on-parent + gtk-edit + dialog + True + True + + + True + False + 2 + + + True + False + end + + + gtk-close + True + True + True + False + False + True + + + False + False + 0 + + + + + False + True + end + 0 + + + + + True + False + 0 + none + + + True + False + 6 + 12 + + + True + False + 6 + 12 + + + True + False + 1 + Network + + + + 0 + 0 + 1 + 1 + + + + + True + False + 1 + Character set + + + + 0 + 1 + 1 + 1 + + + + + True + True + True + + + 1 + 0 + 1 + 1 + + + + + True + False + + + 1 + 1 + 1 + 1 + + + + + + + + + True + False + Network + + + + + + + + False + True + 1 + + + + + True + False + 0 + none + + + True + False + 6 + 12 + + + True + False + 6 + 6 + + + True + 0 + + + 120 + True + True + never + in + True + + + True + True + False + + + + + + + + True + True + 0 + + + + + True + 1 + + + + Add… + True + True + True + list-add-symbolic + True + + + + + + + Remove + True + True + True + list-remove-symbolic + True + + + + + + + Up + True + True + True + go-up-symbolic + True + + + + + + + Down + True + True + True + go-down-symbolic + True + + + + + + + False + True + 1 + + + + + + + + + + + True + False + Servers + + + + + + + + False + True + 2 + + + + + + button_close + + + + True + False + + + True + False + 6 + 12 + + + True + True + False + 280 + True + + + 1 + 2 + 1 + 1 + + + + + True + True + 280 + True + + + 1 + 1 + 1 + 1 + + + + + True + True + 0 + 0 + 3 + Most IRC servers don’t need a password, so if you’re not sure, don’t enter a password. + True + True + + + + + + 1 + 3 + 1 + 1 + + + + + True + False + 1 + Network + TrueA + + + + 0 + 0 + 1 + 1 + + + + + True + False + 1 + Nickname + True + entry_nick + + + + 0 + 1 + 1 + 1 + + + + + True + False + 1 + Password + + + + 0 + 2 + 1 + 1 + + + + + False + False + 0 + + + + + True + True + + + True + False + 6 + 12 + + + True + True + True + + + 1 + 2 + 1 + 1 + + + + + True + False + 1 + Quit message + + + + 0 + 2 + 1 + 1 + + + + + True + True + True + + + 1 + 1 + 1 + 1 + + + + + True + False + 1 + Real name + True + entry_nick + + + + 0 + 1 + 1 + 1 + + + + + True + False + 1 + Username + True + + + + 0 + 0 + 1 + 1 + + + + + True + True + True + + + 1 + 0 + 1 + 1 + + + + + + + True + False + Advanced + + + + + + + + True + True + 1 + + + + + True + False + + + True + False + 0 + Which IRC network? + + + True + True + 0 + + + + + True + False + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 6 + 3 + 12 + + + + + + True + True + 1 + + + + + True + False + 0 + What is your IRC nickname? + + + True + True + 2 + + + + + True + False + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 6 + 3 + 12 + + + True + True + 280 + True + + + + + True + True + 3 + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-jabber.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-jabber.ui new file mode 100644 index 0000000..aa14eed --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-jabber.ui @@ -0,0 +1,652 @@ + + + + + 127 + 1 + 10 + + + 65555 + 5222 + 1 + 10 + + + True + False + + + True + False + 0 + What is your Google ID? + + + False + True + 0 + + + + + True + False + 12 + 4 + + + True + True + True + + + True + True + 0 + + + + + True + False + 0.10000000149011612 + <b>Example:</b> user@gmail.com + True + + + + + + True + True + 1 + + + + + False + True + 1 + + + + + True + False + 0 + 6 + What is your Google password? + + + False + True + 2 + + + + + True + True + 12 + False + True + + + False + True + 3 + + + + + Remember password + True + True + False + False + True + True + + + False + True + 4 + + + + + True + False + 6 + + + True + False + True + 6 + 12 + + + True + True + start + True + False + 280 + True + 6 + + + 1 + 2 + 1 + 1 + + + + + True + True + True + 280 + True + + + 1 + 0 + 1 + 1 + + + + + True + False + start + + + False + start + True + 0 + 3 + <b>Example:</b> user@jabber.org + True + + + + + + 0 + 0 + 1 + 1 + + + + + False + start + True + 0 + 3 + <b>Example:</b> user@gmail.com + True + + + + + + 0 + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + 1 + + + + + Remember password + True + True + False + True + False + True + True + + + 1 + 3 + 1 + 1 + + + + + True + False + 1 + Login I_D + True + entry_id + + + + 0 + 0 + 1 + 1 + + + + + True + False + 1 + Pass_word + True + right + entry_password + 6 + + + + 0 + 2 + 1 + 1 + + + + + + + + + + + + + + + + + False + False + 0 + + + + + True + True + + + 200 + True + True + never + in + + + True + False + none + + + True + False + 6 + 6 + 12 + + + True + True + True + + + 1 + 2 + 1 + 1 + + + + + True + True + adjustment1 + 1 + + + 1 + 3 + 1 + 1 + + + + + I_gnore SSL certificate errors + True + True + False + False + True + 0 + True + + + 0 + 1 + 2 + 1 + + + + + True + False + 1 + Priori_ty + True + spinbutton_priority + + + 0 + 3 + 1 + 1 + + + + + True + False + 1 + Reso_urce + True + entry_resource + + + 0 + 2 + 1 + 1 + + + + + Encr_yption required (TLS/SSL) + True + True + False + False + True + 0 + True + + + 0 + 0 + 2 + 1 + + + + + True + False + 0 + Override server settings + + + + + + 0 + 4 + 2 + 1 + + + + + True + False + 1 + _Server + True + entry_server + + + 0 + 5 + 1 + 1 + + + + + True + False + 1 + _Port + True + spinbutton_port + + + 0 + 6 + 1 + 1 + + + + + Use old SS_L + True + True + False + False + True + 0 + True + + + 0 + 7 + 2 + 1 + + + + + True + True + + True + + + 1 + 5 + 1 + 1 + + + + + True + True + + adjustment2 + 1 + True + + + 1 + 6 + 1 + 1 + + + + + + + + + + + True + False + Advanced + + + + + + + + True + True + 1 + + + + + True + False + + + True + False + 0 + What is your Jabber ID? + + + False + True + 0 + + + + + True + False + 12 + 4 + + + True + True + True + + + True + True + 0 + + + + + True + False + 0.10000000149011612 + <b>Example:</b> user@jabber.org + True + + + + + + True + True + 1 + + + + + False + True + 2 + + + + + True + False + 0 + 6 + What is your Jabber password? + + + False + True + 3 + + + + + True + True + 12 + False + True + + + False + True + 5 + + + + + Remember password + True + True + False + False + True + True + + + False + True + 6 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-local-xmpp.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-local-xmpp.ui new file mode 100644 index 0000000..a5a26ac --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-local-xmpp.ui @@ -0,0 +1,220 @@ + + + + + + True + vertical + 6 + + + True + 12 + 6 + + + True + True + True + 280 + + + 1 + 2 + + + + + True + True + True + 280 + + + 1 + 1 + + + + + True + True + True + 280 + + + 1 + + + + + True + 1 + Nic_kname + True + entry_nickname + + + + 2 + 0 + + + + + True + 1 + _Last Name + True + entry_last_name + + + + 1 + 0 + + + + + True + 1 + _First Name + True + entry_first_name + + + + 0 + + + + + False + False + 0 + + + + + True + True + + + True + 12 + 6 + + + True + True + True + + + 1 + + + + + True + 1 + _Published Name + True + entry_published + + + + 0 + + + + + True + True + True + + + 1 + 2 + + + + + True + True + True + + + 1 + 1 + + + + + True + 1 + _Jabber ID + True + entry_jid + + + + 2 + 0 + + + + + True + 1 + E-_mail address + True + entry_email + + + + 1 + 0 + + + + + + + True + Advanced + + + + + + + + False + False + 1 + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-msn.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-msn.ui new file mode 100644 index 0000000..b7d5f55 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-msn.ui @@ -0,0 +1,301 @@ + + + + + + 65535 + 1 + 10 + + + True + vertical + 6 + + + True + 12 + 6 + + + True + 1 + Pass_word + True + 6 + + + + 2 + + + + + True + 1 + Login I_D + True + entry_id + + + + + + + + True + True + 280 + True + + + 1 + + + + + True + 0 + 3 + <b>Example:</b> user@hotmail.com + True + + + + + + 1 + 1 + + + + + True + True + False + 280 + True + 6 + + + 1 + 2 + + + + + Remember password + True + True + False + True + True + + + 1 + 3 + + + + + + + + + + + False + 0 + + + + + True + True + + + True + 6 + 6 + + + True + 1 + _Port + True + spinbutton_port + + + + 1 + + + + + True + 1 + _Server + True + entry_server + + + + 0 + + + + + True + True + True + + + 1 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + adjustment1 + 1 + True + + + 1 + 1 + + + + + + + True + Advanced + + + + + + + + True + True + 1 + + + + + True + vertical + 6 + + + True + 0 + What is your Windows Live ID? + + + 0 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 3 + 12 + + + True + vertical + 4 + + + True + True + True + + + 0 + + + + + True + 0.10000000149011612 + <b>Example:</b> user@hotmail.com + True + + + + + + 1 + + + + + + + 1 + + + + + True + 0 + What is your Windows Live password? + + + 2 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 12 + + + True + True + False + True + + + + + 3 + + + + + Remember password + True + True + False + True + True + + + 4 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-private.h b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-private.h new file mode 100644 index 0000000..de5f814 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-private.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2009 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Cosimo Cecchi + */ + +#ifndef __TPAW_ACCOUNT_WIDGET_PRIVATE_H__ +#define __TPAW_ACCOUNT_WIDGET_PRIVATE_H__ + +#include "tpaw-account-widget.h" + +G_BEGIN_DECLS + +struct _TpawAccountWidgetUIDetails { + GtkBuilder *gui; + + char *default_focus; +}; + + +void tpaw_account_widget_handle_params (TpawAccountWidget *self, + const gchar *first_widget, + ...); + +void tpaw_account_widget_setup_widget (TpawAccountWidget *self, + GtkWidget *widget, + const gchar *param_name); + +G_END_DECLS + +#endif /* __TPAW_ACCOUNT_WIDGET_PRIVATE_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.c b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.c new file mode 100644 index 0000000..4160bfb --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.c @@ -0,0 +1,260 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + * Frederic Peters + */ + +#include "config.h" +#include "tpaw-account-widget-sip.h" + +#include + +#include "tpaw-account-widget-private.h" +#include "tpaw-builder.h" + +typedef struct { + TpawAccountWidget *self; + GtkWidget *vbox_settings; + + GtkWidget *label_stun_server; + GtkWidget *entry_stun_server; + GtkWidget *label_stun_port; + GtkWidget *spinbutton_stun_port; + GtkWidget *checkbutton_discover_stun; + GtkWidget *combobox_transport; + GtkWidget *combobox_keep_alive_mechanism; + GtkWidget *spinbutton_keepalive_interval; +} TpawAccountWidgetSip; + +static void +account_widget_sip_destroy_cb (GtkWidget *widget, + TpawAccountWidgetSip *settings) +{ + g_slice_free (TpawAccountWidgetSip, settings); +} + +static void +account_widget_sip_discover_stun_toggled_cb ( + GtkWidget *checkbox, + TpawAccountWidgetSip *settings) +{ + gboolean active; + + active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbox)); + gtk_widget_set_sensitive (settings->label_stun_server, !active); + gtk_widget_set_sensitive (settings->entry_stun_server, !active); + gtk_widget_set_sensitive (settings->label_stun_port, !active); + gtk_widget_set_sensitive (settings->spinbutton_stun_port, !active); +} + +static void +keep_alive_mechanism_combobox_change_cb (GtkWidget *widget, + TpawAccountWidgetSip *self) +{ + GtkTreeIter iter; + GtkTreeModel *model; + gchar *mechanism; + gboolean enabled; + + /* Unsensitive the keep-alive spin button if keep-alive is disabled */ + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) + return; + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + gtk_tree_model_get (model, &iter, 0, &mechanism, -1); + + enabled = tp_strdiff (mechanism, "none"); + + gtk_widget_set_sensitive (self->spinbutton_keepalive_interval, enabled); + g_free (mechanism); +} + +static void +checkbutton_tel_toggled ( + GtkWidget *checkbox, + TpawAccountWidgetSip *sip_settings) +{ + TpawAccountSettings *settings; + + settings = tpaw_account_widget_get_settings (sip_settings->self); + + tpaw_account_settings_set_uri_scheme_tel (settings, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbox))); + + tpaw_account_widget_changed (sip_settings->self); +} + +GtkWidget * +tpaw_account_widget_sip_build (TpawAccountWidget *self, + const char *filename, + GtkWidget **grid_common_settings) +{ + TpawAccountWidgetSip *settings; + GtkWidget *vbox_settings; + gboolean is_simple; + GtkWidget *grid_advanced; + + g_object_get (self, "simple", &is_simple, NULL); + + if (is_simple) + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_sip_simple", &vbox_settings, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_userid_simple", "account", + "entry_password_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_userid_simple"); + } + else + { + GtkListStore *store; + GtkCellRenderer *renderer; + GtkToggleButton *checkbutton_tel; + + settings = g_slice_new0 (TpawAccountWidgetSip); + settings->self = self; + + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_settings", grid_common_settings, + "grid_advanced_sip_settings", &grid_advanced, + "vbox_sip_settings", &vbox_settings, + "label_stun-server", &settings->label_stun_server, + "entry_stun-server", &settings->entry_stun_server, + "label_stun-port", &settings->label_stun_port, + "spinbutton_stun-port", &settings->spinbutton_stun_port, + "checkbutton_discover-stun", &settings->checkbutton_discover_stun, + "spinbutton_keepalive-interval", + &settings->spinbutton_keepalive_interval, + "checkbutton_tel", &checkbutton_tel, + NULL); + settings->vbox_settings = vbox_settings; + + gtk_toggle_button_set_active (checkbutton_tel, + tpaw_account_settings_has_uri_scheme_tel ( + tpaw_account_widget_get_settings (self))); + + tpaw_account_widget_handle_params (self, + "entry_userid", "account", + "entry_password", "password", + "checkbutton_discover-stun", "discover-stun", + "entry_stun-server", "stun-server", + "spinbutton_stun-port", "stun-port", + "entry_auth-user", "auth-user", + "entry_proxy-host", "proxy-host", + "spinbutton_port", "port", + "checkbutton_loose-routing", "loose-routing", + "checkbutton_discover-binding", "discover-binding", + "spinbutton_keepalive-interval", "keepalive-interval", + "checkbutton_ignore-tls-errors", "ignore-tls-errors", + "entry_local-ip-address", "local-ip-address", + "spinbutton_local-port", "local-port", + NULL); + + account_widget_sip_discover_stun_toggled_cb ( + settings->checkbutton_discover_stun, + settings); + + tpaw_builder_connect (self->ui_details->gui, settings, + "vbox_sip_settings", "destroy", account_widget_sip_destroy_cb, + "checkbutton_discover-stun", "toggled", + account_widget_sip_discover_stun_toggled_cb, + "checkbutton_tel", "toggled", checkbutton_tel_toggled, + NULL); + + self->ui_details->default_focus = g_strdup ("entry_userid"); + + /* Create the 'transport' combo box. The first column has to contain the + * value of the param. */ + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); + settings->combobox_transport = gtk_combo_box_new_with_model ( + GTK_TREE_MODEL (store)); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start ( + GTK_CELL_LAYOUT (settings->combobox_transport), renderer, TRUE); + gtk_cell_layout_add_attribute ( + GTK_CELL_LAYOUT (settings->combobox_transport), renderer, "text", 1); + + gtk_list_store_insert_with_values (store, NULL, -1, + 0, "auto", 1, _("Auto"), -1); + + gtk_list_store_insert_with_values (store, NULL, -1, + 0, "udp", 1, _("UDP"), -1); + + gtk_list_store_insert_with_values (store, NULL, -1, + 0, "tcp", 1, _("TCP"), -1); + + gtk_list_store_insert_with_values (store, NULL, -1, + 0, "tls", 1, _("TLS"), -1); + + tpaw_account_widget_setup_widget (self, settings->combobox_transport, + "transport"); + + gtk_grid_attach (GTK_GRID (grid_advanced), settings->combobox_transport, + 1, 11, 3, 1); + + gtk_widget_show (settings->combobox_transport); + + /* Create the 'keep-alive mechanism' combo box */ + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); + settings->combobox_keep_alive_mechanism = gtk_combo_box_new_with_model ( + GTK_TREE_MODEL (store)); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start ( + GTK_CELL_LAYOUT (settings->combobox_keep_alive_mechanism), renderer, + TRUE); + gtk_cell_layout_add_attribute ( + GTK_CELL_LAYOUT (settings->combobox_keep_alive_mechanism), renderer, + "text", 1); + + gtk_list_store_insert_with_values (store, NULL, -1, + 0, "auto", 1, _("Auto"), -1); + + gtk_list_store_insert_with_values (store, NULL, -1, + /* translators: this string is very specific to SIP's internal; maybe + * best to keep the English version. */ + 0, "register", 1, _("Register"), -1); + + gtk_list_store_insert_with_values (store, NULL, -1, + /* translators: this string is very specific to SIP's internal; maybe + * best to keep the English version. */ + 0, "options", 1, _("Options"), -1); + + gtk_list_store_insert_with_values (store, NULL, -1, + 0, "none", 1, _("None"), -1); + + g_signal_connect (settings->combobox_keep_alive_mechanism, "changed", + G_CALLBACK (keep_alive_mechanism_combobox_change_cb), settings); + + tpaw_account_widget_setup_widget (self, + settings->combobox_keep_alive_mechanism, "keepalive-mechanism"); + + gtk_grid_attach (GTK_GRID (grid_advanced), + settings->combobox_keep_alive_mechanism, + 1, 7, 3, 1); + + gtk_widget_show (settings->combobox_keep_alive_mechanism); + } + + return vbox_settings; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.h b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.h new file mode 100644 index 0000000..7f08ab1 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Frederic Peters + */ + +#ifndef __TPAW_ACCOUNT_WIDGET_SIP_H__ +#define __TPAW_ACCOUNT_WIDGET_SIP_H__ + +#include "tpaw-account-widget.h" + +G_BEGIN_DECLS + +GtkWidget * tpaw_account_widget_sip_build (TpawAccountWidget *self, + const char *filename, + GtkWidget **grid_common_settings); + +G_END_DECLS + +#endif /* __TPAW_ACCOUNT_WIDGET_SIP_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.ui new file mode 100644 index 0000000..e8626eb --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-sip.ui @@ -0,0 +1,743 @@ + + + + + 65535 + 1 + 10 + + + 65535 + 1 + 10 + + + 10000 + 1 + 10 + + + 65535 + 1 + 10 + + + True + False + + + True + False + 12 + 6 + + + True + False + 1 + Pass_word + True + entry_password + 6 + + + + 2 + + + + + True + True + 280 + True + + + 1 + + + + + True + False + 1 + _Username + True + entry_userid + + + + 0 + + + + + True + False + 0 + 3 + <b>Example:</b> user@my.sip.server + True + + + + + + 1 + 1 + + + + + True + True + 280 + True + 6 + + + 1 + 2 + + + + + Remember password + True + True + False + False + True + True + + + 1 + 3 + + + + + Use this account to call _landlines and mobile phones + True + True + False + False + True + 0 + True + + + 4 + 0 + 4 + + + + + + + + + + + False + False + 0 + + + + + True + True + + + 200 + True + True + never + in + + + True + False + queue + none + + + True + False + 0 + 6 + + + True + False + 6 + 6 + + + True + True + True + + + 1 + 2 + + + + + True + True + True + + + 1 + 10 + 3 + + + + + True + True + True + + + 1 + 5 + + + + + True + True + adjustment3 + + + 1 + 8 + 3 + + + + + True + True + True + + + 1 + 14 + + + + + True + False + 0 + NAT Traversal Options + + + + + + + + + + True + False + 0 + Proxy Options + + + + + + 4 + 0 + + + + + True + False + 0 + Miscellaneous Options + + + + + + 9 + 0 + + + + + True + False + 24 + + + True + False + 0 + STUN Server + entry_stun-server + + + + + 2 + 0 + + + + + True + False + 12 + + + Discover the STUN server automatically + True + True + False + False + True + True + + + + + 1 + 0 + 4 + + + + + True + False + 12 + + + Discover Binding + True + True + False + False + True + + + + + 3 + 0 + 4 + + + + + True + False + 12 + + + True + False + 0 + Server + + + + + 5 + 0 + + + + + True + False + 0 + Keep-Alive Options + + + + + + 6 + 0 + + + + + True + False + 12 + + + True + False + 0 + Mechanism + + + + + 7 + 0 + + + + + True + False + 12 + + + True + False + 0 + Interval (seconds) + + + + + 8 + 0 + + + + + True + False + 12 + + + True + False + 0 + Authentication username + + + + + 10 + 0 + + + + + True + False + 12 + + + True + False + 0 + Transport + + + + + 11 + 0 + + + + + True + False + 12 + + + Loose Routing + True + True + False + False + True + + + + + 12 + 0 + 4 + + + + + True + False + 12 + + + Ignore TLS Errors + True + True + False + False + True + + + + + 13 + 0 + 4 + + + + + True + False + 0 + Port + spinbutton_stun-port + + + 2 + 2 + + + + + True + True + adjustment1 + 1 + + + 3 + 2 + + + + + True + False + 0 + Port + + + 2 + 5 + + + + + True + True + adjustment2 + 1 + + + 3 + 5 + + + + + True + False + 12 + + + True + False + 0 + Local IP Address + entry_local-ip-address + + + + + 0 + 14 + + + + + True + False + 0 + Port + spinbutton_local-port + + + 2 + 14 + + + + + True + True + adjustment4 + + + 3 + 14 + + + + + + + + + + + + + True + False + Advanced + + + + + + + + True + True + 1 + + + + + True + False + 6 + + + True + False + 0 + What is your SIP login ID? + + + True + True + 0 + + + + + True + False + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 3 + 12 + + + True + False + 4 + + + True + True + True + + + True + True + 0 + + + + + True + False + 0.10000000149011612 + <b>Example:</b> user@my.sip.server + True + + + + + + True + True + 1 + + + + + + + True + True + 1 + + + + + True + False + 0 + What is your SIP account password? + + + True + True + 2 + + + + + True + False + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 12 + + + True + True + False + True + + + + + True + True + 3 + + + + + Remember password + True + True + False + False + True + True + + + True + True + 4 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-yahoo.ui b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-yahoo.ui new file mode 100644 index 0000000..cadb5c1 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget-yahoo.ui @@ -0,0 +1,340 @@ + + + + + + 5050 + 1 + 65555 + 1 + 10 + + + True + vertical + 6 + + + True + 12 + 6 + + + True + 0 + Pass_word: + True + entry_password + 6 + + + 2 + + + + + True + 0 + Yahoo! I_D: + True + entry_id + + + + + + + True + True + 280 + True + + + 1 + + + + + True + True + False + 280 + True + 6 + + + 1 + 2 + + + + + True + 0 + 3 + <b>Example:</b> username + True + + + + + + 1 + 1 + + + + + Remember password + True + True + False + True + True + + + 1 + 3 + + + + + + + + + + + False + False + 0 + + + + + True + True + + + True + + + True + 12 + 6 + + + I_gnore conference and chat room invitations + True + True + False + True + True + + + 2 + + + + + True + 0 + _Room List locale: + True + entry_locale + + + 1 + 0 + + + + + True + 0 + Ch_aracter set: + True + entry_charset + + + 2 + 0 + + + + + True + True + True + + + 1 + 1 + + + + + True + True + True + + + 1 + 2 + + + + + True + 0 + _Port: + True + spinbutton_port + + + 3 + 0 + + + + + True + True + adjustment1 + 1 + True + + + 1 + 3 + + + + + 0 + + + + + + + True + Advanced + + + + + + + + True + True + 1 + + + + + True + vertical + 6 + + + True + 0 + What is your Yahoo! ID? + + + 0 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 3 + 12 + + + True + vertical + 4 + + + True + True + True + + + 0 + + + + + True + 0.10000000149011612 + <b>Example:</b> username + True + + + + + + 1 + + + + + + + 1 + + + + + True + 0 + What is your Yahoo! password? + + + 2 + + + + + True + 0 + 0 + 0.34999999403953552 + 0.34999999403953552 + 12 + + + True + True + False + True + + + + + 3 + + + + + Remember password + True + True + False + True + True + + + 4 + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget.c b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget.c new file mode 100644 index 0000000..a18a1d0 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget.c @@ -0,0 +1,2110 @@ +/* + * Copyright (C) 2006-2007 Imendio AB + * Copyright (C) 2007-2009 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + * Martyn Russell + * Cosimo Cecchi + * Jonathan Tellier + * Danielle Madeley + */ + +#include "config.h" +#include "tpaw-account-widget.h" +#include "tpaw-account-widget-private.h" + +#include +#include + +#include "tpaw-account-widget-irc.h" +#include "tpaw-account-widget-private.h" +#include "tpaw-account-widget-sip.h" +#include "tpaw-builder.h" +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_ACCOUNT +#include "tpaw-debug.h" + +G_DEFINE_TYPE (TpawAccountWidget, tpaw_account_widget, GTK_TYPE_BOX) + +typedef enum +{ + NO_SERVICE = 0, + GTALK_SERVICE, + N_SERVICES +} Service; + +typedef struct +{ + const gchar *label_username_example; + gboolean show_advanced; +} ServiceInfo; + +static ServiceInfo services_infos[N_SERVICES] = { + { "label_username_example", TRUE }, + { "label_username_g_example", FALSE }, +}; + +struct _TpawAccountWidgetPriv { + TpawAccountSettings *settings; + + GtkWidget *grid_common_settings; + GtkWidget *apply_button; + GtkWidget *cancel_button; + GtkWidget *entry_password; + GtkWidget *spinbutton_port; + GtkWidget *dialog; + + gboolean simple; + + gboolean contains_pending_changes; + + /* Whether the action area is part of an external dialog or it's an + * internal one we created ourselves */ + gboolean external_action_area; + + /* An TpawAccountWidget can be used to either create an account or + * modify it. When we are creating an account, this member is set to TRUE */ + gboolean creating_account; + + /* whether there are any other real accounts. Necessary so we know whether + * it's safe to dismiss this widget in some cases (eg, whether the Cancel + * button should be sensitive) */ + gboolean other_accounts_exist; + + /* if TRUE, the GTK+ destroy signal has been fired and so the widgets + * embedded in this account widget can't be used any more + * workaround because some async callbacks can be called after the + * widget has been destroyed */ + gboolean destroyed; + + TpAccountManager *account_manager; + + GtkWidget *param_account_widget; + GtkWidget *param_password_widget; + + gboolean automatic_change; + GtkWidget *remember_password_widget; + + /* Used only for IRC accounts */ + TpawIrcNetworkChooser *irc_network_chooser; +}; + +enum { + PROP_PROTOCOL = 1, + PROP_SETTINGS, + PROP_SIMPLE, + PROP_CREATING_ACCOUNT, + PROP_OTHER_ACCOUNTS_EXIST, + PROP_DIALOG, +}; + +enum { + HANDLE_APPLY, + ACCOUNT_CREATED, + CANCELLED, + CLOSE, + LAST_SIGNAL +}; + +enum { + RESPONSE_LAUNCH +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +#define CHANGED_TIMEOUT 300 + +#define DIGIT "0-9" +#define DIGITS "(["DIGIT"]+)" +#define ALPHA "a-zA-Z" +#define ALPHAS "(["ALPHA"]+)" +#define ALPHADIGIT ALPHA DIGIT +#define ALPHADIGITS "(["ALPHADIGIT"]+)" +#define ALPHADIGITDASH ALPHA DIGIT "-" +#define ALPHADIGITDASHS "(["ALPHADIGITDASH"]*)" + +#define HOSTNUMBER "("DIGITS"\\."DIGITS"\\."DIGITS"\\."DIGITS")" +#define TOPLABEL "("ALPHAS \ + "| (["ALPHA"]"ALPHADIGITDASHS "["ALPHADIGIT"]))" +#define DOMAINLABEL "("ALPHADIGITS"|(["ALPHADIGIT"]" ALPHADIGITDASHS \ + "["ALPHADIGIT"]))" +#define HOSTNAME "((" DOMAINLABEL "\\.)+" TOPLABEL ")" +/* Based on http://www.ietf.org/rfc/rfc1738.txt (section 5) */ +#define HOST "("HOSTNAME "|" HOSTNUMBER")" +/* Based on http://www.ietf.org/rfc/rfc0822.txt (appendix D) */ +#define EMAIL_LOCALPART "([^\\(\\)<>@,;:\\\\\"\\[\\]\\s]+)" + +/* UIN is digital according to the unofficial specification: + * http://iserverd.khstu.ru/docum_ext/icqv5.html#CTS + * 5 digits minimum according to http://en.wikipedia.org/wiki/ICQ#UIN + * According to an user, we can also provide an email address instead of the + * ICQ UIN. */ +#define ICQ_USER_NAME "((["DIGIT"]{5,})|"EMAIL_LOCALPART"@"HOST")" + +/* Based on http://www.ietf.org/rfc/rfc2812.txt (section 2.3.1) */ +#define IRC_SPECIAL "_\\[\\]{}\\\\|`^" +#define IRC_NICK_NAME "(["ALPHA IRC_SPECIAL"]["ALPHADIGITDASH IRC_SPECIAL"]*)" + +/* Based on http://www.ietf.org/rfc/rfc4622.txt (section 2.2) + * We just exclude invalid characters to avoid ucschars and other redundant + * complexity */ +#define JABBER_USER_NAME "([^@:'\"<>&\\s]+)" +/* ID is an email according to the unofficial specification: + * http://www.hypothetic.org/docs/msn/general/names.php */ +#define MSN_USER_NAME EMAIL_LOCALPART +/* Based on the official help: + * http://help.yahoo.com/l/us/yahoo/edit/registration/edit-01.html + * Looks like an email address can be used as well (bgo #655959) + * */ +#define YAHOO_USER_NAME "(["ALPHA"]["ALPHADIGIT"_\\.]{3,31})|("EMAIL_LOCALPART"@"HOST")" + +#define ACCOUNT_REGEX_ICQ "^"ICQ_USER_NAME"$" +#define ACCOUNT_REGEX_IRC "^"IRC_NICK_NAME"$" +#define ACCOUNT_REGEX_JABBER "^"JABBER_USER_NAME"@[^@/]+" +#define ACCOUNT_REGEX_MSN "^"MSN_USER_NAME"@"HOST"$" +#define ACCOUNT_REGEX_YAHOO "^"YAHOO_USER_NAME"$" + +static void +account_widget_set_control_buttons_sensitivity (TpawAccountWidget *self, + gboolean sensitive) +{ + /* we hit this case because of the 'other-accounts-exist' property handler + * being called during init (before constructed()) */ + if (self->priv->apply_button == NULL || self->priv->cancel_button == NULL) + return; + + gtk_widget_set_sensitive (self->priv->apply_button, sensitive); + + if (sensitive && self->priv->dialog == NULL) + { + /* We can't grab default if the widget hasn't be packed in a + * window */ + GtkWidget *window; + + window = gtk_widget_get_toplevel (self->priv->apply_button); + if (window != NULL && + gtk_widget_is_toplevel (window)) + { + gtk_widget_set_can_default (self->priv->apply_button, TRUE); + gtk_widget_grab_default (self->priv->apply_button); + } + } +} + +static void +account_widget_set_entry_highlighting (GtkEntry *entry, + gboolean highlight) +{ + GtkStyleContext *style; + + g_return_if_fail (GTK_IS_ENTRY (entry)); + + style = gtk_widget_get_style_context (GTK_WIDGET (entry)); + + if (highlight) + { + gtk_style_context_add_class (style, GTK_STYLE_CLASS_ERROR); + } + else + { + gtk_style_context_remove_class (style, GTK_STYLE_CLASS_ERROR); + } +} + +static void +account_widget_handle_control_buttons_sensitivity (TpawAccountWidget *self) +{ + gboolean is_valid; + + is_valid = tpaw_account_settings_is_valid (self->priv->settings); + + account_widget_set_control_buttons_sensitivity (self, is_valid); + + g_signal_emit (self, signals[HANDLE_APPLY], 0, is_valid); +} + +static void +account_widget_entry_changed_common (TpawAccountWidget *self, + GtkEntry *entry, gboolean focus) +{ + const gchar *str; + const gchar *param_name; + gboolean prev_status; + gboolean curr_status; + + str = gtk_entry_get_text (entry); + param_name = g_object_get_data (G_OBJECT (entry), "param_name"); + prev_status = tpaw_account_settings_parameter_is_valid ( + self->priv->settings, param_name); + + if (TPAW_STR_EMPTY (str)) + { + tpaw_account_settings_unset (self->priv->settings, param_name); + + if (focus) + { + gchar *value; + + value = tpaw_account_settings_dup_string (self->priv->settings, + param_name); + + DEBUG ("Unset %s and restore to %s", param_name, value); + gtk_entry_set_text (entry, value ? value : ""); + g_free (value); + } + } + else + { + DEBUG ("Setting %s to %s", param_name, + tp_strdiff (param_name, "password") ? str : "***"); + tpaw_account_settings_set (self->priv->settings, param_name, + g_variant_new_string (str)); + } + + curr_status = tpaw_account_settings_parameter_is_valid ( + self->priv->settings, param_name); + + if (curr_status != prev_status) + account_widget_set_entry_highlighting (entry, !curr_status); +} + +static void +account_widget_entry_changed_cb (GtkEditable *entry, + TpawAccountWidget *self) +{ + if (self->priv->automatic_change) + return; + + account_widget_entry_changed_common (self, GTK_ENTRY (entry), FALSE); + tpaw_account_widget_changed (self); +} + +static void +account_widget_entry_map_cb (GtkEntry *entry, + TpawAccountWidget *self) +{ + const gchar *param_name; + gboolean is_valid; + + /* need to initialize input highlighting */ + param_name = g_object_get_data (G_OBJECT (entry), "param_name"); + is_valid = tpaw_account_settings_parameter_is_valid (self->priv->settings, + param_name); + account_widget_set_entry_highlighting (entry, !is_valid); +} + +static void +account_widget_int_changed_cb (GtkWidget *widget, + TpawAccountWidget *self) +{ + const gchar *param_name; + gint value; + const gchar *signature; + + value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + param_name = g_object_get_data (G_OBJECT (widget), "param_name"); + + signature = tpaw_account_settings_get_dbus_signature (self->priv->settings, + param_name); + g_return_if_fail (signature != NULL); + + DEBUG ("Setting %s to %d", param_name, value); + + switch ((int)*signature) + { + case DBUS_TYPE_INT16: + case DBUS_TYPE_INT32: + tpaw_account_settings_set (self->priv->settings, param_name, + g_variant_new_int32 (value)); + break; + case DBUS_TYPE_INT64: + tpaw_account_settings_set (self->priv->settings, param_name, + g_variant_new_int64 (value)); + break; + case DBUS_TYPE_UINT16: + case DBUS_TYPE_UINT32: + tpaw_account_settings_set (self->priv->settings, param_name, + g_variant_new_uint32 (value)); + break; + case DBUS_TYPE_UINT64: + tpaw_account_settings_set (self->priv->settings, param_name, + g_variant_new_uint64 (value)); + break; + default: + g_return_if_reached (); + } + + tpaw_account_widget_changed (self); +} + +static void +account_widget_checkbutton_toggled_cb (GtkWidget *widget, + TpawAccountWidget *self) +{ + gboolean value; + gboolean default_value; + const gchar *param_name; + + value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + param_name = g_object_get_data (G_OBJECT (widget), "param_name"); + + /* FIXME: This is ugly! checkbox don't have a "not-set" value so we + * always unset the param and set the value if different from the + * default value. */ + tpaw_account_settings_unset (self->priv->settings, param_name); + default_value = tpaw_account_settings_get_boolean (self->priv->settings, + param_name); + + if (default_value == value) + { + DEBUG ("Unset %s and restore to %d", param_name, default_value); + } + else + { + DEBUG ("Setting %s to %d", param_name, value); + tpaw_account_settings_set (self->priv->settings, param_name, + g_variant_new_boolean (value)); + } + + tpaw_account_widget_changed (self); +} + +static void +account_widget_jabber_ssl_toggled_cb (GtkWidget *checkbutton_ssl, + TpawAccountWidget *self) +{ + gboolean value; + gint32 port = 0; + + value = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton_ssl)); + port = tpaw_account_settings_get_uint32 (self->priv->settings, "port"); + + if (value) + { + if (port == 5222 || port == 0) + port = 5223; + } + else + { + if (port == 5223 || port == 0) + port = 5222; + } + + gtk_spin_button_set_value (GTK_SPIN_BUTTON (self->priv->spinbutton_port), + port); + + self->priv->contains_pending_changes = TRUE; +} + +static void +account_widget_combobox_changed_cb (GtkWidget *widget, + TpawAccountWidget *self) +{ + GtkTreeIter iter; + GtkTreeModel *model; + const gchar *value; + GVariant *v; + const gchar *default_value = NULL; + const gchar *param_name; + + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) + return; + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + /* the param value is stored in the first column */ + gtk_tree_model_get (model, &iter, 0, &value, -1); + + param_name = g_object_get_data (G_OBJECT (widget), "param_name"); + + v = tpaw_account_settings_dup_default (self->priv->settings, param_name); + if (v != NULL && g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)) + default_value = g_variant_get_string (v, NULL); + + if (!tp_strdiff (value, default_value)) + { + DEBUG ("Unset %s and restore to %s", param_name, default_value); + tpaw_account_settings_unset (self->priv->settings, param_name); + } + else + { + DEBUG ("Setting %s to %s", param_name, value); + tpaw_account_settings_set (self->priv->settings, param_name, + g_variant_new_string (value)); + } + + tpaw_account_widget_changed (self); + + tp_clear_pointer (&v, g_variant_unref); +} + +static void +clear_icon_released_cb (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + GdkEvent *event, + TpawAccountWidget *self) +{ + const gchar *param_name; + + param_name = g_object_get_data (G_OBJECT (entry), "param_name"); + + DEBUG ("Unset %s", param_name); + tpaw_account_settings_unset (self->priv->settings, param_name); + gtk_entry_set_text (entry, ""); + + tpaw_account_widget_changed (self); +} + +static void +password_entry_changed_cb (GtkEditable *entry, + TpawAccountWidget *self) +{ + const gchar *str; + + str = gtk_entry_get_text (GTK_ENTRY (entry)); + + gtk_entry_set_icon_sensitive (GTK_ENTRY (entry), + GTK_ENTRY_ICON_SECONDARY, !TPAW_STR_EMPTY (str)); +} + +static void +password_entry_activated_cb (GtkEntry *entry, + TpawAccountWidget *self) +{ + if (gtk_widget_get_sensitive (self->priv->apply_button)) + tpaw_account_widget_apply_and_log_in (self); +} + +static void +account_entry_activated_cb (GtkEntry *entry, + TpawAccountWidget *self) +{ + if (gtk_widget_get_sensitive (self->priv->apply_button)) + tpaw_account_widget_apply_and_log_in (self); +} + +void +tpaw_account_widget_setup_widget (TpawAccountWidget *self, + GtkWidget *widget, + const gchar *param_name) +{ + g_object_set_data_full (G_OBJECT (widget), "param_name", + g_strdup (param_name), g_free); + + if (GTK_IS_SPIN_BUTTON (widget)) + { + gint value = 0; + const gchar *signature; + + signature = tpaw_account_settings_get_dbus_signature ( + self->priv->settings, param_name); + g_return_if_fail (signature != NULL); + + switch ((int)*signature) + { + case DBUS_TYPE_INT16: + case DBUS_TYPE_INT32: + value = tpaw_account_settings_get_int32 (self->priv->settings, + param_name); + break; + case DBUS_TYPE_INT64: + value = tpaw_account_settings_get_int64 (self->priv->settings, + param_name); + break; + case DBUS_TYPE_UINT16: + case DBUS_TYPE_UINT32: + value = tpaw_account_settings_get_uint32 (self->priv->settings, + param_name); + break; + case DBUS_TYPE_UINT64: + value = tpaw_account_settings_get_uint64 (self->priv->settings, + param_name); + break; + default: + g_return_if_reached (); + } + + gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value); + + g_signal_connect (widget, "value-changed", + G_CALLBACK (account_widget_int_changed_cb), + self); + } + else if (GTK_IS_ENTRY (widget)) + { + gchar *str; + + str = tpaw_account_settings_dup_string (self->priv->settings, + param_name); + gtk_entry_set_text (GTK_ENTRY (widget), str ? str : ""); + + if (!tp_strdiff (param_name, "account")) + self->priv->param_account_widget = widget; + else if (!tp_strdiff (param_name, "password")) + self->priv->param_password_widget = widget; + + if (strstr (param_name, "password")) + { + if (self->priv->dialog != NULL) + gtk_entry_set_activates_default (GTK_ENTRY (widget), TRUE); + + gtk_entry_set_visibility (GTK_ENTRY (widget), FALSE); + + /* Add 'clear' icon */ + gtk_entry_set_icon_from_icon_name (GTK_ENTRY (widget), + GTK_ENTRY_ICON_SECONDARY, "edit-clear-symbolic"); + + gtk_entry_set_icon_sensitive (GTK_ENTRY (widget), + GTK_ENTRY_ICON_SECONDARY, !TPAW_STR_EMPTY (str)); + + g_signal_connect (widget, "icon-release", + G_CALLBACK (clear_icon_released_cb), self); + g_signal_connect (widget, "changed", + G_CALLBACK (password_entry_changed_cb), self); + g_signal_connect (widget, "activate", + G_CALLBACK (password_entry_activated_cb), self); + } + else if (strstr (param_name, "account")) + { + if (self->priv->dialog != NULL) + gtk_entry_set_activates_default (GTK_ENTRY (widget), TRUE); + + g_signal_connect (widget, "activate", + G_CALLBACK (account_entry_activated_cb), self); + } + + g_signal_connect (widget, "changed", + G_CALLBACK (account_widget_entry_changed_cb), self); + g_signal_connect (widget, "map", + G_CALLBACK (account_widget_entry_map_cb), self); + + g_free (str); + } + else if (GTK_IS_TOGGLE_BUTTON (widget)) + { + gboolean value = FALSE; + + value = tpaw_account_settings_get_boolean (self->priv->settings, + param_name); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value); + + g_signal_connect (widget, "toggled", + G_CALLBACK (account_widget_checkbutton_toggled_cb), + self); + } + else if (GTK_IS_COMBO_BOX (widget)) + { + /* The combo box's model has to contain the param value in its first + * column (as a string) */ + gchar *str; + GtkTreeModel *model; + GtkTreeIter iter; + gboolean valid; + + str = tpaw_account_settings_dup_string (self->priv->settings, + param_name); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + + valid = gtk_tree_model_get_iter_first (model, &iter); + while (valid) + { + gchar *name; + + gtk_tree_model_get (model, &iter, 0, &name, -1); + if (!tp_strdiff (name, str)) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (widget), &iter); + valid = FALSE; + } + else + { + valid = gtk_tree_model_iter_next (model, &iter); + } + + g_free (name); + } + + g_free (str); + + g_signal_connect (widget, "changed", + G_CALLBACK (account_widget_combobox_changed_cb), + self); + } + else + { + DEBUG ("Unknown type of widget for param %s", param_name); + } + + gtk_widget_set_sensitive (widget, + tpaw_account_settings_param_is_supported (self->priv->settings, + param_name)); +} + +static GHashTable * +build_translated_params (void) +{ + GHashTable *hash; + + hash = g_hash_table_new (g_str_hash, g_str_equal); + g_hash_table_insert (hash, "account", _("Account")); + g_hash_table_insert (hash, "password", _("Password")); + g_hash_table_insert (hash, "server", _("Server")); + g_hash_table_insert (hash, "port", _("Port")); + + return hash; +} + +static gchar * +account_widget_generic_format_param_name (const gchar *param_name) +{ + gchar *str; + gchar *p; + static GHashTable *translated_params = NULL; + + g_return_val_if_fail (param_name != NULL, NULL); + + if (G_UNLIKELY (translated_params == NULL)) + translated_params = build_translated_params (); + + /* Translate most common parameters */ + str = g_hash_table_lookup (translated_params, param_name); + if (str != NULL) + return g_strdup (str); + + str = g_strdup (param_name); + + if (str && g_ascii_isalpha (str[0])) + str[0] = g_ascii_toupper (str[0]); + + while ((p = strchr (str, '-')) != NULL) + { + if (p[1] != '\0' && g_ascii_isalpha (p[1])) + { + p[0] = ' '; + p[1] = g_ascii_toupper (p[1]); + } + + p++; + } + + return str; +} + +static void +accounts_widget_generic_setup (TpawAccountWidget *self, + GtkWidget *grid_common_settings, + GtkWidget *grid_advanced_settings) +{ + GList *params, *l; + guint row_common = 0, row_advanced = 0; + + params = tpaw_account_settings_dup_tp_params (self->priv->settings); + + for (l = params; l != NULL; l = g_list_next (l)) + { + TpConnectionManagerParam *param = l->data; + GtkWidget *grid_settings; + guint row; + GtkWidget *widget = NULL; + gchar *param_name_formatted; + const gchar *dbus_signature; + + if (tp_connection_manager_param_is_required (param)) + { + grid_settings = grid_common_settings; + row = row_common++; + } + else if (self->priv->simple) + { + continue; + } + else + { + grid_settings = grid_advanced_settings; + row = row_advanced++; + } + + param_name_formatted = account_widget_generic_format_param_name ( + tp_connection_manager_param_get_name (param)); + + dbus_signature = tp_connection_manager_param_get_dbus_signature (param); + + if (dbus_signature[0] == 's') + { + gchar *str; + + str = g_strdup_printf (_("%s"), param_name_formatted); + widget = gtk_label_new (str); + gtk_misc_set_alignment (GTK_MISC (widget), 1., 0.5); + gtk_style_context_add_class (gtk_widget_get_style_context (widget), + GTK_STYLE_CLASS_DIM_LABEL); + g_free (str); + + gtk_grid_attach (GTK_GRID (grid_settings), + widget, 0, row, 1, 1); + + gtk_widget_show (widget); + + widget = gtk_entry_new (); + g_object_set (widget, "hexpand", TRUE, NULL); + if (g_strcmp0 (tp_connection_manager_param_get_name (param), + "account") == 0) + { + g_object_set (widget, "width-request", 280, NULL); + g_signal_connect (widget, "realize", + G_CALLBACK (gtk_widget_grab_focus), + NULL); + } + + gtk_grid_attach (GTK_GRID (grid_settings), + widget, 1, row, 1, 1); + + gtk_widget_show (widget); + } + /* int types: ynqiuxt. double type is 'd' */ + else if (dbus_signature[0] == 'y' || + dbus_signature[0] == 'n' || + dbus_signature[0] == 'q' || + dbus_signature[0] == 'i' || + dbus_signature[0] == 'u' || + dbus_signature[0] == 'x' || + dbus_signature[0] == 't' || + dbus_signature[0] == 'd') + { + gchar *str = NULL; + gdouble minint = 0; + gdouble maxint = 0; + gdouble step = 1; + + switch (dbus_signature[0]) + { + case 'y': minint = G_MININT8; maxint = G_MAXINT8; break; + case 'n': minint = G_MININT16; maxint = G_MAXINT16; break; + case 'q': minint = 0; maxint = G_MAXUINT16; break; + case 'i': minint = G_MININT32; maxint = G_MAXINT32; break; + case 'u': minint = 0; maxint = G_MAXUINT32; break; + case 'x': minint = G_MININT64; maxint = G_MAXINT64; break; + case 't': minint = 0; maxint = G_MAXUINT64; break; + case 'd': minint = G_MININT32; maxint = G_MAXINT32; + step = 0.1; break; + default: g_assert_not_reached (); + } + + str = g_strdup_printf (_("%s:"), param_name_formatted); + widget = gtk_label_new (str); + gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5); + g_free (str); + + gtk_grid_attach (GTK_GRID (grid_settings), + widget, 0, row, 1, 1); + gtk_widget_show (widget); + + widget = gtk_spin_button_new_with_range (minint, maxint, step); + gtk_grid_attach (GTK_GRID (grid_settings), + widget, 1, row, 1, 1); + gtk_widget_show (widget); + } + else if (dbus_signature[0] == 'b') + { + widget = gtk_check_button_new_with_label (param_name_formatted); + gtk_grid_attach (GTK_GRID (grid_settings), + widget, 0, row, 2, 1); + gtk_widget_show (widget); + } + else + { + DEBUG ("Unknown signature for param %s: %s", + param_name_formatted, dbus_signature); + } + + if (widget) + tpaw_account_widget_setup_widget (self, widget, + tp_connection_manager_param_get_name (param)); + + g_free (param_name_formatted); + } + + g_list_free_full (params, (GDestroyNotify) tp_connection_manager_param_free); +} + +static void +account_widget_handle_params_valist (TpawAccountWidget *self, + const gchar *first_widget, + va_list args) +{ + GObject *object; + const gchar *name; + + for (name = first_widget; name; name = va_arg (args, const gchar *)) + { + const gchar *param_name; + + param_name = va_arg (args, const gchar *); + object = gtk_builder_get_object (self->ui_details->gui, name); + + if (!object) + { + g_warning ("Builder is missing object '%s'.", name); + continue; + } + + tpaw_account_widget_setup_widget (self, GTK_WIDGET (object), + param_name); + } +} + +static void +account_widget_cancel_clicked_cb (GtkWidget *button, + TpawAccountWidget *self) +{ + g_signal_emit (self, signals[CANCELLED], 0); + g_signal_emit (self, signals[CLOSE], 0, GTK_RESPONSE_CANCEL); +} + +static void +account_widget_account_enabled_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GError *error = NULL; + TpAccount *account = TP_ACCOUNT (source_object); + TpawAccountWidget *self = TPAW_ACCOUNT_WIDGET (user_data); + + tp_account_set_enabled_finish (account, res, &error); + + if (error != NULL) + { + DEBUG ("Could not enable the account: %s", error->message); + g_error_free (error); + } + else + { + tpaw_connect_new_account (account, self->priv->account_manager); + } + + g_signal_emit (self, signals[CLOSE], 0, GTK_RESPONSE_APPLY); + + /* unref self - part of the workaround */ + g_object_unref (self); +} + +static void +account_widget_applied_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +{ + GError *error = NULL; + TpAccount *account; + TpawAccountSettings *settings = TPAW_ACCOUNT_SETTINGS (source_object); + TpawAccountWidget *self = TPAW_ACCOUNT_WIDGET (user_data); + gboolean reconnect_required; + gboolean fire_close = TRUE; + + tpaw_account_settings_apply_finish (settings, res, &reconnect_required, + &error); + + if (error != NULL) + { + DEBUG ("Could not apply changes to account: %s", error->message); + g_error_free (error); + return; + } + + account = tpaw_account_settings_get_account (self->priv->settings); + + if (account != NULL) + { + if (self->priv->creating_account) + { + /* By default, when an account is created, we enable it. */ + + /* workaround to keep self alive during async call */ + g_object_ref (self); + + tp_account_set_enabled_async (account, TRUE, + account_widget_account_enabled_cb, self); + g_signal_emit (self, signals[ACCOUNT_CREATED], 0, account); + + /* Will be fired in account_widget_account_enabled_cb */ + fire_close = FALSE; + } + else + { + /* If the account was offline, we always want to try reconnecting, + * to give it a chance to connect if the previous params were wrong. + * tp_account_reconnect_async() won't do anything if the requested + * presence is offline anyway. */ + if (tp_account_get_connection_status (account, NULL) == + TP_CONNECTION_STATUS_DISCONNECTED) + reconnect_required = TRUE; + + if (reconnect_required && tp_account_is_enabled (account) + && tp_account_is_enabled (account)) + { + /* After having applied changes to a user account, we + * reconnect it if needed. This is done so the new + * information entered by the user is validated on the server. */ + tp_account_reconnect_async (account, NULL, NULL); + } + } + } + + if (!self->priv->destroyed) + account_widget_set_control_buttons_sensitivity (self, FALSE); + + self->priv->contains_pending_changes = FALSE; + + if (fire_close) + { + /* announce the widget can be closed */ + g_signal_emit (self, signals[CLOSE], 0, GTK_RESPONSE_APPLY); + } + + /* unref the widget - part of the workaround */ + g_object_unref (self); +} + +void +tpaw_account_widget_apply_and_log_in (TpawAccountWidget *self) +{ + gboolean display_name_overridden; + + g_object_get (self->priv->settings, + "display-name-overridden", &display_name_overridden, NULL); + + if (self->priv->creating_account || !display_name_overridden) + { + gchar *display_name; + + /* set default display name for new accounts or update if user didn't + * manually override it. */ + display_name = tpaw_account_widget_get_default_display_name (self); + + tpaw_account_settings_set_display_name_async (self->priv->settings, + display_name, NULL, NULL); + + g_free (display_name); + } + + /* workaround to keep widget alive during async call */ + g_object_ref (self); + tpaw_account_settings_apply_async (self->priv->settings, + account_widget_applied_cb, self); +} + +static void +account_widget_apply_clicked_cb (GtkWidget *button, + TpawAccountWidget *self) +{ + tpaw_account_widget_apply_and_log_in (self); +} + +static void +account_widget_setup_generic (TpawAccountWidget *self) +{ + GtkWidget *grid_common_settings; + GtkWidget *grid_advanced_settings; + + grid_common_settings = GTK_WIDGET (gtk_builder_get_object + (self->ui_details->gui, "grid_common_settings")); + grid_advanced_settings = GTK_WIDGET (gtk_builder_get_object + (self->ui_details->gui, "grid_advanced_settings")); + + accounts_widget_generic_setup (self, grid_common_settings, + grid_advanced_settings); + + g_object_unref (self->ui_details->gui); +} + +static void +account_widget_settings_ready_cb (TpawAccountSettings *settings, + GParamSpec *pspec, + gpointer user_data) +{ + TpawAccountWidget *self = user_data; + + if (tpaw_account_settings_is_ready (self->priv->settings)) + account_widget_setup_generic (self); +} + +static GtkWidget * +account_widget_build_generic (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *expander_advanced, *box; + + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_settings", &self->priv->grid_common_settings, + "vbox_generic_settings", &box, + "expander_advanced_settings", &expander_advanced, + NULL); + + if (self->priv->simple) + gtk_widget_hide (expander_advanced); + + g_object_ref (self->ui_details->gui); + + if (tpaw_account_settings_is_ready (self->priv->settings)) + account_widget_setup_generic (self); + else + g_signal_connect (self->priv->settings, "notify::ready", + G_CALLBACK (account_widget_settings_ready_cb), self); + + return box; +} + +static GtkWidget * +account_widget_build_salut (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *expander_advanced, *box; + + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_settings", &self->priv->grid_common_settings, + "vbox_salut_settings", &box, + "expander_advanced_settings", &expander_advanced, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_published", "published-name", + "entry_nickname", "nickname", + "entry_first_name", "first-name", + "entry_last_name", "last-name", + "entry_email", "email", + "entry_jid", "jid", + NULL); + + if (self->priv->simple) + gtk_widget_hide (expander_advanced); + + self->ui_details->default_focus = g_strdup ("entry_first_name"); + + return box; +} + +static GtkWidget * +account_widget_build_irc (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *box; + + tpaw_account_settings_set_regex (self->priv->settings, "account", + ACCOUNT_REGEX_IRC); + + if (self->priv->simple) + { + self->priv->irc_network_chooser = tpaw_account_widget_irc_build_simple + (self, filename, &box); + } + else + { + self->priv->irc_network_chooser = tpaw_account_widget_irc_build (self, + filename, &self->priv->grid_common_settings, &box); + } + + return box; +} + +static GtkWidget * +account_widget_build_sip (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *box; + + box = tpaw_account_widget_sip_build (self, filename, + &self->priv->grid_common_settings); + + if (self->priv->simple) + { + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_simple")); + } + else + { + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, "remember_password")); + } + + return box; +} + +static GtkWidget * +account_widget_build_msn (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *box; + + tpaw_account_settings_set_regex (self->priv->settings, "account", + ACCOUNT_REGEX_MSN); + + if (self->priv->simple) + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_msn_simple", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id_simple", "account", + "entry_password_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id_simple"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_simple")); + } + else + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_msn_settings", &self->priv->grid_common_settings, + "vbox_msn_settings", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id", "account", + "entry_password", "password", + "entry_server", "server", + "spinbutton_port", "port", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, "remember_password")); + } + + return box; +} + +static Service +account_widget_get_service (TpawAccountWidget *self) +{ + const gchar *icon_name, *service; + + icon_name = tpaw_account_settings_get_icon_name (self->priv->settings); + service = tpaw_account_settings_get_service (self->priv->settings); + + /* Previous versions of Tpaw didn't set the Service property on gtalk + * account, so we check using the icon name as well. */ + if (!tp_strdiff (icon_name, "im-google-talk") || + !tp_strdiff (service, "google-talk")) + return GTALK_SERVICE; + + return NO_SERVICE; +} + +static GtkWidget * +account_widget_build_jabber (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *spinbutton_port; + GtkWidget *checkbutton_ssl; + GtkWidget *label_id, *label_password; + GtkWidget *label_example; + GtkWidget *expander_advanced; + GtkWidget *entry_id; + GtkWidget *box; + Service service; + + service = account_widget_get_service (self); + + tpaw_account_settings_set_regex (self->priv->settings, "account", + ACCOUNT_REGEX_JABBER); + + if (self->priv->simple && service == NO_SERVICE) + { + /* Simple widget for XMPP */ + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_jabber_simple", &box, + "label_id_simple", &label_id, + "label_password_simple", &label_password, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id_simple", "account", + "entry_password_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id_simple"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_simple")); + } + else if (self->priv->simple && service == GTALK_SERVICE) + { + /* Simple widget for Google Talk */ + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_gtalk_simple", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id_g_simple", "account", + "entry_password_g_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id_g_simple"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_g_simple")); + } + else + { + ServiceInfo info = services_infos[service]; + + /* Full widget for XMPP and Google Talk */ + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_settings", &self->priv->grid_common_settings, + "vbox_jabber_settings", &box, + "spinbutton_port", &spinbutton_port, + "checkbutton_ssl", &checkbutton_ssl, + info.label_username_example, &label_example, + "expander_advanced", &expander_advanced, + "entry_id", &entry_id, + "label_id", &label_id, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_password", "password", + "entry_resource", "resource", + "entry_server", "server", + "spinbutton_port", "port", + "spinbutton_priority", "priority", + "checkbutton_ssl", "old-ssl", + "checkbutton_ignore_ssl_errors", "ignore-ssl-errors", + "checkbutton_encryption", "require-encryption", + NULL); + + tpaw_account_widget_setup_widget (self, entry_id, "account"); + + self->ui_details->default_focus = g_strdup ("entry_id"); + self->priv->spinbutton_port = spinbutton_port; + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, "remember_password")); + + g_signal_connect (checkbutton_ssl, "toggled", + G_CALLBACK (account_widget_jabber_ssl_toggled_cb), + self); + + gtk_widget_show (label_example); + + if (!info.show_advanced) + gtk_widget_hide (expander_advanced); + } + + return box; +} + +static GtkWidget * +account_widget_build_icq (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *spinbutton_port; + GtkWidget *box; + + tpaw_account_settings_set_regex (self->priv->settings, "account", + ACCOUNT_REGEX_ICQ); + + if (self->priv->simple) + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_icq_simple", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_uin_simple", "account", + "entry_password_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_uin_simple"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_simple")); + } + else + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_settings", &self->priv->grid_common_settings, + "vbox_icq_settings", &box, + "spinbutton_port", &spinbutton_port, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_uin", "account", + "entry_password", "password", + "entry_server", "server", + "spinbutton_port", "port", + "entry_charset", "charset", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_uin"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, "remember_password")); + } + + return box; +} + +static GtkWidget * +account_widget_build_aim (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *spinbutton_port, *box; + + if (self->priv->simple) + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_aim_simple", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_screenname_simple", "account", + "entry_password_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_screenname_simple"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_simple")); + } + else + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_settings", &self->priv->grid_common_settings, + "vbox_aim_settings", &box, + "spinbutton_port", &spinbutton_port, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_screenname", "account", + "entry_password", "password", + "entry_server", "server", + "spinbutton_port", "port", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_screenname"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, "remember_password")); + } + + return box; +} + +static GtkWidget * +account_widget_build_yahoo (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *box; + + tpaw_account_settings_set_regex (self->priv->settings, "account", + ACCOUNT_REGEX_YAHOO); + + if (self->priv->simple) + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_yahoo_simple", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id_simple", "account", + "entry_password_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id_simple"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_simple")); + } + else + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_settings", &self->priv->grid_common_settings, + "vbox_yahoo_settings", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id", "account", + "entry_password", "password", + "entry_locale", "room-list-locale", + "entry_charset", "charset", + "spinbutton_port", "port", + "checkbutton_ignore_invites", "ignore-invites", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, "remember_password")); + } + + return box; +} + +static GtkWidget * +account_widget_build_groupwise (TpawAccountWidget *self, + const char *filename) +{ + GtkWidget *box; + + if (self->priv->simple) + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "vbox_groupwise_simple", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id_simple", "account", + "entry_password_simple", "password", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id_simple"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, + "remember_password_simple")); + } + else + { + self->ui_details->gui = tpaw_builder_get_resource (filename, + "grid_common_groupwise_settings", &self->priv->grid_common_settings, + "vbox_groupwise_settings", &box, + NULL); + + tpaw_account_widget_handle_params (self, + "entry_id", "account", + "entry_password", "password", + "entry_server", "server", + "spinbutton_port", "port", + NULL); + + self->ui_details->default_focus = g_strdup ("entry_id"); + + self->priv->remember_password_widget = GTK_WIDGET ( + gtk_builder_get_object (self->ui_details->gui, "remember_password")); + } + + return box; +} + +void +tpaw_account_widget_set_other_accounts_exist (TpawAccountWidget *self, + gboolean others_exist) +{ + self->priv->other_accounts_exist = others_exist; + + if (self->priv->creating_account) + account_widget_handle_control_buttons_sensitivity (self); +} + +static void +do_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawAccountWidget *self = TPAW_ACCOUNT_WIDGET (object); + + switch (prop_id) + { + case PROP_SETTINGS: + self->priv->settings = g_value_dup_object (value); + break; + case PROP_SIMPLE: + self->priv->simple = g_value_get_boolean (value); + break; + case PROP_CREATING_ACCOUNT: + self->priv->creating_account = g_value_get_boolean (value); + break; + case PROP_OTHER_ACCOUNTS_EXIST: + tpaw_account_widget_set_other_accounts_exist ( + TPAW_ACCOUNT_WIDGET (object), g_value_get_boolean (value)); + break; + case PROP_DIALOG: + self->priv->dialog = g_value_get_object (value); + if (self->priv->dialog != NULL) + { + g_object_ref_sink (self->priv->dialog); + self->priv->external_action_area = TRUE; + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +do_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TpawAccountWidget *self = TPAW_ACCOUNT_WIDGET (object); + + switch (prop_id) + { + case PROP_PROTOCOL: + g_value_set_string (value, + tpaw_account_settings_get_protocol (self->priv->settings)); + break; + case PROP_SETTINGS: + g_value_set_object (value, self->priv->settings); + break; + case PROP_SIMPLE: + g_value_set_boolean (value, self->priv->simple); + break; + case PROP_CREATING_ACCOUNT: + g_value_set_boolean (value, self->priv->creating_account); + break; + case PROP_OTHER_ACCOUNTS_EXIST: + g_value_set_boolean (value, self->priv->other_accounts_exist); + break; + case PROP_DIALOG: + g_value_set_object (value, self->priv->dialog); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +set_apply_button (TpawAccountWidget *self) +{ + const gchar *stock_image; + GtkWidget *image; + + if (self->priv->creating_account) + { + gtk_button_set_label (GTK_BUTTON (self->priv->apply_button), _("A_dd")); + stock_image = GTK_STOCK_ADD; + } + else + { + /* We can't use the stock button as its accelerator ('A') clashes with the + * Add button. */ + gtk_button_set_use_stock (GTK_BUTTON (self->priv->apply_button), FALSE); + gtk_button_set_label (GTK_BUTTON (self->priv->apply_button), _("A_pply")); + + stock_image = GTK_STOCK_APPLY; + } + + gtk_button_set_use_underline (GTK_BUTTON (self->priv->apply_button), TRUE); + + image = gtk_image_new_from_stock (stock_image, GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (self->priv->apply_button), image); +} + +#define WIDGET(cm, proto) \ + { #cm, #proto, TPAW_ACCOUNT_WIDGETS_RESOURCES_PREFIX "/tpaw-account-widget-"#proto".ui", \ + account_widget_build_##proto } + +static void +remember_password_toggled_cb (GtkToggleButton *button, + TpawAccountWidget *self) +{ + tpaw_account_settings_set_remember_password (self->priv->settings, + gtk_toggle_button_get_active (button)); + + if (!self->priv->automatic_change) + tpaw_account_widget_changed (self); +} + +static void +account_settings_password_retrieved_cb (GObject *object, + gpointer user_data) +{ + TpawAccountWidget *self = user_data; + gchar *password; + + password = tpaw_account_settings_dup_string ( + self->priv->settings, "password"); + + /* We have to do this so that when we call gtk_entry_set_text, + * the ::changed callback doesn't think the user made the + * change. This is also used in remember_password_toggled_cb. */ + self->priv->automatic_change = TRUE; + + if (password != NULL) + { + gtk_entry_set_text (GTK_ENTRY (self->priv->param_password_widget), + password); + } + + gtk_toggle_button_set_active ( + GTK_TOGGLE_BUTTON (self->priv->remember_password_widget), + !TPAW_STR_EMPTY (password)); + + self->priv->automatic_change = FALSE; + + g_free (password); +} + +static void +do_constructed (GObject *obj) +{ + TpawAccountWidget *self = TPAW_ACCOUNT_WIDGET (obj); + const gchar *display_name; + gchar *default_display_name; + guint i = 0; + struct { + const gchar *cm_name; + const gchar *protocol; + const char *file; + GtkWidget * (*func)(TpawAccountWidget *self, const gchar *filename); + } widgets [] = { + { "salut", "local-xmpp", TPAW_ACCOUNT_WIDGETS_RESOURCES_PREFIX "/tpaw-account-widget-local-xmpp.ui", + account_widget_build_salut }, + WIDGET (gabble, jabber), + WIDGET (haze, msn), + WIDGET (haze, icq), + WIDGET (haze, aim), + WIDGET (haze, yahoo), + WIDGET (haze, groupwise), + WIDGET (idle, irc), + WIDGET (sofiasip, sip), + }; + const gchar *protocol, *cm_name; + GtkWidget *box; + + cm_name = tpaw_account_settings_get_cm (self->priv->settings); + protocol = tpaw_account_settings_get_protocol (self->priv->settings); + + for (i = 0 ; i < G_N_ELEMENTS (widgets); i++) + { + if (!tp_strdiff (widgets[i].cm_name, cm_name) && + !tp_strdiff (widgets[i].protocol, protocol)) + { + box = widgets[i].func (self, widgets[i].file); + break; + } + } + + if (i == G_N_ELEMENTS (widgets)) + { + gchar *filename = TPAW_ACCOUNT_WIDGETS_RESOURCES_PREFIX "/tpaw-account-widget-generic.ui"; + box = account_widget_build_generic (self, filename); + } + + gtk_container_add (GTK_CONTAINER (self), box); + + /* handle default focus */ + if (self->ui_details->default_focus != NULL) + { + GObject *default_focus_entry; + + default_focus_entry = gtk_builder_get_object + (self->ui_details->gui, self->ui_details->default_focus); + g_signal_connect (default_focus_entry, "realize", + G_CALLBACK (gtk_widget_grab_focus), + NULL); + } + + /* remember password */ + if (self->priv->param_password_widget != NULL + && self->priv->remember_password_widget != NULL + && tpaw_account_settings_supports_sasl (self->priv->settings)) + { + if (self->priv->simple) + { + gtk_toggle_button_set_active ( + GTK_TOGGLE_BUTTON (self->priv->remember_password_widget), TRUE); + } + else + { + gchar *password; + + password = tpaw_account_settings_dup_string (self->priv->settings, + "password"); + + /* FIXME: we should enable this checkbox only if the password is + * stored for good in the password storage, not only for the session + * (bgo #683571) */ + gtk_toggle_button_set_active ( + GTK_TOGGLE_BUTTON (self->priv->remember_password_widget), + !TPAW_STR_EMPTY (password)); + + /* The password might not have been retrieved from the + * keyring yet. We should update the remember password + * toggle button and the password entry when/if it is. */ + tp_g_signal_connect_object (self->priv->settings, + "password-retrieved", + G_CALLBACK (account_settings_password_retrieved_cb), self, 0); + + g_free (password); + } + + g_signal_connect (self->priv->remember_password_widget, "toggled", + G_CALLBACK (remember_password_toggled_cb), self); + + self->priv->automatic_change = TRUE; + remember_password_toggled_cb ( + GTK_TOGGLE_BUTTON (self->priv->remember_password_widget), self); + self->priv->automatic_change = FALSE; + } + else if (self->priv->remember_password_widget != NULL + && !tpaw_account_settings_supports_sasl (self->priv->settings)) + { + gtk_widget_set_visible (self->priv->remember_password_widget, FALSE); + tpaw_account_settings_set_remember_password (self->priv->settings, + TRUE); + } + + /* dup and init the account-manager */ + self->priv->account_manager = tp_account_manager_dup (); + tp_proxy_prepare_async (self->priv->account_manager, NULL, NULL, NULL); + + if (!self->priv->external_action_area) + { + GtkWidget *button_box; + + g_assert (self->priv->dialog == NULL); + button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); + gtk_button_box_set_layout (GTK_BUTTON_BOX (button_box), + GTK_BUTTONBOX_END); + /* Hard code the default spacing as we cannot easily get this property + * as the widget is not in a GtkDialog yet (and it could end up packed + * in a non-GtkDialog window anyway */ + gtk_box_set_spacing (GTK_BOX (button_box), 6); + + self->priv->cancel_button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); + gtk_box_pack_end (GTK_BOX (button_box), + self->priv->cancel_button, TRUE, TRUE, 3); + + self->priv->apply_button = gtk_button_new (); + gtk_box_pack_end (GTK_BOX (button_box), + self->priv->apply_button, TRUE, TRUE, 3); + + gtk_box_pack_end (GTK_BOX (self), button_box, FALSE, FALSE, 3); + gtk_widget_show_all (button_box); + } + else + { + g_assert (self->priv->dialog != NULL); + self->priv->cancel_button = gtk_dialog_add_button ( + GTK_DIALOG (self->priv->dialog), + GTK_STOCK_CLOSE, + GTK_RESPONSE_CANCEL); + self->priv->apply_button = gtk_dialog_add_button ( + GTK_DIALOG (self->priv->dialog), + "", + GTK_RESPONSE_APPLY); + gtk_dialog_set_default_response (GTK_DIALOG (self->priv->dialog), + GTK_RESPONSE_APPLY); + } + + set_apply_button (self); + + g_signal_connect (self->priv->cancel_button, "clicked", + G_CALLBACK (account_widget_cancel_clicked_cb), + self); + g_signal_connect (self->priv->apply_button, "clicked", + G_CALLBACK (account_widget_apply_clicked_cb), + self); + + if (self->priv->creating_account) + /* When creating an account, the user might have nothing to enter. + * That means that no control interaction might occur, + * so we update the control button sensitivity manually. + */ + account_widget_handle_control_buttons_sensitivity (self); + else + account_widget_set_control_buttons_sensitivity (self, FALSE); + + g_clear_object (&self->ui_details->gui); + + display_name = tpaw_account_settings_get_display_name ( + self->priv->settings); + default_display_name = tpaw_account_widget_get_default_display_name (self); + + if (tp_strdiff (display_name, default_display_name) && + !self->priv->creating_account) + { + /* The display name of the account is not the one that we'd assign by + * default; assume that the user changed it manually */ + g_object_set (self->priv->settings, "display-name-overridden", TRUE, + NULL); + } + g_free (default_display_name); +} + +static void +do_dispose (GObject *obj) +{ + TpawAccountWidget *self = TPAW_ACCOUNT_WIDGET (obj); + + g_clear_object (&self->priv->settings); + g_clear_object (&self->priv->account_manager); + g_clear_object (&self->priv->dialog); + + if (G_OBJECT_CLASS (tpaw_account_widget_parent_class)->dispose != NULL) + G_OBJECT_CLASS (tpaw_account_widget_parent_class)->dispose (obj); +} + +static void +do_finalize (GObject *obj) +{ + TpawAccountWidget *self = TPAW_ACCOUNT_WIDGET (obj); + + g_free (self->ui_details->default_focus); + g_slice_free (TpawAccountWidgetUIDetails, self->ui_details); + + if (G_OBJECT_CLASS (tpaw_account_widget_parent_class)->finalize != NULL) + G_OBJECT_CLASS (tpaw_account_widget_parent_class)->finalize (obj); +} + +static void +tpaw_account_widget_class_init (TpawAccountWidgetClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *param_spec; + + oclass->get_property = do_get_property; + oclass->set_property = do_set_property; + oclass->constructed = do_constructed; + oclass->dispose = do_dispose; + oclass->finalize = do_finalize; + + param_spec = g_param_spec_string ("protocol", + "protocol", "The protocol of the account", + NULL, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_PROTOCOL, param_spec); + + param_spec = g_param_spec_object ("settings", + "settings", "The settings of the account", + TPAW_TYPE_ACCOUNT_SETTINGS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (oclass, PROP_SETTINGS, param_spec); + + param_spec = g_param_spec_boolean ("simple", + "simple", "Whether the account widget is a simple or an advanced one", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (oclass, PROP_SIMPLE, param_spec); + + param_spec = g_param_spec_boolean ("creating-account", + "creating-account", + "TRUE if we're creating an account, FALSE if we're modifying it", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (oclass, PROP_CREATING_ACCOUNT, param_spec); + + param_spec = g_param_spec_boolean ("other-accounts-exist", + "other-accounts-exist", + "TRUE if there are any other accounts (even if this isn't yet saved)", + FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (oclass, PROP_OTHER_ACCOUNTS_EXIST, + param_spec); + + param_spec = g_param_spec_object ("dialog", + "dialog", + "The dialog where to pack the action buttons (or NULL)", + GTK_TYPE_DIALOG, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (oclass, PROP_DIALOG, + param_spec); + + signals[HANDLE_APPLY] = + g_signal_new ("handle-apply", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 1, G_TYPE_BOOLEAN); + + /* This signal is emitted when an account has been created and enabled. */ + signals[ACCOUNT_CREATED] = + g_signal_new ("account-created", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 1, G_TYPE_OBJECT); + + signals[CANCELLED] = + g_signal_new ("cancelled", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 0); + + signals[CLOSE] = + g_signal_new ("close", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, + 1, G_TYPE_INT); + + g_type_class_add_private (klass, sizeof (TpawAccountWidgetPriv)); +} + +static void +tpaw_account_widget_init (TpawAccountWidget *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE ((self), TPAW_TYPE_ACCOUNT_WIDGET, + TpawAccountWidgetPriv); + + self->ui_details = g_slice_new0 (TpawAccountWidgetUIDetails); +} + +/* public methods */ + +void +tpaw_account_widget_discard_pending_changes (TpawAccountWidget *self) +{ + tpaw_account_settings_discard_changes (self->priv->settings); + self->priv->contains_pending_changes = FALSE; +} + +gboolean +tpaw_account_widget_contains_pending_changes (TpawAccountWidget *self) +{ + return self->priv->contains_pending_changes; +} + +void +tpaw_account_widget_handle_params (TpawAccountWidget *self, + const gchar *first_widget, + ...) +{ + va_list args; + + va_start (args, first_widget); + account_widget_handle_params_valist (self, first_widget, args); + va_end (args); +} + +TpawAccountWidget * +tpaw_account_widget_new_for_protocol (TpawAccountSettings *settings, + GtkDialog *dialog, + gboolean simple) +{ + g_return_val_if_fail (TPAW_IS_ACCOUNT_SETTINGS (settings), NULL); + + return g_object_new (TPAW_TYPE_ACCOUNT_WIDGET, + "orientation", GTK_ORIENTATION_VERTICAL, + "settings", settings, + "simple", simple, + "creating-account", + tpaw_account_settings_get_account (settings) == NULL, + "dialog", dialog, + NULL); +} + +gchar * +tpaw_account_widget_get_default_display_name (TpawAccountWidget *self) +{ + gchar *login_id; + const gchar *protocol, *p; + gchar *default_display_name; + + login_id = tpaw_account_settings_dup_string (self->priv->settings, + "account"); + protocol = tpaw_account_settings_get_protocol (self->priv->settings); + + if (login_id != NULL) + { + /* TODO: this should be done in tpaw-account-widget-irc */ + if (!tp_strdiff (protocol, "irc")) + { + TpawIrcNetwork *network; + + network = tpaw_irc_network_chooser_get_network ( + self->priv->irc_network_chooser); + g_assert (network != NULL); + + /* To translators: The first parameter is the login id and the + * second one is the network. The resulting string will be something + * like: "MyUserName on freenode". + * You should reverse the order of these arguments if the + * server should come before the login id in your locale.*/ + default_display_name = g_strdup_printf (_("%1$s on %2$s"), + login_id, tpaw_irc_network_get_name (network)); + } + else + { + default_display_name = g_strdup (login_id); + } + g_free (login_id); + + return default_display_name; + } + + if ((p = tpaw_protocol_name_to_display_name (protocol)) != NULL) + protocol = p; + + if (protocol != NULL) + { + /* To translators: The parameter is the protocol name. The resulting + * string will be something like: "Jabber Account" */ + default_display_name = g_strdup_printf (_("%s Account"), protocol); + } + else + { + default_display_name = g_strdup (_("New account")); + } + + return default_display_name; +} + +/* Used by subclass to indicate that widget contains pending changes */ +void +tpaw_account_widget_changed (TpawAccountWidget *self) +{ + account_widget_handle_control_buttons_sensitivity (self); + self->priv->contains_pending_changes = TRUE; +} + +void +tpaw_account_widget_set_account_param (TpawAccountWidget *self, + const gchar *account) +{ + if (self->priv->param_account_widget == NULL) + return; + + gtk_entry_set_text (GTK_ENTRY (self->priv->param_account_widget), account); +} + +void +tpaw_account_widget_set_password_param (TpawAccountWidget *self, + const gchar *account) +{ + if (self->priv->param_password_widget == NULL) + return; + + gtk_entry_set_text (GTK_ENTRY (self->priv->param_password_widget), account); +} + +TpawAccountSettings * +tpaw_account_widget_get_settings (TpawAccountWidget *self) +{ + return self->priv->settings; +} + +void +tpaw_account_widget_hide_buttons (TpawAccountWidget *self) +{ + gtk_widget_hide (self->priv->apply_button); + gtk_widget_hide (self->priv->cancel_button); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget.h b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget.h new file mode 100644 index 0000000..3ef5f1c --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widget.h @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2006-2007 Imendio AB + * Copyright (C) 2007-2008 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + * Martyn Russell + */ + +#ifndef __TPAW_ACCOUNT_WIDGET_H__ +#define __TPAW_ACCOUNT_WIDGET_H__ + +#include + +#include "tpaw-account-settings.h" + +G_BEGIN_DECLS + +#define TPAW_TYPE_ACCOUNT_WIDGET tpaw_account_widget_get_type() +#define TPAW_ACCOUNT_WIDGET(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), TPAW_TYPE_ACCOUNT_WIDGET, TpawAccountWidget)) +#define TPAW_ACCOUNT_WIDGET_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), TPAW_TYPE_ACCOUNT_WIDGET, TpawAccountWidgetClass)) +#define TPAW_IS_ACCOUNT_WIDGET(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TPAW_TYPE_ACCOUNT_WIDGET)) +#define TPAW_IS_ACCOUNT_WIDGET_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), TPAW_TYPE_ACCOUNT_WIDGET)) +#define TPAW_ACCOUNT_WIDGET_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), TPAW_TYPE_ACCOUNT_WIDGET, TpawAccountWidgetClass)) + +typedef struct _TpawAccountWidgetPriv TpawAccountWidgetPriv; +typedef struct _TpawAccountWidgetUIDetails TpawAccountWidgetUIDetails; + +typedef struct { + GtkBox parent; + + TpawAccountWidgetUIDetails *ui_details; + + TpawAccountWidgetPriv *priv; +} TpawAccountWidget; + +typedef struct { + GtkBoxClass parent_class; +} TpawAccountWidgetClass; + +GType tpaw_account_widget_get_type (void); + +TpawAccountWidget * tpaw_account_widget_new_for_protocol ( + TpawAccountSettings *settings, + GtkDialog *dialog, + gboolean simple); + +gboolean tpaw_account_widget_contains_pending_changes + (TpawAccountWidget *widget); +void tpaw_account_widget_discard_pending_changes + (TpawAccountWidget *widget); + +gchar * tpaw_account_widget_get_default_display_name ( + TpawAccountWidget *widget); + +void tpaw_account_widget_set_account_param (TpawAccountWidget *widget, + const gchar *account); + +void tpaw_account_widget_set_password_param (TpawAccountWidget *self, + const gchar *password); + +void tpaw_account_widget_set_other_accounts_exist ( + TpawAccountWidget *self, gboolean others_exist); + +void tpaw_account_widget_hide_buttons (TpawAccountWidget *self); + +void tpaw_account_widget_apply_and_log_in (TpawAccountWidget *self); + +/* protected methods */ +void tpaw_account_widget_changed (TpawAccountWidget *widget); + +TpawAccountSettings * tpaw_account_widget_get_settings ( + TpawAccountWidget *self); + +G_END_DECLS + +#endif /* __TPAW_ACCOUNT_WIDGET_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-account-widgets.gresource.xml b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widgets.gresource.xml new file mode 100644 index 0000000..6645041 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-account-widgets.gresource.xml @@ -0,0 +1,17 @@ + + + + tpaw-irc-networks.dtd + tpaw-account-widget-generic.ui + tpaw-account-widget-jabber.ui + tpaw-account-widget-msn.ui + tpaw-account-widget-sip.ui + tpaw-account-widget-local-xmpp.ui + tpaw-account-widget-irc.ui + tpaw-account-widget-icq.ui + tpaw-account-widget-yahoo.ui + tpaw-account-widget-groupwise.ui + tpaw-account-widget-aim.ui + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-avatar-chooser.c b/telepathy-account-widgets/tp-account-widgets/tpaw-avatar-chooser.c new file mode 100644 index 0000000..89c29ae --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-avatar-chooser.c @@ -0,0 +1,1274 @@ +/* + * Copyright (C) 2006-2007 Imendio AB. + * Copyright (C) 2007-2008 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Based on Novell's e-image-chooser. + * Xavier Claessens + */ + +#include "config.h" +#include "tpaw-avatar-chooser.h" + +#include +#include + +#include "tpaw-camera-monitor.h" +#include "tpaw-gsettings.h" +#include "tpaw-images.h" +#include "tpaw-pixbuf-utils.h" +#include "tpaw-utils.h" + +#ifdef HAVE_CHEESE +#include +#endif /* HAVE_CHEESE */ + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +/** + * SECTION:tpaw-avatar-chooser + * @title: TpawAvatarChooser + * @short_description: A widget used to change avatar + * @include: tp-account-widgets/tpaw-avatar-chooser.h + * + * #TpawAvatarChooser is a widget which extends #GtkButton to + * provide a way of changing avatar. + */ + +/** + * TpawAvatarChooser: + * @parent: parent object + * + * Widget which extends #GtkButton to provide a way of changing avatar. + */ + +#define AVATAR_SIZE_SAVE 96 +#define AVATAR_SIZE_VIEW 64 +#define DEFAULT_DIR DATADIR"/pixmaps/faces" + +#ifdef HAVE_CHEESE +/* + * A custom GtkResponseType used when the user presses the + * "Camera Picture" button. Any positive value would be sufficient. + */ +#define TPAW_AVATAR_CHOOSER_RESPONSE_WEBCAM 10 +#endif +#define TPAW_AVATAR_CHOOSER_RESPONSE_NO_IMAGE GTK_RESPONSE_NO +#define TPAW_AVATAR_CHOOSER_RESPONSE_CANCEL GTK_RESPONSE_CANCEL +#define TPAW_AVATAR_CHOOSER_RESPONSE_FILE GTK_RESPONSE_OK + +struct _TpawAvatarChooserPrivate +{ + TpAccount *account; + + GArray *avatar; + gchar *mime_type; + gboolean changed; + + GtkFileChooser *chooser_dialog; +#ifdef ENABLE_SETTINGS + GSettings *gsettings_ui; +#endif + + gint pixel_size; +}; + +enum +{ + PROP_0, + PROP_ACCOUNT, + PROP_PIXEL_SIZE +}; + +G_DEFINE_TYPE (TpawAvatarChooser, tpaw_avatar_chooser, GTK_TYPE_BUTTON); + +/* + * Drag and drop stuff + */ +#define URI_LIST_TYPE "text/uri-list" + +enum DndTargetType +{ + DND_TARGET_TYPE_URI_LIST +}; + +static const GtkTargetEntry drop_types[] = +{ + { URI_LIST_TYPE, 0, DND_TARGET_TYPE_URI_LIST }, +}; + +static void avatar_chooser_set_image (TpawAvatarChooser *self, + GArray *avatar, + gchar *mime_type, + GdkPixbuf *pixbuf, + gboolean maybe_convert); +static void avatar_chooser_clear_image (TpawAvatarChooser *self); + +static void +get_avatar_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpWeakRef *wr = user_data; + TpawAvatarChooser *self = tp_weak_ref_dup_object (wr); + const GArray *avatar; + GdkPixbuf *pixbuf; + gchar *mime_type; + GError *error = NULL; + + if (self == NULL) + { + tp_weak_ref_destroy (wr); + return; + } + + avatar = tp_account_get_avatar_finish (self->priv->account, result, &error); + if (avatar == NULL) + { + DEBUG ("Error getting account's avatar: %s", error->message); + g_clear_error (&error); + goto out; + } + + if (avatar->len == 0) + { + avatar_chooser_clear_image (self); + goto out; + } + + pixbuf = tpaw_pixbuf_from_data_and_mime ((gchar *) avatar->data, + avatar->len, &mime_type); + if (pixbuf == NULL) + { + DEBUG ("couldn't make a pixbuf from avatar; giving up"); + goto out; + } + + avatar_chooser_set_image (self, (GArray *) avatar, mime_type, pixbuf, FALSE); + g_free (mime_type); + + self->priv->changed = FALSE; + +out: + tp_weak_ref_destroy (wr); + g_object_unref (self); +} + +static void +avatar_changed_cb (TpAccount *account, + gpointer user_data, + GObject *weak_object) +{ + TpawAvatarChooser *self = (TpawAvatarChooser *) weak_object; + + tp_account_get_avatar_async (self->priv->account, + get_avatar_cb, tp_weak_ref_new (self, NULL, NULL)); +} + +static void +avatar_chooser_constructed (GObject *object) +{ + TpawAvatarChooser *self = (TpawAvatarChooser *) object; + + G_OBJECT_CLASS (tpaw_avatar_chooser_parent_class)->constructed (object); + + /* This cannot be called from _init() as this would cause a memory leak with + * gtk+ <= 3.17 (and maybe with newer), see this gtk+ bug: + * https://bugzilla.gnome.org/show_bug.cgi?id=753048 + */ + avatar_chooser_clear_image (self); + + tp_account_get_avatar_async (self->priv->account, + get_avatar_cb, tp_weak_ref_new (self, NULL, NULL)); + + /* FIXME: no signal on TpAccount, yet. + * See https://bugs.freedesktop.org/show_bug.cgi?id=52938 */ + tp_cli_account_interface_avatar_connect_to_avatar_changed ( + self->priv->account, avatar_changed_cb, NULL, NULL, (GObject *) self, + NULL); +} + +static void +avatar_chooser_get_property (GObject *object, + guint param_id, + GValue *value, + GParamSpec *pspec) +{ + TpawAvatarChooser *self = (TpawAvatarChooser *) object; + + switch (param_id) + { + case PROP_ACCOUNT: + g_value_set_object (value, self->priv->account); + break; + case PROP_PIXEL_SIZE: + g_value_set_int (value, self->priv->pixel_size); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + } +} + +static void +avatar_chooser_set_pixel_size (TpawAvatarChooser *self, + gint pixel_size) +{ + if (pixel_size == -1) + pixel_size = AVATAR_SIZE_VIEW; + self->priv->pixel_size = pixel_size; +} + +static void +avatar_chooser_set_property (GObject *object, + guint param_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawAvatarChooser *self = TPAW_AVATAR_CHOOSER (object); + + switch (param_id) + { + case PROP_ACCOUNT: + g_assert (self->priv->account == NULL); /* construct-only */ + self->priv->account = g_value_dup_object (value); + break; + case PROP_PIXEL_SIZE: + avatar_chooser_set_pixel_size (self, g_value_get_int (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + } +} + +static void +avatar_chooser_dispose (GObject *object) +{ + TpawAvatarChooser *self = (TpawAvatarChooser *) object; + + tp_clear_object (&self->priv->account); + tp_clear_pointer (&self->priv->avatar, g_array_unref); + tp_clear_pointer (&self->priv->mime_type, g_free); +#ifdef ENABLE_SETTINGS + tp_clear_object (&self->priv->gsettings_ui); +#endif + + G_OBJECT_CLASS (tpaw_avatar_chooser_parent_class)->dispose (object); +} + +static void +tpaw_avatar_chooser_class_init (TpawAvatarChooserClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GParamSpec *param_spec; + + object_class->constructed = avatar_chooser_constructed; + object_class->dispose = avatar_chooser_dispose; + object_class->get_property = avatar_chooser_get_property; + object_class->set_property = avatar_chooser_set_property; + + /** + * TpawAvatarChooser:account: + * + * The #TpAccount whose avatar should be shown and modified by + * the #TpawAvatarChooser instance. + */ + param_spec = g_param_spec_object ("account", + "TpAccount", + "TpAccount whose avatar should be " + "shown and modified by this widget", + TP_TYPE_ACCOUNT, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, + PROP_ACCOUNT, + param_spec); + + /** + * TpawAvatarChooser:pixel-size: + * + * The size at which the avatar is shown in pixels. If set to -1 + * then a default value of 64 is used. + */ + param_spec = g_param_spec_int ("pixel-size", + "Pixel size", + "Pixel size at which the avatar is shown", + -1, + G_MAXINT, + AVATAR_SIZE_VIEW, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, + PROP_PIXEL_SIZE, + param_spec); + + g_type_class_add_private (object_class, sizeof (TpawAvatarChooserPrivate)); +} + +static gboolean +avatar_chooser_drag_motion_cb (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time_, + TpawAvatarChooser *self) +{ + GList *p; + + for (p = gdk_drag_context_list_targets (context); p != NULL; + p = p->next) + { + gchar *possible_type; + + possible_type = gdk_atom_name (GDK_POINTER_TO_ATOM (p->data)); + + if (!strcmp (possible_type, URI_LIST_TYPE)) + { + g_free (possible_type); + gdk_drag_status (context, GDK_ACTION_COPY, time_); + + return TRUE; + } + + g_free (possible_type); + } + + return FALSE; +} + +static gboolean +avatar_chooser_drag_drop_cb (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time_, + TpawAvatarChooser *self) +{ + GList *p; + + if (gdk_drag_context_list_targets (context) == NULL) + return FALSE; + + for (p = gdk_drag_context_list_targets (context); + p != NULL; p = p->next) + { + char *possible_type; + + possible_type = gdk_atom_name (GDK_POINTER_TO_ATOM (p->data)); + if (!strcmp (possible_type, URI_LIST_TYPE)) + { + g_free (possible_type); + gtk_drag_get_data (widget, context, + GDK_POINTER_TO_ATOM (p->data), + time_); + + return TRUE; + } + + g_free (possible_type); + } + + return FALSE; +} + +static void +avatar_chooser_clear_image (TpawAvatarChooser *self) +{ + GtkWidget *image; + + tp_clear_pointer (&self->priv->avatar, g_array_unref); + tp_clear_pointer (&self->priv->mime_type, g_free); + self->priv->changed = TRUE; + + image = gtk_image_new_from_icon_name (TPAW_IMAGE_AVATAR_DEFAULT, + GTK_ICON_SIZE_DIALOG); + gtk_button_set_image (GTK_BUTTON (self), image); +} + +static gboolean +str_in_strv (const gchar *str, + gchar **strv) +{ + if (strv == NULL) + return FALSE; + + while (*strv != NULL) + { + if (g_str_equal (str, *strv)) + return TRUE; + + strv++; + } + + return FALSE; +} + +/* The caller must free the strings stored in satisfactory_format_name and + * satisfactory_mime_type. + */ +static gboolean +avatar_chooser_need_mime_type_conversion (const gchar *current_mime_type, + gchar **accepted_mime_types, + gchar **satisfactory_format_name, + gchar **satisfactory_mime_type) +{ + gchar *good_mime_types[] = {"image/jpeg", "image/png", NULL}; + guint i; + GSList *formats, *l; + gboolean found = FALSE; + + *satisfactory_format_name = NULL; + *satisfactory_mime_type = NULL; + + /* If there is no accepted format there is nothing we can do */ + if (accepted_mime_types == NULL || *accepted_mime_types == NULL) + return TRUE; + + /* If the current mime type is good and accepted, don't change it! + * jpeg is compress better pictures, but png is better for logos and + * could have an alpha layer. */ + if (str_in_strv (current_mime_type, good_mime_types) && + str_in_strv (current_mime_type, accepted_mime_types)) + { + *satisfactory_mime_type = g_strdup (current_mime_type); + *satisfactory_format_name = g_strdup (current_mime_type + + strlen ("image/")); + return FALSE; + } + + /* The current mime type is either not accepted or not good to use. + * Check if one of the good format is supported... */ + for (i = 0; good_mime_types[i] != NULL; i++) + { + if (str_in_strv (good_mime_types[i], accepted_mime_types)) + { + *satisfactory_mime_type = g_strdup (good_mime_types[i]); + *satisfactory_format_name = g_strdup (good_mime_types[i] + + strlen ("image/")); + return TRUE; + } + } + + /* Pick the first supported format we can write */ + formats = gdk_pixbuf_get_formats (); + for (l = formats; !found && l != NULL; l = l->next) + { + GdkPixbufFormat *format = l->data; + gchar **format_mime_types; + gchar **iter; + + if (!gdk_pixbuf_format_is_writable (format)) + continue; + + format_mime_types = gdk_pixbuf_format_get_mime_types (format); + for (iter = format_mime_types; *iter != NULL; iter++) + { + if (str_in_strv (*iter, accepted_mime_types)) + { + *satisfactory_format_name = gdk_pixbuf_format_get_name (format); + *satisfactory_mime_type = g_strdup (*iter); + found = TRUE; + break; + } + } + g_strfreev (format_mime_types); + } + g_slist_free (formats); + + return TRUE; +} + +static void +avatar_chooser_error_show (TpawAvatarChooser *self, + const gchar *primary_text, + const gchar *secondary_text) +{ + GtkWidget *parent; + GtkWidget *dialog; + + parent = gtk_widget_get_toplevel (GTK_WIDGET (self)); + if (!GTK_IS_WINDOW (parent)) + parent = NULL; + + dialog = gtk_message_dialog_new (parent ? GTK_WINDOW (parent) : NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CLOSE, + "%s", primary_text); + + if (secondary_text != NULL) + { + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + "%s", secondary_text); + } + + g_signal_connect (dialog, "response", + G_CALLBACK (gtk_widget_destroy), NULL); + gtk_widget_show (dialog); + +} + +static TpAvatarRequirements * +get_requirements (TpawAvatarChooser *self) +{ + TpConnection *connection; + + /* FIXME: Should get on TpProtocol if account is offline */ + connection = tp_account_get_connection (self->priv->account); + return tp_connection_get_avatar_requirements (connection); +} + + +static gboolean +avatar_chooser_maybe_convert_and_scale (TpawAvatarChooser *self, + GdkPixbuf *pixbuf, + GArray *avatar, + gchar *mime_type, + GArray **ret_avatar, + gchar **ret_mime_type) +{ + TpAvatarRequirements *req; + gboolean needs_conversion = FALSE; + guint width, height; + gchar *new_format_name = NULL; + gchar *new_mime_type = NULL; + gdouble min_factor, max_factor; + gdouble factor; + gchar *best_image_data = NULL; + gsize best_image_size = 0; + guint count = 0; + + g_assert (ret_avatar != NULL); + g_assert (ret_mime_type != NULL); + + req = get_requirements (self); + if (req == NULL) + { + DEBUG ("Avatar requirements not ready"); + return FALSE; + } + + /* Smaller is the factor, smaller will be the image. + * 0 is an empty image, 1 is the full size. */ + min_factor = 0; + max_factor = 1; + factor = 1; + + /* Check if we need to convert to another image format */ + if (avatar_chooser_need_mime_type_conversion (mime_type, + req->supported_mime_types, &new_format_name, &new_mime_type)) + { + DEBUG ("Format conversion needed, we'll use mime type '%s' " + "and format name '%s'. Current mime type is '%s'", + new_mime_type, new_format_name, mime_type); + needs_conversion = TRUE; + } + + /* If there is no format we can use, report error to the user. */ + if (new_mime_type == NULL || new_format_name == NULL) + { + avatar_chooser_error_show (self, _("Couldn’t convert image"), + _("None of the accepted image formats are " + "supported on your system")); + return FALSE; + } + + /* If width or height are too big, it needs converting. */ + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + if ((req->maximum_width > 0 && width > req->maximum_width) || + (req->maximum_height > 0 && height > req->maximum_height)) + { + gdouble h_factor, v_factor; + + h_factor = (gdouble) req->maximum_width / width; + v_factor = (gdouble) req->maximum_height / height; + factor = max_factor = MIN (h_factor, v_factor); + + DEBUG ("Image dimensions (%dx%d) are too big. Max is %dx%d.", + width, height, req->maximum_width, req->maximum_height); + + needs_conversion = TRUE; + } + + /* If the data len is too big and no other conversion is needed, + * try with a lower factor. */ + if (req->maximum_bytes > 0 && avatar->len > req->maximum_bytes && + !needs_conversion) + { + DEBUG ("Image data (%u bytes) is too big " + "(max is %u bytes), conversion needed.", + avatar->len, req->maximum_bytes); + + factor = 0.5; + needs_conversion = TRUE; + } + + /* If no conversion is needed, return the avatar */ + if (!needs_conversion) + { + *ret_avatar = g_array_ref (avatar); + *ret_mime_type = g_strdup (mime_type); + return TRUE; + } + + do + { + GdkPixbuf *pixbuf_scaled = NULL; + gboolean saved; + gint new_width, new_height; + gchar *converted_image_data; + gsize converted_image_size; + GError *error = NULL; + + if (factor != 1) + { + new_width = width * factor; + new_height = height * factor; + pixbuf_scaled = gdk_pixbuf_scale_simple (pixbuf, + new_width, + new_height, + GDK_INTERP_HYPER); + } + else + { + new_width = width; + new_height = height; + pixbuf_scaled = g_object_ref (pixbuf); + } + + DEBUG ("Trying with factor %f (%dx%d) and format %s...", factor, + new_width, new_height, new_format_name); + + saved = gdk_pixbuf_save_to_buffer (pixbuf_scaled, + &converted_image_data, + &converted_image_size, + new_format_name, + &error, NULL); + g_object_unref (pixbuf_scaled); + + if (!saved) + { + g_free (new_format_name); + g_free (new_mime_type); + avatar_chooser_error_show (self, + _("Couldn’t convert image"), + error ? error->message : NULL); + g_clear_error (&error); + return FALSE; + } + + DEBUG ("Produced an image data of %"G_GSIZE_FORMAT" bytes.", + converted_image_size); + + /* If the new image satisfy the req, keep it as current best */ + if (req->maximum_bytes == 0 || converted_image_size <= req->maximum_bytes) + { + g_free (best_image_data); + + best_image_data = converted_image_data; + best_image_size = converted_image_size; + + /* If this image is close enough to the optimal size, + * stop searching */ + if (req->maximum_bytes == 0 || + req->maximum_bytes - converted_image_size <= 1024) + break; + } + else + { + g_free (converted_image_data); + } + + /* Make a binary search for the bigest factor that produce + * an image data size less than max_size */ + if (converted_image_size > req->maximum_bytes) + max_factor = factor; + if (converted_image_size < req->maximum_bytes) + min_factor = factor; + factor = (min_factor + max_factor)/2; + + if ((int) (width * factor) == new_width || + (int) (height * factor) == new_height) + { + /* min_factor and max_factor are too close, so the new + * factor will produce the same image as previous + * iteration. No need to continue, we already found + * the optimal size. */ + break; + } + + /* Do 10 iterations in the worst case */ + } while (++count < 10); + + g_free (new_format_name); + + /* FIXME: there is no way to create a GArray with zero copy? */ + *ret_avatar = g_array_sized_new (FALSE, FALSE, sizeof (gchar), + best_image_size); + g_array_append_vals (*ret_avatar, best_image_data, best_image_size); + g_free (best_image_data); + + *ret_mime_type = new_mime_type; + + return TRUE; +} + +/* Take ownership of @pixbuf */ +static void +avatar_chooser_set_image (TpawAvatarChooser *self, + GArray *avatar, + gchar *mime_type, + GdkPixbuf *pixbuf, + gboolean maybe_convert) +{ + GdkPixbuf *pixbuf_view; + GtkWidget *image; + + g_assert (avatar != NULL); + g_assert (pixbuf != NULL); + + if (maybe_convert) + { + GArray *conv_avatar = NULL; + gchar *conv_mime_type = NULL; + + if (!avatar_chooser_maybe_convert_and_scale (self, + pixbuf, avatar, mime_type, &conv_avatar, &conv_mime_type)) + return; + + /* Transfer ownership */ + tp_clear_pointer (&self->priv->avatar, g_array_unref); + self->priv->avatar = conv_avatar; + + g_free (self->priv->mime_type); + self->priv->mime_type = conv_mime_type; + } + else + { + tp_clear_pointer (&self->priv->avatar, g_array_unref); + self->priv->avatar = g_array_ref (avatar); + + g_free (self->priv->mime_type); + self->priv->mime_type = g_strdup (mime_type); + } + + self->priv->changed = TRUE; + + pixbuf_view = tpaw_pixbuf_scale_down_if_necessary (pixbuf, + self->priv->pixel_size); + image = gtk_image_new_from_pixbuf (pixbuf_view); + + gtk_button_set_image (GTK_BUTTON (self), image); + + g_object_unref (pixbuf_view); + g_object_unref (pixbuf); +} + +/* takes ownership of @data */ +static void +avatar_chooser_set_image_from_data (TpawAvatarChooser *self, + gchar *data, + gsize size) +{ + GdkPixbuf *pixbuf; + GArray *avatar; + gchar *mime_type = NULL; + + if (data == NULL) + { + avatar_chooser_clear_image (self); + return; + } + + pixbuf = tpaw_pixbuf_from_data_and_mime (data, size, &mime_type); + if (pixbuf == NULL) + { + g_free (data); + return; + } + + /* FIXME: there is no way to create a GArray with zero copy? */ + avatar = g_array_sized_new (FALSE, FALSE, sizeof (gchar), size); + g_array_append_vals (avatar, data, size); + + avatar_chooser_set_image (self, avatar, mime_type, pixbuf, TRUE); + + g_free (mime_type); + g_array_unref (avatar); + g_free (data); +} + +static void +avatar_chooser_drag_data_received_cb (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *selection_data, + guint info, + guint time_, + TpawAvatarChooser *self) +{ + gchar *target_type; + gboolean handled = FALSE; + + target_type = gdk_atom_name (gtk_selection_data_get_target (selection_data)); + if (!strcmp (target_type, URI_LIST_TYPE)) + { + GFile *file; + gchar *nl; + gchar *data = NULL; + gsize bytes_read; + + nl = strstr ((gchar *) gtk_selection_data_get_data (selection_data), + "\r\n"); + if (nl != NULL) + { + gchar *uri; + + uri = g_strndup ( + (gchar *) gtk_selection_data_get_data (selection_data), + nl - (gchar *) gtk_selection_data_get_data (selection_data)); + + file = g_file_new_for_uri (uri); + g_free (uri); + } + else + { + file = g_file_new_for_uri ((gchar *) gtk_selection_data_get_data ( + selection_data)); + } + + handled = g_file_load_contents (file, NULL, &data, &bytes_read, + NULL, NULL); + + if (handled) + { + /* pass data to the avatar_chooser_set_image_from_data */ + avatar_chooser_set_image_from_data (self, data, bytes_read); + } + + g_object_unref (file); + } + + gtk_drag_finish (context, handled, FALSE, time_); +} + +static void +avatar_chooser_update_preview_cb (GtkFileChooser *file_chooser, + TpawAvatarChooser *self) +{ + gchar *filename; + + filename = gtk_file_chooser_get_preview_filename (file_chooser); + + if (filename != NULL) + { + GtkWidget *image; + GdkPixbuf *pixbuf = NULL; + GdkPixbuf *scaled_pixbuf; + + pixbuf = gdk_pixbuf_new_from_file (filename, NULL); + + image = gtk_file_chooser_get_preview_widget (file_chooser); + + if (pixbuf != NULL) + { + scaled_pixbuf = tpaw_pixbuf_scale_down_if_necessary (pixbuf, + AVATAR_SIZE_SAVE); + + gtk_image_set_from_pixbuf (GTK_IMAGE (image), scaled_pixbuf); + g_object_unref (scaled_pixbuf); + g_object_unref (pixbuf); + } + else + { + gtk_image_set_from_stock (GTK_IMAGE (image), + "dialog-question", + GTK_ICON_SIZE_DIALOG); + } + + g_free (filename); + } + + gtk_file_chooser_set_preview_widget_active (file_chooser, TRUE); +} + +static void +avatar_chooser_set_image_from_file (TpawAvatarChooser *self, + const gchar *filename) +{ + gchar *image_data = NULL; + gsize image_size = 0; + GError *error = NULL; + + if (!g_file_get_contents (filename, &image_data, &image_size, &error)) + { + DEBUG ("Failed to load image from '%s': %s", filename, + error ? error->message : "No error given"); + + g_clear_error (&error); + return; + } + + /* pass image_data to the avatar_chooser_set_image_from_data */ + avatar_chooser_set_image_from_data (self, image_data, image_size); +} + +#ifdef HAVE_CHEESE +static void +avatar_chooser_set_avatar_from_pixbuf (TpawAvatarChooser *self, + GdkPixbuf *pb) +{ + gsize size; + gchar *buf; + GArray *avatar; + GError *error = NULL; + + if (!gdk_pixbuf_save_to_buffer (pb, &buf, &size, "png", &error, NULL)) + { + avatar_chooser_error_show (self, + _("Couldn’t save picture to file"), + error ? error->message : NULL); + g_clear_error (&error); + return; + } + + /* FIXME: there is no way to create a GArray with zero copy? */ + avatar = g_array_sized_new (FALSE, FALSE, sizeof (gchar), size); + g_array_append_vals (avatar, buf, size); + + avatar_chooser_set_image (self, avatar, "image/png", pb, TRUE); + + g_free (buf); + g_array_unref (avatar); +} + +static gboolean +destroy_chooser (GtkWidget *self) +{ + gtk_widget_destroy (self); + return FALSE; +} + +static void +webcam_response_cb (GtkDialog *dialog, + int response, + TpawAvatarChooser *self) +{ + if (response == GTK_RESPONSE_ACCEPT) + { + GdkPixbuf *pb; + CheeseAvatarChooser *cheese_chooser; + + cheese_chooser = CHEESE_AVATAR_CHOOSER (dialog); + pb = cheese_avatar_chooser_get_picture (cheese_chooser); + avatar_chooser_set_avatar_from_pixbuf (self, pb); + } + + if (response != GTK_RESPONSE_DELETE_EVENT && + response != GTK_RESPONSE_NONE) + g_idle_add ((GSourceFunc) destroy_chooser, dialog); +} + +static void +choose_avatar_from_webcam (GtkWidget *widget, + TpawAvatarChooser *self) +{ + GtkWidget *window; + + window = cheese_avatar_chooser_new (); + + gtk_window_set_transient_for (GTK_WINDOW (window), + GTK_WINDOW (tpaw_get_toplevel_window (GTK_WIDGET (self)))); + gtk_window_set_modal (GTK_WINDOW (window), TRUE); + g_signal_connect (G_OBJECT (window), "response", + G_CALLBACK (webcam_response_cb), self); + gtk_widget_show (window); +} +#endif /* HAVE_CHEESE */ + +static void +avatar_chooser_response_cb (GtkWidget *widget, + gint response, + TpawAvatarChooser *self) +{ + self->priv->chooser_dialog = NULL; + + if (response == TPAW_AVATAR_CHOOSER_RESPONSE_FILE) + { + gchar *filename; +#ifdef ENABLE_SETTINGS + gchar *path; +#endif + + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + avatar_chooser_set_image_from_file (self, filename); + g_free (filename); + +#ifdef ENABLE_SETTINGS + path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (widget)); + if (path != NULL) + { + g_settings_set_string (self->priv->gsettings_ui, + TPAW_PREFS_UI_AVATAR_DIRECTORY, + path); + + g_free (path); + } +#endif + } + else if (response == TPAW_AVATAR_CHOOSER_RESPONSE_NO_IMAGE) + { + /* This corresponds to "No Image", not to "Cancel" */ + avatar_chooser_clear_image (self); + } + #ifdef HAVE_CHEESE + else if (response == TPAW_AVATAR_CHOOSER_RESPONSE_WEBCAM) + { + /* This corresponds to "Camera Picture" */ + choose_avatar_from_webcam (widget, self); + } + #endif + + gtk_widget_destroy (widget); +} + +static void +avatar_chooser_clicked_cb (GtkWidget *button, + TpawAvatarChooser *self) +{ + GtkFileChooser *chooser_dialog; + GtkWidget *image; + gchar *saved_dir = NULL; + const gchar *default_dir = DEFAULT_DIR; + const gchar *pics_dir; + GtkFileFilter *filter; +#ifdef HAVE_CHEESE + GtkWidget *picture_button; + TpawCameraMonitor *monitor; +#endif + + self->priv->chooser_dialog = GTK_FILE_CHOOSER ( + gtk_file_chooser_dialog_new (_("Select Your Avatar Image"), + tpaw_get_toplevel_window (GTK_WIDGET (self)), + GTK_FILE_CHOOSER_ACTION_OPEN, + NULL, NULL)); + gtk_window_set_modal (GTK_WINDOW (self->priv->chooser_dialog), TRUE); + +#ifdef HAVE_CHEESE + picture_button = gtk_dialog_add_button ( + GTK_DIALOG (self->priv->chooser_dialog), + _("Take a picture…"), TPAW_AVATAR_CHOOSER_RESPONSE_WEBCAM); + + /* Button is sensitive only if there is one camera connected */ + monitor = tpaw_camera_monitor_dup_singleton (); + + g_object_set_data_full (G_OBJECT (picture_button), + "monitor", monitor, g_object_unref); + + g_object_bind_property (monitor, "available", picture_button, "sensitive", + G_BINDING_SYNC_CREATE); +#endif + + gtk_dialog_add_buttons (GTK_DIALOG (self->priv->chooser_dialog), + _("No Image"), TPAW_AVATAR_CHOOSER_RESPONSE_NO_IMAGE, + GTK_STOCK_CANCEL, TPAW_AVATAR_CHOOSER_RESPONSE_CANCEL, + GTK_STOCK_OPEN, TPAW_AVATAR_CHOOSER_RESPONSE_FILE, + NULL); + + chooser_dialog = self->priv->chooser_dialog; + gtk_window_set_destroy_with_parent (GTK_WINDOW (chooser_dialog), TRUE); + + /* Get special dirs */ +#ifdef ENABLE_SETTINGS + saved_dir = g_settings_get_string (self->priv->gsettings_ui, + TPAW_PREFS_UI_AVATAR_DIRECTORY); +#endif + + if (saved_dir != NULL && + !g_file_test (saved_dir, G_FILE_TEST_IS_DIR)) + { + g_free (saved_dir); + saved_dir = NULL; + } + + if (!g_file_test (default_dir, G_FILE_TEST_IS_DIR)) + default_dir = NULL; + + pics_dir = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES); + if (pics_dir != NULL && !g_file_test (pics_dir, G_FILE_TEST_IS_DIR)) + pics_dir = NULL; + + /* Set current dir to the last one or to DEFAULT_DIR or to home */ + if (saved_dir != NULL) + gtk_file_chooser_set_current_folder (chooser_dialog, saved_dir); + else if (pics_dir != NULL) + gtk_file_chooser_set_current_folder (chooser_dialog, pics_dir); + else if (default_dir != NULL) + gtk_file_chooser_set_current_folder (chooser_dialog, default_dir); + else + gtk_file_chooser_set_current_folder (chooser_dialog, g_get_home_dir ()); + + /* Add shortcuts to special dirs */ + if (saved_dir) + gtk_file_chooser_add_shortcut_folder (chooser_dialog, saved_dir, NULL); + else if (pics_dir) + gtk_file_chooser_add_shortcut_folder (chooser_dialog, pics_dir, NULL); + + if (default_dir != NULL) + gtk_file_chooser_add_shortcut_folder (chooser_dialog, default_dir, NULL); + + /* Setup preview image */ + image = gtk_image_new (); + gtk_file_chooser_set_preview_widget (chooser_dialog, image); + gtk_widget_set_size_request (image, AVATAR_SIZE_SAVE, AVATAR_SIZE_SAVE); + gtk_widget_show (image); + gtk_file_chooser_set_use_preview_label (chooser_dialog, FALSE); + g_signal_connect (chooser_dialog, "update-preview", + G_CALLBACK (avatar_chooser_update_preview_cb), + self); + + /* Setup filers */ + filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, _("Images")); + gtk_file_filter_add_pixbuf_formats (filter); + gtk_file_chooser_add_filter (chooser_dialog, filter); + filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, _("All Files")); + gtk_file_filter_add_pattern (filter, "*"); + gtk_file_chooser_add_filter (chooser_dialog, filter); + + /* Setup response */ + gtk_dialog_set_default_response (GTK_DIALOG (chooser_dialog), + TPAW_AVATAR_CHOOSER_RESPONSE_FILE); + + g_signal_connect (chooser_dialog, "response", + G_CALLBACK (avatar_chooser_response_cb), + self); + + gtk_widget_show (GTK_WIDGET (chooser_dialog)); + + g_free (saved_dir); +} + +static void +tpaw_avatar_chooser_init (TpawAvatarChooser *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + TPAW_TYPE_AVATAR_CHOOSER, TpawAvatarChooserPrivate); + + gtk_drag_dest_set (GTK_WIDGET (self), + GTK_DEST_DEFAULT_ALL, + drop_types, + G_N_ELEMENTS (drop_types), + GDK_ACTION_COPY); + +#ifdef ENABLE_SETTINGS + self->priv->gsettings_ui = g_settings_new (TPAW_PREFS_UI_SCHEMA); +#endif + + g_signal_connect (self, "drag-motion", + G_CALLBACK (avatar_chooser_drag_motion_cb), + self); + g_signal_connect (self, "drag-drop", + G_CALLBACK (avatar_chooser_drag_drop_cb), + self); + g_signal_connect (self, "drag-data-received", + G_CALLBACK (avatar_chooser_drag_data_received_cb), + self); + g_signal_connect (self, "clicked", + G_CALLBACK (avatar_chooser_clicked_cb), + self); +} + +/** + * tpaw_avatar_chooser_new: + * @account: a #TpAccount + * @pixel_size: the size at which the avatar is shown in pixels + * + * Creates a new #TpawAvatarChooser. If @pixel_size is -1 then a + * default value of 64 is used. + * + * Return value: a new #TpawAvatarChooser + */ +GtkWidget * +tpaw_avatar_chooser_new (TpAccount *account, gint pixel_size) +{ + g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL); + + return g_object_new (TPAW_TYPE_AVATAR_CHOOSER, + "account", account, + "pixel-size", pixel_size, + NULL); +} + +static void +set_avatar_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GSimpleAsyncResult *my_result = user_data; + GError *error = NULL; + + if (!tp_account_set_avatar_finish (TP_ACCOUNT (source), result, &error)) + g_simple_async_result_take_error (my_result, error); + + g_simple_async_result_complete (my_result); + g_object_unref (my_result); +} + +void +tpaw_avatar_chooser_apply_async (TpawAvatarChooser *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *result; + + g_return_if_fail (TPAW_IS_AVATAR_CHOOSER (self)); + + result = g_simple_async_result_new ((GObject *) self, callback, user_data, + tpaw_avatar_chooser_apply_async); + + if (!self->priv->changed) + { + g_simple_async_result_complete_in_idle (result); + g_object_unref (result); + return; + } + + self->priv->changed = FALSE; + + DEBUG ("%s Account.Avatar on %s", self->priv->avatar != NULL ? "Set": "Clear", + tp_proxy_get_object_path (self->priv->account)); + + tp_account_set_avatar_async (self->priv->account, + self->priv->avatar != NULL ? (guchar *) self->priv->avatar->data : NULL, + self->priv->avatar != NULL ? self->priv->avatar->len : 0, + self->priv->mime_type, set_avatar_cb, result); +} + +gboolean +tpaw_avatar_chooser_apply_finish (TpawAvatarChooser *self, + GAsyncResult *result, + GError **error) +{ + tpaw_implement_finish_void (self, tpaw_avatar_chooser_apply_async); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-avatar-chooser.h b/telepathy-account-widgets/tp-account-widgets/tpaw-avatar-chooser.h new file mode 100644 index 0000000..6303793 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-avatar-chooser.h @@ -0,0 +1,68 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2006-2007 Imendio AB. + * Copyright (C) 2007-2008 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Based on Novell's e-image-chooser. + * Xavier Claessens + */ + +#ifndef __TPAW_AVATAR_CHOOSER_H__ +#define __TPAW_AVATAR_CHOOSER_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define TPAW_TYPE_AVATAR_CHOOSER (tpaw_avatar_chooser_get_type ()) +#define TPAW_AVATAR_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TPAW_TYPE_AVATAR_CHOOSER, TpawAvatarChooser)) +#define TPAW_AVATAR_CHOOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TPAW_TYPE_AVATAR_CHOOSER, TpawAvatarChooserClass)) +#define TPAW_IS_AVATAR_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TPAW_TYPE_AVATAR_CHOOSER)) +#define TPAW_IS_AVATAR_CHOOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), TPAW_TYPE_AVATAR_CHOOSER)) + +typedef struct _TpawAvatarChooser TpawAvatarChooser; +typedef struct _TpawAvatarChooserClass TpawAvatarChooserClass; +typedef struct _TpawAvatarChooserPrivate TpawAvatarChooserPrivate; + +struct _TpawAvatarChooser +{ + GtkButton parent; + + /**/ + TpawAvatarChooserPrivate *priv; +}; + +struct _TpawAvatarChooserClass +{ + GtkButtonClass parent_class; +}; + +GType tpaw_avatar_chooser_get_type (void); + +GtkWidget *tpaw_avatar_chooser_new (TpAccount *account, + gint pixel_size); + +void tpaw_avatar_chooser_apply_async (TpawAvatarChooser *self, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean tpaw_avatar_chooser_apply_finish (TpawAvatarChooser *self, + GAsyncResult *result, + GError **error); + +#endif /* __TPAW_AVATAR_CHOOSER_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-builder.c b/telepathy-account-widgets/tp-account-widgets/tpaw-builder.c new file mode 100644 index 0000000..cd5a3ea --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-builder.c @@ -0,0 +1,183 @@ +/* + * Copyright (C) 2013 Collabora Ltd. + * + * Authors: Marco Barisione + * Guillaume Desmottes + * Xavier Claessens + * Mikael Hallendal + * Richard Hult + * Martyn Russell + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-builder.h" + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +enum _BuilderSource +{ + BUILDER_SOURCE_FILE, + BUILDER_SOURCE_RESOURCE +}; + +static GtkBuilder * +builder_get_valist (const gchar *sourcename, + enum _BuilderSource source, + const gchar *translation_domain, + const gchar *first_object, + va_list args) +{ + GtkBuilder *gui; + const gchar *name; + GObject **object_ptr; + GError *error = NULL; + gboolean success; + + DEBUG ("Loading %s '%s'", source == BUILDER_SOURCE_FILE ? "file" : "resource", sourcename); + + gui = gtk_builder_new (); + gtk_builder_set_translation_domain (gui, translation_domain); + + switch (source) + { + case BUILDER_SOURCE_FILE: + success = gtk_builder_add_from_file (gui, sourcename, &error); + break; + case BUILDER_SOURCE_RESOURCE: + success = gtk_builder_add_from_resource (gui, sourcename, &error); + break; + default: + g_assert_not_reached (); + } + + if (!success) + { + g_critical ("GtkBuilder Error (%s): %s", + sourcename, error->message); + + g_clear_error (&error); + g_object_unref (gui); + + /* we need to iterate and set all of the pointers to NULL */ + for (name = first_object; name; name = va_arg (args, const gchar *)) + { + object_ptr = va_arg (args, GObject**); + + *object_ptr = NULL; + } + + return NULL; + } + + for (name = first_object; name; name = va_arg (args, const gchar *)) + { + object_ptr = va_arg (args, GObject**); + + *object_ptr = gtk_builder_get_object (gui, name); + + if (!*object_ptr) + { + g_warning ("File is missing object '%s'.", name); + continue; + } + } + + return gui; +} + +GtkBuilder * +tpaw_builder_get_file_with_domain (const gchar *filename, + const gchar *translation_domain, + const gchar *first_object, + ...) +{ + GtkBuilder *gui; + va_list args; + + va_start (args, first_object); + gui = builder_get_valist (filename, BUILDER_SOURCE_FILE, + translation_domain, first_object, args); + va_end (args); + + return gui; +} + +GtkBuilder * +tpaw_builder_get_resource_with_domain (const gchar *resourcename, + const gchar *translation_domain, + const gchar *first_object, + ...) +{ + GtkBuilder *gui; + va_list args; + + va_start (args, first_object); + gui = builder_get_valist (resourcename, BUILDER_SOURCE_RESOURCE, + translation_domain, first_object, args); + va_end (args); + + return gui; +} + +void +tpaw_builder_connect (GtkBuilder *gui, + gpointer user_data, + const gchar *first_object, + ...) +{ + va_list args; + const gchar *name; + const gchar *sig; + GObject *object; + GCallback callback; + + va_start (args, first_object); + for (name = first_object; name; name = va_arg (args, const gchar *)) + { + sig = va_arg (args, const gchar *); + callback = va_arg (args, GCallback); + + object = gtk_builder_get_object (gui, name); + if (!object) + { + g_warning ("File is missing object '%s'.", name); + continue; + } + + g_signal_connect (object, sig, callback, user_data); + } + + va_end (args); +} + +GtkWidget * +tpaw_builder_unref_and_keep_widget (GtkBuilder *gui, + GtkWidget *widget) +{ + /* On construction gui sinks the initial reference to widget. When gui + * is finalized it will drop its ref to widget. We take our own ref to + * prevent widget being finalised. The widget is forced to have a + * floating reference, like when it was initially unowned so that it can + * be used like any other GtkWidget. */ + + g_object_ref (widget); + g_object_force_floating (G_OBJECT (widget)); + g_object_unref (gui); + + return widget; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-builder.h b/telepathy-account-widgets/tp-account-widgets/tpaw-builder.h new file mode 100644 index 0000000..4dc35bd --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-builder.h @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2013 Collabora Ltd. + * + * Authors: Marco Barisione + * Guillaume Desmottes + * Xavier Claessens + * Mikael Hallendal + * Richard Hult + * Martyn Russell + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_BUILDER_H__ +#define __TPAW_BUILDER_H__ + +#include +#include + +G_BEGIN_DECLS + +#define tpaw_builder_get_file(filename, ...) \ + tpaw_builder_get_file_with_domain (filename, GETTEXT_PACKAGE, \ + __VA_ARGS__) + +#define tpaw_builder_get_resource(resourcename, ...) \ + tpaw_builder_get_resource_with_domain (resourcename, GETTEXT_PACKAGE, \ + __VA_ARGS__) + +GtkBuilder * tpaw_builder_get_file_with_domain (const gchar *filename, + const gchar *translation_domain, + const gchar *first_object, + ...); +GtkBuilder * tpaw_builder_get_resource_with_domain (const gchar *resourcename, + const gchar *translation_domain, + const gchar *first_object, + ...); +void tpaw_builder_connect (GtkBuilder *gui, + gpointer user_data, + const gchar *first_object, + ...); +GtkWidget * tpaw_builder_unref_and_keep_widget (GtkBuilder *gui, + GtkWidget *root); + +G_END_DECLS + +#endif /* __TPAW_BUILDER_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-calendar-button.c b/telepathy-account-widgets/tp-account-widgets/tpaw-calendar-button.c new file mode 100644 index 0000000..e9c7356 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-calendar-button.c @@ -0,0 +1,273 @@ +/* + * tpaw-calendar-button.c - Source for TpawCalendarButton + * Copyright (C) 2012 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-calendar-button.h" + +#include + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +G_DEFINE_TYPE (TpawCalendarButton, tpaw_calendar_button, GTK_TYPE_BOX) + +/* signal enum */ +enum { + DATE_CHANGED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = {0}; + +struct _TpawCalendarButtonPriv { + GDate *date; + + GtkWidget *button_date; + GtkWidget *button_clear; + GtkWidget *dialog; + GtkWidget *calendar; +}; + +static void +tpaw_calendar_button_finalize (GObject *object) +{ + TpawCalendarButton *self = (TpawCalendarButton *) object; + + tp_clear_pointer (&self->priv->date, g_date_free); + + G_OBJECT_CLASS (tpaw_calendar_button_parent_class)->finalize (object); +} + +static void +update_label (TpawCalendarButton *self) +{ + if (self->priv->date == NULL) + { + gtk_button_set_label (GTK_BUTTON (self->priv->button_date), + _("Select…")); + } + else + { + gchar buffer[128]; + + g_date_strftime (buffer, 128, "%e %b %Y", self->priv->date); + gtk_button_set_label (GTK_BUTTON (self->priv->button_date), buffer); + } +} + +static void +tpaw_calendar_button_constructed (GObject *object) +{ + TpawCalendarButton *self = (TpawCalendarButton *) object; + + G_OBJECT_CLASS (tpaw_calendar_button_parent_class)->constructed ( + object); + + update_label (self); +} + +static void +dialog_response (GtkDialog *dialog, + gint response, + TpawCalendarButton *self) +{ + GDate *date; + guint year, month, day; + + if (response != GTK_RESPONSE_OK) + goto out; + + gtk_calendar_get_date (GTK_CALENDAR (self->priv->calendar), + &year, &month, &day); + date = g_date_new_dmy (day, month + 1, year); + + tpaw_calendar_button_set_date (self, date); + + g_date_free (date); + +out: + gtk_widget_hide (GTK_WIDGET (dialog)); +} + +static gboolean +dialog_destroy (GtkWidget *widget, + TpawCalendarButton *self) +{ + self->priv->dialog = NULL; + self->priv->calendar = NULL; + + return FALSE; +} + +static void +update_calendar (TpawCalendarButton *self) +{ + if (self->priv->calendar == NULL) + return; + + gtk_calendar_clear_marks (GTK_CALENDAR (self->priv->calendar)); + + if (self->priv->date == NULL) + return; + + gtk_calendar_select_day (GTK_CALENDAR (self->priv->calendar), + g_date_get_day (self->priv->date)); + gtk_calendar_select_month (GTK_CALENDAR (self->priv->calendar), + g_date_get_month (self->priv->date) - 1, + g_date_get_year (self->priv->date)); + gtk_calendar_mark_day (GTK_CALENDAR (self->priv->calendar), + g_date_get_day (self->priv->date)); +} + +static void +tpaw_calendar_button_date_clicked (GtkButton *button, + TpawCalendarButton *self) +{ + if (self->priv->dialog == NULL) + { + GtkWidget *parent, *content; + + parent = gtk_widget_get_toplevel (GTK_WIDGET (button)); + + self->priv->dialog = gtk_dialog_new_with_buttons (NULL, + GTK_WINDOW (parent), GTK_DIALOG_MODAL, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + _("_Select"), GTK_RESPONSE_OK, + NULL); + + gtk_window_set_transient_for (GTK_WINDOW (self->priv->dialog), + GTK_WINDOW (parent)); + + self->priv->calendar = gtk_calendar_new (); + + update_calendar (self); + + content = gtk_dialog_get_content_area (GTK_DIALOG (self->priv->dialog)); + + gtk_box_pack_start (GTK_BOX (content), self->priv->calendar, TRUE, TRUE, + 6); + gtk_widget_show (self->priv->calendar); + + g_signal_connect (self->priv->dialog, "response", + G_CALLBACK (dialog_response), self); + g_signal_connect (self->priv->dialog, "destroy", + G_CALLBACK (dialog_destroy), self); + } + + gtk_window_present (GTK_WINDOW (self->priv->dialog)); +} + +static void +tpaw_calendar_button_clear_clicked (GtkButton *button, + TpawCalendarButton *self) +{ + tpaw_calendar_button_set_date (self, NULL); +} + +static void +tpaw_calendar_button_init (TpawCalendarButton *self) +{ + GtkWidget *image; + GtkStyleContext *context; + + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + TPAW_TYPE_CALENDAR_BUTTON, TpawCalendarButtonPriv); + + context = gtk_widget_get_style_context (GTK_WIDGET (self)); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_LINKED); + + /* Date */ + self->priv->button_date = gtk_button_new (); + + g_signal_connect (self->priv->button_date, "clicked", + G_CALLBACK (tpaw_calendar_button_date_clicked), self); + + gtk_button_set_alignment (GTK_BUTTON (self->priv->button_date), 0, 0.5); + + gtk_box_pack_start (GTK_BOX (self), self->priv->button_date, TRUE, TRUE, 0); + gtk_widget_show (self->priv->button_date); + + /* Clear */ + self->priv->button_clear = gtk_button_new (); + + image = gtk_image_new_from_icon_name ("edit-clear-symbolic", + GTK_ICON_SIZE_MENU); + gtk_button_set_image (GTK_BUTTON (self->priv->button_clear), image); + gtk_widget_show (image); + + g_signal_connect (self->priv->button_clear, "clicked", + G_CALLBACK (tpaw_calendar_button_clear_clicked), self); + + gtk_box_pack_start (GTK_BOX (self), self->priv->button_clear, + FALSE, FALSE, 0); + gtk_widget_show (self->priv->button_clear); +} + +static void +tpaw_calendar_button_class_init (TpawCalendarButtonClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (TpawCalendarButtonPriv)); + + oclass->finalize = tpaw_calendar_button_finalize; + oclass->constructed = tpaw_calendar_button_constructed; + + signals[DATE_CHANGED] = g_signal_new ("date-changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, 0, + NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 1, G_TYPE_DATE); +} + +GtkWidget * +tpaw_calendar_button_new (void) +{ + return g_object_new (TPAW_TYPE_CALENDAR_BUTTON, + "orientation", GTK_ORIENTATION_HORIZONTAL, + NULL); +} + +GDate * +tpaw_calendar_button_get_date (TpawCalendarButton *self) +{ + return self->priv->date; +} + +void +tpaw_calendar_button_set_date (TpawCalendarButton *self, + GDate *date) +{ + if (date == self->priv->date) + return; + + tp_clear_pointer (&self->priv->date, g_date_free); + + if (date != NULL) + { + /* There is no g_date_copy()... */ + self->priv->date = g_date_new_dmy (date->day, date->month, date->year); + } + + update_label (self); + update_calendar (self); + + g_signal_emit (self, signals[DATE_CHANGED], 0, self->priv->date); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-calendar-button.h b/telepathy-account-widgets/tp-account-widgets/tpaw-calendar-button.h new file mode 100644 index 0000000..38f2322 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-calendar-button.h @@ -0,0 +1,67 @@ +/* + * tpaw-calendar-button.h - Header for TpawCalendarButton + * Copyright (C) 2012 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_CALENDAR_BUTTON_H__ +#define __TPAW_CALENDAR_BUTTON_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _TpawCalendarButton TpawCalendarButton; +typedef struct _TpawCalendarButtonClass TpawCalendarButtonClass; +typedef struct _TpawCalendarButtonPriv TpawCalendarButtonPriv; + +struct _TpawCalendarButtonClass { + GtkBoxClass parent_class; +}; + +struct _TpawCalendarButton { + GtkBox parent; + TpawCalendarButtonPriv *priv; +}; + +GType tpaw_calendar_button_get_type (void); + +#define TPAW_TYPE_CALENDAR_BUTTON \ + (tpaw_calendar_button_get_type ()) +#define TPAW_CALENDAR_BUTTON(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), TPAW_TYPE_CALENDAR_BUTTON, \ + TpawCalendarButton)) +#define TPAW_CALENDAR_BUTTON_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), TPAW_TYPE_CALENDAR_BUTTON, \ + TpawCalendarButtonClass)) +#define TPAW_IS_CALENDAR_BUTTON(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), TPAW_TYPE_CALENDAR_BUTTON)) +#define TPAW_IS_CALENDAR_BUTTON_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), TPAW_TYPE_CALENDAR_BUTTON)) +#define TPAW_CALENDAR_BUTTON_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), TPAW_TYPE_CALENDAR_BUTTON, \ + TpawCalendarButtonClass)) + +GtkWidget * tpaw_calendar_button_new (void); + +GDate * tpaw_calendar_button_get_date (TpawCalendarButton *self); + +void tpaw_calendar_button_set_date (TpawCalendarButton *self, + GDate *date); + +G_END_DECLS + +#endif /* #ifndef __TPAW_CALENDAR_BUTTON_H__*/ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-camera-monitor.c b/telepathy-account-widgets/tp-account-widgets/tpaw-camera-monitor.c new file mode 100644 index 0000000..b59e388 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-camera-monitor.c @@ -0,0 +1,295 @@ +/* + * Copyright (C) 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Emilio Pozuelo Monfort + */ + +#include "config.h" +#include "tpaw-camera-monitor.h" + +#include "cheese-camera-device-monitor.h" + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +struct _TpawCameraMonitorPrivate +{ + TpawCameraDeviceMonitor *tpaw_monitor; + GQueue *cameras; + gint num_cameras; +}; + +enum +{ + PROP_0, + PROP_AVAILABLE, +}; + +enum +{ + CAMERA_ADDED, + CAMERA_REMOVED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +G_DEFINE_TYPE (TpawCameraMonitor, tpaw_camera_monitor, G_TYPE_OBJECT); + +static TpawCameraMonitor *manager_singleton = NULL; + +static TpawCamera * +tpaw_camera_new (const gchar *id, + const gchar *device, + const gchar *name) +{ + TpawCamera *camera = g_slice_new (TpawCamera); + + camera->id = g_strdup (id); + camera->device = g_strdup (device); + camera->name = g_strdup (name); + + return camera; +} + +static TpawCamera * +tpaw_camera_copy (TpawCamera *camera) +{ + return tpaw_camera_new (camera->id, camera->device, camera->name); +} + +static void +tpaw_camera_free (TpawCamera *camera) +{ + g_free (camera->id); + g_free (camera->device); + g_free (camera->name); + + g_slice_free (TpawCamera, camera); +} + +G_DEFINE_BOXED_TYPE (TpawCamera, tpaw_camera, + tpaw_camera_copy, tpaw_camera_free) + +static gint +tpaw_camera_find (gconstpointer a, + gconstpointer b) +{ + const TpawCamera *camera = a; + const gchar *id = b; + + return g_strcmp0 (camera->id, id); +} + +static void +tpaw_camera_monitor_free_camera_foreach (gpointer data, + gpointer user_data) +{ + tpaw_camera_free (data); +} + +static void +on_camera_added (TpawCameraDeviceMonitor *device, + gchar *id, + gchar *filename, + gchar *product_name, + gint api_version, + TpawCameraMonitor *self) +{ + TpawCamera *camera; + + if (self->priv->cameras == NULL) + return; + + camera = tpaw_camera_new (id, filename, product_name); + + g_queue_push_tail (self->priv->cameras, camera); + + self->priv->num_cameras++; + + if (self->priv->num_cameras == 1) + g_object_notify (G_OBJECT (self), "available"); + + g_signal_emit (self, signals[CAMERA_ADDED], 0, camera); +} + +static void +on_camera_removed (TpawCameraDeviceMonitor *device, + gchar *id, + TpawCameraMonitor *self) +{ + TpawCamera *camera; + GList *l; + + if (self->priv->cameras == NULL) + return; + + l = g_queue_find_custom (self->priv->cameras, id, tpaw_camera_find); + + g_return_if_fail (l != NULL); + + camera = l->data; + + g_queue_delete_link (self->priv->cameras, l); + + self->priv->num_cameras--; + + if (self->priv->num_cameras == 0) + g_object_notify (G_OBJECT (self), "available"); + + g_signal_emit (self, signals[CAMERA_REMOVED], 0, camera); + + tpaw_camera_free (camera); +} + +const GList * +tpaw_camera_monitor_get_cameras (TpawCameraMonitor *self) +{ + if (self->priv->cameras != NULL) + return self->priv->cameras->head; + else + return NULL; +} + +static void +tpaw_camera_monitor_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TpawCameraMonitor *self = (TpawCameraMonitor *) object; + + switch (prop_id) + { + case PROP_AVAILABLE: + g_value_set_boolean (value, self->priv->num_cameras > 0); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +tpaw_camera_monitor_dispose (GObject *object) +{ + TpawCameraMonitor *self = TPAW_CAMERA_MONITOR (object); + + tp_clear_object (&self->priv->tpaw_monitor); + + g_queue_foreach (self->priv->cameras, + tpaw_camera_monitor_free_camera_foreach, NULL); + tp_clear_pointer (&self->priv->cameras, g_queue_free); + + G_OBJECT_CLASS (tpaw_camera_monitor_parent_class)->dispose (object); +} + +static void +tpaw_camera_monitor_constructed (GObject *object) +{ + TpawCameraMonitor *self = (TpawCameraMonitor *) object; + + G_OBJECT_CLASS (tpaw_camera_monitor_parent_class)->constructed (object); + + tpaw_camera_device_monitor_coldplug (self->priv->tpaw_monitor); +} + +static void +tpaw_camera_monitor_class_init (TpawCameraMonitorClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = tpaw_camera_monitor_dispose; + object_class->constructed = tpaw_camera_monitor_constructed; + object_class->get_property = tpaw_camera_monitor_get_property; + + g_object_class_install_property (object_class, PROP_AVAILABLE, + g_param_spec_boolean ("available", "Available", + "Camera available", TRUE, G_PARAM_READABLE)); + + signals[CAMERA_ADDED] = + g_signal_new ("added", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + 0, NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 1, TPAW_TYPE_CAMERA); + + signals[CAMERA_REMOVED] = + g_signal_new ("removed", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, + 0, NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 1, TPAW_TYPE_CAMERA); + + g_type_class_add_private (object_class, + sizeof (TpawCameraMonitorPrivate)); +} + +static void +tpaw_camera_monitor_init (TpawCameraMonitor *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + TPAW_TYPE_CAMERA_MONITOR, TpawCameraMonitorPrivate); + + self->priv->cameras = g_queue_new (); + + self->priv->tpaw_monitor = tpaw_camera_device_monitor_new (); + + g_signal_connect (self->priv->tpaw_monitor, "added", + G_CALLBACK (on_camera_added), self); + g_signal_connect (self->priv->tpaw_monitor, "removed", + G_CALLBACK (on_camera_removed), self); + +#ifndef HAVE_UDEV + /* No udev, assume there are cameras present */ + self->priv->num_cameras = 1; +#endif +} + +TpawCameraMonitor * +tpaw_camera_monitor_dup_singleton (void) +{ + GObject *retval; + + if (manager_singleton) + { + retval = g_object_ref (manager_singleton); + } + else + { + retval = g_object_new (TPAW_TYPE_CAMERA_MONITOR, NULL); + + manager_singleton = TPAW_CAMERA_MONITOR (retval); + g_object_add_weak_pointer (retval, (gpointer) &manager_singleton); + } + + return TPAW_CAMERA_MONITOR (retval); +} + +TpawCameraMonitor * +tpaw_camera_monitor_new (void) +{ + return TPAW_CAMERA_MONITOR ( + g_object_new (TPAW_TYPE_CAMERA_MONITOR, NULL)); +} + +gboolean tpaw_camera_monitor_get_available (TpawCameraMonitor *self) +{ + g_return_val_if_fail (TPAW_IS_CAMERA_MONITOR (self), FALSE); + + return self->priv->num_cameras > 0; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-camera-monitor.h b/telepathy-account-widgets/tp-account-widgets/tpaw-camera-monitor.h new file mode 100644 index 0000000..773e19c --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-camera-monitor.h @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Emilio Pozuelo Monfort + */ + +#ifndef __TPAW_CAMERA_MONITOR_H__ +#define __TPAW_CAMERA_MONITOR_H__ + +#include + +G_BEGIN_DECLS +#define TPAW_TYPE_CAMERA_MONITOR (tpaw_camera_monitor_get_type ()) +#define TPAW_CAMERA_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TPAW_TYPE_CAMERA_MONITOR, TpawCameraMonitor)) +#define TPAW_CAMERA_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TPAW_TYPE_CAMERA_MONITOR, TpawCameraMonitorClass)) +#define TPAW_IS_CAMERA_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TPAW_TYPE_CAMERA_MONITOR)) +#define TPAW_IS_CAMERA_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TPAW_TYPE_CAMERA_MONITOR)) +#define TPAW_CAMERA_MONITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_CAMERA_MONITOR, TpawCameraMonitorClass)) + +typedef struct _TpawCameraMonitor TpawCameraMonitor; +typedef struct _TpawCameraMonitorClass TpawCameraMonitorClass; +typedef struct _TpawCameraMonitorPrivate TpawCameraMonitorPrivate; + +struct _TpawCameraMonitor +{ + GObject parent; + TpawCameraMonitorPrivate *priv; +}; + +struct _TpawCameraMonitorClass +{ + GObjectClass parent_class; +}; + +typedef struct +{ + gchar *id; + gchar *device; + gchar *name; +} TpawCamera; + +#define TPAW_TYPE_CAMERA (tpaw_camera_get_type ()) +GType tpaw_camera_get_type (void) G_GNUC_CONST; + +GType tpaw_camera_monitor_get_type (void) G_GNUC_CONST; + +TpawCameraMonitor *tpaw_camera_monitor_dup_singleton (void); +TpawCameraMonitor *tpaw_camera_monitor_new (void); + +gboolean tpaw_camera_monitor_get_available (TpawCameraMonitor *self); + +const GList * tpaw_camera_monitor_get_cameras (TpawCameraMonitor *self); + +G_END_DECLS +#endif /* __TPAW_CAMERA_MONITOR_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-connection-managers.c b/telepathy-account-widgets/tp-account-widgets/tpaw-connection-managers.c new file mode 100644 index 0000000..f72c108 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-connection-managers.c @@ -0,0 +1,325 @@ +/* + * tpaw-connection-managers.c - Source for TpawConnectionManagers + * Copyright (C) 2009 Collabora Ltd. + * @author Sjoerd Simons + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-connection-managers.h" + +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +static GObject *managers = NULL; + +G_DEFINE_TYPE(TpawConnectionManagers, tpaw_connection_managers, + G_TYPE_OBJECT) + +/* signal enum */ +enum +{ + UPDATED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = {0}; + +/* properties */ +enum { + PROP_READY = 1 +}; + +/* private structure */ +struct _TpawConnectionManagersPriv +{ + gboolean dispose_has_run; + gboolean ready; + + GList *cms; + + TpDBusDaemon *dbus; +}; + +static void +tpaw_connection_managers_init (TpawConnectionManagers *obj) +{ + obj->priv = G_TYPE_INSTANCE_GET_PRIVATE ((obj), + TPAW_TYPE_CONNECTION_MANAGERS, TpawConnectionManagersPriv); + + obj->priv->dbus = tp_dbus_daemon_dup (NULL); + g_assert (obj->priv->dbus != NULL); + + tpaw_connection_managers_update (obj); + + /* allocate any data required by the object here */ +} + +static void tpaw_connection_managers_dispose (GObject *object); + +static GObject * +tpaw_connection_managers_constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + if (managers != NULL) + return g_object_ref (managers); + + managers = + G_OBJECT_CLASS (tpaw_connection_managers_parent_class)->constructor + (type, n_construct_params, construct_params); + + g_object_add_weak_pointer (managers, (gpointer) &managers); + + return managers; +} + + + +static void +tpaw_connection_managers_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TpawConnectionManagers *self = TPAW_CONNECTION_MANAGERS (object); + + switch (prop_id) + { + case PROP_READY: + g_value_set_boolean (value, self->priv->ready); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +tpaw_connection_managers_class_init ( + TpawConnectionManagersClass *tpaw_connection_managers_class) +{ + GObjectClass *object_class = + G_OBJECT_CLASS (tpaw_connection_managers_class); + + g_type_class_add_private (tpaw_connection_managers_class, sizeof + (TpawConnectionManagersPriv)); + + object_class->constructor = tpaw_connection_managers_constructor; + object_class->dispose = tpaw_connection_managers_dispose; + object_class->get_property = tpaw_connection_managers_get_property; + + g_object_class_install_property (object_class, PROP_READY, + g_param_spec_boolean ("ready", + "Ready", + "Whether the connection manager information is ready to be used", + FALSE, + G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); + + signals[UPDATED] = g_signal_new ("updated", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 0); +} + +static void +tpaw_connection_managers_free_cm_list (TpawConnectionManagers *self) +{ + GList *l; + + for (l = self->priv->cms ; l != NULL ; l = g_list_next (l)) + { + g_object_unref (l->data); + } + g_list_free (self->priv->cms); + + self->priv->cms = NULL; +} + +static void +tpaw_connection_managers_dispose (GObject *object) +{ + TpawConnectionManagers *self = TPAW_CONNECTION_MANAGERS (object); + + if (self->priv->dispose_has_run) + return; + + self->priv->dispose_has_run = TRUE; + + if (self->priv->dbus != NULL) + g_object_unref (self->priv->dbus); + self->priv->dbus = NULL; + + tpaw_connection_managers_free_cm_list (self); + + /* release any references held by the object here */ + + if (G_OBJECT_CLASS (tpaw_connection_managers_parent_class)->dispose) + G_OBJECT_CLASS (tpaw_connection_managers_parent_class)->dispose (object); +} + +TpawConnectionManagers * +tpaw_connection_managers_dup_singleton (void) +{ + return TPAW_CONNECTION_MANAGERS ( + g_object_new (TPAW_TYPE_CONNECTION_MANAGERS, NULL)); +} + +gboolean +tpaw_connection_managers_is_ready (TpawConnectionManagers *self) +{ + return self->priv->ready; +} + +static void +tpaw_connection_managers_listed_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpWeakRef *wr = user_data; + GError *error = NULL; + TpawConnectionManagers *self = tp_weak_ref_dup_object (wr); + GList *cms, *l; + + if (self == NULL) + { + tp_weak_ref_destroy (wr); + return; + } + + tpaw_connection_managers_free_cm_list (self); + + cms = tp_list_connection_managers_finish (result, &error); + if (error != NULL) + { + DEBUG ("Failed to get connection managers: %s", error->message); + g_error_free (error); + goto out; + } + + for (l = cms ; l != NULL; l = g_list_next (l)) + { + TpConnectionManager *cm = l->data; + + /* only list cms that didn't hit errors */ + if (tp_proxy_is_prepared (cm, TP_CONNECTION_MANAGER_FEATURE_CORE)) + self->priv->cms = g_list_prepend (self->priv->cms, + g_object_ref (cm)); + } + g_list_free_full (cms, g_object_unref); + +out: + if (!self->priv->ready) + { + self->priv->ready = TRUE; + g_object_notify (G_OBJECT (self), "ready"); + } + + g_signal_emit (self, signals[UPDATED], 0); + g_object_unref (self); + tp_weak_ref_destroy (wr); +} + +void +tpaw_connection_managers_update (TpawConnectionManagers *self) +{ + tp_list_connection_managers_async (self->priv->dbus, + tpaw_connection_managers_listed_cb, + tp_weak_ref_new (self, NULL, NULL)); +} + +GList * +tpaw_connection_managers_get_cms (TpawConnectionManagers *self) +{ + return self->priv->cms; +} + +TpConnectionManager * +tpaw_connection_managers_get_cm (TpawConnectionManagers *self, + const gchar *cm) +{ + GList *l; + + for (l = self->priv->cms ; l != NULL; l = g_list_next (l)) + { + TpConnectionManager *c = TP_CONNECTION_MANAGER (l->data); + + if (!tp_strdiff (tp_connection_manager_get_name (c), cm)) + return c; + } + + return NULL; +} + +guint +tpaw_connection_managers_get_cms_num (TpawConnectionManagers *self) +{ + g_return_val_if_fail (TPAW_IS_CONNECTION_MANAGERS (self), 0); + + return g_list_length (self->priv->cms); +} + +static void +notify_ready_cb (TpawConnectionManagers *self, + GParamSpec *spec, + GSimpleAsyncResult *result) +{ + g_simple_async_result_complete (result); + g_object_unref (result); +} + +void +tpaw_connection_managers_prepare_async ( + TpawConnectionManagers *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *result; + + result = g_simple_async_result_new (G_OBJECT (managers), + callback, user_data, tpaw_connection_managers_prepare_finish); + + if (self->priv->ready) + { + g_simple_async_result_complete_in_idle (result); + g_object_unref (result); + return; + } + + g_signal_connect (self, "notify::ready", G_CALLBACK (notify_ready_cb), + result); +} + +gboolean +tpaw_connection_managers_prepare_finish ( + TpawConnectionManagers *self, + GAsyncResult *result, + GError **error) +{ + GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); + + g_return_val_if_fail (g_simple_async_result_is_valid (result, + G_OBJECT (self), tpaw_connection_managers_prepare_finish), FALSE); + + if (g_simple_async_result_propagate_error (simple, error)) + return FALSE; + + return TRUE; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-connection-managers.h b/telepathy-account-widgets/tp-account-widgets/tpaw-connection-managers.h new file mode 100644 index 0000000..dba476b --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-connection-managers.h @@ -0,0 +1,89 @@ +/* + * tpaw-connection-managers.h - Header for TpawConnectionManagers + * Copyright (C) 2009 Collabora Ltd. + * @author Sjoerd Simons + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_CONNECTION_MANAGERS_H__ +#define __TPAW_CONNECTION_MANAGERS_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +typedef struct _TpawConnectionManagers TpawConnectionManagers; +typedef struct _TpawConnectionManagersPriv TpawConnectionManagersPriv; +typedef struct _TpawConnectionManagersClass TpawConnectionManagersClass; + +struct _TpawConnectionManagersClass { + GObjectClass parent_class; +}; + +struct _TpawConnectionManagers { + GObject parent; + /**/ + TpawConnectionManagersPriv *priv; +}; + +GType tpaw_connection_managers_get_type (void); + +/* TYPE MACROS */ +#define TPAW_TYPE_CONNECTION_MANAGERS \ + (tpaw_connection_managers_get_type ()) +#define TPAW_CONNECTION_MANAGERS(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), TPAW_TYPE_CONNECTION_MANAGERS, \ + TpawConnectionManagers)) +#define TPAW_CONNECTION_MANAGERS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), TPAW_TYPE_CONNECTION_MANAGERS, \ + TpawConnectionManagersClass)) +#define TPAW_IS_CONNECTION_MANAGERS(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), TPAW_TYPE_CONNECTION_MANAGERS)) +#define TPAW_IS_CONNECTION_MANAGERS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), TPAW_TYPE_CONNECTION_MANAGERS)) +#define TPAW_CONNECTION_MANAGERS_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), TPAW_TYPE_CONNECTION_MANAGERS, \ + TpawConnectionManagersClass)) + +TpawConnectionManagers *tpaw_connection_managers_dup_singleton (void); +gboolean tpaw_connection_managers_is_ready ( + TpawConnectionManagers *managers); + +void tpaw_connection_managers_update (TpawConnectionManagers *managers); + +GList * tpaw_connection_managers_get_cms ( + TpawConnectionManagers *managers); +guint tpaw_connection_managers_get_cms_num + (TpawConnectionManagers *managers); + +TpConnectionManager *tpaw_connection_managers_get_cm ( + TpawConnectionManagers *managers, const gchar *cm); + +void tpaw_connection_managers_prepare_async ( + TpawConnectionManagers *managers, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean tpaw_connection_managers_prepare_finish ( + TpawConnectionManagers *managers, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* #ifndef __TPAW_CONNECTION_MANAGERS_H__*/ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-contactinfo-utils.c b/telepathy-account-widgets/tp-account-widgets/tpaw-contactinfo-utils.c new file mode 100644 index 0000000..36e5607 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-contactinfo-utils.c @@ -0,0 +1,266 @@ +/* + * Copyright (C) 2007-2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + * Philip Withnall + * Danielle Madeley + */ + +#include "config.h" +#include "tpaw-contactinfo-utils.h" + +#include +#include + +#include "tpaw-time.h" +#include "tpaw-string-parser.h" + +static gchar * +linkify_first_value (GStrv values) +{ + return tpaw_add_link_markup (values[0]); +} + +static gchar * +format_idle_time (GStrv values) +{ + const gchar *value = values[0]; + int duration = strtol (value, NULL, 10); + + if (duration <= 0) + return NULL; + + return tpaw_duration_to_string (duration); +} + +static gchar * +format_server (GStrv values) +{ + g_assert (values[0] != NULL); + + if (values[1] == NULL) + return g_markup_escape_text (values[0], -1); + else + return g_markup_printf_escaped ("%s (%s)", values[0], values[1]); +} + +static gchar * +presence_hack (GStrv values) +{ + if (tp_str_empty (values[0])) + return NULL; + + return g_markup_escape_text (values[0], -1); +} + +typedef struct +{ + const gchar *field_name; + const gchar *title; + TpawContactInfoFormatFunc format; +} InfoFieldData; + +/* keep this syncronised with info_field_data below */ +static const char *info_field_names[] = +{ + "fn", + "tel", + "email", + "url", + "bday", + + "x-idle-time", + "x-irc-server", + "x-host", + + "x-presence-status-message", + + NULL +}; + +static InfoFieldData info_field_data[G_N_ELEMENTS (info_field_names)] = +{ + { "fn", N_("Full Name"), NULL }, + { "tel", N_("Phone Number"), NULL }, + { "email", N_("E-mail Address"), linkify_first_value }, + { "url", N_("Website"), linkify_first_value }, + { "bday", N_("Birthday"), NULL }, + + /* Note to translators: this is the caption for a string of the form "5 + * minutes ago", and refers to the time since the contact last interacted + * with their IM client. */ + { "x-idle-time", N_("Last Seen:"), format_idle_time }, + { "x-irc-server", N_("Server:"), format_server }, + { "x-host", N_("Connected From:"), format_server }, + + /* FIXME: once Idle implements SimplePresence using this information, we can + * and should bin this. */ + { "x-presence-status-message", N_("Away Message:"), presence_hack }, + + { NULL, NULL } +}; + +typedef struct +{ + const gchar *type; + const gchar *title; +} InfoParameterData; + +static InfoParameterData info_parameter_data[] = +{ + { "work", N_("work") }, + { "home", N_("home") }, + { "cell", N_("mobile") }, + { "voice", N_("voice") }, + { "pref", N_("preferred") }, + { "postal", N_("postal") }, + { "parcel", N_("parcel") }, + { NULL, NULL } +}; + +const char ** +tpaw_contact_info_get_field_names (guint *nnames) +{ + if (nnames != NULL) + *nnames = G_N_ELEMENTS (info_field_names) - 1; + + return info_field_names; +} + +gboolean +tpaw_contact_info_lookup_field (const gchar *field_name, + const gchar **title, + TpawContactInfoFormatFunc *format) +{ + guint i; + + for (i = 0; info_field_data[i].field_name != NULL; i++) + { + if (tp_strdiff (info_field_data[i].field_name, field_name) == FALSE) + { + if (title != NULL) + *title = gettext (info_field_data[i].title); + + if (format != NULL) + *format = info_field_data[i].format; + + return TRUE; + } + } + + return FALSE; +} + +static char * +build_parameters_string (GStrv parameters) +{ + GPtrArray *output = g_ptr_array_new (); + char *join; + GStrv iter; + + for (iter = parameters; iter != NULL && *iter != NULL; iter++) + { + static const char *prefix = "type="; + const char *param = *iter; + InfoParameterData *iter2; + + if (!g_str_has_prefix (param, prefix)) + continue; + + param += strlen (prefix); + + for (iter2 = info_parameter_data; iter2->type != NULL; iter2++) + { + if (!tp_strdiff (iter2->type, param)) + { + g_ptr_array_add (output, gettext (iter2->title)); + break; + } + } + } + + if (output->len == 0) + return NULL; + + g_ptr_array_add (output, NULL); /* NULL-terminate */ + + join = g_strjoinv (", ", (char **) output->pdata); + g_ptr_array_unref (output); + + return join; +} + +char * +tpaw_contact_info_field_label (const char *field_name, + GStrv parameters, + gboolean show_parameters) +{ + char *ret; + const char *title; + char *join = NULL; + + if (!tpaw_contact_info_lookup_field (field_name, &title, NULL)) + return NULL; + + if (show_parameters) + join = build_parameters_string (parameters); + + if (join != NULL) + ret = g_strdup_printf ("%s (%s)", title, join); + else + ret = g_strdup_printf ("%s", title); + + g_free (join); + + return ret; +} + +static gint +contact_info_field_name_cmp (const gchar *name1, + const gchar *name2) +{ + guint i; + + if (tp_strdiff (name1, name2) == FALSE) + return 0; + + /* We use the order of info_field_data */ + for (i = 0; info_field_data[i].field_name != NULL; i++) + { + if (tp_strdiff (info_field_data[i].field_name, name1) == FALSE) + return -1; + if (tp_strdiff (info_field_data[i].field_name, name2) == FALSE) + return +1; + } + + return g_strcmp0 (name1, name2); +} + +gint +tpaw_contact_info_field_cmp (TpContactInfoField *field1, + TpContactInfoField *field2) +{ + return contact_info_field_name_cmp (field1->field_name, field2->field_name); +} + +gint +tpaw_contact_info_field_spec_cmp (TpContactInfoFieldSpec *spec1, + TpContactInfoFieldSpec *spec2) +{ + return contact_info_field_name_cmp (spec1->name, spec2->name); +} + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-contactinfo-utils.h b/telepathy-account-widgets/tp-account-widgets/tpaw-contactinfo-utils.h new file mode 100644 index 0000000..ced81b1 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-contactinfo-utils.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2011 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Danielle Madeley + */ + +#ifndef __TPAW_CONTACTINFO_UTILS_H__ +#define __TPAW_CONTACTINFO_UTILS_H__ + +#include +#include + +G_BEGIN_DECLS + +typedef gchar * (* TpawContactInfoFormatFunc) (GStrv); + +const char **tpaw_contact_info_get_field_names (guint *nnames); +gboolean tpaw_contact_info_lookup_field (const gchar *field_name, + const gchar **title, TpawContactInfoFormatFunc *linkify); +char *tpaw_contact_info_field_label (const char *field_name, + GStrv parameters, + gboolean show_parameters); + +gint tpaw_contact_info_field_cmp (TpContactInfoField *field1, + TpContactInfoField *field2); +gint tpaw_contact_info_field_spec_cmp (TpContactInfoFieldSpec *spec1, + TpContactInfoFieldSpec *spec2); + +G_END_DECLS + +#endif /* __TPAW_UTILS_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-debug.c b/telepathy-account-widgets/tp-account-widgets/tpaw-debug.c new file mode 100644 index 0000000..c94718e --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-debug.c @@ -0,0 +1,149 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */ +/* + * Copyright (C) 2007 Collabora Ltd. + * Copyright (C) 2007 Nokia Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-debug.h" + +#ifdef ENABLE_DEBUG + +static TpawDebugFlags flags = 0; + +static GDebugKey keys[] = { + { "Account", TPAW_DEBUG_ACCOUNT }, + { "Irc", TPAW_DEBUG_IRC }, + { "Other", TPAW_DEBUG_OTHER }, + { 0, } +}; + +static void +debug_set_flags (TpawDebugFlags new_flags) +{ + flags |= new_flags; +} + +void +tpaw_debug_set_flags (const gchar *flags_string) +{ + guint nkeys; + + for (nkeys = 0; keys[nkeys].value; nkeys++); + + if (flags_string) + debug_set_flags (g_parse_debug_string (flags_string, keys, nkeys)); +} + +gboolean +tpaw_debug_flag_is_set (TpawDebugFlags flag) +{ + return (flag & flags) != 0; +} + +static GHashTable *flag_to_keys = NULL; + +static const gchar * +debug_flag_to_key (TpawDebugFlags flag) +{ + if (flag_to_keys == NULL) + { + guint i; + + flag_to_keys = g_hash_table_new_full (g_direct_hash, g_direct_equal, + NULL, g_free); + + for (i = 0; keys[i].value; i++) + { + GDebugKey key = (GDebugKey) keys[i]; + g_hash_table_insert (flag_to_keys, GUINT_TO_POINTER (key.value), + g_strdup (key.key)); + } + } + + return g_hash_table_lookup (flag_to_keys, GUINT_TO_POINTER (flag)); +} + +void +tpaw_debug_free (void) +{ + if (flag_to_keys == NULL) + return; + + g_hash_table_unref (flag_to_keys); + flag_to_keys = NULL; +} + +static void +log_to_debug_sender (TpawDebugFlags flag, + const gchar *message) +{ + TpDebugSender *sender; + gchar *domain; + GTimeVal now; + + sender = tp_debug_sender_dup (); + + g_get_current_time (&now); + + domain = g_strdup_printf ("%s/%s", G_LOG_DOMAIN, debug_flag_to_key (flag)); + + tp_debug_sender_add_message (sender, &now, domain, G_LOG_LEVEL_DEBUG, message); + + g_free (domain); + g_object_unref (sender); +} + +void +tpaw_debug (TpawDebugFlags flag, + const gchar *format, + ...) +{ + gchar *message; + va_list args; + + va_start (args, format); + message = g_strdup_vprintf (format, args); + va_end (args); + + log_to_debug_sender (flag, message); + + if (flag & flags) + g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s", message); + + g_free (message); +} + +#else + +gboolean +tpaw_debug_flag_is_set (TpawDebugFlags flag) +{ + return FALSE; +} + +void +tpaw_debug (TpawDebugFlags flag, const gchar *format, ...) +{ +} + +void +tpaw_debug_set_flags (const gchar *flags_string) +{ +} + +#endif /* ENABLE_DEBUG */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-debug.h b/telepathy-account-widgets/tp-account-widgets/tpaw-debug.h new file mode 100644 index 0000000..51ed827 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-debug.h @@ -0,0 +1,87 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */ +/* + * Copyright (C) 2007 Collabora Ltd. + * Copyright (C) 2007 Nokia Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_DEBUG_H__ +#define __TPAW_DEBUG_H__ + +#include +#include + +G_BEGIN_DECLS + +/* Please keep this enum in sync with #keys in tpaw-debug.c */ +typedef enum +{ + TPAW_DEBUG_CONTACT = 1 << 1, + TPAW_DEBUG_ACCOUNT = 1 << 2, + TPAW_DEBUG_IRC = 1 << 3, + TPAW_DEBUG_OTHER = 1 << 4, +} TpawDebugFlags; + +gboolean tpaw_debug_flag_is_set (TpawDebugFlags flag); +void tpaw_debug (TpawDebugFlags flag, const gchar *format, ...) + G_GNUC_PRINTF (2, 3); +void tpaw_debug_free (void); +void tpaw_debug_set_flags (const gchar *flags_string); +G_END_DECLS + +#endif /* __TPAW_DEBUG_H__ */ + +/* ------------------------------------ */ + +/* Below this point is outside the __DEBUG_H__ guard - so it can take effect + * more than once. So you can do: + * + * #define DEBUG_FLAG TPAW_DEBUG_ONE_THING + * #include "internal-debug.h" + * ... + * DEBUG ("if we're debugging one thing"); + * ... + * #undef DEBUG_FLAG + * #define DEBUG_FLAG TPAW_DEBUG_OTHER_THING + * #include "internal-debug.h" + * ... + * DEBUG ("if we're debugging the other thing"); + * ... + */ + +#ifdef DEBUG_FLAG +#ifdef ENABLE_DEBUG + +#undef DEBUG +#define DEBUG(format, ...) \ + tpaw_debug (DEBUG_FLAG, "%s: " format, G_STRFUNC, ##__VA_ARGS__) + +#undef DEBUGGING +#define DEBUGGING tpaw_debug_flag_is_set (DEBUG_FLAG) + +#else /* !defined (ENABLE_DEBUG) */ + +#undef DEBUG +#define DEBUG(format, ...) do {} while (0) + +#undef DEBUGGING +#define DEBUGGING 0 + +#endif /* !defined (ENABLE_DEBUG) */ + +#define gabble_debug_free() G_STMT_START { } G_STMT_END + +#endif /* defined (DEBUG_FLAG) */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-gsettings.h b/telepathy-account-widgets/tp-account-widgets/tpaw-gsettings.h new file mode 100644 index 0000000..0546f97 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-gsettings.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2010-2013 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Danielle Madeley + */ + +#ifndef __TPAW_GSETTINGS_H__ +#define __TPAW_GSETTINGS_H__ + +#include + +G_BEGIN_DECLS + +/* FIXME: Move this after the split of tp-account-widgets. */ +#define TPAW_PREFS_SCHEMA "org.gnome.telepathy-account-widgets" + +#define TPAW_PREFS_UI_SCHEMA TPAW_PREFS_SCHEMA ".ui" +#define TPAW_PREFS_UI_AVATAR_DIRECTORY "avatar-directory" + +G_END_DECLS + +#endif /* __TPAW_GSETTINGS_H__ */ + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-images.h b/telepathy-account-widgets/tp-account-widgets/tpaw-images.h new file mode 100644 index 0000000..48bc4cb --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-images.h @@ -0,0 +1,31 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2007-2008 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + */ + +#ifndef __TPAW_IMAGES_H__ +#define __TPAW_IMAGES_H__ + +G_BEGIN_DECLS + +#define TPAW_IMAGE_AVATAR_DEFAULT "avatar-default-symbolic" + +G_END_DECLS + +#endif /* __TPAW_IMAGES_ICONS_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser-dialog.c b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser-dialog.c new file mode 100644 index 0000000..8630223 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser-dialog.c @@ -0,0 +1,733 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#include "config.h" +#include "tpaw-irc-network-chooser-dialog.h" + +#include + +#include "tpaw-irc-network-dialog.h" +#include "tpaw-irc-network-manager.h" +#include "tpaw-live-search.h" +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_ACCOUNT | TPAW_DEBUG_IRC +#include "tpaw-debug.h" + +#include "tpaw-irc-network-chooser-dialog.h" + +enum { + PROP_SETTINGS = 1, + PROP_NETWORK +}; + +enum { + RESPONSE_RESET = 0 +}; + +struct _TpawIrcNetworkChooserDialogPriv { + TpawAccountSettings *settings; + TpawIrcNetwork *network; + + TpawIrcNetworkManager *network_manager; + gboolean changed; + + GtkWidget *treeview; + GtkListStore *store; + GtkTreeModelFilter *filter; + GtkWidget *search; + GtkWidget *select_button; + + gulong search_sig; + gulong activate_sig; +}; + +enum { + COL_NETWORK_OBJ, + COL_NETWORK_NAME, +}; + +G_DEFINE_TYPE (TpawIrcNetworkChooserDialog, tpaw_irc_network_chooser_dialog, + GTK_TYPE_DIALOG); + +static void +tpaw_irc_network_chooser_dialog_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetworkChooserDialog *self = + TPAW_IRC_NETWORK_CHOOSER_DIALOG (object); + + switch (prop_id) + { + case PROP_SETTINGS: + self->priv->settings = g_value_dup_object (value); + break; + case PROP_NETWORK: + self->priv->network = g_value_dup_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +tpaw_irc_network_chooser_dialog_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetworkChooserDialog *self = + TPAW_IRC_NETWORK_CHOOSER_DIALOG (object); + + switch (prop_id) + { + case PROP_SETTINGS: + g_value_set_object (value, self->priv->settings); + break; + case PROP_NETWORK: + g_value_set_object (value, self->priv->network); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* The iter returned by *it is a self->priv->store iter (not a filter one) */ +static TpawIrcNetwork * +dup_selected_network (TpawIrcNetworkChooserDialog *self, + GtkTreeIter *it) +{ + TpawIrcNetwork *network; + GtkTreeSelection *selection; + GtkTreeIter iter; + GtkTreeModel *model; + + selection = gtk_tree_view_get_selection ( + GTK_TREE_VIEW (self->priv->treeview)); + if (selection == NULL) + return NULL; + + if (!gtk_tree_selection_get_selected (selection, &model, &iter)) + return NULL; + + gtk_tree_model_get (model, &iter, COL_NETWORK_OBJ, &network, -1); + g_assert (network != NULL); + + if (it != NULL) + { + gtk_tree_model_filter_convert_iter_to_child_iter ( self->priv->filter, + it, &iter); + } + + return network; +} + +static void +treeview_changed_cb (GtkTreeView *treeview, + TpawIrcNetworkChooserDialog *self) +{ + TpawIrcNetwork *network; + + network = dup_selected_network (self, NULL); + if (network == self->priv->network) + { + g_clear_object (&network); + return; + } + + tp_clear_object (&self->priv->network); + /* Transfer the reference */ + self->priv->network = network; + + self->priv->changed = TRUE; +} + +/* Take a filter iterator as argument */ +static void +scroll_to_iter (TpawIrcNetworkChooserDialog *self, + GtkTreeIter *filter_iter) +{ + GtkTreePath *path; + + path = gtk_tree_model_get_path (GTK_TREE_MODEL (self->priv->filter), + filter_iter); + + if (path != NULL) + { + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (self->priv->treeview), + path, NULL, FALSE, 0, 0); + + gtk_tree_path_free (path); + } +} + +/* Take a filter iterator as argument */ +static void +select_iter (TpawIrcNetworkChooserDialog *self, + GtkTreeIter *filter_iter, + gboolean emulate_changed) +{ + GtkTreeSelection *selection; + GtkTreePath *path; + + /* Select the network */ + selection = gtk_tree_view_get_selection ( + GTK_TREE_VIEW (self->priv->treeview)); + + gtk_tree_selection_select_iter (selection, filter_iter); + + path = gtk_tree_model_get_path (GTK_TREE_MODEL (self->priv->filter), + filter_iter); + if (path != NULL) + { + gtk_tree_view_set_cursor (GTK_TREE_VIEW (self->priv->treeview), path, + NULL, FALSE); + + gtk_tree_path_free (path); + } + + /* Scroll to the selected network */ + scroll_to_iter (self, filter_iter); + + if (emulate_changed) + { + /* gtk_tree_selection_select_iter doesn't fire the 'cursor-changed' signal + * so we call the callback manually. */ + treeview_changed_cb (GTK_TREE_VIEW (self->priv->treeview), self); + } +} + +static GtkTreeIter +iter_to_filter_iter (TpawIrcNetworkChooserDialog *self, + GtkTreeIter *iter) +{ + GtkTreeIter filter_iter; + + g_assert ( + gtk_tree_model_filter_convert_child_iter_to_iter (self->priv->filter, + &filter_iter, iter)); + + return filter_iter; +} + +static void +fill_store (TpawIrcNetworkChooserDialog *self) +{ + GSList *networks, *l; + + networks = tpaw_irc_network_manager_get_networks ( + self->priv->network_manager); + + for (l = networks; l != NULL; l = g_slist_next (l)) + { + TpawIrcNetwork *network = l->data; + GtkTreeIter iter; + + gtk_list_store_insert_with_values (self->priv->store, &iter, -1, + COL_NETWORK_OBJ, network, + COL_NETWORK_NAME, tpaw_irc_network_get_name (network), + -1); + + if (network == self->priv->network) + { + GtkTreeIter filter_iter = iter_to_filter_iter (self, &iter); + + select_iter (self, &filter_iter, FALSE); + } + + g_object_unref (network); + } + + g_slist_free (networks); +} + +static void +irc_network_dialog_destroy_cb (GtkWidget *widget, + TpawIrcNetworkChooserDialog *self) +{ + TpawIrcNetwork *network; + GtkTreeIter iter, filter_iter; + + self->priv->changed = TRUE; + + network = dup_selected_network (self, &iter); + if (network == NULL) + return; + + /* name could be changed */ + gtk_list_store_set (GTK_LIST_STORE (self->priv->store), &iter, + COL_NETWORK_NAME, tpaw_irc_network_get_name (network), -1); + + filter_iter = iter_to_filter_iter (self, &iter); + scroll_to_iter (self, &filter_iter); + + gtk_widget_grab_focus (self->priv->treeview); + + g_object_unref (network); +} + +static void +display_irc_network_dialog (TpawIrcNetworkChooserDialog *self, + TpawIrcNetwork *network) +{ + GtkWidget *dialog; + + dialog = tpaw_irc_network_dialog_show (network, GTK_WIDGET (self)); + + g_signal_connect (dialog, "destroy", + G_CALLBACK (irc_network_dialog_destroy_cb), self); +} + +static void +edit_network (TpawIrcNetworkChooserDialog *self) +{ + TpawIrcNetwork *network; + + network = dup_selected_network (self, NULL); + if (network == NULL) + return; + + display_irc_network_dialog (self, network); + + g_object_unref (network); +} + +static void +add_network (TpawIrcNetworkChooserDialog *self) +{ + TpawIrcNetwork *network; + GtkTreeIter iter, filter_iter; + + gtk_widget_hide (self->priv->search); + + network = tpaw_irc_network_new (_("New Network")); + tpaw_irc_network_manager_add (self->priv->network_manager, network); + + gtk_list_store_insert_with_values (self->priv->store, &iter, -1, + COL_NETWORK_OBJ, network, + COL_NETWORK_NAME, tpaw_irc_network_get_name (network), + -1); + + filter_iter = iter_to_filter_iter (self, &iter); + select_iter (self, &filter_iter, TRUE); + + display_irc_network_dialog (self, network); + + g_object_unref (network); +} + +static void +remove_network (TpawIrcNetworkChooserDialog *self) +{ + TpawIrcNetwork *network; + GtkTreeIter iter; + + network = dup_selected_network (self, &iter); + if (network == NULL) + return; + + /* Hide the search after picking the network to get the right one */ + gtk_widget_hide (self->priv->search); + + DEBUG ("Remove network %s", tpaw_irc_network_get_name (network)); + + /* Delete network and select next network */ + if (gtk_list_store_remove (self->priv->store, &iter)) + { + GtkTreeIter filter_iter = iter_to_filter_iter (self, &iter); + + select_iter (self, &filter_iter, TRUE); + } + else + { + /* this should only happen if the last network was deleted */ + GtkTreeIter last, filter_iter; + gint n_elements; + + n_elements = gtk_tree_model_iter_n_children ( + GTK_TREE_MODEL (self->priv->store), NULL); + + if (n_elements > 0) + { + gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (self->priv->store), + &last, NULL, (n_elements-1)); + filter_iter = iter_to_filter_iter (self, &last); + + select_iter (self, &filter_iter, TRUE); + } + } + + tpaw_irc_network_manager_remove (self->priv->network_manager, network); + gtk_widget_grab_focus (self->priv->treeview); + + g_object_unref (network); +} + +static void +reset_networks (TpawIrcNetworkChooserDialog *self) +{ + GSList *networks, *l; + + networks = tpaw_irc_network_manager_get_dropped_networks ( + self->priv->network_manager); + + for (l = networks; l != NULL; l = g_slist_next (l)) + { + TpawIrcNetwork *network; + GtkTreeIter iter; + + network = TPAW_IRC_NETWORK (l->data); + tpaw_irc_network_activate (network); + + gtk_list_store_insert_with_values (self->priv->store, &iter, -1, + COL_NETWORK_OBJ, network, + COL_NETWORK_NAME, tpaw_irc_network_get_name (network), + -1); + } + + g_slist_foreach (networks, (GFunc) g_object_unref, NULL); +} + +static void +dialog_response_cb (GtkDialog *dialog, + gint response, + TpawIrcNetworkChooserDialog *self) +{ + if (response == RESPONSE_RESET) + reset_networks (self); +} + +static gboolean +filter_visible_func (GtkTreeModel *model, + GtkTreeIter *iter, + gpointer user_data) +{ + TpawIrcNetworkChooserDialog *self = user_data; + TpawIrcNetwork *network; + gboolean visible; + + gtk_tree_model_get (model, iter, COL_NETWORK_OBJ, &network, -1); + + visible = tpaw_live_search_match (TPAW_LIVE_SEARCH (self->priv->search), + tpaw_irc_network_get_name (network)); + + g_object_unref (network); + return visible; +} + +static void +search_activate_cb (GtkWidget *search, + TpawIrcNetworkChooserDialog *self) +{ + gtk_widget_hide (search); + gtk_dialog_response (GTK_DIALOG (self), GTK_RESPONSE_CLOSE); +} + +static void +search_text_notify_cb (TpawLiveSearch *search, + GParamSpec *pspec, + TpawIrcNetworkChooserDialog *self) +{ + GtkTreeIter filter_iter; + gboolean sensitive = FALSE; + + gtk_tree_model_filter_refilter (self->priv->filter); + + /* Is there at least one network in the view ? */ + if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->filter), + &filter_iter)) + { + const gchar *text; + + text = tpaw_live_search_get_text ( + TPAW_LIVE_SEARCH (self->priv->search)); + if (!TPAW_STR_EMPTY (text)) + { + /* We are doing a search, select the first matching network */ + select_iter (self, &filter_iter, TRUE); + } + else + { + /* Search has been cancelled. Scroll to the selected network */ + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection ( + GTK_TREE_VIEW (self->priv->treeview)); + + if (gtk_tree_selection_get_selected (selection, NULL, + &filter_iter)) + scroll_to_iter (self, &filter_iter); + } + + sensitive = TRUE; + } + + gtk_widget_set_sensitive (self->priv->select_button, sensitive); +} + +static void +add_clicked_cb (GtkToolButton *button, + TpawIrcNetworkChooserDialog *self) +{ + add_network (self); +} + +static void +remove_clicked_cb (GtkToolButton *button, + TpawIrcNetworkChooserDialog *self) +{ + remove_network (self); +} + +static void +edit_clicked_cb (GtkToolButton *button, + TpawIrcNetworkChooserDialog *self) +{ + edit_network (self); +} + +static void +tpaw_irc_network_chooser_dialog_constructed (GObject *object) +{ + TpawIrcNetworkChooserDialog *self = (TpawIrcNetworkChooserDialog *) object; + GtkDialog *dialog = GTK_DIALOG (self); + GtkCellRenderer *renderer; + GtkWidget *vbox; + GtkTreeViewColumn *column; + GtkWidget *scroll; + GtkWidget *toolbar; + GtkToolItem *item; + GtkStyleContext *context; + + G_OBJECT_CLASS (tpaw_irc_network_chooser_dialog_parent_class)->constructed (object); + + g_assert (self->priv->settings != NULL); + + gtk_window_set_title (GTK_WINDOW (self), _("Choose an IRC network")); + + /* Create store and treeview */ + self->priv->store = gtk_list_store_new (2, G_TYPE_OBJECT, G_TYPE_STRING); + + gtk_tree_sortable_set_sort_column_id ( + GTK_TREE_SORTABLE (self->priv->store), + COL_NETWORK_NAME, + GTK_SORT_ASCENDING); + + self->priv->treeview = gtk_tree_view_new (); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (self->priv->treeview), + FALSE); + gtk_tree_view_set_enable_search (GTK_TREE_VIEW (self->priv->treeview), + FALSE); + + column = gtk_tree_view_column_new (); + gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->treeview), column); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (column), renderer, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (column), + renderer, + "text", COL_NETWORK_NAME, + NULL); + + /* add the treeview in a GtkScrolledWindow */ + vbox = gtk_dialog_get_content_area (dialog); + + scroll = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), + GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + + gtk_container_add (GTK_CONTAINER (scroll), self->priv->treeview); + gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 6); + + /* Treeview toolbar */ + toolbar = gtk_toolbar_new (); + gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU); + gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0); + + item = gtk_tool_button_new (NULL, ""); + gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-add-symbolic"); + g_signal_connect (item, "clicked", G_CALLBACK (add_clicked_cb), self); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + item = gtk_tool_button_new (NULL, ""); + gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), + "list-remove-symbolic"); + g_signal_connect (item, "clicked", G_CALLBACK (remove_clicked_cb), self); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + item = gtk_tool_button_new (NULL, ""); + gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), + "preferences-system-symbolic"); + g_signal_connect (item, "clicked", G_CALLBACK (edit_clicked_cb), self); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); + + context = gtk_widget_get_style_context (scroll); + gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); + + context = gtk_widget_get_style_context (toolbar); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_INLINE_TOOLBAR); + gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); + + /* Live search */ + self->priv->search = tpaw_live_search_new (self->priv->treeview); + + gtk_box_pack_start (GTK_BOX (vbox), self->priv->search, FALSE, TRUE, 0); + + self->priv->filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new ( + GTK_TREE_MODEL (self->priv->store), NULL)); + gtk_tree_model_filter_set_visible_func (self->priv->filter, + filter_visible_func, self, NULL); + + gtk_tree_view_set_model (GTK_TREE_VIEW (self->priv->treeview), + GTK_TREE_MODEL (self->priv->filter)); + + self->priv->search_sig = g_signal_connect (self->priv->search, + "notify::text", G_CALLBACK (search_text_notify_cb), self); + + self->priv->activate_sig = g_signal_connect (self->priv->search, + "activate", G_CALLBACK (search_activate_cb), self); + + /* Add buttons */ + gtk_dialog_add_buttons (dialog, + _("Reset _Networks List"), RESPONSE_RESET, + NULL); + + self->priv->select_button = gtk_dialog_add_button (dialog, + C_("verb displayed on a button to select an IRC network", "Select"), + GTK_RESPONSE_CLOSE); + + fill_store (self); + + g_signal_connect (self->priv->treeview, "cursor-changed", + G_CALLBACK (treeview_changed_cb), self); + + g_signal_connect (self, "response", + G_CALLBACK (dialog_response_cb), self); + + /* Request a side ensuring to display at least some networks */ + gtk_widget_set_size_request (GTK_WIDGET (self), -1, 300); + + gtk_window_set_modal (GTK_WINDOW (self), TRUE); +} + +static void +tpaw_irc_network_chooser_dialog_dispose (GObject *object) +{ + TpawIrcNetworkChooserDialog *self = (TpawIrcNetworkChooserDialog *) object; + + if (self->priv->search_sig != 0) + { + g_signal_handler_disconnect (self->priv->search, + self->priv->search_sig); + self->priv->search_sig = 0; + } + + if (self->priv->activate_sig != 0) + { + g_signal_handler_disconnect (self->priv->search, + self->priv->activate_sig); + self->priv->activate_sig = 0; + } + + if (self->priv->search != NULL) + { + tpaw_live_search_set_hook_widget ( + TPAW_LIVE_SEARCH (self->priv->search), NULL); + + self->priv->search = NULL; + } + + tp_clear_object (&self->priv->settings); + tp_clear_object (&self->priv->network); + tp_clear_object (&self->priv->network_manager); + tp_clear_object (&self->priv->store); + tp_clear_object (&self->priv->filter); + + if (G_OBJECT_CLASS (tpaw_irc_network_chooser_dialog_parent_class)->dispose) + G_OBJECT_CLASS (tpaw_irc_network_chooser_dialog_parent_class)->dispose (object); +} + +static void +tpaw_irc_network_chooser_dialog_class_init (TpawIrcNetworkChooserDialogClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->get_property = tpaw_irc_network_chooser_dialog_get_property; + object_class->set_property = tpaw_irc_network_chooser_dialog_set_property; + object_class->constructed = tpaw_irc_network_chooser_dialog_constructed; + object_class->dispose = tpaw_irc_network_chooser_dialog_dispose; + + g_object_class_install_property (object_class, PROP_SETTINGS, + g_param_spec_object ("settings", + "Settings", + "The TpawAccountSettings to show and edit", + TPAW_TYPE_ACCOUNT_SETTINGS, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_class_install_property (object_class, PROP_NETWORK, + g_param_spec_object ("network", + "Network", + "The TpawIrcNetwork selected in the treeview", + TPAW_TYPE_IRC_NETWORK, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_type_class_add_private (object_class, + sizeof (TpawIrcNetworkChooserDialogPriv)); +} + +static void +tpaw_irc_network_chooser_dialog_init (TpawIrcNetworkChooserDialog *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG, TpawIrcNetworkChooserDialogPriv); + + self->priv->network_manager = tpaw_irc_network_manager_dup_default (); +} + +GtkWidget * +tpaw_irc_network_chooser_dialog_new (TpawAccountSettings *settings, + TpawIrcNetwork *network, + GtkWindow *parent) +{ + return g_object_new (TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG, + "settings", settings, + "network", network, + "transient-for", parent, + NULL); +} + +TpawIrcNetwork * +tpaw_irc_network_chooser_dialog_get_network ( + TpawIrcNetworkChooserDialog *self) +{ + return self->priv->network; +} + +gboolean +tpaw_irc_network_chooser_dialog_get_changed ( + TpawIrcNetworkChooserDialog *self) +{ + return self->priv->changed; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser-dialog.h b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser-dialog.h new file mode 100644 index 0000000..fb5edf1 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser-dialog.h @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#ifndef __TPAW_IRC_NETWORK_CHOOSER_DIALOG_H__ +#define __TPAW_IRC_NETWORK_CHOOSER_DIALOG_H__ + +#include + +#include "tpaw-account-settings.h" +#include "tpaw-irc-network.h" + +G_BEGIN_DECLS + +#define TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG (tpaw_irc_network_chooser_dialog_get_type ()) +#define TPAW_IRC_NETWORK_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG, TpawIrcNetworkChooserDialog)) +#define TPAW_IRC_NETWORK_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG, TpawIrcNetworkChooserDialogClass)) +#define TPAW_IS_IRC_NETWORK_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG)) +#define TPAW_IS_IRC_NETWORK_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG)) +#define TPAW_IRC_NETWORK_CHOOSER_DIALOG_GET_CLASS(o) ( \ + G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_IRC_NETWORK_CHOOSER_DIALOG, \ + TpawIrcNetworkChooserDialogClass)) + +typedef struct _TpawIrcNetworkChooserDialogPriv TpawIrcNetworkChooserDialogPriv; + +typedef struct { + GtkDialog parent; + + /**/ + TpawIrcNetworkChooserDialogPriv *priv; +} TpawIrcNetworkChooserDialog; + +typedef struct { + GtkDialogClass parent_class; +} TpawIrcNetworkChooserDialogClass; + +GType tpaw_irc_network_chooser_dialog_get_type (void) G_GNUC_CONST; + +GtkWidget * tpaw_irc_network_chooser_dialog_new ( + TpawAccountSettings *settings, + TpawIrcNetwork *network, + GtkWindow *parent); + +TpawIrcNetwork * tpaw_irc_network_chooser_dialog_get_network ( + TpawIrcNetworkChooserDialog *self); + +gboolean tpaw_irc_network_chooser_dialog_get_changed ( + TpawIrcNetworkChooserDialog *self); + +G_END_DECLS + +#endif /* __TPAW_IRC_NETWORK_CHOOSER_DIALOG_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser.c b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser.c new file mode 100644 index 0000000..5a91403 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser.c @@ -0,0 +1,409 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#include "config.h" +#include "tpaw-irc-network-chooser.h" + +#include "tpaw-irc-network-chooser-dialog.h" +#include "tpaw-irc-network-manager.h" +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_ACCOUNT | TPAW_DEBUG_IRC +#include "tpaw-debug.h" + +#define DEFAULT_IRC_NETWORK "irc.gimp.org" +#define DEFAULT_IRC_PORT 6667 +#define DEFAULT_IRC_SSL FALSE + +enum { + PROP_SETTINGS = 1 +}; + +enum { + SIG_CHANGED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +struct _TpawIrcNetworkChooserPriv { + TpawAccountSettings *settings; + + TpawIrcNetworkManager *network_manager; + GtkWidget *dialog; + /* Displayed network */ + TpawIrcNetwork *network; +}; + +G_DEFINE_TYPE (TpawIrcNetworkChooser, tpaw_irc_network_chooser, + GTK_TYPE_BUTTON); + +static void +tpaw_irc_network_chooser_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetworkChooser *self = TPAW_IRC_NETWORK_CHOOSER (object); + + switch (prop_id) + { + case PROP_SETTINGS: + self->priv->settings = g_value_dup_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +tpaw_irc_network_chooser_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetworkChooser *self = TPAW_IRC_NETWORK_CHOOSER (object); + + switch (prop_id) + { + case PROP_SETTINGS: + g_value_set_object (value, self->priv->settings); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +unset_server_params (TpawIrcNetworkChooser *self) +{ + DEBUG ("Unset server, port and use-ssl"); + tpaw_account_settings_unset (self->priv->settings, "server"); + tpaw_account_settings_unset (self->priv->settings, "port"); + tpaw_account_settings_unset (self->priv->settings, "use-ssl"); +} + +static gchar * +dup_network_service (TpawIrcNetwork *network) +{ + /* Account.Service has to be a lower case alphanumeric string which may + * also contain '-' but not start with it. */ +#define VALID G_CSET_a_2_z G_CSET_DIGITS "-" + gchar *service, *tmp; + + service = g_strdup (tpaw_irc_network_get_name (network)); + service = g_strstrip (service); + + if (tp_str_empty (service)) + { + g_free (service); + return NULL; + } + + tmp = service; + service = g_ascii_strdown (service, -1); + g_free (tmp); + + service = g_strcanon (service, VALID, '-'); + + if (service[0] == '-') + { + tmp = service; + service = g_strdup (service + 1); + + g_free (tmp); + } + + return service; +} + +static void +update_server_params (TpawIrcNetworkChooser *self) +{ + GSList *servers; + const gchar *charset; + + g_assert (self->priv->network != NULL); + + charset = tpaw_irc_network_get_charset (self->priv->network); + DEBUG ("Setting charset to %s", charset); + tpaw_account_settings_set (self->priv->settings, "charset", + g_variant_new_string (charset)); + + servers = tpaw_irc_network_get_servers (self->priv->network); + if (g_slist_length (servers) > 0) + { + /* set the first server as CM server */ + TpawIrcServer *server = servers->data; + gchar *address; + guint port; + gboolean ssl; + gchar *service; + + g_object_get (server, + "address", &address, + "port", &port, + "ssl", &ssl, + NULL); + + DEBUG ("Setting server to %s", address); + tpaw_account_settings_set (self->priv->settings, "server", + g_variant_new_string (address)); + DEBUG ("Setting port to %u", port); + tpaw_account_settings_set (self->priv->settings, "port", + g_variant_new_uint32 (port)); + DEBUG ("Setting use-ssl to %s", ssl ? "TRUE": "FALSE" ); + tpaw_account_settings_set (self->priv->settings, "use-ssl", + g_variant_new_boolean (ssl)); + + /* Set Account.Service */ + service = dup_network_service (self->priv->network); + DEBUG ("Setting Service to %s", service); + tpaw_account_settings_set_service (self->priv->settings, service); + + g_free (address); + g_free (service); + } + else + { + /* No server. Unset values */ + unset_server_params (self); + } + + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); +} + +static void +set_label (TpawIrcNetworkChooser *self) +{ + g_assert (self->priv->network != NULL); + + gtk_button_set_label (GTK_BUTTON (self), + tpaw_irc_network_get_name (self->priv->network)); +} + +static void +set_label_from_settings (TpawIrcNetworkChooser *self) +{ + gchar *server; + + tp_clear_object (&self->priv->network); + + server = tpaw_account_settings_dup_string (self->priv->settings, "server"); + + if (server != NULL) + { + TpawIrcServer *srv; + gint port; + gboolean ssl; + + self->priv->network = + tpaw_irc_network_manager_find_network_by_address ( + self->priv->network_manager, server); + + if (self->priv->network != NULL) + { + /* The network is known */ + g_object_ref (self->priv->network); + set_label (self); + return; + } + + /* We don't have this network. Let's create it */ + port = tpaw_account_settings_get_uint32 (self->priv->settings, "port"); + ssl = tpaw_account_settings_get_boolean (self->priv->settings, + "use-ssl"); + + DEBUG ("Create a network %s", server); + self->priv->network = tpaw_irc_network_new (server); + srv = tpaw_irc_server_new (server, port, ssl); + + tpaw_irc_network_append_server (self->priv->network, srv); + tpaw_irc_network_manager_add (self->priv->network_manager, + self->priv->network); + + set_label (self); + + g_object_unref (srv); + g_free (server); + return; + } + + /* Set default network */ + self->priv->network = tpaw_irc_network_manager_find_network_by_address ( + self->priv->network_manager, DEFAULT_IRC_NETWORK); + + if (self->priv->network == NULL) + { + /* Default network is not known, recreate it */ + TpawIrcServer *srv; + + self->priv->network = tpaw_irc_network_new (DEFAULT_IRC_NETWORK); + + srv = tpaw_irc_server_new (DEFAULT_IRC_NETWORK, DEFAULT_IRC_PORT, + DEFAULT_IRC_SSL); + + tpaw_irc_network_append_server (self->priv->network, srv); + tpaw_irc_network_manager_add (self->priv->network_manager, + self->priv->network); + + g_object_unref (srv); + } + + set_label (self); + update_server_params (self); + g_object_ref (self->priv->network); +} + +static void +dialog_response_cb (GtkDialog *dialog, + gint response, + TpawIrcNetworkChooser *self) +{ + TpawIrcNetworkChooserDialog *chooser = + TPAW_IRC_NETWORK_CHOOSER_DIALOG (self->priv->dialog); + + if (response != GTK_RESPONSE_CLOSE && + response != GTK_RESPONSE_DELETE_EVENT) + return; + + if (tpaw_irc_network_chooser_dialog_get_changed (chooser)) + { + tp_clear_object (&self->priv->network); + + self->priv->network = g_object_ref ( + tpaw_irc_network_chooser_dialog_get_network (chooser)); + + update_server_params (self); + set_label (self); + + g_signal_emit (self, signals[SIG_CHANGED], 0); + } + + gtk_widget_destroy (self->priv->dialog); + self->priv->dialog = NULL; +} + +static void +clicked_cb (GtkButton *button, + gpointer user_data) +{ + TpawIrcNetworkChooser *self = TPAW_IRC_NETWORK_CHOOSER (button); + GtkWindow *window; + + if (self->priv->dialog != NULL) + goto out; + + window = tpaw_get_toplevel_window (GTK_WIDGET (button)); + + self->priv->dialog = tpaw_irc_network_chooser_dialog_new ( + self->priv->settings, self->priv->network, window); + gtk_widget_show_all (self->priv->dialog); + + tp_g_signal_connect_object (self->priv->dialog, "response", + G_CALLBACK (dialog_response_cb), button, 0); + +out: + tpaw_window_present (GTK_WINDOW (self->priv->dialog)); +} + +static void +tpaw_irc_network_chooser_constructed (GObject *object) +{ + TpawIrcNetworkChooser *self = (TpawIrcNetworkChooser *) object; + + G_OBJECT_CLASS (tpaw_irc_network_chooser_parent_class)->constructed (object); + + g_assert (self->priv->settings != NULL); + + set_label_from_settings (self); + + g_signal_connect (self, "clicked", G_CALLBACK (clicked_cb), self); +} + +static void +tpaw_irc_network_chooser_dispose (GObject *object) +{ + TpawIrcNetworkChooser *self = (TpawIrcNetworkChooser *) object; + + tp_clear_object (&self->priv->settings); + tp_clear_object (&self->priv->network_manager); + tp_clear_object (&self->priv->network); + + if (G_OBJECT_CLASS (tpaw_irc_network_chooser_parent_class)->dispose) + G_OBJECT_CLASS (tpaw_irc_network_chooser_parent_class)->dispose (object); +} + +static void +tpaw_irc_network_chooser_class_init (TpawIrcNetworkChooserClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->get_property = tpaw_irc_network_chooser_get_property; + object_class->set_property = tpaw_irc_network_chooser_set_property; + object_class->constructed = tpaw_irc_network_chooser_constructed; + object_class->dispose = tpaw_irc_network_chooser_dispose; + + g_object_class_install_property (object_class, PROP_SETTINGS, + g_param_spec_object ("settings", + "Settings", + "The TpawAccountSettings to show and edit", + TPAW_TYPE_ACCOUNT_SETTINGS, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + signals[SIG_CHANGED] = g_signal_new ("changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 0); + + g_type_class_add_private (object_class, + sizeof (TpawIrcNetworkChooserPriv)); +} + +static void +tpaw_irc_network_chooser_init (TpawIrcNetworkChooser *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + TPAW_TYPE_IRC_NETWORK_CHOOSER, TpawIrcNetworkChooserPriv); + + self->priv->network_manager = tpaw_irc_network_manager_dup_default (); +} + +GtkWidget * +tpaw_irc_network_chooser_new (TpawAccountSettings *settings) +{ + return g_object_new (TPAW_TYPE_IRC_NETWORK_CHOOSER, + "settings", settings, + NULL); +} + +TpawIrcNetwork * +tpaw_irc_network_chooser_get_network (TpawIrcNetworkChooser *self) +{ + return self->priv->network; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser.h b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser.h new file mode 100644 index 0000000..175679c --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-chooser.h @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#ifndef __TPAW_IRC_NETWORK_CHOOSER_H__ +#define __TPAW_IRC_NETWORK_CHOOSER_H__ + +#include + +#include "tpaw-account-settings.h" +#include "tpaw-irc-network.h" + +G_BEGIN_DECLS + +#define TPAW_TYPE_IRC_NETWORK_CHOOSER (tpaw_irc_network_chooser_get_type ()) +#define TPAW_IRC_NETWORK_CHOOSER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER, TpawIrcNetworkChooser)) +#define TPAW_IRC_NETWORK_CHOOSER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER, TpawIrcNetworkChooserClass)) +#define TPAW_IS_IRC_NETWORK_CHOOSER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER)) +#define TPAW_IS_IRC_NETWORK_CHOOSER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + TPAW_TYPE_IRC_NETWORK_CHOOSER)) +#define TPAW_IRC_NETWORK_CHOOSER_GET_CLASS(o) ( \ + G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_IRC_NETWORK_CHOOSER, \ + TpawIrcNetworkChooserClass)) + +typedef struct _TpawIrcNetworkChooserPriv TpawIrcNetworkChooserPriv; + +typedef struct { + GtkButton parent; + + /**/ + TpawIrcNetworkChooserPriv *priv; +} TpawIrcNetworkChooser; + +typedef struct { + GtkButtonClass parent_class; +} TpawIrcNetworkChooserClass; + +GType tpaw_irc_network_chooser_get_type (void) G_GNUC_CONST; + +GtkWidget * tpaw_irc_network_chooser_new (TpawAccountSettings *settings); + +TpawIrcNetwork * tpaw_irc_network_chooser_get_network ( + TpawIrcNetworkChooser *self); + +G_END_DECLS + +#endif /* __TPAW_IRC_NETWORK_CHOOSER_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-dialog.c b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-dialog.c new file mode 100644 index 0000000..3a83d94 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-dialog.c @@ -0,0 +1,590 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#include "config.h" +#include "tpaw-irc-network-dialog.h" + +#include +#include + +#include "tpaw-builder.h" +#include "tpaw-utils.h" +#include "totem-subtitle-encoding.h" + +typedef struct { + TpawIrcNetwork *network; + + GtkWidget *dialog; + GtkWidget *button_close; + + GtkWidget *entry_network; + GtkWidget *combobox_charset; + + GtkWidget *treeview_servers; + GtkWidget *button_add; + GtkWidget *button_remove; + GtkWidget *button_up; + GtkWidget *button_down; +} TpawIrcNetworkDialog; + +static void +irc_network_dialog_destroy_cb (GtkWidget *widget, + TpawIrcNetworkDialog *dialog) +{ + g_object_unref (dialog->network); + + g_slice_free (TpawIrcNetworkDialog, dialog); +} + +static void +irc_network_dialog_close_clicked_cb (GtkWidget *widget, + TpawIrcNetworkDialog *dialog) +{ + gtk_widget_destroy (dialog->dialog); +} + +enum { + COL_SRV_OBJ, + COL_ADR, + COL_PORT, + COL_SSL +}; + +static void +add_server_to_store (GtkListStore *store, + TpawIrcServer *server, + GtkTreeIter *iter) +{ + gchar *address; + guint port; + gboolean ssl; + + g_object_get (server, + "address", &address, + "port", &port, + "ssl", &ssl, + NULL); + + gtk_list_store_insert_with_values (store, iter, -1, + COL_SRV_OBJ, server, + COL_ADR, address, + COL_PORT, port, + COL_SSL, ssl, + -1); + + g_free (address); +} + +static void +irc_network_dialog_setup (TpawIrcNetworkDialog *dialog) +{ + gchar *name, *charset; + GSList *servers, *l; + GtkListStore *store; + + g_object_get (dialog->network, + "name", &name, + "charset", &charset, + NULL); + gtk_entry_set_text (GTK_ENTRY (dialog->entry_network), name); + + store = GTK_LIST_STORE (gtk_tree_view_get_model ( + GTK_TREE_VIEW (dialog->treeview_servers))); + + servers = tpaw_irc_network_get_servers (dialog->network); + for (l = servers; l != NULL; l = g_slist_next (l)) + { + TpawIrcServer *server = l->data; + GtkTreeIter iter; + + add_server_to_store (store, server, &iter); + } + + totem_subtitle_encoding_set (GTK_COMBO_BOX (dialog->combobox_charset), + charset); + + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); + g_free (name); + g_free (charset); +} + +static void +irc_network_dialog_address_edited_cb (GtkCellRendererText *renderer, + gchar *path, + gchar *new_text, + TpawIrcNetworkDialog *dialog) +{ + TpawIrcServer *server; + GtkTreeModel *model; + GtkTreePath *treepath; + GtkTreeIter iter; + + model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->treeview_servers)); + treepath = gtk_tree_path_new_from_string (path); + gtk_tree_model_get_iter (model, &iter, treepath); + gtk_tree_model_get (model, &iter, + COL_SRV_OBJ, &server, + -1); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + COL_ADR, new_text, + -1); + + g_object_set (server, "address", new_text, NULL); + + gtk_tree_path_free (treepath); + g_object_unref (server); +} + +static void +irc_network_dialog_port_edited_cb (GtkCellRendererText *renderer, + gchar *path, + gchar *new_text, + TpawIrcNetworkDialog *dialog) +{ + TpawIrcServer *server; + GtkTreeModel *model; + GtkTreePath *treepath; + GtkTreeIter iter; + guint port; + + port = strtoul (new_text, NULL, 10); + model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->treeview_servers)); + treepath = gtk_tree_path_new_from_string (path); + gtk_tree_model_get_iter (model, &iter, treepath); + gtk_tree_model_get (model, &iter, + COL_SRV_OBJ, &server, + -1); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + COL_PORT, port, + -1); + + g_object_set (server, "port", port, NULL); + + gtk_tree_path_free (treepath); + g_object_unref (server); +} + +static void +irc_network_dialog_ssl_toggled_cb (GtkCellRendererText *renderer, + gchar *path, + TpawIrcNetworkDialog *dialog) +{ + TpawIrcServer *server; + GtkTreeModel *model; + GtkTreePath *treepath; + GtkTreeIter iter; + gboolean ssl; + + model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->treeview_servers)); + treepath = gtk_tree_path_new_from_string (path); + gtk_tree_model_get_iter (model, &iter, treepath); + gtk_tree_model_get (model, &iter, + COL_SRV_OBJ, &server, + COL_SSL, &ssl, + -1); + ssl = !ssl; + gtk_list_store_set (GTK_LIST_STORE (model), &iter, + COL_SSL, ssl, + -1); + + g_object_set (server, "ssl", ssl, NULL); + + gtk_tree_path_free (treepath); + g_object_unref (server); +} + +static gboolean +irc_network_dialog_network_focus_cb (GtkWidget *widget, + GdkEventFocus *event, + TpawIrcNetworkDialog *dialog) +{ + const gchar *str; + + str = gtk_entry_get_text (GTK_ENTRY (widget)); + + g_object_set (dialog->network, "name", str, NULL); + + return FALSE; +} + +static void +irc_network_dialog_network_update_buttons (TpawIrcNetworkDialog *dialog) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreePath *path; + GtkTreeIter iter; + gboolean can_remove = FALSE, can_move_up = FALSE, can_move_down = FALSE; + int selected; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW ( + dialog->treeview_servers)); + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) + { + path = gtk_tree_model_get_path (model, &iter); + + selected = gtk_tree_path_get_indices (path)[0]; + + can_remove = TRUE; + can_move_up = selected > 0; + can_move_down = + selected < gtk_tree_model_iter_n_children (model, NULL) - 1; + + gtk_tree_path_free (path); + } + + gtk_widget_set_sensitive (dialog->button_remove, can_remove); + gtk_widget_set_sensitive (dialog->button_up, can_move_up); + gtk_widget_set_sensitive (dialog->button_down, can_move_down); +} + +static void +irc_network_dialog_button_add_clicked_cb (GtkWidget *widget, + TpawIrcNetworkDialog *dialog) +{ + TpawIrcServer *server; + GtkListStore *store; + GtkTreeIter iter; + GtkTreePath *path; + GtkTreeViewColumn *column; + + store = GTK_LIST_STORE (gtk_tree_view_get_model ( + GTK_TREE_VIEW (dialog->treeview_servers))); + + server = tpaw_irc_server_new (_("new server"), 6667, FALSE); + tpaw_irc_network_append_server (dialog->network, server); + add_server_to_store (store, server, &iter); + + path = gtk_tree_model_get_path (GTK_TREE_MODEL (store), &iter); + column = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->treeview_servers), + 0); + gtk_tree_view_set_cursor (GTK_TREE_VIEW (dialog->treeview_servers), path, + column, TRUE); + + irc_network_dialog_network_update_buttons (dialog); + + gtk_tree_path_free (path); + g_object_unref (server); +} + +static void +irc_network_dialog_button_remove_clicked_cb (GtkWidget *widget, + TpawIrcNetworkDialog *dialog) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter; + TpawIrcServer *server; + + selection = gtk_tree_view_get_selection ( + GTK_TREE_VIEW (dialog->treeview_servers)); + + if (!gtk_tree_selection_get_selected (selection, &model, &iter)) + return; + + gtk_tree_model_get (model, &iter, COL_SRV_OBJ, &server, -1); + + gtk_list_store_remove (GTK_LIST_STORE (model), &iter); + tpaw_irc_network_remove_server (dialog->network, server); + + irc_network_dialog_network_update_buttons (dialog); + + g_object_unref (server); +} + +static void +irc_network_dialog_button_up_clicked_cb (GtkWidget *widget, + TpawIrcNetworkDialog *dialog) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter, iter_prev; + GtkTreePath *path; + gint *pos; + TpawIrcServer *server; + + selection = gtk_tree_view_get_selection ( + GTK_TREE_VIEW (dialog->treeview_servers)); + + if (!gtk_tree_selection_get_selected (selection, &model, &iter)) + return; + + path = gtk_tree_model_get_path (model, &iter); + + if (!gtk_tree_path_prev (path)) + { + gtk_tree_path_free (path); + return; + } + + gtk_tree_model_get (model, &iter, COL_SRV_OBJ, &server, -1); + + gtk_tree_model_get_iter (model, &iter_prev, path); + gtk_list_store_swap (GTK_LIST_STORE (model), &iter_prev, &iter); + + pos = gtk_tree_path_get_indices (path); + tpaw_irc_network_set_server_position (dialog->network, server, *pos); + + irc_network_dialog_network_update_buttons (dialog); + + g_object_unref (server); + gtk_tree_path_free (path); +} + +static void +irc_network_dialog_button_down_clicked_cb (GtkWidget *widget, + TpawIrcNetworkDialog *dialog) +{ + GtkTreeSelection *selection; + GtkTreeModel *model; + GtkTreeIter iter, iter_prev; + GtkTreePath *path; + TpawIrcServer *server; + gint *pos; + + selection = gtk_tree_view_get_selection ( + GTK_TREE_VIEW (dialog->treeview_servers)); + + if (!gtk_tree_selection_get_selected (selection, &model, &iter)) + return; + + path = gtk_tree_model_get_path (model, &iter); + + gtk_tree_path_next (path); + if (!gtk_tree_model_get_iter (model, &iter_prev, path)) + { + gtk_tree_path_free (path); + return; + } + + gtk_tree_model_get (model, &iter, COL_SRV_OBJ, &server, -1); + + gtk_list_store_swap (GTK_LIST_STORE (model), &iter_prev, &iter); + + pos = gtk_tree_path_get_indices (path); + tpaw_irc_network_set_server_position (dialog->network, server, *pos); + + irc_network_dialog_network_update_buttons (dialog); + + gtk_tree_path_free (path); +} + +static void +irc_network_dialog_selection_changed_cb (GtkTreeSelection *treeselection, + TpawIrcNetworkDialog *dialog) +{ + irc_network_dialog_network_update_buttons (dialog); +} + +static void +irc_network_dialog_combobox_charset_changed_cb (GtkWidget *combobox, + TpawIrcNetworkDialog *dialog) +{ + const gchar *charset; + + charset = totem_subtitle_encoding_get_selected (GTK_COMBO_BOX (combobox)); + g_object_set (dialog->network, "charset", charset, NULL); +} + +static void +change_network (TpawIrcNetworkDialog *dialog, + TpawIrcNetwork *network) +{ + GtkListStore *store; + + if (dialog->network == network) + /* No need to change */ + return; + + if (dialog->network != NULL) + { + g_object_unref (dialog->network); + } + + dialog->network = network; + g_object_ref (network); + + store = GTK_LIST_STORE (gtk_tree_view_get_model ( + GTK_TREE_VIEW (dialog->treeview_servers))); + gtk_list_store_clear (store); + + irc_network_dialog_setup (dialog); +} + +/** + * tpaw_irc_network_dialog_show: + * @network: the #TpawIrcNetwork to configure + * @parent: the parent of this dialog + * + * Display a dialog to configure a given #TpawIrcNetwork. + * This function is a singleton so if a configuration dialog already + * exists we use this one to edit the network. + * + * Returns: The displayed #GtkDialog + */ +GtkWidget * +tpaw_irc_network_dialog_show (TpawIrcNetwork *network, + GtkWidget *parent) +{ + static TpawIrcNetworkDialog *dialog = NULL; + GtkBuilder *gui; + GtkListStore *store; + GtkCellRenderer *renderer; + GtkAdjustment *adjustment; + GtkTreeSelection *selection; + GtkTreeViewColumn *column; + GtkWidget *sw, *toolbar; + GtkStyleContext *context; + + g_return_val_if_fail (network != NULL, NULL); + + if (dialog != NULL) + { + change_network (dialog, network); + gtk_window_present (GTK_WINDOW (dialog->dialog)); + + return dialog->dialog; + } + + dialog = g_slice_new0 (TpawIrcNetworkDialog); + + dialog->network = network; + g_object_ref (dialog->network); + + gui = tpaw_builder_get_resource (TPAW_ACCOUNT_WIDGETS_RESOURCES_PREFIX "/tpaw-account-widget-irc.ui", + "irc_network_dialog", &dialog->dialog, + "button_close", &dialog->button_close, + "entry_network", &dialog->entry_network, + "combobox_charset", &dialog->combobox_charset, + "treeview_servers", &dialog->treeview_servers, + "button_add", &dialog->button_add, + "button_remove", &dialog->button_remove, + "button_up", &dialog->button_up, + "button_down", &dialog->button_down, + "scrolledwindow_network_server", &sw, + "toolbar_network_server", &toolbar, + NULL); + + store = gtk_list_store_new (4, G_TYPE_OBJECT, G_TYPE_STRING, + G_TYPE_UINT, G_TYPE_BOOLEAN); + gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->treeview_servers), + GTK_TREE_MODEL (store)); + g_object_unref (store); + + /* address */ + renderer = gtk_cell_renderer_text_new (); + g_object_set (renderer, "editable", TRUE, NULL); + g_signal_connect (renderer, "edited", + G_CALLBACK (irc_network_dialog_address_edited_cb), dialog); + gtk_tree_view_insert_column_with_attributes ( + GTK_TREE_VIEW (dialog->treeview_servers), + -1, _("Server"), renderer, "text", COL_ADR, + NULL); + column = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->treeview_servers), + 0); + + gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); + gtk_tree_view_column_set_expand (column, TRUE); + + /* port */ + adjustment = (GtkAdjustment *) gtk_adjustment_new (6667, 1, G_MAXUINT16, + 1, 10, 0); + renderer = gtk_cell_renderer_spin_new (); + g_object_set (renderer, + "editable", TRUE, + "adjustment", adjustment, + NULL); + g_signal_connect (renderer, "edited", + G_CALLBACK (irc_network_dialog_port_edited_cb), dialog); + + gtk_tree_view_insert_column_with_attributes ( + GTK_TREE_VIEW (dialog->treeview_servers), + -1, _("Port"), renderer, "text", COL_PORT, + NULL); + + column = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->treeview_servers), + 1); + gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); + gtk_tree_view_column_set_expand (column, TRUE); + + /* SSL */ + renderer = gtk_cell_renderer_toggle_new (); + g_object_set (renderer, "activatable", TRUE, NULL); + g_signal_connect (renderer, "toggled", + G_CALLBACK (irc_network_dialog_ssl_toggled_cb), dialog); + gtk_tree_view_insert_column_with_attributes ( + GTK_TREE_VIEW (dialog->treeview_servers), + -1, _("SSL"), renderer, "active", COL_SSL, + NULL); + + selection = gtk_tree_view_get_selection ( + GTK_TREE_VIEW (dialog->treeview_servers)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); + + column = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->treeview_servers), + 2); + gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); + + gtk_tree_view_column_set_expand (column, TRUE); + /* charset */ + totem_subtitle_encoding_init (GTK_COMBO_BOX (dialog->combobox_charset)); + + irc_network_dialog_setup (dialog); + + tpaw_builder_connect (gui, dialog, + "irc_network_dialog", "destroy", irc_network_dialog_destroy_cb, + "button_close", "clicked", irc_network_dialog_close_clicked_cb, + "entry_network", "focus-out-event", irc_network_dialog_network_focus_cb, + "button_add", "clicked", irc_network_dialog_button_add_clicked_cb, + "button_remove", "clicked", irc_network_dialog_button_remove_clicked_cb, + "button_up", "clicked", irc_network_dialog_button_up_clicked_cb, + "button_down", "clicked", irc_network_dialog_button_down_clicked_cb, + "combobox_charset", "changed", irc_network_dialog_combobox_charset_changed_cb, + NULL); + + g_object_unref (gui); + + g_object_add_weak_pointer (G_OBJECT (dialog->dialog), + (gpointer) &dialog); + + g_signal_connect (selection, "changed", + G_CALLBACK (irc_network_dialog_selection_changed_cb), + dialog); + + gtk_window_set_transient_for (GTK_WINDOW (dialog->dialog), + GTK_WINDOW (parent)); + gtk_window_set_modal (GTK_WINDOW (dialog->dialog), TRUE); + + /* join the add/remove toolbar to the treeview */ + context = gtk_widget_get_style_context (sw); + gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); + + context = gtk_widget_get_style_context (toolbar); + gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); + + irc_network_dialog_network_update_buttons (dialog); + gtk_widget_show_all (dialog->dialog); + + gtk_window_set_resizable (GTK_WINDOW (dialog->dialog), FALSE); + + return dialog->dialog; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-dialog.h b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-dialog.h new file mode 100644 index 0000000..a65754b --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-dialog.h @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#ifndef __TPAW_IRC_NETWORK_DIALOG_H__ +#define __TPAW_IRC_NETWORK_DIALOG_H__ + +#include + +#include "tpaw-irc-network.h" + +G_BEGIN_DECLS + +GtkWidget * tpaw_irc_network_dialog_show (TpawIrcNetwork *network, + GtkWidget *parent); + +G_END_DECLS + +#endif /* __TPAW_IRC_NETWORK_DIALOG_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-manager.c b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-manager.c new file mode 100644 index 0000000..58e2364 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-manager.c @@ -0,0 +1,822 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#include "config.h" +#include "tpaw-irc-network-manager.h" + +#include + +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_IRC +#include "tpaw-debug.h" + +#define IRC_NETWORKS_DTD_RESOURCENAME "/org/gnome/AccountWidgets/tpaw-irc-networks.dtd" +#define IRC_NETWORKS_FILENAME "irc-networks.xml" +#define SAVE_TIMER 4 + +struct _TpawIrcNetworkManagerPriv { + GHashTable *networks; + + gchar *global_file; + gchar *user_file; + guint last_id; + + /* Do we have to save modifications to the user file ? */ + gboolean have_to_save; + /* Are we loading networks from XML files ? */ + gboolean loading; + /* source id of the autosave timer */ + gint save_timer_id; +}; + +/* properties */ +enum +{ + PROP_GLOBAL_FILE = 1, + PROP_USER_FILE, + LAST_PROPERTY +}; + +G_DEFINE_TYPE (TpawIrcNetworkManager, tpaw_irc_network_manager, + G_TYPE_OBJECT); + +static void irc_network_manager_load_servers ( + TpawIrcNetworkManager *manager); +static gboolean irc_network_manager_file_parse ( + TpawIrcNetworkManager *manager, const gchar *filename, + gboolean user_defined); +static gboolean irc_network_manager_file_save ( + TpawIrcNetworkManager *manager); + +static void +tpaw_irc_network_manager_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetworkManager *self = TPAW_IRC_NETWORK_MANAGER (object); + + switch (property_id) + { + case PROP_GLOBAL_FILE: + g_value_set_string (value, self->priv->global_file); + break; + case PROP_USER_FILE: + g_value_set_string (value, self->priv->user_file); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +tpaw_irc_network_manager_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetworkManager *self = TPAW_IRC_NETWORK_MANAGER (object); + + switch (property_id) + { + case PROP_GLOBAL_FILE: + g_free (self->priv->global_file); + self->priv->global_file = g_value_dup_string (value); + break; + case PROP_USER_FILE: + g_free (self->priv->user_file); + self->priv->user_file = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static GObject * +tpaw_irc_network_manager_constructor (GType type, + guint n_props, + GObjectConstructParam *props) +{ + GObject *obj; + TpawIrcNetworkManager *self; + + /* Parent constructor chain */ + obj = G_OBJECT_CLASS (tpaw_irc_network_manager_parent_class)-> + constructor (type, n_props, props); + + self = TPAW_IRC_NETWORK_MANAGER (obj); + irc_network_manager_load_servers (self); + + return obj; +} + +static void +tpaw_irc_network_manager_finalize (GObject *object) +{ + TpawIrcNetworkManager *self = TPAW_IRC_NETWORK_MANAGER (object); + + if (self->priv->save_timer_id > 0) + { + g_source_remove (self->priv->save_timer_id); + } + + if (self->priv->have_to_save) + { + irc_network_manager_file_save (self); + } + + g_free (self->priv->global_file); + g_free (self->priv->user_file); + + g_hash_table_unref (self->priv->networks); + + G_OBJECT_CLASS (tpaw_irc_network_manager_parent_class)->finalize (object); +} + +static void +tpaw_irc_network_manager_init (TpawIrcNetworkManager *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + TPAW_TYPE_IRC_NETWORK_MANAGER, TpawIrcNetworkManagerPriv); + + self->priv->networks = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) g_free, (GDestroyNotify) g_object_unref); + + self->priv->last_id = 0; + + self->priv->have_to_save = FALSE; + self->priv->loading = FALSE; + self->priv->save_timer_id = 0; +} + +static void +tpaw_irc_network_manager_class_init (TpawIrcNetworkManagerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GParamSpec *param_spec; + + object_class->constructor = tpaw_irc_network_manager_constructor; + object_class->get_property = tpaw_irc_network_manager_get_property; + object_class->set_property = tpaw_irc_network_manager_set_property; + + g_type_class_add_private (object_class, sizeof (TpawIrcNetworkManagerPriv)); + + object_class->finalize = tpaw_irc_network_manager_finalize; + + param_spec = g_param_spec_string ( + "global-file", + "path of the global networks file", + "The path of the system-wide filename from which we have to load" + " the networks list", + NULL, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_GLOBAL_FILE, param_spec); + + param_spec = g_param_spec_string ( + "user-file", + "path of the user networks file", + "The path of user's filename from which we have to load" + " the networks list and to which we'll save his modifications", + NULL, + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_USER_FILE, param_spec); +} + +/** + * tpaw_irc_network_manager_new: + * @global_file: the path of the global networks file, or %NULL + * @user_file: the path of the user networks file, or %NULL + * + * Creates a new #TpawIrcNetworkManager + * + * Returns: a new #TpawIrcNetworkManager + */ +TpawIrcNetworkManager * +tpaw_irc_network_manager_new (const gchar *global_file, + const gchar *user_file) +{ + TpawIrcNetworkManager *manager; + + manager = g_object_new (TPAW_TYPE_IRC_NETWORK_MANAGER, + "global-file", global_file, + "user-file", user_file, + NULL); + + return manager; +} + +static gboolean +save_timeout (TpawIrcNetworkManager *self) +{ + self->priv->save_timer_id = 0; + irc_network_manager_file_save (self); + + return FALSE; +} + +static void +reset_save_timeout (TpawIrcNetworkManager *self) +{ + if (self->priv->save_timer_id > 0) + { + g_source_remove (self->priv->save_timer_id); + } + + self->priv->save_timer_id = g_timeout_add_seconds (SAVE_TIMER, + (GSourceFunc) save_timeout, self); +} + +static void +network_modified (TpawIrcNetwork *network, + TpawIrcNetworkManager *self) +{ + network->user_defined = TRUE; + + if (!self->priv->loading) + { + self->priv->have_to_save = TRUE; + reset_save_timeout (self); + } +} + +static void +add_network (TpawIrcNetworkManager *self, + TpawIrcNetwork *network, + const gchar *id) +{ + g_hash_table_insert (self->priv->networks, g_strdup (id), + g_object_ref (network)); + + g_signal_connect (network, "modified", G_CALLBACK (network_modified), self); +} + +/** + * tpaw_irc_network_manager_add: + * @manager: an #TpawIrcNetworkManager + * @network: the #TpawIrcNetwork to add + * + * Add an #TpawIrcNetwork to the given #TpawIrcNetworkManager. + * + */ +void +tpaw_irc_network_manager_add (TpawIrcNetworkManager *self, + TpawIrcNetwork *network) +{ + gchar *id = NULL; + + g_return_if_fail (TPAW_IS_IRC_NETWORK_MANAGER (self)); + g_return_if_fail (TPAW_IS_IRC_NETWORK (network)); + + /* generate an id for this network */ + do + { + g_free (id); + id = g_strdup_printf ("id%u", ++self->priv->last_id); + } while (g_hash_table_lookup (self->priv->networks, id) != NULL && + self->priv->last_id < G_MAXUINT); + + if (self->priv->last_id == G_MAXUINT) + { + DEBUG ("Can't add network: too many networks using a similar ID"); + return; + } + + DEBUG ("add server with \"%s\" as ID", id); + + network->user_defined = TRUE; + add_network (self, network, id); + + self->priv->have_to_save = TRUE; + reset_save_timeout (self); + + g_free (id); +} + +/** + * tpaw_irc_network_manager_remove: + * @manager: an #TpawIrcNetworkManager + * @network: the #TpawIrcNetwork to remove + * + * Remove an #TpawIrcNetwork from the given #TpawIrcNetworkManager. + * + */ +void +tpaw_irc_network_manager_remove (TpawIrcNetworkManager *self, + TpawIrcNetwork *network) +{ + g_return_if_fail (TPAW_IS_IRC_NETWORK_MANAGER (self)); + g_return_if_fail (TPAW_IS_IRC_NETWORK (network)); + + network->user_defined = TRUE; + network->dropped = TRUE; + + self->priv->have_to_save = TRUE; + reset_save_timeout (self); +} + +static void +append_active_networks_to_list (const gchar *id, + TpawIrcNetwork *network, + GSList **list) +{ + if (network->dropped) + return; + + *list = g_slist_prepend (*list, g_object_ref (network)); +} + +static void +append_dropped_networks_to_list (const gchar *id, + TpawIrcNetwork *network, + GSList **list) +{ + if (!network->dropped) + return; + + *list = g_slist_prepend (*list, g_object_ref (network)); +} + +static GSList * +get_network_list (TpawIrcNetworkManager *self, + gboolean get_active) +{ + GSList *irc_networks = NULL; + + g_return_val_if_fail (TPAW_IS_IRC_NETWORK_MANAGER (self), NULL); + + if (get_active) + { + g_hash_table_foreach (self->priv->networks, + (GHFunc) append_active_networks_to_list, &irc_networks); + } + else + { + g_hash_table_foreach (self->priv->networks, + (GHFunc) append_dropped_networks_to_list, &irc_networks); + } + + return irc_networks; +} + +/** + * tpaw_irc_network_manager_get_networks: + * @manager: an #TpawIrcNetworkManager + * + * Get the list of #TpawIrcNetwork associated with the given + * manager. + * + * Returns: a new #GSList of refed #TpawIrcNetwork + */ +GSList * +tpaw_irc_network_manager_get_networks (TpawIrcNetworkManager *self) +{ + return get_network_list (self, TRUE); +} + +/** + * tpaw_irc_network_manager_get_dropped_networks: + * @manager: an #TpawIrcNetworkManager + * + * Get the list of dropped #TpawIrcNetworks associated with the given + * manager. + * + * Returns: a new #GSList of refed dropped #TpawIrcNetworks + */ +GSList * +tpaw_irc_network_manager_get_dropped_networks (TpawIrcNetworkManager *self) +{ + return get_network_list (self, FALSE); +} + +/* + * API to save/load and parse the irc_networks file. + */ + +static void +load_global_file (TpawIrcNetworkManager *self) +{ + if (self->priv->global_file == NULL) + return; + + if (!g_file_test (self->priv->global_file, G_FILE_TEST_EXISTS)) + { + DEBUG ("Global networks file %s doesn't exist", + self->priv->global_file); + return; + } + + irc_network_manager_file_parse (self, self->priv->global_file, FALSE); +} + +static void +load_user_file (TpawIrcNetworkManager *self) +{ + if (self->priv->user_file == NULL) + return; + + if (!g_file_test (self->priv->user_file, G_FILE_TEST_EXISTS)) + { + DEBUG ("User networks file %s doesn't exist", self->priv->global_file); + return; + } + + irc_network_manager_file_parse (self, self->priv->user_file, TRUE); +} + +static void +irc_network_manager_load_servers (TpawIrcNetworkManager *self) +{ + self->priv->loading = TRUE; + + load_global_file (self); + load_user_file (self); + + self->priv->loading = FALSE; + self->priv->have_to_save = FALSE; +} + +static void +irc_network_manager_parse_irc_server (TpawIrcNetwork *network, + xmlNodePtr node) +{ + xmlNodePtr server_node; + + for (server_node = node->children; server_node; + server_node = server_node->next) + { + gchar *address = NULL, *port = NULL, *ssl = NULL; + + if (g_strcmp0 ((const gchar *) server_node->name, "server") != 0) + continue; + + address = (gchar *) xmlGetProp (server_node, (const xmlChar *) "address"); + port = (gchar *) xmlGetProp (server_node, (const xmlChar *) "port"); + ssl = (gchar *) xmlGetProp (server_node, (const xmlChar *) "ssl"); + + if (address != NULL) + { + gint port_nb = 0; + gboolean have_ssl = FALSE; + TpawIrcServer *server; + + if (port != NULL) + port_nb = strtol (port, NULL, 10); + + if (port_nb <= 0 || port_nb > G_MAXUINT16) + port_nb = 6667; + + if (ssl == NULL || g_strcmp0 (ssl, "TRUE") == 0) + have_ssl = TRUE; + + DEBUG ("parsed server %s port %d ssl %d", address, port_nb, have_ssl); + + server = tpaw_irc_server_new (address, port_nb, have_ssl); + tpaw_irc_network_append_server (network, server); + } + + if (address) + xmlFree (address); + if (port) + xmlFree (port); + if (ssl) + xmlFree (ssl); + } +} + +static void +irc_network_manager_parse_irc_network (TpawIrcNetworkManager *self, + xmlNodePtr node, + gboolean user_defined) +{ + TpawIrcNetwork *network; + xmlNodePtr child; + gchar *str; + gchar *id, *name; + + id = (gchar *) xmlGetProp (node, (const xmlChar *) "id"); + if (xmlHasProp (node, (const xmlChar *) "dropped")) + { + if (!user_defined) + { + DEBUG ("the 'dropped' attribute shouldn't be used in the global file"); + } + + network = g_hash_table_lookup (self->priv->networks, id); + if (network != NULL) + { + network->dropped = TRUE; + network->user_defined = TRUE; + } + xmlFree (id); + return; + } + + if (!xmlHasProp (node, (const xmlChar *) "name")) + return; + + name = (gchar *) xmlGetProp (node, (const xmlChar *) "name"); + network = tpaw_irc_network_new (name); + + if (xmlHasProp (node, (const xmlChar *) "network_charset")) + { + gchar *charset; + charset = (gchar *) xmlGetProp (node, (const xmlChar *) "network_charset"); + g_object_set (network, "charset", charset, NULL); + xmlFree (charset); + } + + add_network (self, network, id); + DEBUG ("add network %s (id %s)", name, id); + + for (child = node->children; child; child = child->next) + { + gchar *tag; + + tag = (gchar *) child->name; + str = (gchar *) xmlNodeGetContent (child); + + if (!str) + continue; + + if (g_strcmp0 (tag, "servers") == 0) + { + irc_network_manager_parse_irc_server (network, child); + } + + xmlFree (str); + } + + network->user_defined = user_defined; + g_object_unref (network); + xmlFree (name); + xmlFree (id); +} + +static gboolean +irc_network_manager_file_parse (TpawIrcNetworkManager *self, + const gchar *filename, + gboolean user_defined) +{ + xmlParserCtxtPtr ctxt; + xmlDocPtr doc; + xmlNodePtr networks; + xmlNodePtr node; + + DEBUG ("Attempting to parse file:'%s'...", filename); + + ctxt = xmlNewParserCtxt (); + + /* Parse and validate the file. */ + doc = xmlCtxtReadFile (ctxt, filename, NULL, 0); + if (!doc) + { + g_warning ("Failed to parse file:'%s'", filename); + xmlFreeParserCtxt (ctxt); + return FALSE; + } + + if (!tpaw_xml_validate_from_resource (doc, IRC_NETWORKS_DTD_RESOURCENAME)) { + g_warning ("Failed to validate file:'%s'", filename); + xmlFreeDoc (doc); + xmlFreeParserCtxt (ctxt); + return FALSE; + } + + /* The root node, networks. */ + networks = xmlDocGetRootElement (doc); + + for (node = networks->children; node; node = node->next) + { + irc_network_manager_parse_irc_network (self, node, user_defined); + } + + xmlFreeDoc (doc); + xmlFreeParserCtxt (ctxt); + + return TRUE; +} + +static void +write_network_to_xml (const gchar *id, + TpawIrcNetwork *network, + xmlNodePtr root) +{ + xmlNodePtr network_node, servers_node; + GSList *servers, *l; + gchar *name, *charset; + + if (!network->user_defined) + /* no need to write this network to the XML */ + return; + + network_node = xmlNewChild (root, NULL, (const xmlChar *) "network", NULL); + xmlNewProp (network_node, (const xmlChar *) "id", (const xmlChar *) id); + + if (network->dropped) + { + xmlNewProp (network_node, (const xmlChar *) "dropped", + (const xmlChar *) "1"); + return; + } + + g_object_get (network, + "name", &name, + "charset", &charset, + NULL); + xmlNewProp (network_node, (const xmlChar *) "name", (const xmlChar *) name); + xmlNewProp (network_node, (const xmlChar *) "network_charset", + (const xmlChar *) charset); + g_free (name); + g_free (charset); + + servers = tpaw_irc_network_get_servers (network); + + servers_node = xmlNewChild (network_node, NULL, (const xmlChar *) "servers", + NULL); + for (l = servers; l != NULL; l = g_slist_next (l)) + { + TpawIrcServer *server; + xmlNodePtr server_node; + gchar *address, *tmp; + guint port; + gboolean ssl; + + server = l->data; + + server_node = xmlNewChild (servers_node, NULL, (const xmlChar *) "server", + NULL); + + g_object_get (server, + "address", &address, + "port", &port, + "ssl", &ssl, + NULL); + + xmlNewProp (server_node, (const xmlChar *) "address", + (const xmlChar *) address); + + tmp = g_strdup_printf ("%u", port); + xmlNewProp (server_node, (const xmlChar *) "port", + (const xmlChar *) tmp); + g_free (tmp); + + xmlNewProp (server_node, (const xmlChar *) "ssl", + ssl ? (const xmlChar *) "TRUE": (const xmlChar *) "FALSE"); + + g_free (address); + } + + /* free the list */ + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); +} + +static gboolean +irc_network_manager_file_save (TpawIrcNetworkManager *self) +{ + xmlDocPtr doc; + xmlNodePtr root; + + if (self->priv->user_file == NULL) + { + DEBUG ("can't save: no user file defined"); + return FALSE; + } + + DEBUG ("Saving IRC networks"); + + doc = xmlNewDoc ((const xmlChar *) "1.0"); + root = xmlNewNode (NULL, (const xmlChar *) "networks"); + xmlDocSetRootElement (doc, root); + + g_hash_table_foreach (self->priv->networks, + (GHFunc) write_network_to_xml, root); + + /* Make sure the XML is indented properly */ + xmlIndentTreeOutput = 1; + + xmlSaveFormatFileEnc (self->priv->user_file, doc, "utf-8", 1); + xmlFreeDoc (doc); + + xmlMemoryDump (); + + self->priv->have_to_save = FALSE; + + return TRUE; +} + +static gboolean +find_network_by_address (const gchar *id, + TpawIrcNetwork *network, + const gchar *address) +{ + GSList *servers, *l; + gboolean found = FALSE; + + if (network->dropped) + return FALSE; + + servers = tpaw_irc_network_get_servers (network); + + for (l = servers; l != NULL && !found; l = g_slist_next (l)) + { + TpawIrcServer *server = l->data; + gchar *_address; + + g_object_get (server, "address", &_address, NULL); + found = (_address != NULL && g_strcmp0 (address, _address) == 0); + + g_free (_address); + } + + g_slist_foreach (servers, (GFunc) g_object_unref, NULL); + g_slist_free (servers); + + return found; +} + +/** + * tpaw_irc_network_manager_find_network_by_address: + * @manager: an #TpawIrcNetworkManager + * @address: the server address to look for + * + * Find the #TpawIrcNetwork which owns an #TpawIrcServer + * that has the given address. + * + * Returns: the found #TpawIrcNetwork, or %NULL if not found. + */ +TpawIrcNetwork * +tpaw_irc_network_manager_find_network_by_address ( + TpawIrcNetworkManager *self, + const gchar *address) +{ + TpawIrcNetwork *network; + + g_return_val_if_fail (address != NULL, NULL); + + network = g_hash_table_find (self->priv->networks, + (GHRFunc) find_network_by_address, (gchar *) address); + + return network; +} + +TpawIrcNetworkManager * +tpaw_irc_network_manager_dup_default (void) +{ + static TpawIrcNetworkManager *default_mgr = NULL; + gchar *dir, *user_file_with_path, *global_file_with_path; + + if (default_mgr != NULL) + return g_object_ref (default_mgr); + + dir = g_build_filename (g_get_user_config_dir (), PACKAGE_NAME, NULL); + g_mkdir_with_parents (dir, S_IRUSR | S_IWUSR | S_IXUSR); + user_file_with_path = g_build_filename (dir, IRC_NETWORKS_FILENAME, NULL); + g_free (dir); + + global_file_with_path = g_build_filename (g_getenv ("TPAW_SRCDIR"), + "tp-account-widgets", IRC_NETWORKS_FILENAME, NULL); + if (!g_file_test (global_file_with_path, G_FILE_TEST_EXISTS)) + { + g_free (global_file_with_path); + global_file_with_path = g_build_filename (DATADIR, "empathy", + IRC_NETWORKS_FILENAME, NULL); + } + + default_mgr = tpaw_irc_network_manager_new ( + global_file_with_path, user_file_with_path); + + g_object_add_weak_pointer (G_OBJECT (default_mgr), (gpointer *) &default_mgr); + + g_free (global_file_with_path); + g_free (user_file_with_path); + return default_mgr; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-manager.h b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-manager.h new file mode 100644 index 0000000..b44209a --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network-manager.h @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#ifndef __TPAW_IRC_NETWORK_MANAGER_H__ +#define __TPAW_IRC_NETWORK_MANAGER_H__ + +#include + +#include "tpaw-irc-network.h" + +G_BEGIN_DECLS + +typedef struct _TpawIrcNetworkManager TpawIrcNetworkManager; +typedef struct _TpawIrcNetworkManagerPriv TpawIrcNetworkManagerPriv; +typedef struct _TpawIrcNetworkManagerClass TpawIrcNetworkManagerClass; + +struct _TpawIrcNetworkManager +{ + GObject parent; + + /**/ + TpawIrcNetworkManagerPriv *priv; +}; + +struct _TpawIrcNetworkManagerClass +{ + GObjectClass parent_class; +}; + +GType tpaw_irc_network_manager_get_type (void); + +/* TYPE MACROS */ +#define TPAW_TYPE_IRC_NETWORK_MANAGER \ + (tpaw_irc_network_manager_get_type ()) +#define TPAW_IRC_NETWORK_MANAGER(o) \ + (G_TYPE_CHECK_INSTANCE_CAST ((o), TPAW_TYPE_IRC_NETWORK_MANAGER, \ + TpawIrcNetworkManager)) +#define TPAW_IRC_NETWORK_MANAGER_CLASS(k) \ + (G_TYPE_CHECK_CLASS_CAST ((k), TPAW_TYPE_IRC_NETWORK_MANAGER, \ + TpawIrcNetworkManagerClass)) +#define TPAW_IS_IRC_NETWORK_MANAGER(o) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((o), TPAW_TYPE_IRC_NETWORK_MANAGER)) +#define TPAW_IS_IRC_NETWORK_MANAGER_CLASS(k) \ + (G_TYPE_CHECK_CLASS_TYPE ((k), TPAW_TYPE_IRC_NETWORK_MANAGER)) +#define TPAW_IRC_NETWORK_MANAGER_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_IRC_NETWORK_MANAGER, \ + TpawIrcNetworkManagerClass)) + +TpawIrcNetworkManager * tpaw_irc_network_manager_new ( + const gchar *global_file, const gchar *user_file); + +TpawIrcNetworkManager * tpaw_irc_network_manager_dup_default (void); + +void tpaw_irc_network_manager_add (TpawIrcNetworkManager *manager, + TpawIrcNetwork *network); + +void tpaw_irc_network_manager_remove (TpawIrcNetworkManager *manager, + TpawIrcNetwork *network); + +GSList * tpaw_irc_network_manager_get_networks ( + TpawIrcNetworkManager *manager); + +GSList * tpaw_irc_network_manager_get_dropped_networks ( + TpawIrcNetworkManager *manager); + +TpawIrcNetwork * tpaw_irc_network_manager_find_network_by_address ( + TpawIrcNetworkManager *manager, const gchar *address); + +G_END_DECLS + +#endif /* __TPAW_IRC_NETWORK_MANAGER_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network.c b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network.c new file mode 100644 index 0000000..f7355f3 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network.c @@ -0,0 +1,364 @@ +/* + * Copyright (C) 2007 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#include "config.h" +#include "tpaw-irc-network.h" + +#include "tpaw-utils.h" + +struct _TpawIrcNetworkPriv +{ + gchar *name; + gchar *charset; + GSList *servers; +}; + +/* properties */ +enum +{ + PROP_NAME = 1, + PROP_CHARSET, + LAST_PROPERTY +}; + +/* signals */ +enum +{ + MODIFIED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = {0}; + +G_DEFINE_TYPE (TpawIrcNetwork, tpaw_irc_network, G_TYPE_OBJECT); + +static void +server_modified_cb (TpawIrcServer *server, + TpawIrcNetwork *self) +{ + g_signal_emit (self, signals[MODIFIED], 0); +} + +static void +tpaw_irc_network_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetwork *self = TPAW_IRC_NETWORK (object); + + switch (property_id) + { + case PROP_NAME: + g_value_set_string (value, self->priv->name); + break; + case PROP_CHARSET: + g_value_set_string (value, self->priv->charset); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +tpaw_irc_network_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawIrcNetwork *self = TPAW_IRC_NETWORK (object); + + switch (property_id) + { + case PROP_NAME: + if (tp_strdiff (self->priv->name, g_value_get_string (value))) + { + g_free (self->priv->name); + self->priv->name = g_value_dup_string (value); + g_signal_emit (object, signals[MODIFIED], 0); + } + break; + case PROP_CHARSET: + if (tp_strdiff (self->priv->charset, g_value_get_string (value))) + { + g_free (self->priv->charset); + self->priv->charset = g_value_dup_string (value); + g_signal_emit (object, signals[MODIFIED], 0); + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +tpaw_irc_network_dispose (GObject *object) +{ + TpawIrcNetwork *self = TPAW_IRC_NETWORK (object); + GSList *l; + + for (l = self->priv->servers; l != NULL; l = g_slist_next (l)) + { + g_signal_handlers_disconnect_by_func (l->data, + G_CALLBACK (server_modified_cb), self); + g_object_unref (l->data); + } + + G_OBJECT_CLASS (tpaw_irc_network_parent_class)->dispose (object); +} + +static void +tpaw_irc_network_finalize (GObject *object) +{ + TpawIrcNetwork *self = TPAW_IRC_NETWORK (object); + + g_slist_free (self->priv->servers); + g_free (self->priv->name); + g_free (self->priv->charset); + + G_OBJECT_CLASS (tpaw_irc_network_parent_class)->finalize (object); +} + +static void +tpaw_irc_network_init (TpawIrcNetwork *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, TPAW_TYPE_IRC_NETWORK, + TpawIrcNetworkPriv); + + self->priv->servers = NULL; + + self->user_defined = TRUE; + self->dropped = FALSE; +} + +static void +tpaw_irc_network_class_init (TpawIrcNetworkClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GParamSpec *param_spec; + + object_class->get_property = tpaw_irc_network_get_property; + object_class->set_property = tpaw_irc_network_set_property; + + g_type_class_add_private (object_class, sizeof (TpawIrcNetworkPriv)); + + object_class->dispose = tpaw_irc_network_dispose; + object_class->finalize = tpaw_irc_network_finalize; + + param_spec = g_param_spec_string ( + "name", + "Network name", + "The displayed name of this network", + NULL, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_NAME, param_spec); + + param_spec = g_param_spec_string ( + "charset", + "Charset", + "The charset to use on this network", + "UTF-8", + G_PARAM_CONSTRUCT | + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_CHARSET, param_spec); + + /** + * TpawIrcNetwork::modified: + * @network: the object that received the signal + * + * Emitted when either a property or a server of the network is modified or + * when a network is activated. + * + */ + signals[MODIFIED] = g_signal_new ( + "modified", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, + NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 0); +} + +/** + * tpaw_irc_network_activate: + * @self: the name of the network + * + * Activates a #TpawIrcNetwork. + * + */ +void +tpaw_irc_network_activate (TpawIrcNetwork *self) +{ + g_return_if_fail (TPAW_IS_IRC_NETWORK (self)); + g_return_if_fail (self->dropped); + + self->dropped = FALSE; + + g_signal_emit (self, signals[MODIFIED], 0); +} + +/** + * tpaw_irc_network_new: + * @name: the name of the network + * + * Creates a new #TpawIrcNetwork. + * + * Returns: a new #TpawIrcNetwork + */ +TpawIrcNetwork * +tpaw_irc_network_new (const gchar *name) +{ + return g_object_new (TPAW_TYPE_IRC_NETWORK, + "name", name, + NULL); +} + +/** + * tpaw_irc_network_get_servers: + * @network: an #TpawIrcNetwork + * + * Get the list of #TpawIrcServer that belongs to this network. + * These servers are sorted according their priority. + * So the first one will be the first used when trying to connect to + * the network. + * + * Returns: a new #GSList of refed #TpawIrcServer. + */ +GSList * +tpaw_irc_network_get_servers (TpawIrcNetwork *self) +{ + GSList *servers = NULL, *l; + + g_return_val_if_fail (TPAW_IS_IRC_NETWORK (self), NULL); + + for (l = self->priv->servers; l != NULL; l = g_slist_next (l)) + { + servers = g_slist_prepend (servers, g_object_ref (l->data)); + } + + return g_slist_reverse (servers); +} + +/** + * tpaw_irc_network_append_server: + * @network: an #TpawIrcNetwork + * @server: the #TpawIrcServer to add + * + * Add an #TpawIrcServer to the given #TpawIrcNetwork. The server + * is added at the last position in network's servers list. + * + */ +void +tpaw_irc_network_append_server (TpawIrcNetwork *self, + TpawIrcServer *server) +{ + g_return_if_fail (TPAW_IS_IRC_NETWORK (self)); + g_return_if_fail (server != NULL && TPAW_IS_IRC_SERVER (server)); + g_return_if_fail (g_slist_find (self->priv->servers, server) == NULL); + + self->priv->servers = g_slist_append (self->priv->servers, g_object_ref (server)); + + g_signal_connect (server, "modified", G_CALLBACK (server_modified_cb), self); + + g_signal_emit (self, signals[MODIFIED], 0); +} + +/** + * tpaw_irc_network_remove_server: + * @network: an #TpawIrcNetwork + * @server: the #TpawIrcServer to remove + * + * Remove an #TpawIrcServer from the servers list of the + * given #TpawIrcNetwork. + * + */ +void +tpaw_irc_network_remove_server (TpawIrcNetwork *self, + TpawIrcServer *server) +{ + GSList *l; + + g_return_if_fail (TPAW_IS_IRC_NETWORK (self)); + g_return_if_fail (server != NULL && TPAW_IS_IRC_SERVER (server)); + + l = g_slist_find (self->priv->servers, server); + if (l == NULL) + return; + + g_object_unref (l->data); + self->priv->servers = g_slist_delete_link (self->priv->servers, l); + g_signal_handlers_disconnect_by_func (server, G_CALLBACK (server_modified_cb), + self); + + g_signal_emit (self, signals[MODIFIED], 0); +} + +/** + * tpaw_irc_network_set_server_position: + * @network: an #TpawIrcNetwork + * @server: the #TpawIrcServer to move + * @pos: the position to move the server. If this is negative, or is larger than + * the number of servers in the list, the server is moved to the end of the + * list. + * + * Move an #TpawIrcServer in the servers list of the given + * #TpawIrcNetwork. + * + */ +void +tpaw_irc_network_set_server_position (TpawIrcNetwork *self, + TpawIrcServer *server, + gint pos) +{ + GSList *l; + + g_return_if_fail (TPAW_IS_IRC_NETWORK (self)); + g_return_if_fail (server != NULL && TPAW_IS_IRC_SERVER (server)); + + l = g_slist_find (self->priv->servers, server); + if (l == NULL) + return; + + self->priv->servers = g_slist_delete_link (self->priv->servers, l); + self->priv->servers = g_slist_insert (self->priv->servers, server, pos); + + g_signal_emit (self, signals[MODIFIED], 0); +} + +const gchar * +tpaw_irc_network_get_name (TpawIrcNetwork *self) +{ + return self->priv->name; +} + +const gchar * +tpaw_irc_network_get_charset (TpawIrcNetwork *self) +{ + return self->priv->charset; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network.h b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network.h new file mode 100644 index 0000000..d305319 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-network.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#ifndef __TPAW_IRC_NETWORK_H__ +#define __TPAW_IRC_NETWORK_H__ + +#include + +#include "tpaw-irc-server.h" + +G_BEGIN_DECLS + +typedef struct _TpawIrcNetwork TpawIrcNetwork; +typedef struct _TpawIrcNetworkPriv TpawIrcNetworkPriv; +typedef struct _TpawIrcNetworkClass TpawIrcNetworkClass; + +struct _TpawIrcNetwork +{ + GObject parent; + TpawIrcNetworkPriv *priv; + + gboolean user_defined; + gboolean dropped; +}; + +struct _TpawIrcNetworkClass +{ + GObjectClass parent_class; +}; + +GType tpaw_irc_network_get_type (void); + +/* TYPE MACROS */ +#define TPAW_TYPE_IRC_NETWORK (tpaw_irc_network_get_type ()) +#define TPAW_IRC_NETWORK(o) \ + (G_TYPE_CHECK_INSTANCE_CAST ((o), TPAW_TYPE_IRC_NETWORK, \ + TpawIrcNetwork)) +#define TPAW_IRC_NETWORK_CLASS(k) \ + (G_TYPE_CHECK_CLASS_CAST ((k), TPAW_TYPE_IRC_NETWORK,\ + TpawIrcNetworkClass)) +#define TPAW_IS_IRC_NETWORK(o) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((o), TPAW_TYPE_IRC_NETWORK)) +#define TPAW_IS_IRC_NETWORK_CLASS(k) \ + (G_TYPE_CHECK_CLASS_TYPE ((k), TPAW_TYPE_IRC_NETWORK)) +#define TPAW_IRC_NETWORK_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_IRC_NETWORK, \ + TpawIrcNetworkClass)) + +void tpaw_irc_network_activate (TpawIrcNetwork *self); + +TpawIrcNetwork * tpaw_irc_network_new (const gchar *name); + +GSList * tpaw_irc_network_get_servers (TpawIrcNetwork *network); + +void tpaw_irc_network_append_server (TpawIrcNetwork *network, + TpawIrcServer *server); + +void tpaw_irc_network_remove_server (TpawIrcNetwork *network, + TpawIrcServer *server); + +void tpaw_irc_network_set_server_position (TpawIrcNetwork *network, + TpawIrcServer *server, gint pos); + +const gchar * tpaw_irc_network_get_name (TpawIrcNetwork *network); + +const gchar * tpaw_irc_network_get_charset (TpawIrcNetwork *network); + +G_END_DECLS + +#endif /* __TPAW_IRC_NETWORK_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-networks.dtd b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-networks.dtd new file mode 100644 index 0000000..599081f --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-networks.dtd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-server.c b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-server.c new file mode 100644 index 0000000..1bc3b88 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-server.c @@ -0,0 +1,216 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#include "config.h" +#include "tpaw-irc-server.h" + +#include "tpaw-utils.h" + +struct _TpawIrcServerPriv +{ + gchar *address; + guint port; + gboolean ssl; +}; + +/* properties */ +enum +{ + PROP_ADDRESS = 1, + PROP_PORT, + PROP_SSL, + LAST_PROPERTY +}; + +/* signals */ +enum +{ + MODIFIED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = {0}; + +G_DEFINE_TYPE (TpawIrcServer, tpaw_irc_server, G_TYPE_OBJECT); + +static void +tpaw_irc_server_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + TpawIrcServer *self = TPAW_IRC_SERVER (object); + + switch (property_id) + { + case PROP_ADDRESS: + g_value_set_string (value, self->priv->address); + break; + case PROP_PORT: + g_value_set_uint (value, self->priv->port); + break; + case PROP_SSL: + g_value_set_boolean (value, self->priv->ssl); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +tpaw_irc_server_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawIrcServer *self = TPAW_IRC_SERVER (object); + + switch (property_id) + { + case PROP_ADDRESS: + if (tp_strdiff (self->priv->address, g_value_get_string (value))) + { + g_free (self->priv->address); + self->priv->address = g_value_dup_string (value); + g_signal_emit (object, signals[MODIFIED], 0); + } + break; + case PROP_PORT: + if (self->priv->port != g_value_get_uint (value)) + { + self->priv->port = g_value_get_uint (value); + g_signal_emit (object, signals[MODIFIED], 0); + } + break; + case PROP_SSL: + if (self->priv->ssl != g_value_get_boolean (value)) + { + self->priv->ssl = g_value_get_boolean (value); + g_signal_emit (object, signals[MODIFIED], 0); + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +tpaw_irc_server_finalize (GObject *object) +{ + TpawIrcServer *self = TPAW_IRC_SERVER (object); + + g_free (self->priv->address); + + G_OBJECT_CLASS (tpaw_irc_server_parent_class)->finalize (object); +} + +static void +tpaw_irc_server_init (TpawIrcServer *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, TPAW_TYPE_IRC_SERVER, + TpawIrcServerPriv); +} + +static void +tpaw_irc_server_class_init (TpawIrcServerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GParamSpec *param_spec; + + object_class->get_property = tpaw_irc_server_get_property; + object_class->set_property = tpaw_irc_server_set_property; + + g_type_class_add_private (object_class, sizeof (TpawIrcServerPriv)); + + object_class->finalize = tpaw_irc_server_finalize; + + param_spec = g_param_spec_string ( + "address", + "Server address", + "The address of this server", + NULL, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_ADDRESS, param_spec); + + param_spec = g_param_spec_uint ( + "port", + "Server port", + "The port to use to connect on this server", + 1, G_MAXUINT16, 6667, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_PORT, param_spec); + + param_spec = g_param_spec_boolean ( + "ssl", + "SSL", + "If this server needs SSL connection", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_SSL, param_spec); + + /** + * TpawIrcServer::modified: + * @server: the object that received the signal + * + * Emitted when a property of the server is modified. + * + */ + signals[MODIFIED] = g_signal_new ( + "modified", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, + NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 0); +} + +/** + * tpaw_irc_server_new: + * @address: the address + * @port: the port + * @ssl: %TRUE if the server needs a SSL connection + * + * Creates a new #TpawIrcServer + * + * Returns: a new #TpawIrcServer + */ +TpawIrcServer * +tpaw_irc_server_new (const gchar *address, + guint port, + gboolean ssl) +{ + return g_object_new (TPAW_TYPE_IRC_SERVER, + "address", address, + "port", port, + "ssl", ssl, + NULL); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-irc-server.h b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-server.h new file mode 100644 index 0000000..046ae47 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-irc-server.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2007-2008 Guillaume Desmottes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Guillaume Desmottes + */ + +#ifndef __TPAW_IRC_SERVER_H__ +#define __TPAW_IRC_SERVER_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _TpawIrcServer TpawIrcServer; +typedef struct _TpawIrcServerPriv TpawIrcServerPriv; +typedef struct _TpawIrcServerClass TpawIrcServerClass; + +struct _TpawIrcServer +{ + GObject parent; + TpawIrcServerPriv *priv; +}; + +struct _TpawIrcServerClass +{ + GObjectClass parent_class; +}; + +GType tpaw_irc_server_get_type (void); + +/* TYPE MACROS */ +#define TPAW_TYPE_IRC_SERVER (tpaw_irc_server_get_type ()) +#define TPAW_IRC_SERVER(o) \ + (G_TYPE_CHECK_INSTANCE_CAST ((o), TPAW_TYPE_IRC_SERVER, TpawIrcServer)) +#define TPAW_IRC_SERVER_CLASS(k) \ + (G_TYPE_CHECK_CLASS_CAST ((k), TPAW_TYPE_IRC_SERVER, \ + TpawIrcServerClass)) +#define TPAW_IS_IRC_SERVER(o) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((o), TPAW_TYPE_IRC_SERVER)) +#define TPAW_IS_IRC_SERVER_CLASS(k) \ + (G_TYPE_CHECK_CLASS_TYPE ((k), TPAW_TYPE_IRC_SERVER)) +#define TPAW_IRC_SERVER_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_IRC_SERVER,\ + TpawIrcServerClass)) + +TpawIrcServer * tpaw_irc_server_new (const gchar *address, guint port, + gboolean ssl); + +G_END_DECLS + +#endif /* __TPAW_IRC_SERVER_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-keyring.c b/telepathy-account-widgets/tp-account-widgets/tpaw-keyring.c new file mode 100644 index 0000000..57f4bd5 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-keyring.c @@ -0,0 +1,718 @@ +/* + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-keyring.h" + +#include +#include +#include + +#ifdef HAVE_UOA +#include +#include +#include +#include +#include +#include +#include "tpaw-uoa-utils.h" +#endif + +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +/* We cannot change the schema name for compatibility, so it's still + * referring to Empathy */ +static const SecretSchema account_keyring_schema = + { "org.gnome.Empathy.Account", SECRET_SCHEMA_DONT_MATCH_NAME, + { { "account-id", SECRET_SCHEMA_ATTRIBUTE_STRING }, + { "param-name", SECRET_SCHEMA_ATTRIBUTE_STRING }, + { NULL } } }; + +static const SecretSchema room_keyring_schema = + { "org.gnome.Empathy.Room", SECRET_SCHEMA_DONT_MATCH_NAME, + { { "account-id", SECRET_SCHEMA_ATTRIBUTE_STRING }, + { "room-id", SECRET_SCHEMA_ATTRIBUTE_STRING }, + { NULL } } }; + +/* get */ + +static void +lookup_item_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (user_data); + GError *error = NULL; + gchar *password; + + password = secret_password_lookup_finish (result, &error); + if (error != NULL) + { + g_simple_async_result_set_error (simple, TP_ERROR, + TP_ERROR_DOES_NOT_EXIST, "%s", error->message); + g_clear_error (&error); + goto out; + } + + if (password == NULL) + { + g_simple_async_result_set_error (simple, TP_ERROR, + TP_ERROR_DOES_NOT_EXIST, _("Password not found")); + goto out; + } + + g_simple_async_result_set_op_res_gpointer (simple, password, + (GDestroyNotify) secret_password_free); + +out: + g_simple_async_result_complete (simple); + g_object_unref (simple); +} + +#ifdef HAVE_UOA +static AgAccountService * +uoa_password_common (TpAccount *tp_account, + GSimpleAsyncResult *result, + AgAuthData **ret_auth_data) +{ + const GValue *storage_id; + AgAccountId account_id; + AgManager *manager = NULL; + AgAccount *account = NULL; + GList *l; + AgAccountService *service = NULL; + AgAuthData *auth_data = NULL; + + g_assert (ret_auth_data != NULL); + *ret_auth_data = NULL; + + storage_id = tp_account_get_storage_identifier (tp_account); + account_id = g_value_get_uint (storage_id); + if (account_id == 0) + { + g_simple_async_result_set_error (result, + TP_ERROR, TP_ERROR_INVALID_ARGUMENT, + "StorageId is invalid, cannot get the AgAccount for this TpAccount"); + g_simple_async_result_complete_in_idle (result); + goto error; + } + + manager = tpaw_uoa_manager_dup (); + account = ag_manager_get_account (manager, account_id); + + /* Assuming there is only one IM service */ + l = ag_account_list_services_by_type (account, TPAW_UOA_SERVICE_TYPE); + if (l == NULL) + { + g_simple_async_result_set_error (result, + TP_ERROR, TP_ERROR_INVALID_ARGUMENT, + "AgAccount has no IM service"); + g_simple_async_result_complete_in_idle (result); + goto error; + } + service = ag_account_service_new (account, l->data); + ag_service_list_free (l); + + auth_data = ag_account_service_get_auth_data (service); + if (auth_data == NULL) + { + g_simple_async_result_set_error (result, + TP_ERROR, TP_ERROR_INVALID_ARGUMENT, + "Service has no AgAuthData"); + g_simple_async_result_complete_in_idle (result); + goto error; + } + + if (tp_strdiff (ag_auth_data_get_mechanism (auth_data), "password") || + tp_strdiff (ag_auth_data_get_method (auth_data), "password")) + { + g_simple_async_result_set_error (result, + TP_ERROR, TP_ERROR_INVALID_ARGUMENT, + "Service does not use password authentication"); + g_simple_async_result_complete_in_idle (result); + goto error; + } + + g_object_unref (manager); + g_object_unref (account); + + *ret_auth_data = auth_data; + return service; + +error: + g_clear_object (&manager); + g_clear_object (&account); + g_clear_object (&service); + tp_clear_pointer (&auth_data, ag_auth_data_unref); + return NULL; +} + +static void +uoa_session_process_cb (GObject *source, + GAsyncResult *res, + gpointer user_data) +{ + SignonAuthSession *session = (SignonAuthSession *) source; + GSimpleAsyncResult *result = user_data; + GVariant *session_data; + gchar *password; + GError *error = NULL; + + session_data = signon_auth_session_process_finish (session, res, &error); + if (error != NULL) + { + g_simple_async_result_take_error (result, error); + goto out; + } + + if (!g_variant_lookup (session_data, "Secret", "s", &password)) + { + g_simple_async_result_set_error (result, TP_ERROR, + TP_ERROR_DOES_NOT_EXIST, _("Password not found")); + goto out; + } + + g_simple_async_result_set_op_res_gpointer (result, password, g_free); + +out: + g_simple_async_result_complete (result); + g_object_unref (result); +} + +static void +uoa_get_account_password (TpAccount *tp_account, + GSimpleAsyncResult *result) +{ + AgAccountService *service; + AgAuthData *auth_data; + guint cred_id; + SignonIdentity *identity; + SignonAuthSession *session; + GError *error = NULL; + + DEBUG ("Store password for %s in signond", + tp_account_get_path_suffix (tp_account)); + + service = uoa_password_common (tp_account, result, &auth_data); + if (service == NULL) + return; + + cred_id = ag_auth_data_get_credentials_id (auth_data); + if (cred_id == 0) + { + g_simple_async_result_set_error (result, + TP_ERROR, TP_ERROR_INVALID_ARGUMENT, + "AgAccount has no CredentialsId"); + g_simple_async_result_complete_in_idle (result); + goto out; + } + + identity = signon_identity_new_from_db (cred_id); + session = signon_identity_create_session (identity, + ag_auth_data_get_method (auth_data), &error); + g_object_unref (identity); + + if (session == NULL) + { + g_simple_async_result_set_from_error (result, error); + g_simple_async_result_complete_in_idle (result); + goto out; + } + + signon_auth_session_process_async (session, + ag_auth_data_get_login_parameters (auth_data, NULL), + ag_auth_data_get_mechanism (auth_data), + NULL, + uoa_session_process_cb, + g_object_ref (result)); + + g_object_unref (session); + +out: + ag_auth_data_unref (auth_data); + g_object_unref (service); +} +#endif + +void +tpaw_keyring_get_account_password_async (TpAccount *account, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *simple; + const gchar *account_id; + + g_return_if_fail (TP_IS_ACCOUNT (account)); + g_return_if_fail (callback != NULL); + + simple = g_simple_async_result_new (G_OBJECT (account), callback, + user_data, tpaw_keyring_get_account_password_async); + + account_id = tp_proxy_get_object_path (account) + + strlen (TP_ACCOUNT_OBJECT_PATH_BASE); + + DEBUG ("Trying to get password for: %s", account_id); + +#ifdef HAVE_UOA + { + const gchar *provider; + + provider = tp_account_get_storage_provider (account); + if (!tp_strdiff (provider, TPAW_UOA_PROVIDER)) + { + uoa_get_account_password (account, simple); + g_object_unref (simple); + return; + } + } +#endif + + secret_password_lookup (&account_keyring_schema, NULL, + lookup_item_cb, simple, + "account-id", account_id, + "param-name", "password", + NULL); +} + +void +tpaw_keyring_get_room_password_async (TpAccount *account, + const gchar *id, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *simple; + const gchar *account_id; + + g_return_if_fail (TP_IS_ACCOUNT (account)); + g_return_if_fail (id != NULL); + g_return_if_fail (callback != NULL); + + simple = g_simple_async_result_new (G_OBJECT (account), callback, + user_data, tpaw_keyring_get_room_password_async); + + account_id = tp_proxy_get_object_path (account) + + strlen (TP_ACCOUNT_OBJECT_PATH_BASE); + + DEBUG ("Trying to get password for room '%s' on account '%s'", + id, account_id); + + secret_password_lookup (&room_keyring_schema, NULL, + lookup_item_cb, simple, + "account-id", account_id, + "room-id", id, + NULL); +} + +const gchar * +tpaw_keyring_get_account_password_finish (TpAccount *account, + GAsyncResult *result, + GError **error) +{ + tpaw_implement_finish_return_pointer (account, + tpaw_keyring_get_account_password_async); +} + +const gchar * +tpaw_keyring_get_room_password_finish (TpAccount *account, + GAsyncResult *result, + GError **error) +{ + tpaw_implement_finish_return_pointer (account, + tpaw_keyring_get_room_password_async); +} + +/* set */ + +static void +store_password_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (user_data); + GError *error = NULL; + + if (!secret_password_store_finish (result, &error)) + { + g_simple_async_result_set_error (simple, TP_ERROR, + TP_ERROR_DOES_NOT_EXIST, "%s", error->message); + g_error_free (error); + } + + g_simple_async_result_complete (simple); + g_object_unref (simple); +} + +#ifdef HAVE_UOA +typedef struct +{ + AgAccountService *service; + gchar *password; + gboolean remember; + GSimpleAsyncResult *result; +} UoaChangePasswordData; + +static UoaChangePasswordData * +uoa_change_password_data_new (AgAccountService *service, + const gchar *password, + gboolean remember, + GSimpleAsyncResult *result) +{ + UoaChangePasswordData *data; + + data = g_slice_new0 (UoaChangePasswordData); + data->service = g_object_ref (service); + data->password = g_strdup (password); + data->remember = remember; + data->result = g_object_ref (result); + + return data; +} + +static void +uoa_change_password_data_free (UoaChangePasswordData *data) +{ + g_object_unref (data->service); + g_free (data->password); + g_object_unref (data->result); + g_slice_free (UoaChangePasswordData, data); +} + +static void +uoa_identity_store_cb (SignonIdentity *identity, + guint32 id, + const GError *error, + gpointer user_data) +{ + UoaChangePasswordData *data = user_data; + + if (error != NULL) + g_simple_async_result_set_from_error (data->result, error); + + g_simple_async_result_complete (data->result); + uoa_change_password_data_free (data); + g_object_unref (identity); +} + +static void +uoa_identity_query_info_cb (SignonIdentity *identity, + const SignonIdentityInfo *info, + const GError *error, + gpointer user_data) +{ + UoaChangePasswordData *data = user_data; + + if (error != NULL) + { + g_simple_async_result_set_from_error (data->result, error); + /* libaccounts-glib API does not guarantee the callback happens after + * reentering mainloop */ + g_simple_async_result_complete_in_idle (data->result); + uoa_change_password_data_free (data); + g_object_unref (identity); + return; + } + + /* const SignonIdentityInfo is a lie, cast it! - Mardy */ + signon_identity_info_set_secret ((SignonIdentityInfo *) info, + data->password, data->remember); + + signon_identity_store_credentials_with_info (identity, info, + uoa_identity_store_cb, data); +} + +static void +uoa_initial_account_store_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + AgAccount *account = (AgAccount *) source; + UoaChangePasswordData *data = user_data; + GError *error = NULL; + + if (!ag_account_store_finish (account, result, &error)) + g_simple_async_result_take_error (data->result, error); + + g_simple_async_result_complete (data->result); + uoa_change_password_data_free (data); +} + +static void +uoa_initial_identity_store_cb (SignonIdentity *identity, + guint32 id, + const GError *error, + gpointer user_data) +{ + UoaChangePasswordData *data = user_data; + AgAccount *account = ag_account_service_get_account (data->service); + + if (error != NULL) + { + g_simple_async_result_set_from_error (data->result, error); + /* libaccounts-glib API does not guarantee the callback happens after + * reentering mainloop */ + g_simple_async_result_complete_in_idle (data->result); + uoa_change_password_data_free (data); + g_object_unref (identity); + return; + } + + ag_account_select_service (account, NULL); + ag_account_set_variant (account, "CredentialsId", g_variant_new_uint32 (id)); + + ag_account_store_async (account, NULL, uoa_initial_account_store_cb, data); + + g_object_unref (identity); +} + +static void +uoa_set_account_password (TpAccount *tp_account, + const gchar *password, + gboolean remember, + GSimpleAsyncResult *result) +{ + AgAccountService *service; + AgAuthData *auth_data; + guint cred_id; + UoaChangePasswordData *data; + SignonIdentity *identity; + + DEBUG ("Store password for %s in signond", + tp_account_get_path_suffix (tp_account)); + + service = uoa_password_common (tp_account, result, &auth_data); + if (service == NULL) + return; + + data = uoa_change_password_data_new (service, password, remember, result); + + cred_id = ag_auth_data_get_credentials_id (auth_data); + if (cred_id == 0) + { + SignonIdentityInfo *info; + const GHashTable *params; + const gchar *username; + const gchar *acl_all[] = { "*", NULL }; + + /* This is the first time we store password for this account. + * First check if we have an 'username' param as this is more accurate + * in the tp-idle case. */ + params = tp_account_get_parameters (tp_account); + username = tp_asv_get_string (params, "username"); + if (username == NULL) + username = tp_asv_get_string (params, "account"); + + identity = signon_identity_new (); + info = signon_identity_info_new (); + signon_identity_info_set_username (info, username); + signon_identity_info_set_secret (info, password, remember); + signon_identity_info_set_access_control_list (info, acl_all); + + /* Give identity and data ownership to the callback */ + signon_identity_store_credentials_with_info (identity, info, + uoa_initial_identity_store_cb, data); + + signon_identity_info_free (info); + } + else + { + /* There is already a password stored, query info to update it. + * Give identity and data ownership to the callback */ + identity = signon_identity_new_from_db (cred_id); + signon_identity_query_info (identity, + uoa_identity_query_info_cb, data); + } + + g_object_unref (service); + ag_auth_data_unref (auth_data); +} +#endif + +void +tpaw_keyring_set_account_password_async (TpAccount *account, + const gchar *password, + gboolean remember, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *simple; + const gchar *account_id; + gchar *name; + + g_return_if_fail (TP_IS_ACCOUNT (account)); + g_return_if_fail (password != NULL); + + simple = g_simple_async_result_new (G_OBJECT (account), callback, + user_data, tpaw_keyring_set_account_password_async); + + account_id = tp_proxy_get_object_path (account) + + strlen (TP_ACCOUNT_OBJECT_PATH_BASE); + + DEBUG ("Remembering password for %s", account_id); + +#ifdef HAVE_UOA + { + const gchar *provider; + + provider = tp_account_get_storage_provider (account); + if (!tp_strdiff (provider, TPAW_UOA_PROVIDER)) + { + uoa_set_account_password (account, password, remember, simple); + g_object_unref (simple); + return; + } + } +#endif + + name = g_strdup_printf (_("IM account password for %s (%s)"), + tp_account_get_display_name (account), account_id); + + secret_password_store (&account_keyring_schema, + remember ? NULL : SECRET_COLLECTION_SESSION, + name, password, + NULL, store_password_cb, simple, + "account-id", account_id, + "param-name", "password", + NULL); + + g_free (name); +} + +void +tpaw_keyring_set_room_password_async (TpAccount *account, + const gchar *id, + const gchar *password, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *simple; + const gchar *account_id; + gchar *name; + + g_return_if_fail (TP_IS_ACCOUNT (account)); + g_return_if_fail (id != NULL); + g_return_if_fail (password != NULL); + + simple = g_simple_async_result_new (G_OBJECT (account), callback, + user_data, tpaw_keyring_set_room_password_async); + + account_id = tp_proxy_get_object_path (account) + + strlen (TP_ACCOUNT_OBJECT_PATH_BASE); + + DEBUG ("Remembering password for room '%s' on account '%s'", id, account_id); + + name = g_strdup_printf (_("Password for chatroom “%s” on account %s (%s)"), + id, tp_account_get_display_name (account), account_id); + + secret_password_store (&room_keyring_schema, NULL, name, password, + NULL, store_password_cb, simple, + "account-id", account_id, + "room-id", id, + NULL); + + g_free (name); +} + +gboolean +tpaw_keyring_set_account_password_finish (TpAccount *account, + GAsyncResult *result, + GError **error) +{ + tpaw_implement_finish_void (account, tpaw_keyring_set_account_password_async); +} + +gboolean +tpaw_keyring_set_room_password_finish (TpAccount *account, + GAsyncResult *result, + GError **error) +{ + tpaw_implement_finish_void (account, tpaw_keyring_set_room_password_async); +} + +/* delete */ + +static void +items_delete_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (user_data); + GError *error = NULL; + + secret_password_clear_finish (result, &error); + if (error != NULL) + { + g_simple_async_result_set_error (simple, TP_ERROR, + TP_ERROR_DOES_NOT_EXIST, "%s", error->message); + g_error_free (error); + } + + g_simple_async_result_complete (simple); + g_object_unref (simple); +} + +void +tpaw_keyring_delete_account_password_async (TpAccount *account, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *simple; + const gchar *account_id; + + g_return_if_fail (TP_IS_ACCOUNT (account)); + + simple = g_simple_async_result_new (G_OBJECT (account), callback, + user_data, tpaw_keyring_delete_account_password_async); + + account_id = tp_proxy_get_object_path (account) + + strlen (TP_ACCOUNT_OBJECT_PATH_BASE); + + DEBUG ("Deleting password for %s", account_id); + +#ifdef HAVE_UOA + { + const gchar *provider; + + provider = tp_account_get_storage_provider (account); + if (!tp_strdiff (provider, TPAW_UOA_PROVIDER)) + { + /* I see no other way to forget the stored password than overwriting + * with an empty one. */ + uoa_set_account_password (account, "", FALSE, simple); + g_object_unref (simple); + return; + } + } +#endif + + secret_password_clear (&account_keyring_schema, NULL, + items_delete_cb, simple, + "account-id", account_id, + "param-name", "password", + NULL); +} + +gboolean +tpaw_keyring_delete_account_password_finish (TpAccount *account, + GAsyncResult *result, + GError **error) +{ + tpaw_implement_finish_void (account, tpaw_keyring_delete_account_password_async); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-keyring.h b/telepathy-account-widgets/tp-account-widgets/tpaw-keyring.h new file mode 100644 index 0000000..bf2e652 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-keyring.h @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_KEYRING_H__ +#define __TPAW_KEYRING_H__ + +#include +#include + +G_BEGIN_DECLS + +void tpaw_keyring_get_account_password_async (TpAccount *account, + GAsyncReadyCallback callback, gpointer user_data); + +const gchar * tpaw_keyring_get_account_password_finish (TpAccount *account, + GAsyncResult *result, GError **error); + +void tpaw_keyring_get_room_password_async (TpAccount *account, + const gchar *id, + GAsyncReadyCallback callback, gpointer user_data); + +const gchar * tpaw_keyring_get_room_password_finish (TpAccount *account, + GAsyncResult *result, GError **error); + +void tpaw_keyring_set_account_password_async (TpAccount *account, + const gchar *password, gboolean remember, GAsyncReadyCallback callback, + gpointer user_data); + +gboolean tpaw_keyring_set_account_password_finish (TpAccount *account, + GAsyncResult *result, GError **error); + +void tpaw_keyring_set_room_password_async (TpAccount *account, + const gchar *id, const gchar *password, GAsyncReadyCallback callback, + gpointer user_data); + +gboolean tpaw_keyring_set_room_password_finish (TpAccount *account, + GAsyncResult *result, GError **error); + +void tpaw_keyring_delete_account_password_async (TpAccount *account, + GAsyncReadyCallback callback, gpointer user_data); + +gboolean tpaw_keyring_delete_account_password_finish (TpAccount *account, + GAsyncResult *result, GError **error); + +G_END_DECLS + +#endif /* __TPAW_KEYRING_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-live-search.c b/telepathy-account-widgets/tp-account-widgets/tpaw-live-search.c new file mode 100644 index 0000000..4d8ccc7 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-live-search.c @@ -0,0 +1,700 @@ +/* + * Copyright (C) 2010 Collabora Ltd. + * Copyright (C) 2007-2010 Nokia Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Felix Kaser + * Xavier Claessens + * Claudio Saavedra + */ + +#include "config.h" +#include "tpaw-live-search.h" + +#include "tpaw-utils.h" + +G_DEFINE_TYPE (TpawLiveSearch, tpaw_live_search, GTK_TYPE_BOX) + +struct _TpawLiveSearchPriv +{ + GtkWidget *search_entry; + GtkWidget *hook_widget; + + GPtrArray *stripped_words; +}; + +enum +{ + PROP_0, + PROP_HOOK_WIDGET, + PROP_TEXT +}; + +enum +{ + ACTIVATE, + KEYNAV, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +static void live_search_hook_widget_destroy_cb (GtkWidget *object, + gpointer user_data); + +/** + * stripped_char: + * + * Returns a stripped version of @ch, removing any case, accentuation + * mark, or any special mark on it. + **/ +static gunichar +stripped_char (gunichar ch) +{ + gunichar retval = 0; + GUnicodeType utype; + + utype = g_unichar_type (ch); + + switch (utype) + { + case G_UNICODE_CONTROL: + case G_UNICODE_FORMAT: + case G_UNICODE_UNASSIGNED: + case G_UNICODE_NON_SPACING_MARK: + case G_UNICODE_COMBINING_MARK: + case G_UNICODE_ENCLOSING_MARK: + /* Ignore those */ + break; + case G_UNICODE_PRIVATE_USE: + case G_UNICODE_SURROGATE: + case G_UNICODE_LOWERCASE_LETTER: + case G_UNICODE_MODIFIER_LETTER: + case G_UNICODE_OTHER_LETTER: + case G_UNICODE_TITLECASE_LETTER: + case G_UNICODE_UPPERCASE_LETTER: + case G_UNICODE_DECIMAL_NUMBER: + case G_UNICODE_LETTER_NUMBER: + case G_UNICODE_OTHER_NUMBER: + case G_UNICODE_CONNECT_PUNCTUATION: + case G_UNICODE_DASH_PUNCTUATION: + case G_UNICODE_CLOSE_PUNCTUATION: + case G_UNICODE_FINAL_PUNCTUATION: + case G_UNICODE_INITIAL_PUNCTUATION: + case G_UNICODE_OTHER_PUNCTUATION: + case G_UNICODE_OPEN_PUNCTUATION: + case G_UNICODE_CURRENCY_SYMBOL: + case G_UNICODE_MODIFIER_SYMBOL: + case G_UNICODE_MATH_SYMBOL: + case G_UNICODE_OTHER_SYMBOL: + case G_UNICODE_LINE_SEPARATOR: + case G_UNICODE_PARAGRAPH_SEPARATOR: + case G_UNICODE_SPACE_SEPARATOR: + default: + ch = g_unichar_tolower (ch); + g_unichar_fully_decompose (ch, FALSE, &retval, 1); + } + + return retval; +} + +static void +append_word (GPtrArray **word_array, + GString **word) +{ + if (*word != NULL) + { + if (*word_array == NULL) + *word_array = g_ptr_array_new_with_free_func (g_free); + g_ptr_array_add (*word_array, g_string_free (*word, FALSE)); + *word = NULL; + } +} + +GPtrArray * +tpaw_live_search_strip_utf8_string (const gchar *string) +{ + GPtrArray *word_array = NULL; + GString *word = NULL; + const gchar *p; + + if (TPAW_STR_EMPTY (string)) + return NULL; + + for (p = string; *p != '\0'; p = g_utf8_next_char (p)) + { + gunichar sc; + + /* Make the char lower-case, remove its accentuation marks, and ignore it + * if it is just unicode marks */ + sc = stripped_char (g_utf8_get_char (p)); + if (sc == 0) + continue; + + /* If it is not alpha-num, it is separator between words */ + if (!g_unichar_isalnum (sc)) + { + append_word (&word_array, &word); + continue; + } + + /* It is alpha-num, append this char to current word, or start new word */ + if (word == NULL) + word = g_string_new (NULL); + g_string_append_unichar (word, sc); + } + + append_word (&word_array, &word); + + return word_array; +} + +static gboolean +live_search_match_prefix (const gchar *string, + const gchar *prefix) +{ + const gchar *p; + const gchar *prefix_p; + gboolean next_word = FALSE; + + if (prefix == NULL || prefix[0] == 0) + return TRUE; + + if (TPAW_STR_EMPTY (string)) + return FALSE; + + prefix_p = prefix; + for (p = string; *p != '\0'; p = g_utf8_next_char (p)) + { + gunichar sc; + + /* Make the char lower-case, remove its accentuation marks, and ignore it + * if it is just unicode marks */ + sc = stripped_char (g_utf8_get_char (p)); + if (sc == 0) + continue; + + /* If we want to go to next word, ignore alpha-num chars */ + if (next_word && g_unichar_isalnum (sc)) + continue; + next_word = FALSE; + + /* Ignore word separators */ + if (!g_unichar_isalnum (sc)) + continue; + + /* If this char does not match prefix_p, go to next word and start again + * from the beginning of prefix */ + if (sc != g_utf8_get_char (prefix_p)) + { + next_word = TRUE; + prefix_p = prefix; + continue; + } + + /* prefix_p match, verify to next char. If this was the last of prefix, + * it means it completely machted and we are done. */ + prefix_p = g_utf8_next_char (prefix_p); + if (*prefix_p == '\0') + return TRUE; + } + + return FALSE; +} + +gboolean +tpaw_live_search_match_words (const gchar *string, + GPtrArray *words) +{ + guint i; + + if (words == NULL) + return TRUE; + + for (i = 0; i < words->len; i++) + if (!live_search_match_prefix (string, g_ptr_array_index (words, i))) + return FALSE; + + return TRUE; +} + +static gboolean +fire_key_navigation_sig (TpawLiveSearch *self, + GdkEventKey *event) +{ + gboolean ret; + + g_signal_emit (self, signals[KEYNAV], 0, event, &ret); + return ret; +} + +static gboolean +live_search_entry_key_pressed_cb (GtkEntry *entry, + GdkEventKey *event, + gpointer user_data) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (user_data); + + /* if esc key pressed, hide the search */ + if (event->keyval == GDK_KEY_Escape) + { + gtk_widget_hide (GTK_WIDGET (self)); + return TRUE; + } + + /* emit key navigation signal, so other widgets can respond to it properly */ + if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down + || event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down + || event->keyval == GDK_KEY_Menu) + { + return fire_key_navigation_sig (self, event); + } + + if (event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End || + event->keyval == GDK_KEY_space) + { + /* If the live search is visible, the entry should catch the Home/End + * and space events */ + if (!gtk_widget_get_visible (GTK_WIDGET (self))) + { + return fire_key_navigation_sig (self, event); + } + } + + return FALSE; +} + +static void +live_search_text_changed (GtkEntry *entry, + gpointer user_data) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (user_data); + const gchar *text; + + text = gtk_entry_get_text (entry); + + if (TPAW_STR_EMPTY (text)) + gtk_widget_hide (GTK_WIDGET (self)); + else + gtk_widget_show (GTK_WIDGET (self)); + + if (self->priv->stripped_words != NULL) + g_ptr_array_unref (self->priv->stripped_words); + + self->priv->stripped_words = tpaw_live_search_strip_utf8_string (text); + + g_object_notify (G_OBJECT (self), "text"); +} + +static void +live_search_close_pressed (GtkEntry *entry, + GtkEntryIconPosition icon_pos, + GdkEvent *event, + gpointer user_data) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (user_data); + + gtk_widget_hide (GTK_WIDGET (self)); +} + +static gboolean +live_search_key_press_event_cb (GtkWidget *widget, + GdkEventKey *event, + gpointer user_data) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (user_data); + GdkEvent *new_event; + gboolean ret; + + /* dont forward this event to the entry, else the event is consumed by the + * entry and does not close the window */ + if (!gtk_widget_get_visible (GTK_WIDGET (self)) && + event->keyval == GDK_KEY_Escape) + return FALSE; + + /* do not show the search if CTRL and/or ALT are pressed with a key + * this is needed, because otherwise the CTRL + F accel would not work, + * because the entry consumes it */ + if (event->state & (GDK_MOD1_MASK | GDK_CONTROL_MASK) || + event->keyval == GDK_KEY_Control_L || + event->keyval == GDK_KEY_Control_R) + return FALSE; + + /* dont forward the up/down and Page Up/Down arrow keys to the entry, + * they are needed for navigation in the treeview and are not needed in + * the search entry */ + if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down || + event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down || + event->keyval == GDK_KEY_Menu) + return FALSE; + + if (event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End || + event->keyval == GDK_KEY_space) + { + /* Home/End and space keys have to be forwarded to the entry only if + * the live search is visible (to move the cursor inside the entry). */ + if (!gtk_widget_get_visible (GTK_WIDGET (self))) + return FALSE; + } + + /* Don't forward shift keys events as focusing the search entry would + * cancel an in-progress editing on a cell renderer (like when renaming a + * group). There is no point focusing it anyway as we don't display the + * search entry when only a shift key is pressed. */ + if (event->keyval == GDK_KEY_Shift_L || + event->keyval == GDK_KEY_Shift_R) + return FALSE; + + /* realize the widget if it is not realized yet */ + gtk_widget_realize (self->priv->search_entry); + if (!gtk_widget_has_focus (self->priv->search_entry)) + { + gtk_widget_grab_focus (self->priv->search_entry); + gtk_editable_set_position (GTK_EDITABLE (self->priv->search_entry), -1); + } + + /* forward the event to the search entry */ + new_event = gdk_event_copy ((GdkEvent *) event); + ret = gtk_widget_event (self->priv->search_entry, new_event); + gdk_event_free (new_event); + + return ret; +} + +static void +live_search_entry_activate_cb (GtkEntry *entry, + TpawLiveSearch *self) +{ + g_signal_emit (self, signals[ACTIVATE], 0); +} + +static void +live_search_release_hook_widget (TpawLiveSearch *self) +{ + /* remove old handlers if old source was not null */ + if (self->priv->hook_widget != NULL) + { + g_signal_handlers_disconnect_by_func (self->priv->hook_widget, + live_search_key_press_event_cb, self); + g_signal_handlers_disconnect_by_func (self->priv->hook_widget, + live_search_hook_widget_destroy_cb, self); + g_object_unref (self->priv->hook_widget); + self->priv->hook_widget = NULL; + } +} + +static void +live_search_hook_widget_destroy_cb (GtkWidget *object, + gpointer user_data) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (user_data); + + /* unref the hook widget and hide search */ + gtk_widget_hide (GTK_WIDGET (self)); + live_search_release_hook_widget (self); +} + +static void +live_search_dispose (GObject *obj) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (obj); + + live_search_release_hook_widget (self); + + if (G_OBJECT_CLASS (tpaw_live_search_parent_class)->dispose != NULL) + G_OBJECT_CLASS (tpaw_live_search_parent_class)->dispose (obj); +} + +static void +live_search_finalize (GObject *obj) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (obj); + + if (self->priv->stripped_words != NULL) + g_ptr_array_unref (self->priv->stripped_words); + + if (G_OBJECT_CLASS (tpaw_live_search_parent_class)->finalize != NULL) + G_OBJECT_CLASS (tpaw_live_search_parent_class)->finalize (obj); +} + +static void +live_search_get_property (GObject *object, + guint param_id, + GValue *value, + GParamSpec *pspec) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (object); + + switch (param_id) + { + case PROP_HOOK_WIDGET: + g_value_set_object (value, tpaw_live_search_get_hook_widget (self)); + break; + case PROP_TEXT: + g_value_set_string (value, tpaw_live_search_get_text (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + } +} + +static void +live_search_set_property (GObject *object, + guint param_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (object); + + switch (param_id) { + case PROP_HOOK_WIDGET: + tpaw_live_search_set_hook_widget (self, g_value_get_object (value)); + break; + case PROP_TEXT: + tpaw_live_search_set_text (self, g_value_get_string (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); + break; + }; +} + +static void +live_search_unmap (GtkWidget *widget) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (widget); + + GTK_WIDGET_CLASS (tpaw_live_search_parent_class)->unmap (widget); + + /* unmap can happen if a parent gets hidden, in that case we want to hide + * the live search as well, so when it gets mapped again, the live search + * won't be shown. */ + gtk_widget_hide (widget); + + gtk_entry_set_text (GTK_ENTRY (self->priv->search_entry), ""); + + if (self->priv->hook_widget != NULL) + gtk_widget_grab_focus (self->priv->hook_widget); +} + +static void +live_search_show (GtkWidget *widget) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (widget); + + if (!gtk_widget_has_focus (self->priv->search_entry)) + gtk_widget_grab_focus (self->priv->search_entry); + + GTK_WIDGET_CLASS (tpaw_live_search_parent_class)->show (widget); +} + +static void +live_search_grab_focus (GtkWidget *widget) +{ + TpawLiveSearch *self = TPAW_LIVE_SEARCH (widget); + + if (!gtk_widget_has_focus (self->priv->search_entry)) + { + gtk_widget_grab_focus (self->priv->search_entry); + gtk_editable_set_position (GTK_EDITABLE (self->priv->search_entry), -1); + } +} + +static void +tpaw_live_search_class_init (TpawLiveSearchClass *klass) +{ + GObjectClass *object_class = (GObjectClass *) klass; + GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; + GParamSpec *param_spec; + + object_class->finalize = live_search_finalize; + object_class->dispose = live_search_dispose; + object_class->get_property = live_search_get_property; + object_class->set_property = live_search_set_property; + + widget_class->unmap = live_search_unmap; + widget_class->show = live_search_show; + widget_class->grab_focus = live_search_grab_focus; + + signals[ACTIVATE] = g_signal_new ("activate", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, 0); + + signals[KEYNAV] = g_signal_new ("key-navigation", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + 0, + g_signal_accumulator_true_handled, NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, 1, GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE); + + param_spec = g_param_spec_object ("hook-widget", "Live Search Hook Widget", + "The live search catches key-press-events on this widget", + GTK_TYPE_WIDGET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, PROP_HOOK_WIDGET, + param_spec); + + param_spec = g_param_spec_string ("text", "Live Search Text", + "The text of the live search entry", + "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, PROP_TEXT, param_spec); + + g_type_class_add_private (klass, sizeof (TpawLiveSearchPriv)); +} + +static void +tpaw_live_search_init (TpawLiveSearch *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE ((self), TPAW_TYPE_LIVE_SEARCH, + TpawLiveSearchPriv); + + gtk_widget_set_no_show_all (GTK_WIDGET (self), TRUE); + + self->priv->search_entry = gtk_entry_new (); + gtk_entry_set_icon_from_stock (GTK_ENTRY (self->priv->search_entry), + GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLOSE); + gtk_entry_set_icon_activatable (GTK_ENTRY (self->priv->search_entry), + GTK_ENTRY_ICON_SECONDARY, TRUE); + gtk_entry_set_icon_sensitive (GTK_ENTRY (self->priv->search_entry), + GTK_ENTRY_ICON_SECONDARY, TRUE); + gtk_widget_show (self->priv->search_entry); + + gtk_box_pack_start (GTK_BOX (self), self->priv->search_entry, TRUE, TRUE, 0); + + g_signal_connect (self->priv->search_entry, "icon_release", + G_CALLBACK (live_search_close_pressed), self); + g_signal_connect (self->priv->search_entry, "changed", + G_CALLBACK (live_search_text_changed), self); + g_signal_connect (self->priv->search_entry, "key-press-event", + G_CALLBACK (live_search_entry_key_pressed_cb), self); + g_signal_connect (self->priv->search_entry, "activate", + G_CALLBACK (live_search_entry_activate_cb), self); + + self->priv->hook_widget = NULL; +} + +GtkWidget * +tpaw_live_search_new (GtkWidget *hook) +{ + g_return_val_if_fail (hook == NULL || GTK_IS_WIDGET (hook), NULL); + + return g_object_new (TPAW_TYPE_LIVE_SEARCH, + "orientation", GTK_ORIENTATION_HORIZONTAL, + "hook-widget", hook, + NULL); +} + +/* public methods */ + +GtkWidget * +tpaw_live_search_get_hook_widget (TpawLiveSearch *self) +{ + g_return_val_if_fail (TPAW_IS_LIVE_SEARCH (self), NULL); + + return self->priv->hook_widget; +} + +void +tpaw_live_search_set_hook_widget (TpawLiveSearch *self, + GtkWidget *hook) +{ + g_return_if_fail (TPAW_IS_LIVE_SEARCH (self)); + g_return_if_fail (hook == NULL || GTK_IS_WIDGET (hook)); + + /* release the actual widget */ + live_search_release_hook_widget (self); + + /* connect handlers if new source is not null */ + if (hook != NULL) + { + self->priv->hook_widget = g_object_ref (hook); + g_signal_connect (self->priv->hook_widget, "key-press-event", + G_CALLBACK (live_search_key_press_event_cb), + self); + g_signal_connect (self->priv->hook_widget, "destroy", + G_CALLBACK (live_search_hook_widget_destroy_cb), + self); + } +} + +const gchar * +tpaw_live_search_get_text (TpawLiveSearch *self) +{ + g_return_val_if_fail (TPAW_IS_LIVE_SEARCH (self), NULL); + + return gtk_entry_get_text (GTK_ENTRY (self->priv->search_entry)); +} + +void +tpaw_live_search_set_text (TpawLiveSearch *self, + const gchar *text) +{ + g_return_if_fail (TPAW_IS_LIVE_SEARCH (self)); + g_return_if_fail (text != NULL); + + gtk_entry_set_text (GTK_ENTRY (self->priv->search_entry), text); +} + +/** + * tpaw_live_search_match: + * @self: a #TpawLiveSearch + * @string: a string where to search, must be valid UTF-8. + * + * Search if one of the words in @string string starts with the current text + * of @self. + * + * Searching for "aba" in "Abasto" will match, searching in "Moraba" will not, + * and searching in "A tool (abacus)" will do. + * + * The match is not case-sensitive, and regardless of the accentuation marks. + * + * Returns: %TRUE if a match is found, %FALSE otherwise. + * + **/ +gboolean +tpaw_live_search_match (TpawLiveSearch *self, + const gchar *string) +{ + g_return_val_if_fail (TPAW_IS_LIVE_SEARCH (self), FALSE); + + return tpaw_live_search_match_words (string, self->priv->stripped_words); +} + +gboolean +tpaw_live_search_match_string (const gchar *string, + const gchar *prefix) +{ + GPtrArray *words; + gboolean match; + + words = tpaw_live_search_strip_utf8_string (prefix); + match = tpaw_live_search_match_words (string, words); + if (words != NULL) + g_ptr_array_unref (words); + + return match; +} + +GPtrArray * +tpaw_live_search_get_words (TpawLiveSearch *self) +{ + return self->priv->stripped_words; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-live-search.h b/telepathy-account-widgets/tp-account-widgets/tpaw-live-search.h new file mode 100644 index 0000000..986de67 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-live-search.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2010 Collabora Ltd. + * Copyright (C) 2007-2010 Nokia Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Felix Kaser + * Xavier Claessens + * Claudio Saavedra + */ + +#ifndef __TPAW_LIVE_SEARCH_H__ +#define __TPAW_LIVE_SEARCH_H__ + +#include + +G_BEGIN_DECLS + +#define TPAW_TYPE_LIVE_SEARCH (tpaw_live_search_get_type ()) +#define TPAW_LIVE_SEARCH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TPAW_TYPE_LIVE_SEARCH, TpawLiveSearch)) +#define TPAW_LIVE_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TPAW_TYPE_LIVE_SEARCH, TpawLiveSearchClass)) +#define TPAW_IS_LIVE_SEARCH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TPAW_TYPE_LIVE_SEARCH)) +#define TPAW_IS_LIVE_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TPAW_TYPE_LIVE_SEARCH)) +#define TPAW_LIVE_SEARCH_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TPAW_TYPE_LIVE_SEARCH, TpawLiveSearchClass)) + +typedef struct _TpawLiveSearch TpawLiveSearch; +typedef struct _TpawLiveSearchPriv TpawLiveSearchPriv; +typedef struct _TpawLiveSearchClass TpawLiveSearchClass; + +struct _TpawLiveSearch { + GtkBox parent; + + /**/ + TpawLiveSearchPriv *priv; +}; + +struct _TpawLiveSearchClass { + GtkBoxClass parent_class; +}; + +GType tpaw_live_search_get_type (void) G_GNUC_CONST; +GtkWidget *tpaw_live_search_new (GtkWidget *hook); + +GtkWidget *tpaw_live_search_get_hook_widget (TpawLiveSearch *self); +void tpaw_live_search_set_hook_widget (TpawLiveSearch *self, + GtkWidget *hook); + +const gchar *tpaw_live_search_get_text (TpawLiveSearch *self); +void tpaw_live_search_set_text (TpawLiveSearch *self, + const gchar *text); + +gboolean tpaw_live_search_match (TpawLiveSearch *self, + const gchar *string); + +GPtrArray * tpaw_live_search_strip_utf8_string (const gchar *string); + +gboolean tpaw_live_search_match_words (const gchar *string, + GPtrArray *words); + +GPtrArray * tpaw_live_search_get_words (TpawLiveSearch *self); + +/* Made public for unit tests */ +gboolean tpaw_live_search_match_string (const gchar *string, + const gchar *prefix); + +G_END_DECLS + +#endif /* __TPAW_LIVE_SEARCH_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-pixbuf-utils.c b/telepathy-account-widgets/tp-account-widgets/tpaw-pixbuf-utils.c new file mode 100644 index 0000000..f1f8872 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-pixbuf-utils.c @@ -0,0 +1,181 @@ +/* + * Copyright (C) 2002-2007 Imendio AB + * Copyright (C) 2007-2013 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Mikael Hallendal + * Richard Hult + * Martyn Russell + * Xavier Claessens + * Travis Reitter + */ + +#include "config.h" +#include "tpaw-pixbuf-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +GdkPixbuf * +tpaw_pixbuf_from_data (gchar *data, + gsize data_size) +{ + return tpaw_pixbuf_from_data_and_mime (data, data_size, NULL); +} + +GdkPixbuf * +tpaw_pixbuf_from_data_and_mime (gchar *data, + gsize data_size, + gchar **mime_type) +{ + GdkPixbufLoader *loader; + GdkPixbufFormat *format; + GdkPixbuf *pixbuf = NULL; + gchar **mime_types; + GError *error = NULL; + + if (!data) + return NULL; + + loader = gdk_pixbuf_loader_new (); + if (!gdk_pixbuf_loader_write (loader, (guchar *) data, data_size, &error)) + { + DEBUG ("Failed to write to pixbuf loader: %s", + error ? error->message : "No error given"); + goto out; + } + + if (!gdk_pixbuf_loader_close (loader, &error)) + { + DEBUG ("Failed to close pixbuf loader: %s", + error ? error->message : "No error given"); + goto out; + } + + pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); + if (pixbuf) + { + g_object_ref (pixbuf); + + if (mime_type != NULL) + { + format = gdk_pixbuf_loader_get_format (loader); + mime_types = gdk_pixbuf_format_get_mime_types (format); + + *mime_type = g_strdup (*mime_types); + if (mime_types[1] != NULL) + DEBUG ("Loader supports more than one mime " + "type! Picking the first one, %s", + *mime_type); + + g_strfreev (mime_types); + } + } + +out: + g_clear_error (&error); + g_object_unref (loader); + + return pixbuf; +} + +GdkPixbuf * +tpaw_pixbuf_scale_down_if_necessary (GdkPixbuf *pixbuf, + gint max_size) +{ + gint width, height; + gdouble factor; + + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + + if (width > 0 && (width > max_size || height > max_size)) + { + factor = (gdouble) max_size / MAX (width, height); + + width = width * factor; + height = height * factor; + + return gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_HYPER); + } + + return g_object_ref (pixbuf); +} + +GdkPixbuf * +tpaw_pixbuf_from_icon_name_sized (const gchar *icon_name, + gint size) +{ + GtkIconTheme *theme; + GdkPixbuf *pixbuf; + GError *error = NULL; + + if (!icon_name) + return NULL; + + theme = gtk_icon_theme_get_default (); + + pixbuf = gtk_icon_theme_load_icon (theme, icon_name, size, 0, &error); + + if (error) + { + DEBUG ("Error loading icon: %s", error->message); + g_clear_error (&error); + } + + return pixbuf; +} + +GdkPixbuf * +tpaw_pixbuf_from_icon_name (const gchar *icon_name, + GtkIconSize icon_size) +{ + gint w, h; + gint size = 48; + + if (!icon_name) + return NULL; + + if (gtk_icon_size_lookup (icon_size, &w, &h)) + size = (w + h) / 2; + + return tpaw_pixbuf_from_icon_name_sized (icon_name, size); +} + +gchar * +tpaw_filename_from_icon_name (const gchar *icon_name, + GtkIconSize icon_size) +{ + GtkIconTheme *icon_theme; + GtkIconInfo *icon_info; + gint w, h; + gint size = 48; + gchar *ret; + + icon_theme = gtk_icon_theme_get_default (); + + if (gtk_icon_size_lookup (icon_size, &w, &h)) + size = (w + h) / 2; + + icon_info = gtk_icon_theme_lookup_icon (icon_theme, icon_name, size, 0); + if (icon_info == NULL) + return NULL; + + ret = g_strdup (gtk_icon_info_get_filename (icon_info)); + gtk_icon_info_free (icon_info); + + return ret; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-pixbuf-utils.h b/telepathy-account-widgets/tp-account-widgets/tpaw-pixbuf-utils.h new file mode 100644 index 0000000..0521f71 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-pixbuf-utils.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2002-2007 Imendio AB + * Copyright (C) 2007-2013 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Authors: Mikael Hallendal + * Richard Hult + * Martyn Russell + * Xavier Claessens + * Travis Reitter + */ + +#ifndef __TPAW_UI_UTILS_H__ +#define __TPAW_UI_UTILS_H__ + +#include + +G_BEGIN_DECLS + +GdkPixbuf * tpaw_pixbuf_from_data (gchar *data, + gsize data_size); +GdkPixbuf * tpaw_pixbuf_from_data_and_mime (gchar *data, + gsize data_size, + gchar **mime_type); +GdkPixbuf * tpaw_pixbuf_scale_down_if_necessary (GdkPixbuf *pixbuf, + gint max_size); +GdkPixbuf * tpaw_pixbuf_from_icon_name (const gchar *icon_name, + GtkIconSize icon_size); +GdkPixbuf * tpaw_pixbuf_from_icon_name_sized (const gchar *icon_name, + gint size); +gchar * tpaw_filename_from_icon_name (const gchar *icon_name, + GtkIconSize icon_size); + +G_END_DECLS + +#endif /* __TPAW_UI_UTILS_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-protocol.c b/telepathy-account-widgets/tp-account-widgets/tpaw-protocol.c new file mode 100644 index 0000000..0e98bb9 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-protocol.c @@ -0,0 +1,526 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */ +/* + * Copyright (C) 2007-2013 Collabora Ltd. + * Copyright (C) 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + * Jonny Lamb + * Marco Barisione + */ + +#include "config.h" +#include "tpaw-protocol.h" + +#include + +#include "tpaw-connection-managers.h" +#include "tpaw-utils.h" + +struct _TpawProtocolPriv +{ + TpConnectionManager *cm; + gchar *protocol_name; + gchar *service_name; + gchar *display_name; + gchar *icon_name; +}; + +enum { + PROP_CM = 1, + PROP_CM_NAME, + PROP_PROTOCOL_NAME, + PROP_SERVICE_NAME, + PROP_DISPLAY_NAME, + PROP_ICON_NAME, +}; + +G_DEFINE_TYPE (TpawProtocol, tpaw_protocol, G_TYPE_OBJECT); + +TpawAccountSettings * +tpaw_protocol_create_account_settings (TpawProtocol *self) +{ + TpawAccountSettings *settings = NULL; + gchar *str; + + /* Create account */ + /* To translator: %s is the name of the protocol, such as "Google Talk" or + * "Yahoo!" + */ + str = g_strdup_printf (_("New %s account"), self->priv->display_name); + + settings = tpaw_account_settings_new (tpaw_protocol_get_cm_name (self), + self->priv->protocol_name, + self->priv->service_name, + str); + + g_free (str); + + if (!tp_strdiff (self->priv->service_name, "google-talk")) + { + const gchar *fallback_servers[] = { + "talkx.l.google.com", + "talkx.l.google.com:443,oldssl", + "talkx.l.google.com:80", + NULL}; + + const gchar *extra_certificate_identities[] = { + "talk.google.com", + NULL}; + + tpaw_account_settings_set_icon_name_async (settings, "im-google-talk", + NULL, NULL); + tpaw_account_settings_set (settings, "server", + g_variant_new_string (extra_certificate_identities[0])); + tpaw_account_settings_set (settings, "require-encryption", + g_variant_new_boolean (TRUE)); + tpaw_account_settings_set (settings, "fallback-servers", + g_variant_new_strv (fallback_servers, -1)); + + if (tpaw_account_settings_have_tp_param (settings, + "extra-certificate-identities")) + { + tpaw_account_settings_set (settings, + "extra-certificate-identities", + g_variant_new_strv (extra_certificate_identities, -1)); + } + } + + return settings; +} + +TpConnectionManager * +tpaw_protocol_get_cm (TpawProtocol *self) +{ + return self->priv->cm; +} + +const gchar * +tpaw_protocol_get_cm_name (TpawProtocol *self) +{ + return tp_connection_manager_get_name (self->priv->cm); +} + +const gchar * +tpaw_protocol_get_protocol_name (TpawProtocol *self) +{ + return self->priv->protocol_name; +} + +const gchar * +tpaw_protocol_get_service_name (TpawProtocol *self) +{ + return self->priv->service_name; +} + +const gchar * +tpaw_protocol_get_display_name (TpawProtocol *self) +{ + return self->priv->display_name; +} + +const gchar * +tpaw_protocol_get_icon_name (TpawProtocol *self) +{ + return self->priv->icon_name; +} + +static void +tpaw_protocol_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + TpawProtocol *self = TPAW_PROTOCOL (object); + + switch (prop_id) + { + case PROP_CM: + g_value_set_object (value, self->priv->cm); + break; + case PROP_CM_NAME: + g_value_set_string (value, + tp_connection_manager_get_name (self->priv->cm)); + break; + case PROP_PROTOCOL_NAME: + g_value_set_string (value, self->priv->protocol_name); + break; + case PROP_SERVICE_NAME: + g_value_set_string (value, self->priv->service_name); + break; + case PROP_DISPLAY_NAME: + g_value_set_string (value, self->priv->display_name); + break; + case PROP_ICON_NAME: + g_value_set_string (value, self->priv->icon_name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +tpaw_protocol_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawProtocol *self = TPAW_PROTOCOL (object); + + switch (prop_id) + { + case PROP_CM: + self->priv->cm = g_value_dup_object (value); + break; + case PROP_PROTOCOL_NAME: + self->priv->protocol_name = g_value_dup_string (value); + break; + case PROP_SERVICE_NAME: + self->priv->service_name = g_value_dup_string (value); + break; + case PROP_DISPLAY_NAME: + self->priv->display_name = g_value_dup_string (value); + break; + case PROP_ICON_NAME: + self->priv->icon_name = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +tpaw_protocol_constructed (GObject *object) +{ + TpawProtocol *self = TPAW_PROTOCOL (object); + + if (G_OBJECT_CLASS (tpaw_protocol_parent_class)->constructed != NULL) + G_OBJECT_CLASS (tpaw_protocol_parent_class)->constructed (object); + + if (g_strcmp0 (self->priv->protocol_name, self->priv->service_name) == 0) + { + /* We want the service name only if it's different from the + * protocol name */ + g_clear_pointer (&self->priv->service_name, g_free); + } +} + +static void +tpaw_protocol_init (TpawProtocol *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, TPAW_TYPE_PROTOCOL, + TpawProtocolPriv); +} + +static void +tpaw_protocol_finalize (GObject *object) +{ + TpawProtocol *self = TPAW_PROTOCOL (object); + + g_clear_object (&self->priv->cm); + g_free (self->priv->protocol_name); + g_free (self->priv->service_name); + g_free (self->priv->display_name); + g_free (self->priv->icon_name); + + (G_OBJECT_CLASS (tpaw_protocol_parent_class)->finalize) (object); +} + +static void +tpaw_protocol_class_init (TpawProtocolClass *klass) +{ + GObjectClass *oclass = G_OBJECT_CLASS (klass); + GParamSpec *param_spec; + + oclass->finalize = tpaw_protocol_finalize; + oclass->constructed = tpaw_protocol_constructed; + oclass->get_property = tpaw_protocol_get_property; + oclass->set_property = tpaw_protocol_set_property; + + g_type_class_add_private (oclass, sizeof (TpawProtocolPriv)); + + param_spec = g_param_spec_object ("cm", + "CM", "The connection manager", + TP_TYPE_CONNECTION_MANAGER, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_CM, param_spec); + + param_spec = g_param_spec_string ("cm-name", + "CM name", "The connection manager name", + NULL, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_CM_NAME, param_spec); + + param_spec = g_param_spec_string ("protocol-name", + "Protocol name", "The name of the protocol", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_PROTOCOL_NAME, param_spec); + + param_spec = g_param_spec_string ("service-name", + "Service name", "The name of the service", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_SERVICE_NAME, param_spec); + + param_spec = g_param_spec_string ("display-name", + "Display name", "The human-readable name of the protocol", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_DISPLAY_NAME, param_spec); + + param_spec = g_param_spec_string ("icon-name", + "Icon name", "The name of the icon for the protocol", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_ICON_NAME, param_spec); +} + +typedef struct +{ + GSimpleAsyncResult *result; + GList *protocols; /* List of (owned) TpawProtocol* */ + GHashTable *seen_protocols; /* Table of (owned) protocol names -> (owned) cm names */ +} GetProtocolsData; + +static void +add_protocol (GetProtocolsData *data, + TpConnectionManager *cm, + const gchar *protocol_name, + const gchar *service_name, + const gchar *display_name, + const gchar *icon_name) +{ + TpawProtocol *protocol; + + protocol = g_object_new (TPAW_TYPE_PROTOCOL, + "cm", cm, + "protocol-name", protocol_name, + "service-name", service_name, + "display-name", display_name, + "icon-name", icon_name, + NULL); + data->protocols = g_list_prepend (data->protocols, protocol); +} + +static gint +compare_protocol_to_name (TpawProtocol *protocol, + const gchar *proto_name) +{ + return g_strcmp0 (tpaw_protocol_get_protocol_name (protocol), proto_name); +} + +static void +add_cm (GetProtocolsData *data, + TpConnectionManager *cm) +{ + GList *protocols, *l; + const gchar *cm_name; + + cm_name = tp_connection_manager_get_name (cm); + protocols = tp_connection_manager_dup_protocols (cm); + + for (l = protocols; l != NULL; l = l->next) + { + TpProtocol *tp_protocol = l->data; + gchar *icon_name; + const gchar *display_name; + const gchar *proto_name; + const gchar *saved_cm_name; + + proto_name = tp_protocol_get_name (tp_protocol); + saved_cm_name = g_hash_table_lookup (data->seen_protocols, proto_name); + + if (!tp_strdiff (cm_name, "haze") && saved_cm_name != NULL && + tp_strdiff (saved_cm_name, "haze")) + /* the CM we're adding is a haze implementation of something we already + * have; drop it. */ + continue; + + if (!tp_strdiff (cm_name, "haze") && + !tp_strdiff (proto_name, "irc")) + /* Use Idle for IRC (bgo #711226) */ + continue; + + if (!tp_strdiff (cm_name, "haze") && + !tp_strdiff (proto_name, "sip")) + /* Haze's SIP implementation is pretty useless (bgo #629736) */ + continue; + + if (!tp_strdiff (cm_name, "butterfly")) + /* Butterfly isn't supported any more */ + continue; + + if (tp_strdiff (cm_name, "haze") && !tp_strdiff (saved_cm_name, "haze")) + { + /* Let this CM replace the haze implementation */ + GList *existing = g_list_find_custom (data->protocols, proto_name, + (GCompareFunc) compare_protocol_to_name); + g_assert (existing); + g_object_unref (existing->data); + data->protocols = g_list_delete_link (data->protocols, existing); + } + + g_hash_table_replace (data->seen_protocols, + g_strdup (proto_name), g_strdup (cm_name)); + + display_name = tpaw_protocol_name_to_display_name (proto_name); + icon_name = tpaw_protocol_icon_name (proto_name); + + add_protocol (data, cm, proto_name, proto_name, display_name, + icon_name); + + if (!tp_strdiff (proto_name, "jabber") && + !tp_strdiff (cm_name, "gabble")) + { + add_protocol (data, cm, proto_name, "google-talk", + tpaw_service_name_to_display_name ("google-talk"), + "im-google-talk"); + } + + g_free (icon_name); + } + + g_list_free_full (protocols, g_object_unref); +} + +static gint +sort_protocol_value (const gchar *protocol_name) +{ + guint i; + const gchar *names[] = { + "jabber", + "local-xmpp", + "gtalk", + NULL + }; + + for (i = 0 ; names[i]; i++) + { + if (g_strcmp0 (protocol_name, names[i]) == 0) + return i; + } + + return i; +} + +static gint +protocol_sort_func (TpawProtocol *proto_a, + TpawProtocol *proto_b) +{ + const gchar *name_a = tpaw_protocol_get_protocol_name (proto_a); + const gchar *name_b = tpaw_protocol_get_protocol_name (proto_b); + gint cmp = 0; + + cmp = sort_protocol_value (name_a); + cmp -= sort_protocol_value (name_b); + if (cmp == 0) + { + cmp = g_strcmp0 (name_a, name_b); + /* only happens for jabber where there is one entry for gtalk and one for + * non-gtalk */ + if (cmp == 0) + { + const gchar *service = tpaw_protocol_get_service_name (proto_a); + + if (service != NULL) + cmp = 1; + else + cmp = -1; + } + } + + return cmp; +} + +static void +cms_prepare_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpawConnectionManagers *cms = TPAW_CONNECTION_MANAGERS (source); + GetProtocolsData *data = user_data; + GList *l = NULL; + GError *error = NULL; + + if (!tpaw_connection_managers_prepare_finish (cms, result, &error)) + { + g_simple_async_result_take_error (data->result, error); + goto out; + } + + for (l = tpaw_connection_managers_get_cms (cms); l != NULL; l = l->next) + add_cm (data, l->data); + + data->protocols = g_list_sort (data->protocols, + (GCompareFunc) protocol_sort_func); + +out: + g_simple_async_result_complete_in_idle (data->result); + g_object_unref (data->result); +} + +static void +destroy_get_protocols_data (GetProtocolsData *data) +{ + g_hash_table_unref (data->seen_protocols); + g_list_free_full (data->protocols, g_object_unref); + g_slice_free (GetProtocolsData, data); +} + +void +tpaw_protocol_get_all_async (GAsyncReadyCallback callback, + gpointer user_data) +{ + GetProtocolsData *data; + TpawConnectionManagers *cms; + + data = g_slice_new0 (GetProtocolsData); + data->result = g_simple_async_result_new (NULL, callback, user_data, + tpaw_protocol_get_all_async); + g_simple_async_result_set_op_res_gpointer (data->result, data, + (GDestroyNotify) destroy_get_protocols_data); + data->seen_protocols = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, g_free); + + cms = tpaw_connection_managers_dup_singleton (); + tpaw_connection_managers_prepare_async (cms, + cms_prepare_cb, data); + g_object_unref (cms); +} + +gboolean +tpaw_protocol_get_all_finish (GList **out_protocols, + GAsyncResult *result, + GError **error) +{ + GSimpleAsyncResult *simple = (GSimpleAsyncResult *) result; + GetProtocolsData *data; + + g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL, + tpaw_protocol_get_all_async), FALSE); + + if (g_simple_async_result_propagate_error (simple, error)) + return FALSE; + + if (out_protocols != NULL) + { + data = g_simple_async_result_get_op_res_gpointer (simple); + *out_protocols = g_list_copy_deep (data->protocols, (GCopyFunc) g_object_ref, NULL); + } + + return TRUE; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-protocol.h b/telepathy-account-widgets/tp-account-widgets/tpaw-protocol.h new file mode 100644 index 0000000..28b82e9 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-protocol.h @@ -0,0 +1,95 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */ +/* + * Copyright (C) 2007-2013 Collabora Ltd. + * Copyright (C) 2013 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + * Jonny Lamb + */ + +#ifndef __TPAW_PROTOCOL_H__ +#define __TPAW_PROTOCOL_H__ + +#include "tpaw-account-settings.h" + +G_BEGIN_DECLS + +#define TPAW_TYPE_PROTOCOL (tpaw_protocol_get_type ()) +#define TPAW_PROTOCOL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + TPAW_TYPE_PROTOCOL, TpawProtocol)) +#define TPAW_PROTOCOL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \ + TPAW_TYPE_PROTOCOL, TpawProtocolClass)) +#define TPAW_IS_PROTOCOL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + TPAW_TYPE_PROTOCOL)) +#define TPAW_IS_PROTOCOL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + TPAW_TYPE_PROTOCOL)) +#define TPAW_PROTOCOL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o),\ + TPAW_TYPE_PROTOCOL, TpawProtocolClass)) + +typedef struct _TpawProtocol TpawProtocol; +typedef struct _TpawProtocolPriv TpawProtocolPriv; +typedef struct _TpawProtocolClass TpawProtocolClass; + +struct _TpawProtocol +{ + GObject parent; + + /**/ + TpawProtocolPriv *priv; +}; + +struct _TpawProtocolClass +{ + GObjectClass parent_class; +}; + +GType tpaw_protocol_get_type (void) G_GNUC_CONST; + +TpawAccountSettings * tpaw_protocol_create_account_settings ( + TpawProtocol *self); + +TpConnectionManager * tpaw_protocol_get_cm ( + TpawProtocol *self); + +const gchar * tpaw_protocol_get_cm_name ( + TpawProtocol *self); + +const gchar * tpaw_protocol_get_protocol_name ( + TpawProtocol *self); + +const gchar * tpaw_protocol_get_service_name ( + TpawProtocol *self); + +const gchar * tpaw_protocol_get_display_name ( + TpawProtocol *self); + +const gchar * tpaw_protocol_get_icon_name ( + TpawProtocol *self); + +void tpaw_protocol_get_all_async ( + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean tpaw_protocol_get_all_finish ( + GList **out_protocols, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* __TPAW_PROTOCOL_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-string-parser.c b/telepathy-account-widgets/tp-account-widgets/tpaw-string-parser.c new file mode 100644 index 0000000..9844c29 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-string-parser.c @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + */ + +#include "config.h" +#include "tpaw-string-parser.h" + +#include + +#include "tpaw-utils.h" + +#define SCHEMES "([a-zA-Z\\+]+)" +#define INVALID_CHARS "\\s\"<>" +#define INVALID_CHARS_EXT INVALID_CHARS "\\[\\](){},;:" +#define INVALID_CHARS_FULL INVALID_CHARS_EXT "?'" +#define BODY "([^"INVALID_CHARS_FULL"])([^"INVALID_CHARS_EXT"]*)" +#define BODY_END "([^"INVALID_CHARS"]*)[^"INVALID_CHARS_FULL".]" +#define URI_REGEX "("SCHEMES"://"BODY_END")" \ + "|((www|ftp)\\."BODY_END")" \ + "|((mailto:)?"BODY"@"BODY"\\."BODY_END")" + +static GRegex * +uri_regex_dup_singleton (void) +{ + static GRegex *uri_regex = NULL; + + /* We intentionally leak the regex so it's not recomputed */ + if (!uri_regex) + { + GError *error = NULL; + + uri_regex = g_regex_new (URI_REGEX, 0, 0, &error); + if (uri_regex == NULL) + { + g_warning ("Failed to create reg exp: %s", error->message); + g_error_free (error); + return NULL; + } + } + + return g_regex_ref (uri_regex); +} + +void +tpaw_string_parser_substr (const gchar *text, + gssize len, + TpawStringParser *parsers, + gpointer user_data) +{ + if (parsers != NULL && parsers[0].match_func != NULL) + { + parsers[0].match_func (text, len, + parsers[0].replace_func, parsers + 1, + user_data); + } +} + +void +tpaw_string_match_link (const gchar *text, + gssize len, + TpawStringReplace replace_func, + TpawStringParser *sub_parsers, + gpointer user_data) +{ + GRegex *uri_regex; + GMatchInfo *match_info; + gboolean match; + gint last = 0; + + uri_regex = uri_regex_dup_singleton (); + if (uri_regex == NULL) + { + tpaw_string_parser_substr (text, len, sub_parsers, user_data); + return; + } + + match = g_regex_match_full (uri_regex, text, len, 0, 0, &match_info, NULL); + if (match) + { + gint s = 0, e = 0; + + do + { + g_match_info_fetch_pos (match_info, 0, &s, &e); + + if (s > last) + { + /* Append the text between last link (or the + * start of the message) and this link */ + tpaw_string_parser_substr (text + last, + s - last, + sub_parsers, + user_data); + } + + replace_func (text + s, e - s, NULL, user_data); + + last = e; + } while (g_match_info_next (match_info, NULL)); + } + + tpaw_string_parser_substr (text + last, len - last, sub_parsers, user_data); + + g_match_info_free (match_info); + g_regex_unref (uri_regex); +} + +void +tpaw_string_match_all (const gchar *text, + gssize len, + TpawStringReplace replace_func, + TpawStringParser *sub_parsers, + gpointer user_data) +{ + replace_func (text, len, NULL, user_data); +} + +void +tpaw_string_replace_link (const gchar *text, + gssize len, + gpointer match_data, + gpointer user_data) +{ + GString *string = user_data; + gchar *real_url; + gchar *title; + gchar *markup; + + real_url = tpaw_make_absolute_url_len (text, len); + + /* Need to copy manually, because g_markup_printf_escaped does not work + * with string precision pitfalls. */ + title = g_strndup (text, len); + + /* Append the link inside tag */ + markup = g_markup_printf_escaped ("%s", real_url, title); + + g_string_append (string, markup); + + g_free (real_url); + g_free (title); + g_free (markup); +} + +void +tpaw_string_replace_escaped (const gchar *text, + gssize len, + gpointer match_data, + gpointer user_data) +{ + GString *string = user_data; + gchar *escaped; + guint i; + gsize escaped_len, old_len; + + escaped = g_markup_escape_text (text, len); + escaped_len = strlen (escaped); + + /* Allocate more space to string (we really need a g_string_extend...) */ + old_len = string->len; + g_string_set_size (string, old_len + escaped_len); + g_string_truncate (string, old_len); + + /* Remove '\r' */ + for (i = 0; i < escaped_len; i++) + { + if (escaped[i] != '\r') + g_string_append_c (string, escaped[i]); + } + + g_free (escaped); +} + +gchar * +tpaw_add_link_markup (const gchar *text) +{ + TpawStringParser parsers[] = { + {tpaw_string_match_link, tpaw_string_replace_link}, + {tpaw_string_match_all, tpaw_string_replace_escaped}, + {NULL, NULL}}; + GString *string; + + g_return_val_if_fail (text != NULL, NULL); + + string = g_string_sized_new (strlen (text)); + tpaw_string_parser_substr (text, -1, parsers, string); + + return g_string_free (string, FALSE); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-string-parser.h b/telepathy-account-widgets/tp-account-widgets/tpaw-string-parser.h new file mode 100644 index 0000000..51556de --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-string-parser.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2010 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Xavier Claessens + */ + +#ifndef __TPAW_STRING_PARSER_H__ +#define __TPAW_STRING_PARSER_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _TpawStringParser TpawStringParser; + +typedef void (*TpawStringReplace) ( + const gchar *text, + gssize len, + gpointer match_data, + gpointer user_data); +typedef void (*TpawStringMatch) ( + const gchar *text, + gssize len, + TpawStringReplace replace_func, + TpawStringParser *sub_parsers, + gpointer user_data); + +struct _TpawStringParser +{ + TpawStringMatch match_func; + TpawStringReplace replace_func; +}; + +void +tpaw_string_parser_substr ( + const gchar *text, + gssize len, + TpawStringParser *parsers, + gpointer user_data); + +void +tpaw_string_match_link ( + const gchar *text, + gssize len, + TpawStringReplace replace_func, + TpawStringParser *sub_parsers, + gpointer user_data); + +void +tpaw_string_match_all ( + const gchar *text, + gssize len, + TpawStringReplace replace_func, + TpawStringParser *sub_parsers, + gpointer user_data); + +/* Replace functions assume user_data is a GString */ +void +tpaw_string_replace_link ( + const gchar *text, + gssize len, + gpointer match_data, + gpointer user_data); + +void +tpaw_string_replace_escaped ( + const gchar *text, + gssize len, + gpointer match_data, + gpointer user_data); + +/* Returns a new string with html tag around links, and escape the rest. + * To be used with gtk_label_set_markup() for example */ +gchar * +tpaw_add_link_markup ( + const gchar *text); + +G_END_DECLS + +#endif /* __TPAW_STRING_PARSER_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-time.c b/telepathy-account-widgets/tp-account-widgets/tpaw-time.c new file mode 100644 index 0000000..d169fcb --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-time.c @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2003-2007 Imendio AB + * Copyright (C) 2007-2012 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Richard Hult + */ + +#include "config.h" +#include "tpaw-time.h" + +#include + +/* Note: TpawTime is always in UTC. */ + +gint64 +tpaw_time_get_current (void) +{ + GDateTime *now; + gint64 result; + + now = g_date_time_new_now_utc (); + result = g_date_time_to_unix (now); + g_date_time_unref (now); + + return result; +} + +/* Converts the UTC timestamp to a string, also in UTC. + * Returns NULL on failure. */ +gchar * +tpaw_time_to_string_utc (gint64 t, + const gchar *format) +{ + GDateTime *d; + char *result; + + g_return_val_if_fail (format != NULL, NULL); + + d = g_date_time_new_from_unix_utc (t); + result = g_date_time_format (d, format); + g_date_time_unref (d); + + return result; +} + +/* Converts the UTC timestamp to a string, in local time. + * Returns NULL on failure. */ +gchar * +tpaw_time_to_string_local (gint64 t, + const gchar *format) +{ + GDateTime *d, *local; + gchar *result; + + g_return_val_if_fail (format != NULL, NULL); + + d = g_date_time_new_from_unix_utc (t); + local = g_date_time_to_local (d); + g_date_time_unref (d); + + result = g_date_time_format (local, format); + g_date_time_unref (local); + + return result; +} + +gchar * +tpaw_duration_to_string (guint seconds) +{ + if (seconds < 60) + { + return g_strdup_printf (ngettext ("%d second ago", + "%d seconds ago", seconds), seconds); + } + else if (seconds < (60 * 60)) + { + seconds /= 60; + return g_strdup_printf (ngettext ("%d minute ago", + "%d minutes ago", seconds), seconds); + } + else if (seconds < (60 * 60 * 24)) + { + seconds /= 60 * 60; + return g_strdup_printf (ngettext ("%d hour ago", + "%d hours ago", seconds), seconds); + } + else if (seconds < (60 * 60 * 24 * 7)) + { + seconds /= 60 * 60 * 24; + return g_strdup_printf (ngettext ("%d day ago", + "%d days ago", seconds), seconds); + } + else if (seconds < (60 * 60 * 24 * 30)) + { + seconds /= 60 * 60 * 24 * 7; + return g_strdup_printf (ngettext ("%d week ago", + "%d weeks ago", seconds), seconds); + } + else + { + seconds /= 60 * 60 * 24 * 30; + return g_strdup_printf (ngettext ("%d month ago", + "%d months ago", seconds), seconds); + } +} + +gchar * +tpaw_time_to_string_relative (gint64 t) +{ + GDateTime *now, *then; + gint seconds; + GTimeSpan delta; + gchar *result; + + now = g_date_time_new_now_utc (); + then = g_date_time_new_from_unix_utc (t); + + delta = g_date_time_difference (now, then); + seconds = delta / G_TIME_SPAN_SECOND; + + if (seconds > 0) + result = tpaw_duration_to_string (seconds); + else + result = g_strdup (_("in the future")); + + g_date_time_unref (now); + g_date_time_unref (then); + + return result; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-time.h b/telepathy-account-widgets/tp-account-widgets/tpaw-time.h new file mode 100644 index 0000000..2277483 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-time.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2004 Imendio AB + * Copyright (C) 2007-2012 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_TIME_H__ +#define __TPAW_TIME_H__ + +#ifndef __USE_XOPEN +#define __USE_XOPEN +#endif +#include +#include + +G_BEGIN_DECLS + +/* FIXME: ideally we should only display the hour and minutes but + * there is no localized format for that (bgo #668323) */ +#define TPAW_TIME_FORMAT_DISPLAY_SHORT "%X" +#define TPAW_DATE_FORMAT_DISPLAY_SHORT "%a %d %b %Y" +#define TPAW_TIME_DATE_FORMAT_DISPLAY_SHORT "%a %d %b %Y, %X" + +gint64 tpaw_time_get_current (void); +gchar *tpaw_time_to_string_utc (gint64 t, + const gchar *format); +gchar *tpaw_time_to_string_local (gint64 t, + const gchar *format); +gchar *tpaw_time_to_string_relative (gint64 t); +gchar *tpaw_duration_to_string (guint seconds); + +G_END_DECLS + +#endif /* __TPAW_TIME_H__ */ + diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-uoa-utils.c b/telepathy-account-widgets/tp-account-widgets/tpaw-uoa-utils.c new file mode 100644 index 0000000..46c627a --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-uoa-utils.c @@ -0,0 +1,49 @@ +/* + * tpaw-uoa-utils.c - Source for UOA utilities + * Copyright (C) 2012 Collabora Ltd. + * @author Xavier Claessens + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-uoa-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_ACCOUNT +#include "tpaw-debug.h" + +static AgManager *singleton = NULL; + +void +tpaw_uoa_manager_set_default (AgManager *manager) +{ + if (singleton != NULL) + return; + + singleton = manager; + g_object_add_weak_pointer ((GObject *) singleton, (gpointer) &singleton); +} + +AgManager * +tpaw_uoa_manager_dup (void) +{ + if (singleton != NULL) + return g_object_ref (singleton); + + singleton = ag_manager_new_for_service_type (TPAW_UOA_SERVICE_TYPE); + g_object_add_weak_pointer ((GObject *) singleton, (gpointer) &singleton); + + return singleton; +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-uoa-utils.h b/telepathy-account-widgets/tp-account-widgets/tpaw-uoa-utils.h new file mode 100644 index 0000000..3529e1a --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-uoa-utils.h @@ -0,0 +1,35 @@ +/* + * tpaw-utils.h - Header for UOA utilities + * Copyright (C) 2012 Collabora Ltd. + * @author Xavier Claessens + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_UOA_UTILS_H__ +#define __TPAW_UOA_UTILS_H__ + +#include + +#define TPAW_UOA_SERVICE_TYPE "IM" + +G_BEGIN_DECLS + +void tpaw_uoa_manager_set_default (AgManager *manager); +AgManager *tpaw_uoa_manager_dup (void); + +G_END_DECLS + +#endif /* #ifndef __TPAW_UOA_UTILS_H__*/ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-user-info.c b/telepathy-account-widgets/tp-account-widgets/tpaw-user-info.c new file mode 100644 index 0000000..bfb177e --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-user-info.c @@ -0,0 +1,830 @@ +/* + * tpaw-user-info.c - Source for TpawUserInfo + * + * Copyright (C) 2012 - Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with This library. If not, see . + */ + +#include "config.h" +#include "tpaw-user-info.h" + +#include +#include + +#include "tpaw-avatar-chooser.h" +#include "tpaw-calendar-button.h" +#include "tpaw-contactinfo-utils.h" +#include "tpaw-time.h" +#include "tpaw-utils.h" + +#define DEBUG_FLAG TPAW_DEBUG_CONTACT +#include "tpaw-debug.h" + +G_DEFINE_TYPE (TpawUserInfo, tpaw_user_info, GTK_TYPE_GRID) + +struct _TpawUserInfoPrivate +{ + TpAccount *account; + + GtkWidget *avatar_chooser; + GtkWidget *identifier_label; + GtkWidget *nickname_entry; + GtkWidget *details_label; + GtkWidget *details_spinner; + + GList *details_to_set; + gboolean details_changed; + GCancellable *details_cancellable; + + gboolean tried_preparing_contact_info; +}; + +enum +{ + PROP_0, + PROP_ACCOUNT, +}; + +#define DATA_FIELD "contact-info-field" +#define DATA_IS_CONTACT_INFO "is-contact-info" + +static void reload_contact_info (TpawUserInfo *self); + +static void +contact_info_changed_cb (GtkEntry *entry, + TpawUserInfo *self) +{ + const gchar *strv[] = { NULL, NULL }; + TpContactInfoField *field; + + self->priv->details_changed = TRUE; + + field = g_object_get_data ((GObject *) entry, DATA_FIELD); + g_assert (field != NULL); + + strv[0] = gtk_entry_get_text (entry); + + if (field->field_value != NULL) + g_strfreev (field->field_value); + field->field_value = g_strdupv ((GStrv) strv); +} + +static void +bday_changed_cb (TpawCalendarButton *button, + GDate *date, + TpawUserInfo *self) +{ + const gchar *strv[] = { NULL, NULL }; + TpContactInfoField *field; + + self->priv->details_changed = TRUE; + + field = g_object_get_data ((GObject *) button, DATA_FIELD); + g_assert (field != NULL); + + if (date != NULL) + { + gchar tmp[255]; + + g_date_strftime (tmp, sizeof (tmp), TPAW_DATE_FORMAT_DISPLAY_SHORT, + date); + strv[0] = tmp; + } + + if (field->field_value != NULL) + g_strfreev (field->field_value); + field->field_value = g_strdupv ((GStrv) strv); +} + +static gboolean +field_name_in_field_list (GList *list, + const gchar *name) +{ + GList *l; + + for (l = list; l != NULL; l = g_list_next (l)) + { + TpContactInfoField *field = l->data; + + if (!tp_strdiff (field->field_name, name)) + return TRUE; + } + + return FALSE; +} + +static TpContactInfoFieldSpec * +get_spec_from_list (GList *list, + const gchar *name) +{ + GList *l; + + for (l = list; l != NULL; l = g_list_next (l)) + { + TpContactInfoFieldSpec *spec = l->data; + + if (!tp_strdiff (spec->name, name)) + return spec; + } + + return NULL; +} + +static void +add_row (GtkGrid *grid, + GtkWidget *title, + GtkWidget *value, + gboolean contact_info) +{ + /* Title */ + gtk_grid_attach_next_to (grid, title, NULL, GTK_POS_BOTTOM, 1, 1); + gtk_misc_set_alignment (GTK_MISC (title), 1, 0.5); + gtk_style_context_add_class (gtk_widget_get_style_context (title), + GTK_STYLE_CLASS_DIM_LABEL); + gtk_widget_show (title); + + /* Value */ + gtk_grid_attach_next_to (grid, value, title, GTK_POS_RIGHT, + contact_info ? 2 : 1, 1); + gtk_widget_set_hexpand (value, TRUE); + if (GTK_IS_LABEL (value)) + { + gtk_misc_set_alignment (GTK_MISC (value), 0, 0.5); + gtk_label_set_selectable (GTK_LABEL (value), TRUE); + } + gtk_widget_show (value); + + if (contact_info) + { + g_object_set_data (G_OBJECT (title), + DATA_IS_CONTACT_INFO, (gpointer) TRUE); + g_object_set_data (G_OBJECT (value), + DATA_IS_CONTACT_INFO, (gpointer) TRUE); + } +} + +static guint +fill_contact_info_grid (TpawUserInfo *self) +{ + TpConnection *connection; + TpContact *contact; + GList *specs, *l; + guint n_rows = 0; + GList *info; + const char **field_names = tpaw_contact_info_get_field_names (NULL); + guint i; + + g_assert (self->priv->details_to_set == NULL); + + connection = tp_account_get_connection (self->priv->account); + contact = tp_connection_get_self_contact (connection); + specs = tp_connection_dup_contact_info_supported_fields (connection); + info = tp_contact_dup_contact_info (contact); + + /* Look at the fields set in our vCard */ + for (l = info; l != NULL; l = l->next) + { + TpContactInfoField *field = l->data; + + /* For some reason it can happen that the vCard contains fields the CM + * claims to be not supported. This is a workaround for gabble bug + * https://bugs.freedesktop.org/show_bug.cgi?id=64319. But we shouldn't + * crash on buggy CM anyway. */ + if (get_spec_from_list (specs, field->field_name) == NULL) + { + DEBUG ("Buggy CM: self's vCard contains %s field but it is not in " + "Connection' supported fields", field->field_name); + continue; + } + + /* make a copy for the details_to_set list */ + field = tp_contact_info_field_copy (field); + DEBUG ("Field %s is in our vCard", field->field_name); + + self->priv->details_to_set = g_list_prepend (self->priv->details_to_set, + field); + } + + /* Add fields which are supported but not in the vCard */ + for (i = 0; field_names[i] != NULL; i++) + { + TpContactInfoFieldSpec *spec; + TpContactInfoField *field; + + /* Check if the field was in the vCard */ + if (field_name_in_field_list (self->priv->details_to_set, + field_names[i])) + continue; + + /* Check if the CM supports the field */ + spec = get_spec_from_list (specs, field_names[i]); + if (spec == NULL) + continue; + + /* add an empty field so user can set a value */ + field = tp_contact_info_field_new (spec->name, spec->parameters, NULL); + + self->priv->details_to_set = g_list_prepend (self->priv->details_to_set, + field); + } + + /* Add widgets for supported fields */ + self->priv->details_to_set = g_list_sort (self->priv->details_to_set, + (GCompareFunc) tpaw_contact_info_field_spec_cmp); + + for (l = self->priv->details_to_set; l != NULL; l= g_list_next (l)) + { + TpContactInfoField *field = l->data; + GtkWidget *label, *w; + TpContactInfoFieldSpec *spec; + gboolean has_field; + char *title; + + has_field = tpaw_contact_info_lookup_field (field->field_name, + NULL, NULL); + if (!has_field) + { + /* We don't display this field so we can't change it. + * But we put it in the details_to_set list so it won't be erased + * when calling SetContactInfo (bgo #630427) */ + DEBUG ("Unhandled ContactInfo field spec: %s", field->field_name); + continue; + } + + spec = get_spec_from_list (specs, field->field_name); + /* We shouldn't have added the field to details_to_set if it's not + * supported by the CM */ + g_assert (spec != NULL); + + if (spec->flags & TP_CONTACT_INFO_FIELD_FLAG_OVERWRITTEN_BY_NICKNAME) + { + DEBUG ("Ignoring field '%s' due it to having the " + "Overwritten_By_Nickname flag", field->field_name); + continue; + } + + /* Add Title */ + title = tpaw_contact_info_field_label (field->field_name, + field->parameters, + (spec->flags & TP_CONTACT_INFO_FIELD_FLAG_PARAMETERS_EXACT)); + label = gtk_label_new (title); + g_free (title); + + /* TODO: if TP_CONTACT_INFO_FIELD_FLAG_PARAMETERS_EXACT is not set we + * should allow user to tag the vCard fields (bgo#672034) */ + + /* Add Value */ + if (!tp_strdiff (field->field_name, "bday")) + { + w = tpaw_calendar_button_new (); + + if (field->field_value[0]) + { + GDate date; + + g_date_set_parse (&date, field->field_value[0]); + if (g_date_valid (&date)) + { + tpaw_calendar_button_set_date (TPAW_CALENDAR_BUTTON (w), + &date); + } + } + + g_signal_connect (w, "date-changed", + G_CALLBACK (bday_changed_cb), self); + } + else + { + w = gtk_entry_new (); + gtk_entry_set_text (GTK_ENTRY (w), + field->field_value[0] ? field->field_value[0] : ""); + g_signal_connect (w, "changed", + G_CALLBACK (contact_info_changed_cb), self); + } + + add_row (GTK_GRID (self), label, w, TRUE); + + g_object_set_data ((GObject *) w, DATA_FIELD, field); + + n_rows++; + } + + tp_contact_info_spec_list_free (specs); + tp_contact_info_list_free (info); + + return n_rows; +} + +static void +grid_foreach_cb (GtkWidget *widget, + gpointer data) +{ + if (g_object_get_data (G_OBJECT (widget), DATA_IS_CONTACT_INFO) != NULL) + gtk_widget_destroy (widget); +} + +static void +request_contact_info_cb (GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + TpawUserInfo *self = user_data; + TpContact *contact = TP_CONTACT (object); + guint n_rows; + GError *error = NULL; + + if (!tp_contact_request_contact_info_finish (contact, res, &error)) + { + /* If the request got cancelled it could mean the contact widget is + * destroyed, so we should not dereference self */ + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + { + g_clear_error (&error); + return; + } + g_clear_error (&error); + } + + n_rows = fill_contact_info_grid (self); + + gtk_widget_set_visible (self->priv->details_label, n_rows > 0); + gtk_spinner_stop (GTK_SPINNER (self->priv->details_spinner)); + gtk_widget_hide (self->priv->details_spinner); +} + +static void +connection_contact_info_prepared_cb (GObject *object, + GAsyncResult *res, + gpointer user_data) +{ + TpawUserInfo *self = user_data; + + if (!tp_proxy_prepare_finish (object, res, NULL)) + return; + + reload_contact_info (self); + + g_object_unref (self); +} + +static void +reload_contact_info (TpawUserInfo *self) +{ + TpConnection *connection; + TpContact *contact = NULL; + TpContactInfoFlags flags; + + /* Cancel previous RequestContactInfo, if any */ + if (self->priv->details_cancellable != NULL) + g_cancellable_cancel (self->priv->details_cancellable); + g_clear_object (&self->priv->details_cancellable); + + /* Remove current contact info widgets, if any */ + gtk_container_foreach (GTK_CONTAINER (self), grid_foreach_cb, NULL); + gtk_widget_hide (self->priv->details_label); + gtk_widget_hide (self->priv->details_spinner); + + tp_clear_pointer (&self->priv->details_to_set, tp_contact_info_list_free); + self->priv->details_changed = FALSE; + + connection = tp_account_get_connection (self->priv->account); + if (connection != NULL) + { + contact = tp_connection_get_self_contact (connection); + + /* FIXME: we should rely on the factory to do this, see bgo#706892 */ + if (!tp_proxy_is_prepared (connection, + TP_CONNECTION_FEATURE_CONTACT_INFO) && + !self->priv->tried_preparing_contact_info) + { + GQuark features[] = { TP_CONNECTION_FEATURE_CONTACT_INFO, 0 }; + + /* Prevent an infinite loop if the connection doesn't implement + * ContactInfo, see bgo#709677 */ + self->priv->tried_preparing_contact_info = TRUE; + + tp_proxy_prepare_async (connection, features, + connection_contact_info_prepared_cb, g_object_ref (self)); + } + } + + /* Display infobar if we don't have a self contact (probably offline) */ + if (contact == NULL) + { + GtkWidget *infobar; + GtkWidget *content; + GtkWidget *label; + + infobar = gtk_info_bar_new (); + gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_INFO); + content = gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar)); + label = gtk_label_new (_("Go online to edit your personal information.")); + gtk_container_add (GTK_CONTAINER (content), label); + gtk_widget_show (label); + + gtk_grid_attach_next_to ((GtkGrid *) self, infobar, + NULL, GTK_POS_BOTTOM, 3, 1); + gtk_widget_show (infobar); + + g_object_set_data (G_OBJECT (infobar), + DATA_IS_CONTACT_INFO, (gpointer) TRUE); + return; + } + + if (!tp_proxy_has_interface_by_id (connection, + TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_INFO)) + return; + + flags = tp_connection_get_contact_info_flags (connection); + if ((flags & TP_CONTACT_INFO_FLAG_CAN_SET) == 0) + return; + + /* Request the contact's info */ + gtk_widget_show (self->priv->details_spinner); + gtk_spinner_start (GTK_SPINNER (self->priv->details_spinner)); + + g_assert (self->priv->details_cancellable == NULL); + self->priv->details_cancellable = g_cancellable_new (); + tp_contact_request_contact_info_async (contact, + self->priv->details_cancellable, request_contact_info_cb, + self); +} + +static void +connection_notify_cb (TpawUserInfo *self) +{ + TpConnection *connection = tp_account_get_connection (self->priv->account); + + if (connection != NULL) + { + tp_g_signal_connect_object (connection, "notify::self-contact", + G_CALLBACK (reload_contact_info), self, G_CONNECT_SWAPPED); + } + + reload_contact_info (self); +} + +static void +identifier_notify_cb (TpAccount *account, + GParamSpec *param_spec, + TpawUserInfo *self) +{ + gtk_label_set_label (GTK_LABEL (self->priv->identifier_label), + tp_account_get_normalized_name (self->priv->account)); +} + +static void +nickname_notify_cb (TpAccount *account, + GParamSpec *param_spec, + TpawUserInfo *self) +{ + gtk_entry_set_text (GTK_ENTRY (self->priv->nickname_entry), + tp_account_get_nickname (self->priv->account)); +} + +static void +tpaw_user_info_constructed (GObject *object) +{ + TpawUserInfo *self = (TpawUserInfo *) object; + GtkGrid *grid = (GtkGrid *) self; + GtkWidget *infobar; + GtkWidget *infobar_content; + GtkWidget *infobar_label; + GtkWidget *title; + + G_OBJECT_CLASS (tpaw_user_info_parent_class)->constructed (object); + + gtk_grid_set_column_spacing (grid, 6); + gtk_grid_set_row_spacing (grid, 6); + + infobar = gtk_info_bar_new (); + g_object_set (infobar, "margin-bottom", 6, NULL); + gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_INFO); + infobar_content = gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar)); + infobar_label = gtk_label_new ( + _("These details will be shared with other users on this " + "chat network.")); + gtk_container_add (GTK_CONTAINER (infobar_content), infobar_label); + gtk_widget_show (infobar_label); + gtk_grid_attach_next_to ((GtkGrid *) self, infobar, NULL, + GTK_POS_TOP, 3, 1); + gtk_widget_show (infobar); + + /* Setup id label */ + title = gtk_label_new (_("Identifier")); + self->priv->identifier_label = gtk_label_new ( + tp_account_get_normalized_name (self->priv->account)); + add_row (grid, title, self->priv->identifier_label, FALSE); + g_signal_connect_object (self->priv->account, "notify::normalized-name", + G_CALLBACK (identifier_notify_cb), self, 0); + + /* Setup nickname entry */ + title = gtk_label_new (_("Alias")); + self->priv->nickname_entry = gtk_entry_new (); + gtk_entry_set_text (GTK_ENTRY (self->priv->nickname_entry), + tp_account_get_nickname (self->priv->account)); + add_row (grid, title, self->priv->nickname_entry, FALSE); + g_signal_connect_object (self->priv->account, "notify::nickname", + G_CALLBACK (nickname_notify_cb), self, 0); + + /* Set up avatar chooser */ + self->priv->avatar_chooser = tpaw_avatar_chooser_new (self->priv->account, + -1); + gtk_grid_attach (grid, self->priv->avatar_chooser, + 2, 0, 1, 3); + gtk_widget_show (self->priv->avatar_chooser); + + /* Details label */ + self->priv->details_label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (self->priv->details_label), + _("Personal Details")); + gtk_misc_set_alignment (GTK_MISC (self->priv->details_label), 0, 0.5); + gtk_grid_attach_next_to (grid, self->priv->details_label, NULL, + GTK_POS_BOTTOM, 3, 1); + + /* Details spinner */ + self->priv->details_spinner = gtk_spinner_new (); + gtk_widget_set_hexpand (self->priv->details_spinner, TRUE); + gtk_widget_set_vexpand (self->priv->details_spinner, TRUE); + gtk_grid_attach_next_to (grid, self->priv->details_spinner, NULL, + GTK_POS_BOTTOM, 3, 1); + + g_signal_connect_swapped (self->priv->account, "notify::connection", + G_CALLBACK (connection_notify_cb), self); + connection_notify_cb (self); +} + +static void +tpaw_user_info_dispose (GObject *object) +{ + TpawUserInfo *self = (TpawUserInfo *) object; + + if (self->priv->account != NULL) + { + /* Disconnect the signal manually, because TpAccount::dispose will emit + * "notify::connection" signal before tp_g_signal_connect_object() had + * a chance to disconnect. */ + g_signal_handlers_disconnect_by_func (self->priv->account, + connection_notify_cb, self); + g_clear_object (&self->priv->account); + } + + if (self->priv->details_cancellable != NULL) + g_cancellable_cancel (self->priv->details_cancellable); + g_clear_object (&self->priv->details_cancellable); + + G_OBJECT_CLASS (tpaw_user_info_parent_class)->dispose (object); +} + +static void +tpaw_user_info_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + TpawUserInfo *self = (TpawUserInfo *) object; + + switch (property_id) + { + case PROP_ACCOUNT: + g_value_set_object (value, self->priv->account); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +tpaw_user_info_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + TpawUserInfo *self = (TpawUserInfo *) object; + + switch (property_id) + { + case PROP_ACCOUNT: + g_assert (self->priv->account == NULL); /* construct-only */ + self->priv->account = g_value_dup_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +tpaw_user_info_init (TpawUserInfo *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, + TPAW_TYPE_USER_INFO, TpawUserInfoPrivate); +} + +static void +tpaw_user_info_class_init (TpawUserInfoClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GParamSpec *param_spec; + + object_class->constructed = tpaw_user_info_constructed; + object_class->dispose = tpaw_user_info_dispose; + object_class->get_property = tpaw_user_info_get_property; + object_class->set_property = tpaw_user_info_set_property; + + g_type_class_add_private (object_class, sizeof (TpawUserInfoPrivate)); + + param_spec = g_param_spec_object ("account", + "account", + "The #TpAccount on which user info should be edited", + TP_TYPE_ACCOUNT, + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (object_class, PROP_ACCOUNT, param_spec); +} + +GtkWidget * +tpaw_user_info_new (TpAccount *account) +{ + g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL); + + return g_object_new (TPAW_TYPE_USER_INFO, + "account", account, + NULL); +} + +void +tpaw_user_info_discard (TpawUserInfo *self) +{ + g_return_if_fail (TPAW_IS_USER_INFO (self)); + + reload_contact_info (self); + gtk_entry_set_text ((GtkEntry *) self->priv->nickname_entry, + tp_account_get_nickname (self->priv->account)); +} + +static void +apply_complete_one (GSimpleAsyncResult *result) +{ + guint count; + + count = g_simple_async_result_get_op_res_gssize (result); + count--; + g_simple_async_result_set_op_res_gssize (result, count); + + if (count == 0) + g_simple_async_result_complete (result); +} + +static void +avatar_chooser_apply_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpawAvatarChooser *avatar_chooser = (TpawAvatarChooser *) source; + GSimpleAsyncResult *my_result = user_data; + GError *error = NULL; + + if (!tpaw_avatar_chooser_apply_finish (avatar_chooser, result, &error)) + g_simple_async_result_take_error (my_result, error); + + apply_complete_one (my_result); + g_object_unref (my_result); +} + +static void +set_nickname_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpAccount *account = (TpAccount *) source; + GSimpleAsyncResult *my_result = user_data; + GError *error = NULL; + + if (!tp_account_set_nickname_finish (account, result, &error)) + g_simple_async_result_take_error (my_result, error); + + apply_complete_one (my_result); + g_object_unref (my_result); +} + +static void +set_contact_info_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + TpConnection *connection = (TpConnection *) source; + GSimpleAsyncResult *my_result = user_data; + GError *error = NULL; + + if (!tp_connection_set_contact_info_finish (connection, result, &error)) + g_simple_async_result_take_error (my_result, error); + + apply_complete_one (my_result); + g_object_unref (my_result); +} + +static gboolean +field_value_is_empty (TpContactInfoField *field) +{ + guint i; + + if (field->field_value == NULL) + return TRUE; + + /* Field is empty if all its values are empty */ + for (i = 0; field->field_value[i] != NULL; i++) + { + if (!tp_str_empty (field->field_value[i])) + return FALSE; + } + + return TRUE; +} + +void +tpaw_user_info_apply_async (TpawUserInfo *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *result; + const gchar *new_nickname; + guint count = 0; + GList *l, *next; + + g_return_if_fail (TPAW_IS_USER_INFO (self)); + + result = g_simple_async_result_new ((GObject *) self, callback, user_data, + tpaw_user_info_apply_async); + + /* Apply avatar */ + tpaw_avatar_chooser_apply_async ( + (TpawAvatarChooser *) self->priv->avatar_chooser, + avatar_chooser_apply_cb, g_object_ref (result)); + count++; + + /* Apply nickname */ + new_nickname = gtk_entry_get_text (GTK_ENTRY (self->priv->nickname_entry)); + if (tp_strdiff (new_nickname, tp_account_get_nickname (self->priv->account))) + { + tp_account_set_nickname_async (self->priv->account, new_nickname, + set_nickname_cb, g_object_ref (result)); + count++; + } + + /* Remove empty fields */ + for (l = self->priv->details_to_set; l != NULL; l = next) + { + TpContactInfoField *field = l->data; + + next = l->next; + if (field_value_is_empty (field)) + { + DEBUG ("Drop empty field: %s", field->field_name); + tp_contact_info_field_free (field); + self->priv->details_to_set = + g_list_delete_link (self->priv->details_to_set, l); + } + } + + if (self->priv->details_to_set != NULL) + { + if (self->priv->details_changed) + { + tp_connection_set_contact_info_async ( + tp_account_get_connection (self->priv->account), + self->priv->details_to_set, set_contact_info_cb, + g_object_ref (result)); + count++; + } + + tp_contact_info_list_free (self->priv->details_to_set); + self->priv->details_to_set = NULL; + } + + self->priv->details_changed = FALSE; + + g_simple_async_result_set_op_res_gssize (result, count); + + g_object_unref (result); +} + +gboolean +tpaw_user_info_apply_finish (TpawUserInfo *self, + GAsyncResult *result, + GError **error) +{ + tpaw_implement_finish_void (self, tpaw_user_info_apply_async); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-user-info.h b/telepathy-account-widgets/tp-account-widgets/tpaw-user-info.h new file mode 100644 index 0000000..4548849 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-user-info.h @@ -0,0 +1,74 @@ +/* + * tpaw-user-info.h - Header for TpawUserInfo + * + * Copyright (C) 2012 - Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with This library. If not, see . + */ + +#ifndef __TPAW_USER_INFO_H__ +#define __TPAW_USER_INFO_H__ + +#include +#include + +G_BEGIN_DECLS + +#define TPAW_TYPE_USER_INFO \ + (tpaw_user_info_get_type ()) +#define TPAW_USER_INFO(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), TPAW_TYPE_USER_INFO, \ + TpawUserInfo)) +#define TPAW_USER_INFO_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), TPAW_TYPE_USER_INFO, \ + TpawUserInfoClass)) +#define TPAW_IS_USER_INFO(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TPAW_TYPE_USER_INFO)) +#define TPAW_IS_USER_INFO_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), TPAW_TYPE_USER_INFO)) +#define TPAW_USER_INFO_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), TPAW_TYPE_USER_INFO, \ + TpawUserInfoClass)) + +typedef struct _TpawUserInfo TpawUserInfo; +typedef struct _TpawUserInfoClass TpawUserInfoClass; +typedef struct _TpawUserInfoPrivate TpawUserInfoPrivate; + +struct _TpawUserInfo { + GtkGrid parent; + + TpawUserInfoPrivate *priv; +}; + +struct _TpawUserInfoClass { + GtkGridClass parent_class; +}; + +GType tpaw_user_info_get_type (void) G_GNUC_CONST; + +GtkWidget *tpaw_user_info_new (TpAccount *account); + +void tpaw_user_info_discard (TpawUserInfo *self); + +void tpaw_user_info_apply_async (TpawUserInfo *self, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean tpaw_user_info_apply_finish (TpawUserInfo *self, + GAsyncResult *result, + GError **error); + + +G_END_DECLS + +#endif /* __TPAW_USER_INFO_H__ */ diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-utils.c b/telepathy-account-widgets/tp-account-widgets/tpaw-utils.c new file mode 100644 index 0000000..cd41f0a --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-utils.c @@ -0,0 +1,315 @@ +/* + * Copyright (C) 2007-2013 Collabora Ltd. + * Copyright (C) 2005-2006 Imendio AB + * Copyright (C) 2006 Xavier Claessens + * Copyright (C) 2009 Steve Frécinaux + * + * Authors: Marco Barisione + * Guillaume Desmottes + * Sjoerd Simons + * Xavier Claessens + * Mikael Hallendal + * Richard Hult + * Martyn Russell + * Steve Frécinaux + * Emanuele Aina + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "tpaw-utils.h" + +#include +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#define DEBUG_FLAG TPAW_DEBUG_OTHER +#include "tpaw-debug.h" + +#define TPAW_RECT_IS_ON_SCREEN(x,y,w,h) ((x) + (w) > 0 && \ + (y) + (h) > 0 && \ + (x) < gdk_screen_width () && \ + (y) < gdk_screen_height ()) + +/* Change the RequestedPresence of a newly created account to ensure that it + * is actually connected. */ +void +tpaw_connect_new_account (TpAccount *account, + TpAccountManager *account_manager) +{ + TpConnectionPresenceType presence; + gchar *status, *message; + + /* only force presence if presence was offline, unknown or unset */ + presence = tp_account_get_requested_presence (account, NULL, NULL); + switch (presence) + { + case TP_CONNECTION_PRESENCE_TYPE_OFFLINE: + case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN: + case TP_CONNECTION_PRESENCE_TYPE_UNSET: + presence = tp_account_manager_get_most_available_presence ( + account_manager, &status, &message); + + if (presence == TP_CONNECTION_PRESENCE_TYPE_OFFLINE) + /* Global presence is offline; we force it so user doesn't have to + * manually change the presence to connect his new account. */ + presence = TP_CONNECTION_PRESENCE_TYPE_AVAILABLE; + + tp_account_request_presence_async (account, presence, + status, NULL, NULL, NULL); + + g_free (status); + g_free (message); + break; + + case TP_CONNECTION_PRESENCE_TYPE_AVAILABLE: + case TP_CONNECTION_PRESENCE_TYPE_AWAY: + case TP_CONNECTION_PRESENCE_TYPE_EXTENDED_AWAY: + case TP_CONNECTION_PRESENCE_TYPE_HIDDEN: + case TP_CONNECTION_PRESENCE_TYPE_BUSY: + case TP_CONNECTION_PRESENCE_TYPE_ERROR: + default: + /* do nothing if the presence is not offline */ + break; + } +} + +gchar * +tpaw_protocol_icon_name (const gchar *protocol) +{ + if (!tp_strdiff (protocol, "yahoojp")) + /* Yahoo Japan uses the same icon as Yahoo */ + protocol = "yahoo"; + else if (!tp_strdiff (protocol, "simple")) + /* SIMPLE uses the same icon as SIP */ + protocol = "sip"; + else if (!tp_strdiff (protocol, "skype-dbus") || + !tp_strdiff (protocol, "skype-x11") || + !tp_strdiff (protocol, "skypeweb")) + protocol = "skype"; + else if (!tp_strdiff (protocol, "sms")) + return g_strdup ("phone"); + + return g_strdup_printf ("im-%s", protocol); +} + +const char * +tpaw_protocol_name_to_display_name (const gchar *proto_name) +{ + int i; + static struct { + const gchar *proto; + const gchar *display; + gboolean translated; + } names[] = { + { "jabber", "Jabber", FALSE }, + { "msn", "Windows Live (MSN)", FALSE, }, + { "local-xmpp", N_("People Nearby"), TRUE }, + { "irc", "IRC", FALSE }, + { "icq", "ICQ", FALSE }, + { "aim", "AIM", FALSE }, + { "yahoo", "Yahoo!", FALSE }, + { "yahoojp", N_("Yahoo! Japan"), TRUE }, + { "groupwise", "GroupWise", FALSE }, + { "sip", "SIP", FALSE }, + { "gadugadu", "Gadu-Gadu", FALSE }, + { "mxit", "Mxit", FALSE }, + { "myspace", "Myspace", FALSE }, + { "sametime", "Sametime", FALSE }, + { "skype-dbus", "Skype (D-BUS)", FALSE }, + { "skype-x11", "Skype (X11)", FALSE }, + { "skypeweb", "Skype", FALSE }, + { "zephyr", "Zephyr", FALSE }, + { "facebook", "Facebook Messenger", FALSE }, + { NULL, NULL } + }; + + for (i = 0; names[i].proto != NULL; i++) + { + if (!tp_strdiff (proto_name, names[i].proto)) + { + if (names[i].translated) + return gettext (names[i].display); + else + return names[i].display; + } + } + + return proto_name; +} + +const char * +tpaw_service_name_to_display_name (const gchar *service_name) +{ + int i; + static struct { + const gchar *service; + const gchar *display; + gboolean translated; + } names[] = { + { "google-talk", N_("Google Talk"), FALSE }, + { NULL, NULL } + }; + + for (i = 0; names[i].service != NULL; i++) + { + if (!tp_strdiff (service_name, names[i].service)) + { + if (names[i].translated) + return gettext (names[i].display); + else + return names[i].display; + } + } + + return service_name; +} + +gboolean +tpaw_xml_validate_from_resource (xmlDoc *doc, + const gchar *dtd_resourcename) +{ + GBytes *resourcecontents; + gconstpointer resourcedata; + gsize resourcesize; + xmlParserInputBufferPtr buffer; + xmlValidCtxt cvp; + xmlDtd *dtd; + GError *error = NULL; + gboolean ret; + + DEBUG ("Loading dtd resource %s", dtd_resourcename); + + resourcecontents = g_resources_lookup_data (dtd_resourcename, G_RESOURCE_LOOKUP_FLAGS_NONE, &error); + if (error != NULL) + { + g_warning ("Unable to load dtd resource '%s': %s", dtd_resourcename, error->message); + g_error_free (error); + return FALSE; + } + resourcedata = g_bytes_get_data (resourcecontents, &resourcesize); + buffer = xmlParserInputBufferCreateStatic (resourcedata, resourcesize, XML_CHAR_ENCODING_UTF8); + + memset (&cvp, 0, sizeof (cvp)); + dtd = xmlIOParseDTD (NULL, buffer, XML_CHAR_ENCODING_UTF8); + ret = xmlValidateDtd (&cvp, doc, dtd); + + xmlFreeDtd (dtd); + g_bytes_unref (resourcecontents); + + return ret; +} + +/* Takes care of moving the window to the current workspace. */ +void +tpaw_window_present_with_time (GtkWindow *window, + guint32 timestamp) +{ + GdkWindow *gdk_window; + + g_return_if_fail (GTK_IS_WINDOW (window)); + + /* Move the window to the current workspace before trying to show it. + * This is the behaviour people expect when clicking on the statusbar icon. */ + gdk_window = gtk_widget_get_window (GTK_WIDGET (window)); + + if (gdk_window) + { + gint x, y; + gint w, h; + +#ifdef GDK_WINDOWING_X11 + /* Has no effect if the WM has viewports, like compiz */ + if (GDK_IS_X11_WINDOW (gdk_window)) + gdk_x11_window_move_to_current_desktop (gdk_window); +#endif + + /* If window is still off-screen, hide it to force it to + * reposition on the current workspace. */ + gtk_window_get_position (window, &x, &y); + gtk_window_get_size (window, &w, &h); + if (!TPAW_RECT_IS_ON_SCREEN (x, y, w, h)) + gtk_widget_hide (GTK_WIDGET (window)); + } + + if (timestamp == GDK_CURRENT_TIME) + gtk_window_present (window); + else + gtk_window_present_with_time (window, timestamp); +} + +void +tpaw_window_present (GtkWindow *window) +{ + tpaw_window_present_with_time (window, gtk_get_current_event_time ()); +} + +GtkWindow * +tpaw_get_toplevel_window (GtkWidget *widget) +{ + GtkWidget *toplevel; + + g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); + + toplevel = gtk_widget_get_toplevel (widget); + if (GTK_IS_WINDOW (toplevel) && + gtk_widget_is_toplevel (toplevel)) + return GTK_WINDOW (toplevel); + + return NULL; +} + +/** tpaw_make_absolute_url_len: + * @url: an url + * @len: a length + * + * Same as #tpaw_make_absolute_url but for a limited string length + */ +gchar * +tpaw_make_absolute_url_len (const gchar *url, + guint len) +{ + g_return_val_if_fail (url != NULL, NULL); + + if (g_str_has_prefix (url, "help:") || + g_str_has_prefix (url, "mailto:") || + strstr (url, ":/")) + return g_strndup (url, len); + + if (strstr (url, "@")) + return g_strdup_printf ("mailto:%.*s", len, url); + + return g_strdup_printf ("http://%.*s", len, url); +} + +/** tpaw_make_absolute_url: + * @url: an url + * + * The URL opening code can't handle schemeless strings, so we try to be + * smart and add http if there is no scheme or doesn't look like a mail + * address. This should work in most cases, and let us click on strings + * like "www.gnome.org". + * + * Returns: a newly allocated url with proper mailto: or http:// prefix, use + * g_free when your are done with it + */ +gchar * +tpaw_make_absolute_url (const gchar *url) +{ + return tpaw_make_absolute_url_len (url, strlen (url)); +} diff --git a/telepathy-account-widgets/tp-account-widgets/tpaw-utils.h b/telepathy-account-widgets/tp-account-widgets/tpaw-utils.h new file mode 100644 index 0000000..73ece00 --- /dev/null +++ b/telepathy-account-widgets/tp-account-widgets/tpaw-utils.h @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2007-2013 Collabora Ltd. + * Copyright (C) 2005-2006 Imendio AB + * Copyright (C) 2006 Xavier Claessens + * Copyright (C) 2009 Steve Frécinaux + * + * Authors: Marco Barisione + * Guillaume Desmottes + * Sjoerd Simons + * Xavier Claessens + * Mikael Hallendal + * Richard Hult + * Martyn Russell + * Steve Frécinaux + * Emanuele Aina + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_UTILS_H__ +#define __TPAW_UTILS_H__ + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define TPAW_STR_EMPTY(s) ((s) == NULL || (s)[0] == '\0') + +#define TPAW_ACCOUNT_WIDGETS_RESOURCES_PREFIX "/org/gnome/AccountWidgets" + +void tpaw_connect_new_account (TpAccount *account, + TpAccountManager *account_manager); + +gchar *tpaw_protocol_icon_name (const gchar *protocol); +const gchar *tpaw_protocol_name_to_display_name (const gchar *proto_name); +const gchar *tpaw_service_name_to_display_name (const gchar *proto_name); + +/* XML */ +gboolean tpaw_xml_validate_from_resource (xmlDoc *doc, + const gchar *dtd_resourcename); + +/* Windows */ +void tpaw_window_present (GtkWindow *window); +void tpaw_window_present_with_time (GtkWindow *window, + guint32 timestamp); +GtkWindow * tpaw_get_toplevel_window (GtkWidget *widget); + +/* URL */ +gchar * tpaw_make_absolute_url (const gchar *url); +gchar * tpaw_make_absolute_url_len (const gchar *url, + guint len); + +/* Copied from wocky/wocky-utils.h */ + +#define tpaw_implement_finish_void(source, tag) \ + if (g_simple_async_result_propagate_error (\ + G_SIMPLE_ASYNC_RESULT (result), error)) \ + return FALSE; \ + g_return_val_if_fail (g_simple_async_result_is_valid (result, \ + G_OBJECT(source), tag), \ + FALSE); \ + return TRUE; + +#define tpaw_implement_finish_copy_pointer(source, tag, copy_func, \ + out_param) \ + GSimpleAsyncResult *_simple; \ + _simple = (GSimpleAsyncResult *) result; \ + if (g_simple_async_result_propagate_error (_simple, error)) \ + return FALSE; \ + g_return_val_if_fail (g_simple_async_result_is_valid (result, \ + G_OBJECT (source), tag), \ + FALSE); \ + if (out_param != NULL) \ + *out_param = copy_func ( \ + g_simple_async_result_get_op_res_gpointer (_simple)); \ + return TRUE; + +#define tpaw_implement_finish_return_copy_pointer(source, tag, copy_func) \ + GSimpleAsyncResult *_simple; \ + _simple = (GSimpleAsyncResult *) result; \ + if (g_simple_async_result_propagate_error (_simple, error)) \ + return NULL; \ + g_return_val_if_fail (g_simple_async_result_is_valid (result, \ + G_OBJECT (source), tag), \ + NULL); \ + return copy_func (g_simple_async_result_get_op_res_gpointer (_simple)); + +#define tpaw_implement_finish_return_pointer(source, tag) \ + GSimpleAsyncResult *_simple; \ + _simple = (GSimpleAsyncResult *) result; \ + if (g_simple_async_result_propagate_error (_simple, error)) \ + return NULL; \ + g_return_val_if_fail (g_simple_async_result_is_valid (result, \ + G_OBJECT (source), tag), \ + NULL); \ + return g_simple_async_result_get_op_res_gpointer (_simple); + +G_END_DECLS + +#endif /* __TPAW_UTILS_H__ */